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);
}
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;
}
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;
}
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();
}
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;
}
Aggregations