Author: lgiessmann Date: Thu Jul 28 02:10:24 2011 New Revision: 685
Log: gdl-frontend: Widgets: implemented the static method TmHelper.getValueGroupOf(Topic visibleElement) that can be used by all visible elements to retrieve the bound gdl:Value-Group instance.
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPsis.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/text/GdlText.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/test.gdl.jtm
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPsis.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPsis.java Wed Jul 27 23:55:37 2011 (r684) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPsis.java Thu Jul 28 02:10:24 2011 (r685) @@ -186,6 +186,7 @@ public final static String gdlNthPosition = gdl + "nth-position"; public final static String gdlButtonPosition = gdl + "button-position"; public final static String gdlTmBinding = gdl + "tm-binding"; + public final static String gdlViewBinding = gdl + "view-binding"; public final static String gdlTopicViewBinding = gdl + "topic-view-binding"; }
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java Wed Jul 27 23:55:37 2011 (r684) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java Thu Jul 28 02:10:24 2011 (r685) @@ -584,4 +584,30 @@ } } } + + + // returns binary associations that corresponds to the given parameters + public static ArrayList<Association> getBinaryAssociations(Topic topic, Topic roleType, Topic assocType, ArrayList<Topic> scope, Topic otherPlayerType, Topic otherRoleType){ + ArrayList<Pair<Topic, Topic>> rolePlayertypesAndTypes = new ArrayList<Pair<Topic,Topic>>(); + rolePlayertypesAndTypes.add(new Pair<Topic, Topic>(otherPlayerType, otherRoleType)); + return getAssociationsOfTopic(topic, roleType, assocType, scope, rolePlayertypesAndTypes); + } + + + // returns the topic that represents the value group that is bound to the passed + // topic via a gdl:view-binding association + public static Topic getValueGroupOf(Topic visibleElement) throws InvalidGdlSchemaException{ + if(visibleElement == null) throw null; + + TopicMap tm = visibleElement.getTopicMap(); + Topic descriptorRoleType = getTopicByPsi(GdlPsis.RoleType.gdlDescriptor, tm); + Topic viewBindingAssocType = getTopicByPsi(GdlPsis.AssociationType.gdlViewBinding, tm); + Topic valueGroupType = getTopicByPsi(GdlPsis.TopicType.gdlValueGroup, tm); + Topic valueGroupRoleType = getTopicByPsi(GdlPsis.RoleType.gdlValueGroup, tm); + ArrayList<Topic> valueGroups = getOtherPlayerOfBinaryAssociation(visibleElement, descriptorRoleType, viewBindingAssocType, null, valueGroupType, valueGroupRoleType); + + if(valueGroups.size() == 1) return valueGroups.get(0); + else if(valueGroups.size() == 0) return null; + else throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(visibleElement) + " must be bound none or once to a value group, but is: " + valueGroups.size()); + } }
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/text/GdlText.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/text/GdlText.java Wed Jul 27 23:55:37 2011 (r684) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/text/GdlText.java Thu Jul 28 02:10:24 2011 (r685) @@ -12,12 +12,16 @@ import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.TextArea; import com.google.gwt.user.client.ui.Widget; + +import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Construct; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Occurrence; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Topic; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.TopicMapsTypes; import us.isidor.gdl.anaToMia.Widgets.base.ButtonableObject; import us.isidor.gdl.anaToMia.Widgets.base.GdlPsis; import us.isidor.gdl.anaToMia.Widgets.base.IGdlHasValue; +import us.isidor.gdl.anaToMia.Widgets.base.IGdlHasValueGroup; +import us.isidor.gdl.anaToMia.Widgets.base.TmHelper; import us.isidor.gdl.anaToMia.Widgets.environment.ActiveStyleHandler; import us.isidor.gdl.anaToMia.Widgets.environment.ExecutionException; import us.isidor.gdl.anaToMia.Widgets.environment.FocusStyleHandler; @@ -33,10 +37,11 @@
-public class GdlText extends GdlTextObject implements IGdlHasValue{ +public class GdlText extends GdlTextObject implements IGdlHasValue, IGdlHasValueGroup { protected ArrayList<PasswordKeyPressHandler> passwordKeyPressHandler = null; protected ArrayList<HandlerRegistration> passwordKeyPressRegistrations = null; - + protected Topic valueGroupTopic = null; + protected boolean valueGroupTopicSet = false; // some constructors protected GdlText() throws InvalidGdlSchemaException, ExecutionException { @@ -831,4 +836,62 @@ super.setCssProperty(styleClass, cssProperty, cssValue); } } + + + @Override + public Topic getValueGroup() throws InvalidGdlSchemaException { + if(!this.valueGroupTopicSet) this.valueGroupTopic = TmHelper.getValueGroupOf(this.tmRepresentative); + return this.valueGroupTopic; + } + + + @Override + public Topic getConstraint() throws InvalidGdlSchemaException { + // TODO Auto-generated method stub + return null; + } + + + @Override + public ArrayList<Topic> getDefaultTmValues() + throws InvalidGdlSchemaException { + // TODO Auto-generated method stub + return null; + } + + + @Override + public String getDefaultLiteralValue() throws InvalidGdlSchemaException { + // TODO Auto-generated method stub + return null; + } + + + @Override + public ArrayList<Topic> getTmValues() throws InvalidGdlSchemaException { + // TODO Auto-generated method stub + return null; + } + + + @Override + public ArrayList<String> getLiteralValues() + throws InvalidGdlSchemaException { + // TODO Auto-generated method stub + return null; + } + + + @Override + public String getSetLiteralValue() throws InvalidGdlSchemaException { + // TODO Auto-generated method stub + return null; + } + + + @Override + public Construct getSetTmValue() throws InvalidGdlSchemaException { + // TODO Auto-generated method stub + return null; + } }
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/test.gdl.jtm ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/test.gdl.jtm Wed Jul 27 23:55:37 2011 (r684) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/test.gdl.jtm Thu Jul 28 02:10:24 2011 (r685) @@ -19,6 +19,8 @@ {"subject_identifiers":["[gdl:containee]"], "instance_of":["si:[tmcl:role-type]"]}, {"subject_identifiers":["[gdl:ancestor]"], "instance_of":["si:[tmcl:role-type]"]}, {"subject_identifiers":["[gdl:descendant]"], "instance_of":["si:[tmcl:role-type]"]}, + {"subject_identifiers":["[gdl:view-binding]"], "instance_of":["si:[tmcl:role-type]"]}, + {"subject_identifiers":["[gdl:value-group]"], "instance_of":["si:[tmcl:role-type]"]}, {"subject_identifiers":["[gdl:Schema]"], "instance_of":["si:[tmcl:topic-type]"]}, {"subject_identifiers":["[gdl:schema-name]"], "instance_of":["si:[tmcl:name-type]"]}, {"subject_identifiers":["[gdl:view-name]"], "instance_of":["si:[tmcl:name-type]"]}, @@ -26,9 +28,11 @@ {"subject_identifiers":["[gdl:border-width]"], "instance_of":["si:[tmcl:occurrence-type]"]}, {"subject_identifiers":["[doc:test-schema]"], "instance_of":["si:[gdl:Schema]"], "names":[{"value": "Test GDL Schema", "type":"si:[gdl:schema-name]"}]}, {"subject_identifiers":["[gdl:Visible-Object]"]}, + {"subject_identifiers":["[gdl:Value-Group]"]}, {"subject_identifiers":["[gdl:Text-Object]"]}, {"subject_identifiers":["[gdl:Position]"]}, {"subject_identifiers":["[gdl:position]"], "instance_of":["si:[tmcl:association-type]"]}, + {"subject_identifiers":["[doc:value-group-person-name]"], "instance_of":["si:[gdl:Value-Group]"]}, {"subject_identifiers":["[gdl:margin-left]"], "instance_of":["si:[tmcl:occurrence-type]"]}, {"subject_identifiers":["[gdl:border-style]"], "instance_of":["si:[tmcl:occurrence-type]"]}, {"subject_identifiers":["[gdl:margin-top]"], "instance_of":["si:[tmcl:occurrence-type]"]}, @@ -165,6 +169,7 @@ {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdl:Button]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdl:Action-Button]"}]}, {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdl:Action-Button]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdl:Delete-Button]"}]}, {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdl:Action-Button]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdl:Create-Button]"}]}, + {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdl:Descriptor]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdl:Value-Group]"}]}, {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[doc:test-schema]"},{"type":"si:[gdl:containee]", "player":"si:[doc:default-creator-topic-view-1]"}]}, {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[doc:test-schema]"},{"type":"si:[gdl:containee]", "player":"si:[doc:default-creator-topic-view-2]"}]}, {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[doc:test-schema]"},{"type":"si:[gdl:containee]", "player":"si:[doc:default-editor-topic-view]"}]}, @@ -213,5 +218,6 @@ {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[doc:unit-1-text]"},{"type":"si:[gdl:containee]", "player":"si:[doc:unit-1-text-delete-button]"}]}, {"type":"si:[gdl:button-position]", "roles":[{"type":"si:[gdl:nth-element]", "player":"si:[doc:nth-elem-crt-btn]"},{"type":"si:[gdl:action-button]", "player":"si:[doc:unit-1-text-create-button]"}]}, {"type":"si:[gdl:button-position]", "roles":[{"type":"si:[gdl:nth-element]", "player":"si:[doc:nth-elem-del-btn]"},{"type":"si:[gdl:action-button]", "player":"si:[doc:unit-1-text-delete-button]"}]}, - {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[doc:unit-1-reference]"},{"type":"si:[gdl:containee]", "player":"si:[doc:info-1]"}]} + {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[doc:unit-1-reference]"},{"type":"si:[gdl:containee]", "player":"si:[doc:info-1]"}]}, + {"type":"si:[gdl:view-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[doc:value-group-person-name]"},{"type":"si:[gdl:descriptor]", "player":"si:[doc:text-1]"}]} ]} \ No newline at end of file