Search in sources :

Example 11 with AttributeGroupDTO

use of org.activityinfo.shared.dto.AttributeGroupDTO 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 12 with AttributeGroupDTO

use of org.activityinfo.shared.dto.AttributeGroupDTO 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 13 with AttributeGroupDTO

use of org.activityinfo.shared.dto.AttributeGroupDTO 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 14 with AttributeGroupDTO

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

the class PrintDataEntryForm method addAttributes.

private String addAttributes(ActivityDTO activity) {
    StringBuilder builder = new StringBuilder();
    for (AttributeGroupDTO attributeGroup : activity.getAttributeGroups()) {
        builder.append("<tr>");
        builder.append("<td id=\"field-set\" valign=\"top\">" + attributeGroup.getName() + ":</td><td>");
        attributeCheckBoxGroup(attributeGroup, builder);
        builder.append("</td></tr>");
    }
    return builder.toString();
}
Also used : AttributeGroupDTO(org.activityinfo.shared.dto.AttributeGroupDTO)

Example 15 with AttributeGroupDTO

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

the class DimensionModel method attributeGroupModels.

public static List<DimensionModel> attributeGroupModels(SchemaDTO schema, Set<Integer> indicators) {
    /*
         * Attribute Groups retain their own identity and ids 
         * by Activity, but once we get to this stage, we treat
         * attribute groups with the same name as the same thing.
         * 
         * This allows user to define attributes across databases
         * and activities through "offline" coordination.
         */
    Set<String> groupsAdded = Sets.newHashSet();
    List<DimensionModel> models = Lists.newArrayList();
    for (UserDatabaseDTO db : schema.getDatabases()) {
        for (ActivityDTO activity : db.getActivities()) {
            if (activity.containsAny(indicators)) {
                for (AttributeGroupDTO attributeGroup : activity.getAttributeGroups()) {
                    if (!groupsAdded.contains(attributeGroup.getName())) {
                        DimensionModel dimModel = new DimensionModel(attributeGroup);
                        models.add(dimModel);
                        groupsAdded.add(attributeGroup.getName());
                    }
                }
            }
        }
    }
    return models;
}
Also used : AttributeGroupDTO(org.activityinfo.shared.dto.AttributeGroupDTO) UserDatabaseDTO(org.activityinfo.shared.dto.UserDatabaseDTO) ActivityDTO(org.activityinfo.shared.dto.ActivityDTO)

Aggregations

AttributeGroupDTO (org.activityinfo.shared.dto.AttributeGroupDTO)16 ActivityDTO (org.activityinfo.shared.dto.ActivityDTO)9 IndicatorDTO (org.activityinfo.shared.dto.IndicatorDTO)7 AttributeDTO (org.activityinfo.shared.dto.AttributeDTO)6 SchemaDTO (org.activityinfo.shared.dto.SchemaDTO)5 ModelData (com.extjs.gxt.ui.client.data.ModelData)3 GetSchema (org.activityinfo.shared.command.GetSchema)3 UserDatabaseDTO (org.activityinfo.shared.dto.UserDatabaseDTO)3 Test (org.junit.Test)3 HashMap (java.util.HashMap)2 GetAttributeGroupsDimension (org.activityinfo.shared.command.GetAttributeGroupsDimension)2 AttributeGroupResult (org.activityinfo.shared.command.result.AttributeGroupResult)2 CreateResult (org.activityinfo.shared.command.result.CreateResult)2 AdminLevelDTO (org.activityinfo.shared.dto.AdminLevelDTO)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