Search in sources :

Example 21 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class MetaModelExpressionTest method testParentExpression.

@Test
public void testParentExpression() {
    Schema schema = survey.getSchema();
    EntityDefinition clusterDefn = schema.getRootEntityDefinition("cluster");
    EntityDefinition plotDefn = (EntityDefinition) clusterDefn.getChildDefinition("plot");
    NodeDefinition plotNoDefn = plotDefn.getChildDefinition("no");
    SchemaPathExpression expression = new SchemaPathExpression("parent()");
    NodeDefinition resultDefn = expression.evaluate(plotDefn, plotNoDefn);
    Assert.assertEquals(clusterDefn, resultDefn);
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) AbstractTest(org.openforis.idm.AbstractTest) Test(org.junit.Test)

Example 22 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class SchemaVM method performRemoveNode.

protected void performRemoveNode(NodeDefinition nodeDefn) {
    EntityDefinition parentDefn = (EntityDefinition) nodeDefn.getParentDefinition();
    if (parentDefn == null) {
        // root entity
        UIOptions uiOpts = survey.getUIOptions();
        UITabSet tabSet = uiOpts.getAssignedRootTabSet((EntityDefinition) nodeDefn);
        uiOpts.removeTabSet(tabSet);
        Schema schema = nodeDefn.getSchema();
        String nodeName = nodeDefn.getName();
        schema.removeRootEntityDefinition(nodeName);
        selectedRootEntity = null;
        rootTabSet = null;
        notifyChange("selectedRootEntity", "rootEntities");
        refreshTreeModel();
    } else {
        if (treeModel != null) {
            treeModel.removeSelectedNode();
            notifyChange("treeModel");
        }
        parentDefn.removeChildDefinition(nodeDefn);
    }
    survey.refreshSurveyDependencies();
    resetEditingStatus();
    dispatchCurrentFormValidatedCommand(true);
    dispatchSurveyChangedCommand();
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) UIOptions(org.openforis.collect.metamodel.ui.UIOptions) UITabSet(org.openforis.collect.metamodel.ui.UITabSet) Schema(org.openforis.idm.metamodel.Schema)

Example 23 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class SchemaVM method changeEditedNodeParentEntity.

private void changeEditedNodeParentEntity(EntityDefinition newParentEntity) {
    // update parent entity
    NodeDefinition node = (NodeDefinition) editedNode;
    Schema schema = survey.getSchema();
    schema.changeParentEntity(node, newParentEntity);
    // update tab
    UIOptions uiOptions = survey.getUIOptions();
    uiOptions.removeTabAssociation(node);
    if (node instanceof AttributeDefinition) {
        survey.getAnnotations().setMeasurementAttribute((AttributeDefinition) node, false);
    }
    // update ui
    refreshTreeModel();
    editedNodeParentEntity = newParentEntity;
    selectTreeNode(editedNode);
    treeModel.showSelectedNode();
    notifyChange("selectedTreeNode", "editedNode");
}
Also used : Schema(org.openforis.idm.metamodel.Schema) UIOptions(org.openforis.collect.metamodel.ui.UIOptions) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) KeyAttributeDefinition(org.openforis.idm.metamodel.KeyAttributeDefinition) AttributeDefinition(org.openforis.idm.metamodel.AttributeDefinition)

Example 24 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class SurveyBaseVM method getRootEntities.

public List<EntityDefinition> getRootEntities() {
    CollectSurvey survey = getSurvey();
    if (survey == null) {
        // TODO session expired...?
        return Collections.emptyList();
    } else {
        Schema schema = survey.getSchema();
        List<EntityDefinition> result = schema.getRootEntityDefinitions();
        return result;
    }
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema) CollectSurvey(org.openforis.collect.model.CollectSurvey)

Example 25 with Schema

use of org.openforis.idm.metamodel.Schema in project collect by openforis.

the class UnitsVM method getReferences.

protected List<NodeDefinition> getReferences(Unit item) {
    List<NodeDefinition> references = new ArrayList<NodeDefinition>();
    Schema schema = survey.getSchema();
    List<EntityDefinition> rootEntities = schema.getRootEntityDefinitions();
    Stack<NodeDefinition> stack = new Stack<NodeDefinition>();
    stack.addAll(rootEntities);
    while (!stack.isEmpty()) {
        NodeDefinition defn = stack.pop();
        if (defn instanceof EntityDefinition) {
            stack.addAll(((EntityDefinition) defn).getChildDefinitions());
        } else if (defn instanceof NumericAttributeDefinition) {
            List<Unit> units = ((NumericAttributeDefinition) defn).getUnits();
            if (units.contains(item)) {
                references.add(defn);
            }
        }
    }
    return references;
}
Also used : EntityDefinition(org.openforis.idm.metamodel.EntityDefinition) Schema(org.openforis.idm.metamodel.Schema) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) NumericAttributeDefinition(org.openforis.idm.metamodel.NumericAttributeDefinition) Stack(java.util.Stack)

Aggregations

Schema (org.openforis.idm.metamodel.Schema)65 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)46 NodeDefinition (org.openforis.idm.metamodel.NodeDefinition)23 CollectSurvey (org.openforis.collect.model.CollectSurvey)19 ArrayList (java.util.ArrayList)10 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)10 Survey (org.openforis.idm.metamodel.Survey)10 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)6 UIOptions (org.openforis.collect.metamodel.ui.UIOptions)5 NumericAttributeDefinition (org.openforis.idm.metamodel.NumericAttributeDefinition)5 Test (org.junit.Test)4 UITab (org.openforis.collect.metamodel.ui.UITab)4 UITabSet (org.openforis.collect.metamodel.ui.UITabSet)4 Step (org.openforis.collect.model.CollectRecord.Step)4 CollectRecordSummary (org.openforis.collect.model.CollectRecordSummary)4 RecordFilter (org.openforis.collect.model.RecordFilter)4 NodeDefinitionVisitor (org.openforis.idm.metamodel.NodeDefinitionVisitor)4 NumberAttributeDefinition (org.openforis.idm.metamodel.NumberAttributeDefinition)4 Entity (org.openforis.idm.model.Entity)4 List (java.util.List)3