Author: lgiessmann Date: Wed Jul 13 05:38:00 2011 New Revision: 608
Log: gdl-frontend: Widgets: changed the way the GdlPanel requests topics to edit or to create
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/environment/ILoadSchemaCallback.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.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/GdlPanel.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java Wed Jul 13 04:57:28 2011 (r607) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java Wed Jul 13 05:38:00 2011 (r608) @@ -34,12 +34,10 @@ // The ClickHandlers will be registered on the buttons with the corresponding id attribute. private ArrayList<Pair<ClickHandler, String>> buttonCallbacks = new ArrayList<Pair<ClickHandler, String>>();
- // If requestedTypes is not null or length != 0, the string values must be treated as topic - // identifiers of a topic type. The created GDL view must be a Default-Topic-Creator-View - private ArrayList<Pair<String, TopicIdentifierTypes>> requestedTypes = new ArrayList<Pair<String, TopicIdentifierTypes>>(); - // If requestedInstance is not null or != "", the string value must be treated as a topic identifier - // of a particular topic instance. The created GDL view must be a Default-Topic-Editor-View - private Pair<String, TopicIdentifierTypes> requestedInstance = null; + // if any value is set in this array list, the requested view is a Default-Creator-Topic-View + private ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToCreate = new ArrayList<Pair<String,TopicIdentifierTypes>>(); + // if any value is set in this array list, the requested view is a Default-Editor-Topic-View + private ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToEdit = new ArrayList<Pair<String,TopicIdentifierTypes>>(); // the GWT base for this panel private AbsolutePanel mainPanel = new AbsolutePanel(); @@ -65,46 +63,28 @@ } - protected GdlPanel(Pair<String, TopicIdentifierTypes> instanceIdentifier){ + protected GdlPanel(ArrayList<Pair<String, TopicIdentifierTypes>> topicsToEdit, ArrayList<Pair<String, TopicIdentifierTypes>> topicToCreate) throws ExecutionException{ this(); - if(instanceIdentifier != null && instanceIdentifier.getFirst() != null && instanceIdentifier.getSecond() != null){ - this.requestedInstance = instanceIdentifier; - } - } + if(topicsToEdit != null && topicsToEdit.size() != 0)this.requestedTopicsToEdit = topicsToEdit; + if(topicToCreate != null && topicToCreate.size() != 0)this.requestedTopicsToCreate = topicToCreate; - - public GdlPanel(Pair<String, TopicIdentifierTypes> instanceIdentifier, int width, int height){ - this(instanceIdentifier); - this.setPixelSize(width, height); + if(this.requestedTopicsToCreate.size() != 0 && this.requestedTopicsToEdit.size() != 0) + throw new ExecutionException("only one container can be set, i.e. either topics to create or topics to edit"); } + - - public GdlPanel(Pair<String, TopicIdentifierTypes> instanceIdentifier, String width, String height){ - this(instanceIdentifier); - this.setSize(width, height); - } - - - protected GdlPanel(ArrayList<Pair<String, TopicIdentifierTypes>> typeIdentifiers){ - this(); - if(typeIdentifiers != null){ - requestedTypes = typeIdentifiers; - } - } - - - public GdlPanel(ArrayList<Pair<String, TopicIdentifierTypes>> typeIdentifiers, int width, int height){ - this(typeIdentifiers); + public GdlPanel(ArrayList<Pair<String, TopicIdentifierTypes>> topicsToEdit, ArrayList<Pair<String, TopicIdentifierTypes>> topicToCreate, int width, int height) throws ExecutionException{ + this(topicsToEdit, topicToCreate); this.setPixelSize(width, height); } - public GdlPanel(ArrayList<Pair<String, TopicIdentifierTypes>> typeIdentifiers, String width, String height){ - this(typeIdentifiers); + public GdlPanel(ArrayList<Pair<String, TopicIdentifierTypes>> topicsToEdit, ArrayList<Pair<String, TopicIdentifierTypes>> topicToCreate, String width, String height) throws ExecutionException{ + this(topicsToEdit, topicToCreate); this.setSize(width, height); }
- + public void registerOnErrorHandler(String descriptorId, IOnErrorCallback handler){ if(!localOnErrorContainer.contains(handler)){ localOnErrorContainer.add(handler); @@ -188,7 +168,7 @@ if(this.loadSchemaCallback == null){ throw new ExecutionException("No LoadSchemaCallback was set yet"); } - this.loadSchemaCallback.loadSchema(this, this.requestedInstance, this.requestedTypes); + this.loadSchemaCallback.loadSchema(this, this.requestedTopicsToEdit, this.requestedTopicsToCreate); }catch(Exception e){ for (IOnErrorCallback handler : localOnErrorContainer) { handler.onError(GdlErrorTypes.LoadError, e); @@ -278,8 +258,8 @@ // Creates the actual view from the requested topic map public void createView(){ try{ - view = GdlInstantiator.instantiateDefaultEditorOrCreatorView(requestedInstance, requestedTypes, this.requestedSchemaTm); - Window.alert("view: " + view); + //view = GdlInstantiator.instantiateDefaultEditorOrCreatorView(requestedTopicsTo, requestedTopicToCreat, this.requestedSchemaTm); + //TODO: implement mainPanel.add(view); for (Pair<ClickHandler, String> item : this.buttonCallbacks) { view.registerButtonCallback(item.getFirst(), item.getSecond());
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java Wed Jul 13 04:57:28 2011 (r607) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java Wed Jul 13 05:38:00 2011 (r608) @@ -39,7 +39,10 @@ mainPanel.setBorderWidth(1); mainPanel.setPixelSize(500, 500); - gdlPanel = new GdlPanel(new Pair<String, TopicIdentifierTypes>("http://mytop/psi-1", TopicIdentifierTypes.SubjectIdentifier)); + ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToCreate = new ArrayList<Pair<String,TopicIdentifierTypes>>(); + requestedTopicsToCreate.add(new Pair<String, TopicIdentifierTypes>("http://psi.test.org/gdl-test/Poet", TopicIdentifierTypes.SubjectIdentifier)); + requestedTopicsToCreate.add(new Pair<String, TopicIdentifierTypes>("http://psi.test.org/gdl-test/Musician", TopicIdentifierTypes.SubjectIdentifier)); + gdlPanel = new GdlPanel(null, requestedTopicsToCreate); gdlPanel.setPixelSize(100, 100); DOM.setStyleAttribute(gdlPanel.getElement(), "backgroundColor", "yellow"); mainPanel.add(gdlPanel);
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/environment/ILoadSchemaCallback.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/environment/ILoadSchemaCallback.java Wed Jul 13 04:57:28 2011 (r607) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/environment/ILoadSchemaCallback.java Wed Jul 13 05:38:00 2011 (r608) @@ -6,5 +6,5 @@ import us.isidor.gdl.anaToMia.Widgets.base.GdlPanel;
public interface ILoadSchemaCallback { - public void loadSchema(GdlPanel panel, Pair<String, TopicIdentifierTypes> instanceIdentifier, ArrayList<Pair<String, TopicIdentifierTypes>> typeIdentifiers)throws RequestException; + public void loadSchema(GdlPanel panel, ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToEdit, ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToCreate)throws RequestException; }
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java Wed Jul 13 04:57:28 2011 (r607) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java Wed Jul 13 05:38:00 2011 (r608) @@ -24,8 +24,8 @@ // addressable by the URI isidorusUrl public class LoadSchemaCallback implements ILoadSchemaCallback{ private final String isidorusUrl = URL.encode(GWT.getModuleBaseURL() + "test.gdl.jtm"); // TODO: replace with the correct URL - private ArrayList<Pair<String, TopicIdentifierTypes>> typeIdentifiers = new ArrayList<Pair<String,TopicIdentifierTypes>>(); - private Pair<String, TopicIdentifierTypes> instanceIdentifier = null; + private ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToCreate = new ArrayList<Pair<String,TopicIdentifierTypes>>(); + private ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToEdit = new ArrayList<Pair<String,TopicIdentifierTypes>>(); private RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, isidorusUrl); @@ -34,9 +34,9 @@ // this method is invoked as a callback method @Override - public void loadSchema(GdlPanel panel, Pair<String, TopicIdentifierTypes> instanceIdentifier, ArrayList<Pair<String, TopicIdentifierTypes>> typeIdentifiers)throws RequestException { - this.typeIdentifiers = typeIdentifiers; - this.instanceIdentifier = instanceIdentifier; + public void loadSchema(GdlPanel panel, ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToEdit , ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToCreate)throws RequestException { + this.requestedTopicsToCreate = requestedTopicsToCreate; + this.requestedTopicsToEdit = requestedTopicsToEdit; requestBuilder.sendRequest(null, new RequestCallbackImpl(panel)); }
@@ -75,7 +75,7 @@ public void onClick(ClickEvent event) { dialog.hide(); try{ - loadSchema(panel, instanceIdentifier, typeIdentifiers); + loadSchema(panel, LoadSchemaCallback.this.requestedTopicsToEdit, LoadSchemaCallback.this.requestedTopicsToCreate); }catch(Exception e){ Window.alert("connection to : " + isidorusUrl + " failed: " + e.getMessage()); } @@ -102,7 +102,7 @@ public void onClick(ClickEvent event) { dialog.hide(); try{ - loadSchema(panel, instanceIdentifier, typeIdentifiers); + loadSchema(panel, LoadSchemaCallback.this.requestedTopicsToEdit, LoadSchemaCallback.this.requestedTopicsToCreate); }catch(Exception e){ Window.alert("connection to : " + isidorusUrl + " failed: " + e.getMessage()); }
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 13 04:57:28 2011 (r607) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/test.gdl.jtm Wed Jul 13 05:38:00 2011 (r608) @@ -35,6 +35,7 @@ {"subject_identifiers":["[doc:instance-value]"], "instance_of":["si:[gdl:TM-Instance-Value]"]}, {"subject_identifiers":["[doc:multi-type-value-1]"], "instance_of":["si:[gdl:TM-Multiple-Type-Value]"]}, {"subject_identifiers":["[doc:multi-type-value-2]"], "instance_of":["si:[gdl:TM-Multiple-Type-Value]"]}, + {"subject_identifiers":["[doc:multi-type-value-3]"], "instance_of":["si:[gdl:TM-Multiple-Type-Value]"]}, {"subject_identifiers":["[gdl:Topic-View]"]}, {"subject_identifiers":["[gdl:Default-Topic-View]"]}, {"subject_identifiers":["[gdl:Special-Topic-View]"]}, @@ -72,5 +73,8 @@ {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[doc:multi-type-value-2]"}, {"type":"si:[gdl:tm-construct]", "player":"si:[doc:Musician]"}]}, {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[doc:multi-type-value-2]"}, {"type":"si:[gdl:tm-construct]", "player":"si:[doc:Director]"}]}, {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[doc:multi-type-value-2]"}, {"type":"si:[gdl:tm-construct]", "player":"si:[doc:Poet]"}]}, - {"type":"si:[gdl:topic-view-binding]", "roles":[{"type":"si:[gdl:tm-value]", "player":"si:[doc:multi-type-value-2]"}, {"type":"si:[gdl:descriptor]", "player":"si:[doc:default-creator-topic-view-2]"}]} + {"type":"si:[gdl:topic-view-binding]", "roles":[{"type":"si:[gdl:tm-value]", "player":"si:[doc:multi-type-value-2]"}, {"type":"si:[gdl:descriptor]", "player":"si:[doc:default-creator-topic-view-2]"}]}, + {"type":"si:[gdl:topic-view-binding]", "roles":[{"type":"si:[gdl:tm-value]", "player":"si:[doc:multi-type-value-3]"}, {"type":"si:[gdl:descriptor]", "player":"si:[doc:special-creator-topic-view]"}]}, + {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[doc:multi-type-value-3]"}, {"type":"si:[gdl:tm-construct]", "player":"si:[doc:Musician]"}]}, + {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[doc:multi-type-value-3]"}, {"type":"si:[gdl:tm-construct]", "player":"si:[doc:Poet]"}]} ]} \ No newline at end of file