
Author: lgiessmann Date: Wed Oct 19 03:22:41 2011 New Revision: 1008 Log: gdl-frontend: Widgets: implemented the tmcl:reifier-constraint semantics for retrieving data; fixed a bug in the test-schema Modified: trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm Modified: trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java ============================================================================== --- trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Tue Oct 18 07:39:38 2011 (r1007) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Wed Oct 19 03:22:41 2011 (r1008) @@ -1959,18 +1959,35 @@ for(int i = 0; i != ((Topic)this.receivedData).getOccurrences(occurrenceType).length(); ++i) this.addSubItem(((Topic)this.receivedData).getOccurrences(occurrenceType).get(i).getValue()); } else if (TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclReifierConstraint)){ - // TODO: implement: reifier-constraint + Topic type = TmHelper.getConstrainedStatement(this.getConstraint()); + + Topic reifier = null; + if(this.receivedData instanceof Topic){ + JsArray<Name> names = ((Topic)this.receivedData).getNames(type); + if(names.length() != 0) reifier = names.get(0).getReifier(); + if(reifier == null){ + JsArray<Occurrence> occs = ((Topic)this.receivedData).getOccurrences(type); + if(occs.length() != 0) reifier = occs.get(0).getReifier(); + } + } else if(this.receivedData instanceof Association){ + if(((Association)this.receivedData).getType().equals(type)) type = ((Association)this.receivedData).getType(); + } else { + throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " must be bound to a topic or association, but is: " + this.receivedData.getClass()); + } + + String str = this.getTopicRepresentation(reifier, this.getDisplayByOfValueGroup(), this.getPreferredScopeOfValueGroup()); + if(str == null) str = ""; + this.addSubItem(str); } else if (TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclVariantNameConstraint)){ // TODO: implement: variant-name-constraint } else if (TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclScopeConstraint)){ - // TODO: implement Topic type = TmHelper.getConstrainedStatement(this.getConstraint()); JsArray<Topic> scope = null; if(this.receivedData instanceof Topic){ JsArray<Name> names = ((Topic)this.receivedData).getNames(type); if(names.length() != 0) scope = names.get(0).getScope(); - if(scope != null){ + if(scope == null){ JsArray<Occurrence> occs = ((Topic)this.receivedData).getOccurrences(type); if(occs.length() != 0) scope = occs.get(0).getScope(); } Modified: trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm ============================================================================== --- trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm Tue Oct 18 07:39:38 2011 (r1007) +++ trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm Wed Oct 19 03:22:41 2011 (r1008) @@ -373,7 +373,7 @@ {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-reifier-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-name-reifier-constraint]"}]}, {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[gdlsrv:service-default-editor-topic-view]"},{"type":"si:[gdl:containee]", "player":"si:[gdlsrv:service-name-iis-text]"}]}, - {"type":"si:[gdl:position]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-reifier-text-position]"},{"type":"si:[gdl:ancestor]", "player":"si:[gdlsrv:service-name-reifier-text]"},{"type":"si:[gdl:descendant]", "player":"si:[gdlsrv:service-name-iis-text]"}]}, + {"type":"si:[gdl:position]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-iis-text-position]"},{"type":"si:[gdl:ancestor]", "player":"si:[gdlsrv:service-name-reifier-text]"},{"type":"si:[gdl:descendant]", "player":"si:[gdlsrv:service-name-iis-text]"}]}, {"type":"si:[gdl:view-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-iis-text-value-group]"},{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-iis-text]"}]}, {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-iis-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-name-ii-constraint]"}]}