Search in sources :

Example 6 with AttributeDTO

use of org.activityinfo.shared.dto.AttributeDTO in project activityinfo by bedatadriven.

the class DesignPresenter method onNew.

public void onNew(String entityName) {
    final EntityDTO newEntity;
    ModelData parent;
    ModelData selected = view.getSelection();
    if ("Activity".equals(entityName)) {
        newEntity = new ActivityDTO(db);
        newEntity.set("databaseId", db.getId());
        parent = null;
    } else if ("AttributeGroup".equals(entityName)) {
        ActivityDTO activity = findActivityFolder(selected);
        newEntity = new AttributeGroupDTO();
        newEntity.set("activityId", activity.getId());
        parent = treeStore.getChild(activity, 0);
    } else if ("Attribute".equals(entityName)) {
        AttributeGroupDTO group = findAttributeGroupNode(selected);
        newEntity = new AttributeDTO();
        newEntity.set("attributeGroupId", group.getId());
        parent = group;
    } else if ("Indicator".equals(entityName)) {
        ActivityDTO activity = findActivityFolder(selected);
        IndicatorDTO newIndicator = new IndicatorDTO();
        newIndicator.setAggregation(IndicatorDTO.AGGREGATE_SUM);
        newEntity = newIndicator;
        newEntity.set("activityId", activity.getId());
        parent = treeStore.getChild(activity, 1);
    } else {
        // TODO log error
        return;
    }
    createEntity(parent, newEntity);
}
Also used : AttributeDTO(org.activityinfo.shared.dto.AttributeDTO) EntityDTO(org.activityinfo.shared.dto.EntityDTO) ModelData(com.extjs.gxt.ui.client.data.ModelData) AttributeGroupDTO(org.activityinfo.shared.dto.AttributeGroupDTO) IndicatorDTO(org.activityinfo.shared.dto.IndicatorDTO) ActivityDTO(org.activityinfo.shared.dto.ActivityDTO)

Example 7 with AttributeDTO

use of org.activityinfo.shared.dto.AttributeDTO in project activityinfo by bedatadriven.

the class DesignView method createGridAndAddToContainer.

@Override
protected Grid<ModelData> createGridAndAddToContainer(Store store) {
    final TreeStore treeStore = (TreeStore) store;
    tree = new EditorTreeGrid<ModelData>(treeStore, createColumnModel());
    tree.setSelectionModel(new ImprovedCellTreeGridSelectionModel<ModelData>());
    tree.setClicksToEdit(EditorGrid.ClicksToEdit.TWO);
    tree.setAutoExpandColumn("name");
    tree.setHideHeaders(true);
    tree.setLoadMask(true);
    // tree.setContextMenu(createContextMenu());
    tree.setIconProvider(new ModelIconProvider<ModelData>() {

        @Override
        public AbstractImagePrototype getIcon(ModelData model) {
            if (model instanceof ActivityDTO) {
                return IconImageBundle.ICONS.activity();
            } else if (model instanceof Folder) {
                return GXT.IMAGES.tree_folder_closed();
            } else if (model instanceof AttributeGroupDTO) {
                return IconImageBundle.ICONS.attributeGroup();
            } else if (model instanceof AttributeDTO) {
                return IconImageBundle.ICONS.attribute();
            } else if (model instanceof IndicatorDTO) {
                return IconImageBundle.ICONS.indicator();
            } else {
                return null;
            }
        }
    });
    tree.addListener(Events.CellClick, new Listener<GridEvent>() {

        @Override
        public void handleEvent(GridEvent ge) {
            showForm(tree.getStore().getAt(ge.getRowIndex()));
        }
    });
    add(tree, new BorderLayoutData(Style.LayoutRegion.CENTER));
    TreeGridDragSource source = new TreeGridDragSource(tree);
    source.addDNDListener(new DNDListener() {

        @Override
        public void dragStart(DNDEvent e) {
            ModelData sel = ((CellTreeGridSelectionModel) tree.getSelectionModel()).getSelectCell().model;
            if (!db.isDesignAllowed() || sel == null || sel instanceof Folder) {
                e.setCancelled(true);
                e.getStatus().setStatus(false);
                return;
            }
            super.dragStart(e);
        }
    });
    TreeGridDropTarget target = new TreeGridDropTarget(tree);
    target.setAllowSelfAsSource(true);
    target.setFeedback(DND.Feedback.BOTH);
    target.setAutoExpand(false);
    target.addDNDListener(new DragDropListener(treeStore));
    return tree;
}
Also used : AbstractImagePrototype(com.google.gwt.user.client.ui.AbstractImagePrototype) TreeGridDragSource(com.extjs.gxt.ui.client.dnd.TreeGridDragSource) ModelData(com.extjs.gxt.ui.client.data.ModelData) AttributeGroupDTO(org.activityinfo.shared.dto.AttributeGroupDTO) GridEvent(com.extjs.gxt.ui.client.event.GridEvent) DNDEvent(com.extjs.gxt.ui.client.event.DNDEvent) BorderLayoutData(com.extjs.gxt.ui.client.widget.layout.BorderLayoutData) DNDListener(com.extjs.gxt.ui.client.event.DNDListener) ActivityDTO(org.activityinfo.shared.dto.ActivityDTO) TreeGridDropTarget(com.extjs.gxt.ui.client.dnd.TreeGridDropTarget) AttributeDTO(org.activityinfo.shared.dto.AttributeDTO) TreeStore(com.extjs.gxt.ui.client.store.TreeStore) IndicatorDTO(org.activityinfo.shared.dto.IndicatorDTO) CellTreeGridSelectionModel(com.extjs.gxt.ui.client.widget.treegrid.CellTreeGridSelectionModel) ImprovedCellTreeGridSelectionModel(org.activityinfo.client.page.common.grid.ImprovedCellTreeGridSelectionModel)

Example 8 with AttributeDTO

use of org.activityinfo.shared.dto.AttributeDTO in project activityinfo by bedatadriven.

the class DesignView method showNewForm.

@Override
public FormDialogTether showNewForm(EntityDTO entity, FormDialogCallback callback) {
    AbstractDesignForm form = createForm(entity);
    form.getBinding().bind(entity);
    for (FieldBinding field : form.getBinding().getBindings()) {
        field.getField().clearInvalid();
    }
    FormDialogImpl dlg = new FormDialogImpl(form);
    dlg.setWidth(form.getPreferredDialogWidth());
    dlg.setHeight(form.getPreferredDialogHeight());
    dlg.setScrollMode(Style.Scroll.AUTOY);
    if (entity instanceof ActivityDTO) {
        dlg.setHeading(I18N.CONSTANTS.newActivity());
    } else if (entity instanceof AttributeGroupDTO) {
        dlg.setHeading(I18N.CONSTANTS.newAttributeGroup());
    } else if (entity instanceof AttributeDTO) {
        dlg.setHeading(I18N.CONSTANTS.newAttribute());
    } else if (entity instanceof IndicatorDTO) {
        dlg.setHeading(I18N.CONSTANTS.newIndicator());
    }
    dlg.show(callback);
    return dlg;
}
Also used : AttributeDTO(org.activityinfo.shared.dto.AttributeDTO) AttributeGroupDTO(org.activityinfo.shared.dto.AttributeGroupDTO) IndicatorDTO(org.activityinfo.shared.dto.IndicatorDTO) FormDialogImpl(org.activityinfo.client.page.common.dialog.FormDialogImpl) FieldBinding(com.extjs.gxt.ui.client.binding.FieldBinding) ActivityDTO(org.activityinfo.shared.dto.ActivityDTO)

Example 9 with AttributeDTO

use of org.activityinfo.shared.dto.AttributeDTO in project activityinfo by bedatadriven.

the class SiteRenderer method renderAttribute.

protected void renderAttribute(StringBuilder html, AttributeGroupDTO group, SiteDTO site) {
    int count = 0;
    if (group != null) {
        for (AttributeDTO attribute : group.getAttributes()) {
            Boolean value = site.getAttributeValue(attribute.getId());
            if (value != null && value) {
                if (count == 0) {
                    html.append("<p class='attribute'><span class='groupName'>");
                    html.append(group.getName());
                    html.append(": </span><span class='attValues'>");
                } else {
                    html.append(", ");
                }
                html.append(attribute.getName());
                count++;
            }
        }
        if (count != 0) {
            html.append("</span></p>");
        }
    }
}
Also used : AttributeDTO(org.activityinfo.shared.dto.AttributeDTO)

Example 10 with AttributeDTO

use of org.activityinfo.shared.dto.AttributeDTO in project activityinfo by bedatadriven.

the class GetSchemaTest method testAttributes.

@Test
public void testAttributes() throws CommandException {
    // Alex
    setUser(1);
    SchemaDTO schema = execute(new GetSchema());
    assertTrue("no attributes case", schema.getActivityById(3).getAttributeGroups().size() == 0);
    ActivityDTO nfi = schema.getActivityById(1);
    AttributeDTO[] attributes = nfi.getAttributeGroupById(1).getAttributes().toArray(new AttributeDTO[0]);
    assertTrue("attributes are present", attributes.length == 2);
    AttributeDTO test = nfi.getAttributeById(1);
    assertEquals("property:name", "Catastrophe Naturelle", test.getName());
}
Also used : AttributeDTO(org.activityinfo.shared.dto.AttributeDTO) ActivityDTO(org.activityinfo.shared.dto.ActivityDTO) SchemaDTO(org.activityinfo.shared.dto.SchemaDTO) GetSchema(org.activityinfo.shared.command.GetSchema) Test(org.junit.Test)

Aggregations

AttributeDTO (org.activityinfo.shared.dto.AttributeDTO)10 AttributeGroupDTO (org.activityinfo.shared.dto.AttributeGroupDTO)6 IndicatorDTO (org.activityinfo.shared.dto.IndicatorDTO)6 ActivityDTO (org.activityinfo.shared.dto.ActivityDTO)5 ModelData (com.extjs.gxt.ui.client.data.ModelData)3 SchemaDTO (org.activityinfo.shared.dto.SchemaDTO)2 FieldBinding (com.extjs.gxt.ui.client.binding.FieldBinding)1 TreeGridDragSource (com.extjs.gxt.ui.client.dnd.TreeGridDragSource)1 TreeGridDropTarget (com.extjs.gxt.ui.client.dnd.TreeGridDropTarget)1 BaseEvent (com.extjs.gxt.ui.client.event.BaseEvent)1 DNDEvent (com.extjs.gxt.ui.client.event.DNDEvent)1 DNDListener (com.extjs.gxt.ui.client.event.DNDListener)1 GridEvent (com.extjs.gxt.ui.client.event.GridEvent)1 TreeStore (com.extjs.gxt.ui.client.store.TreeStore)1 BorderLayoutData (com.extjs.gxt.ui.client.widget.layout.BorderLayoutData)1 MenuItem (com.extjs.gxt.ui.client.widget.menu.MenuItem)1 SeparatorMenuItem (com.extjs.gxt.ui.client.widget.menu.SeparatorMenuItem)1 CellTreeGridSelectionModel (com.extjs.gxt.ui.client.widget.treegrid.CellTreeGridSelectionModel)1 AbstractImagePrototype (com.google.gwt.user.client.ui.AbstractImagePrototype)1 FormDialogImpl (org.activityinfo.client.page.common.dialog.FormDialogImpl)1