[isidorus-cvs] r779 - in branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets: base environment text view

lgiessmann at common-lisp.net lgiessmann at common-lisp.net
Thu Aug 25 10:02:59 UTC 2011


Author: lgiessmann
Date: Thu Aug 25 03:02:58 2011
New Revision: 779

Log:
gdl-frontend: Widgets: implemented the consumption of role playes of GdlText within GdlAssociationView instances

Modified:
   branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/IGdlHasValueGroup.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/environment/GdlInstantiator.java
   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/view/GdlAssociationView.java
   branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlCreatorAssociationView.java
   branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlEditorAssociationView.java

Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/IGdlHasValueGroup.java
==============================================================================
--- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/IGdlHasValueGroup.java	Wed Aug 24 08:47:02 2011	(r778)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/IGdlHasValueGroup.java	Thu Aug 25 03:02:58 2011	(r779)
@@ -40,7 +40,7 @@
 	
 	// returns all possible topics that can be used as values for this value group.
 	// Note, since gdl:Default-TM-Value is treated as a usual value,
-	// default vaues are also returned by this function
+	// default values are also returned by this function
 	public ArrayList<Topic> getTmValues() throws InvalidGdlSchemaException;
 	
 	// returns all possible literals that can be used as values for this value group.
@@ -66,7 +66,7 @@
 	
 	// returns the Topic that represents the constraint, which is used to
 	// determine the topic's display-schema
-	public Topic getDisplayByConstraintOfValueGroup() throws InvalidGdlSchemaException;
+	public Topic getDisplayByOfValueGroup() throws InvalidGdlSchemaException;
 	
 	
 	// Returns a list of topics that represent the topic's preferred scope(s)

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 Aug 24 08:47:02 2011	(r778)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java	Thu Aug 25 03:02:58 2011	(r779)
@@ -651,7 +651,7 @@
 	
 	
 	// returns the constrained role and player types of the passed constraint
-	public static Pair<Topic, Topic> getConstraintRoleAndPlayerTypeOfConstraint(Topic topicRoleConstraint) throws InvalidGdlSchemaException {
+	public static Pair<Topic, Topic> getConstrainedRoleAndPlayerTypeOfConstraint(Topic topicRoleConstraint) throws InvalidGdlSchemaException {
 		if(topicRoleConstraint == null) return null;
 		
 		TopicMap tm = topicRoleConstraint.getTopicMap();
@@ -668,25 +668,25 @@
 	// return a pair that contains again two pair instances, whereas each pair
 	// represents a role type and a role player. The outer pair represents a valid
 	// combination of roles of a role-combination-constraint.
-	public static Pair<Pair<Topic, Topic>, Pair<Topic, Topic>> getRoleCombinationsOfConstraint(Topic roleCombinationconstraint) throws InvalidGdlSchemaException {
-		if(roleCombinationconstraint == null) return null;
+	public static Pair<Pair<Topic, Topic>, Pair<Topic, Topic>> getRoleCombinationsOfConstraint(Topic roleCombinationConstraint) throws InvalidGdlSchemaException {
+		if(roleCombinationConstraint == null) return null;
 		
-		TopicMap tm = roleCombinationconstraint.getTopicMap();
+		TopicMap tm = roleCombinationConstraint.getTopicMap();
 		Topic constraintRoleType = getTopicByPsi(PSIs.TMCL.tmclConstraint, tm);
 		Topic constrainedRoleAssocType = getTopicByPsi(PSIs.TMCL.tmclConstrainedRole, tm);
 		Topic constrainedRoleType = getTopicByPsi(PSIs.TMCL.tmclConstrained, tm);
-		ArrayList<Topic> roleTypes = getOtherPlayerOfBinaryAssociation(roleCombinationconstraint, constraintRoleType, constrainedRoleAssocType, null, constrainedRoleType);
-		if(roleTypes.size() != 1) throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(roleCombinationconstraint) + " must be bound exactly once to a role-type via a " + PSIs.TMCL.tmclConstrainedRole + ", but is: " + roleTypes.size());
+		ArrayList<Topic> roleTypes = getOtherPlayerOfBinaryAssociation(roleCombinationConstraint, constraintRoleType, constrainedRoleAssocType, null, constrainedRoleType);
+		if(roleTypes.size() != 1) throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(roleCombinationConstraint) + " must be bound exactly once to a role-type via a " + PSIs.TMCL.tmclConstrainedRole + ", but is: " + roleTypes.size());
 		Topic constrainedTopicTypeAssocType = getTopicByPsi(PSIs.TMCL.tmclConstrainedTopicType, tm);
-		ArrayList<Topic> playerTypes = getOtherPlayerOfBinaryAssociation(roleCombinationconstraint, constraintRoleType, constrainedTopicTypeAssocType, null, constrainedRoleType);
-		if(playerTypes.size() != 1) throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(roleCombinationconstraint) + " must be bound exactly once to a topic-type via a " + PSIs.TMCL.tmclConstrainedTopicType + ", but is: " + playerTypes.size());
+		ArrayList<Topic> playerTypes = getOtherPlayerOfBinaryAssociation(roleCombinationConstraint, constraintRoleType, constrainedTopicTypeAssocType, null, constrainedRoleType);
+		if(playerTypes.size() != 1) throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(roleCombinationConstraint) + " must be bound exactly once to a topic-type via a " + PSIs.TMCL.tmclConstrainedTopicType + ", but is: " + playerTypes.size());
 		
 		Topic otherConstrainedRoleAssocType = getTopicByPsi(PSIs.TMCL.tmclOtherConstrainedRole, tm);
-		ArrayList<Topic> otherRoleTypes = getOtherPlayerOfBinaryAssociation(roleCombinationconstraint, constraintRoleType, otherConstrainedRoleAssocType, null, constrainedRoleType);
-		if(otherRoleTypes.size() != 1) throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(roleCombinationconstraint) + " must be bound exactly once to an other-role-type via a " + PSIs.TMCL.tmclOtherConstrainedRole + ", but is: " + otherRoleTypes.size());
+		ArrayList<Topic> otherRoleTypes = getOtherPlayerOfBinaryAssociation(roleCombinationConstraint, constraintRoleType, otherConstrainedRoleAssocType, null, constrainedRoleType);
+		if(otherRoleTypes.size() != 1) throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(roleCombinationConstraint) + " must be bound exactly once to an other-role-type via a " + PSIs.TMCL.tmclOtherConstrainedRole + ", but is: " + otherRoleTypes.size());
 		Topic otherConstrainedTopicTypeRoleType = getTopicByPsi(PSIs.TMCL.tmclOtherConstrainedTopicType, tm);
-		ArrayList<Topic> otherPlayerType = getOtherPlayerOfBinaryAssociation(roleCombinationconstraint, constraintRoleType, otherConstrainedTopicTypeRoleType, null, constrainedRoleType);
-		if(otherPlayerType.size() != 1) throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(roleCombinationconstraint) + " must be bound exactly once to an other-topic-type via a " + PSIs.TMCL.tmclOtherConstrainedTopicType + ", but is: " + otherPlayerType.size());
+		ArrayList<Topic> otherPlayerType = getOtherPlayerOfBinaryAssociation(roleCombinationConstraint, constraintRoleType, otherConstrainedTopicTypeRoleType, null, constrainedRoleType);
+		if(otherPlayerType.size() != 1) throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(roleCombinationConstraint) + " must be bound exactly once to an other-topic-type via a " + PSIs.TMCL.tmclOtherConstrainedTopicType + ", but is: " + otherPlayerType.size());
 		
 		Pair<Topic, Topic> firstRole = new Pair<Topic, Topic>(roleTypes.get(0), playerTypes.get(0));
 		Pair<Topic, Topic> secondRole = new Pair<Topic, Topic>(otherRoleTypes.get(0), otherPlayerType.get(0));

Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/environment/GdlInstantiator.java
==============================================================================
--- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/environment/GdlInstantiator.java	Wed Aug 24 08:47:02 2011	(r778)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/environment/GdlInstantiator.java	Thu Aug 25 03:02:58 2011	(r779)
@@ -100,9 +100,9 @@
 		}else if(TmHelper.isInstanceOf(tmRepresentative, PSIs.GDL.TopicType.gdlSpecialEditorTopicView)){
 			return new GdlSpecialEditorTopicView(tmRepresentative, (Topic)receivedData);
 		}else if(TmHelper.isInstanceOf(tmRepresentative, PSIs.GDL.TopicType.gdlCreatorAssociationview)){
-			return new GdlCreatorAssociationView(tmRepresentative, (Association)receivedData);
+			return new GdlCreatorAssociationView(tmRepresentative, (Topic)receivedData);
 		}else if(TmHelper.isInstanceOf(tmRepresentative, PSIs.GDL.TopicType.gdlEditorAssociationView)){
-			return new GdlEditorAssociationView(tmRepresentative, (Association)receivedData);
+			return new GdlEditorAssociationView(tmRepresentative, (Topic)receivedData);
 		}else{
 			String values = "";
 			for(int i = 0; i != tmRepresentative.getTypes().length(); ++i){

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 Aug 24 08:47:02 2011	(r778)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/text/GdlText.java	Thu Aug 25 03:02:58 2011	(r779)
@@ -14,10 +14,13 @@
 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.Association;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Construct;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Occurrence;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Reifiable;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.ReifiableStub;
+import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Role;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Topic;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.TopicMap;
 import us.isidor.gdl.anaToMia.Widgets.base.ButtonableObject;
@@ -130,15 +133,23 @@
 			for(int i = 0; i != ((Topic)this.receivedData).getOccurrences(occurrenceType).length(); ++i)
 				this.createNewTextArea().setText(((Topic)this.receivedData).getOccurrences(occurrenceType).get(i).getValue());
 		} else if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.GDL.TopicType.gdlRolePlayer)){
-			this.createNewTextArea().setText("gdl:Role-Player instance");
-			// TODO: search role => role-type + role-player
-			// TODO: display the correponding value
+			if(!(receivedData instanceof Association)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " must be bound to an Association, but is: " + receivedData.getClass());
+			if(this.getRootConstraint() == null || !TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclTopicRoleConstraint)) throw new InvalidGdlSchemaException("the constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " must be bound to a root constraint of the type " + PSIs.TMCL.tmclTopicRoleConstraint + ", but ist bound to the root topic: " + (this.getRootConstraint() == null ? "null" : TmHelper.getAnyIdOfTopic(this.getRootConstraint())));
+			
+			Pair<Topic, Topic> roleAndPlayerType = TmHelper.getConstrainedRoleAndPlayerTypeOfConstraint(this.getRootConstraint());	
+			JsArray<Role> assocRoles = ((Association)this.receivedData).getRoles(roleAndPlayerType.getFirst());
+			for(int i = 0; i != assocRoles.length(); ++i){
+				if(TmHelper.isInstanceOf(assocRoles.get(i).getPlayer(), roleAndPlayerType.getSecond())){
+					this.createNewTextArea().setText(this.getTopicRepresentation(assocRoles.get(i).getPlayer(), this.getDisplayByOfValueGroup(), this.getPreferredScopeOfValueGroup()));
+				}
+			}
 		}
 		// TODO: implement type, variant, datatype, associations, roles, ... constraints
+		// TODO: move method to GdlVisibleObject
 	}
 	
 	
-	// sets the field for the set default value or sets at least one empty field
+	// sets the field for the set default value or sets at least one empty field (card-min)
 	protected void setDefaultValue() throws InvalidGdlSchemaException, ExecutionException {
 		if(this.getDefaultLiteralValue() != null && this.getDefaultTmValue() != null) throw new InvalidGdlSchemaException("the topic " + TmHelper.getAnyIdOfTopic(this.getValueGroup()) + " must be bound to maximal one " + PSIs.GDL.TopicType.gdlDefaultValue + ", but is: 2");
 		
@@ -1052,7 +1063,7 @@
 
 
 	@Override
-	public Topic getDisplayByConstraintOfValueGroup() throws InvalidGdlSchemaException {
+	public Topic getDisplayByOfValueGroup() throws InvalidGdlSchemaException {
 		if(this.displayByConstraintSet){
 			return this.displayByConstraint;
 		} else {

Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlAssociationView.java
==============================================================================
--- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlAssociationView.java	Wed Aug 24 08:47:02 2011	(r778)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlAssociationView.java	Thu Aug 25 03:02:58 2011	(r779)
@@ -39,7 +39,7 @@
 	}
 	
 	
-	public GdlAssociationView(Topic tmRepresentative, Association receivedData) throws InvalidGdlSchemaException, ExecutionException {
+	public GdlAssociationView(Topic tmRepresentative, Topic receivedData) throws InvalidGdlSchemaException, ExecutionException {
 		super(tmRepresentative, receivedData);
 	}
 	
@@ -116,7 +116,7 @@
 			
 			ArrayList<Pair<Topic, Topic>> roleTypesOfTopicRoleConstraints = new ArrayList<Pair<Topic, Topic>>();
 			for (Topic constraint : this.getTopicRoleConstraints()){
-				Pair<Topic, Topic> roleAndPlayerType = TmHelper.getConstraintRoleAndPlayerTypeOfConstraint(constraint);
+				Pair<Topic, Topic> roleAndPlayerType = TmHelper.getConstrainedRoleAndPlayerTypeOfConstraint(constraint);
 				if(!roleTypesOfTopicRoleConstraints.contains(roleAndPlayerType)) roleTypesOfTopicRoleConstraints.add(roleAndPlayerType);
 			}
 			

Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlCreatorAssociationView.java
==============================================================================
--- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlCreatorAssociationView.java	Wed Aug 24 08:47:02 2011	(r778)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlCreatorAssociationView.java	Thu Aug 25 03:02:58 2011	(r779)
@@ -1,6 +1,5 @@
 package us.isidor.gdl.anaToMia.Widgets.view;
 
-import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Association;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Topic;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.TopicMap;
 import us.isidor.gdl.anaToMia.Widgets.environment.ExecutionException;
@@ -9,7 +8,7 @@
 
 public class GdlCreatorAssociationView extends GdlAssociationView {
 
-	public GdlCreatorAssociationView(Topic tmRepresentative, Association receivedData) throws InvalidGdlSchemaException, ExecutionException {
+	public GdlCreatorAssociationView(Topic tmRepresentative, Topic  receivedData) throws InvalidGdlSchemaException, ExecutionException {
 		super(tmRepresentative, receivedData);
 		// TODO Auto-generated constructor stub
 	}

Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlEditorAssociationView.java
==============================================================================
--- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlEditorAssociationView.java	Wed Aug 24 08:47:02 2011	(r778)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/view/GdlEditorAssociationView.java	Thu Aug 25 03:02:58 2011	(r779)
@@ -3,7 +3,6 @@
 import java.util.ArrayList;
 
 import com.google.gwt.core.client.JsArray;
-
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Association;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Role;
 import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Topic;
@@ -19,13 +18,14 @@
 	protected boolean associationsToRepresentSet = false;
 	
 
-	public GdlEditorAssociationView(Topic tmRepresentative, Association receivedData) throws InvalidGdlSchemaException, ExecutionException {
+	public GdlEditorAssociationView(Topic tmRepresentative, Topic receivedData) throws InvalidGdlSchemaException, ExecutionException {
 		super(tmRepresentative, receivedData);
 		
 		// create an association item for each association that must be represetned
 		// by this view
-		for (int i = 0; i != this.getAssociationsToRepresent().size(); ++i)
+		for (int i = 0; i != this.getAssociationsToRepresent().size(); ++i){
 			this.addToContainerPanel(new AssociationItem(this.tmRepresentative, this.getAssociationsToRepresent().get(i), i));
+		}
 	}
 
 	
@@ -103,18 +103,12 @@
 	// returns an array with associations that
 	// must be represented by this association view
 	private ArrayList<Association> filterAssociations() throws InvalidGdlSchemaException {
-		if(this.receivedData instanceof Association){
-			this.associationsToRepresent = new ArrayList<Association>();
-			this.associationsToRepresent.add((Association)this.receivedData);
-			return this.associationsToRepresent;
-		} else {
-			ArrayList<Association> filteredAssociations = this.filterAssociationsByType();
-			filteredAssociations = this.filterAssociationsByRoleAndPlayerTypes(filteredAssociations);
-			this.checkAssociationsByRoleCombinations(filteredAssociations);
-			this.associationsToRepresent = filteredAssociations;
-			this.associationsToRepresentSet = true;
-			return this.associationsToRepresent;
-		}
+		ArrayList<Association> filteredAssociations = this.filterAssociationsByType();
+		filteredAssociations = this.filterAssociationsByRoleAndPlayerTypes(filteredAssociations);
+		this.checkAssociationsByRoleCombinations(filteredAssociations);
+		this.associationsToRepresent = filteredAssociations;
+		this.associationsToRepresentSet = true;
+		return this.associationsToRepresent;
 	}
 	
 	




More information about the Isidorus-cvs mailing list