Author: lgiessmann Date: Mon Nov 28 07:02:47 2011 New Revision: 1037
Log: gdl-frontend: Widgets: fixed a bug when collecting all topic instances of a particular type of a TM; implemented GdlRadioButton; added a test for GdlRadioButton
Modified: trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/TODO.txt trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java 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/GdlVisibleObjectTmService.java trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/button/GdlCheckBox.java trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/button/GdlRadioButton.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/TODO.txt ============================================================================== --- trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/TODO.txt Wed Nov 23 01:03:19 2011 (r1036) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/TODO.txt Mon Nov 28 07:02:47 2011 (r1037) @@ -1,7 +1,7 @@ * test GdlCechkBox * test GdlRadioButton
-* implement export of Fragments, e.g. exportJTM11Fragment(ArrayList<Topic> topics, ArrayList<Association> associaitions), +* implement export of Fragments, e.g. exportJTM11Fragment(ArrayList<Topic> topics, ArrayList<Association> associations), e.i. the passed topics and associations must be exported with all characteristics and associations, and all referenced topics must be exported as stubs * finalise GdlTopicView.getContent() @@ -26,5 +26,4 @@ * finalise GdlDefaultCreatorTopicView * finalise GdlDefaultEditorTopicView * finalise GdlAssociationView.getContent() -* inmplement GdlPanel.OnErrorHandler -* Fix css-pseudo-class-handlers \ No newline at end of file +* finalise css-pseudo-class-handlers \ No newline at end of file
Modified: trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java ============================================================================== --- trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java Wed Nov 23 01:03:19 2011 (r1036) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlPanel.java Mon Nov 28 07:02:47 2011 (r1037) @@ -217,8 +217,7 @@ // view's validate method. After a successfully validate operation the // onValidateHandlers are executed public void doValidate() throws ExecutionException { - if(tmEngine == null || requestedSchemaTm == null) - throw new ExecutionException("No Topic Maps engine was set yet"); + if(tmEngine == null || requestedSchemaTm == null) throw new ExecutionException("No Topic Maps engine was set yet"); // TODO: validate // throw new InvalidContentException("The topic map content is not valid:\n" + tmEngine.exportTm(view.getContent()));
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 Wed Nov 23 01:03:19 2011 (r1036) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Mon Nov 28 07:02:47 2011 (r1037) @@ -75,8 +75,8 @@
public abstract class GdlVisibleObject extends Composite implements GdlDescriptor, HasClickHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasFocusHandlers, HasMouseDownHandlers, HasMouseUpHandlers, HasBlurHandlers{ private GdlVisibleObject gdlParent = null; - private GdlVisibleObjectCssService cssService = null; - private GdlVisibleObjectTmService tmService = null; + protected GdlVisibleObjectCssService cssService = null; + protected GdlVisibleObjectTmService tmService = null; protected AbsolutePanel mainPanel = new AbsolutePanel(); protected Panel containerPanel = null; protected Topic tmRepresentative = null;
Modified: trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObjectTmService.java ============================================================================== --- trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObjectTmService.java Wed Nov 23 01:03:19 2011 (r1036) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObjectTmService.java Mon Nov 28 07:02:47 2011 (r1037) @@ -690,4 +690,23 @@ } contents.add(new Pair<Object, TopicMapsTypes>(owner, ownerType)); } + + + // returns an array list of strings that contains all possible values + public ArrayList<String> getAllPossibleValues() throws InvalidGdlSchemaException, ExecutionException { + ArrayList<String> result = new ArrayList<String>(); + ArrayList<Topic> tmValues = this.getRawTmValues(); + ArrayList<String> literalValues = this.getLiterals(); + + + if(tmValues.size() != 0 || literalValues.size() != 0){ + for (String literal : literalValues) result.add(literal); + for (Topic tmValue : tmValues) result.add(TmHelper.getTopicRepresentation(tmValue, this.getDisplayByOfValueGroup(), this.getPreferredScopeOfValueGroup())); + } else { + ArrayList<Topic> tops = TmHelper.getTmValuesForConstraint(this.getConstraint(), this.getValueGroup()); + for (Topic top : tops) result.add(TmHelper.getTopicRepresentation(top, this.getDisplayByOfValueGroup(), this.getPreferredScopeOfValueGroup())); + } + + return result; + } }
Modified: trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java ============================================================================== --- trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java Wed Nov 23 01:03:19 2011 (r1036) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java Mon Nov 28 07:02:47 2011 (r1037) @@ -1232,7 +1232,7 @@ throw new InvalidGdlSchemaException("the constraint " + getAnyIdOfTopic(rootConstraint) + " must be bound extactly once to an occurrence or name type, but is: " + typeTopics.size()); } else { // add the direct specified type - result.add(typeTopics.get(0)); + //result.add(typeTopics.get(0)); // get subtypes of typeTopic JsArray<Topic> allTopics = tm.getTopics(); @@ -1258,7 +1258,7 @@ throw new InvalidGdlSchemaException("the constraint " + getAnyIdOfTopic(variantNameReifierConstraint) + " must be bound extactly once to a topic type, but is: " + reifierTypeTopics.size()); } else { // add the direct specified type - result.add(reifierTypeTopics.get(0)); + //result.add(reifierTypeTopics.get(0));
// get subtypes of typeTopic JsArray<Topic> allTopics = tm.getTopics(); @@ -1283,7 +1283,7 @@ throw new InvalidGdlSchemaException("the constraint " + getAnyIdOfTopic(variantNameScopeConstraint) + " must be bound extactly once to a topic type, but is: " + scopeTypeTopics.size()); } else { // add the direct specified type - result.add(scopeTypeTopics.get(0)); + //result.add(scopeTypeTopics.get(0));
// get subtypes of typeTopic JsArray<Topic> allTopics = tm.getTopics();
Modified: trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/button/GdlCheckBox.java ============================================================================== --- trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/button/GdlCheckBox.java Wed Nov 23 01:03:19 2011 (r1036) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/button/GdlCheckBox.java Mon Nov 28 07:02:47 2011 (r1037) @@ -3,9 +3,10 @@ import java.util.ArrayList;
import com.google.gwt.user.client.ui.CheckBox; - +import com.google.gwt.user.client.ui.Widget; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Construct; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Topic; +import us.isidor.gdl.anaToMia.Widgets.base.ButtonableObject; import us.isidor.gdl.anaToMia.Widgets.base.GdlVisibleObject; import us.isidor.gdl.anaToMia.Widgets.environment.ExecutionException; import us.isidor.gdl.anaToMia.Widgets.environment.InvalidGdlSchemaException; @@ -20,15 +21,15 @@ public GdlCheckBox(Topic tmRepresentative, Construct receivedData, GdlVisibleObject gdlParent) throws InvalidGdlSchemaException, ExecutionException{ super(tmRepresentative, receivedData, gdlParent); // TODO: create a check box for each tm construct - this.createcheckBox().setText("Check Box 1"); - this.createcheckBox().setText("Check Box 2"); - this.createcheckBox().setText("Check Box 3"); + this.createCheckBox().setText("Check Box 1"); + this.createCheckBox().setText("Check Box 2"); + this.createCheckBox().setText("Check Box 3"); this.setNthButtons(); } - public CheckBox createcheckBox() throws InvalidGdlSchemaException, ExecutionException{ + public CheckBox createCheckBox() throws InvalidGdlSchemaException, ExecutionException{ CheckBox cb = new CheckBox(); cb.setName(this.getGroupName()); this.addToContainerPanel(cb); @@ -52,6 +53,13 @@ @Override public void fixValue(){ - // TODO: implement + for (Widget elem : this.subElements) { + ButtonableObject bo = (ButtonableObject)elem; + Widget wdgt = bo.getMainObject(); + if(wdgt instanceof CheckBox){ + CheckBox cb = (CheckBox)wdgt; + cb.setEnabled(false); + } + } } }
Modified: trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/button/GdlRadioButton.java ============================================================================== --- trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/button/GdlRadioButton.java Wed Nov 23 01:03:19 2011 (r1036) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/button/GdlRadioButton.java Mon Nov 28 07:02:47 2011 (r1037) @@ -2,11 +2,11 @@
import java.util.ArrayList; - import com.google.gwt.user.client.ui.RadioButton; - +import com.google.gwt.user.client.ui.Widget; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Construct; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Topic; +import us.isidor.gdl.anaToMia.Widgets.base.ButtonableObject; import us.isidor.gdl.anaToMia.Widgets.base.GdlVisibleObject; import us.isidor.gdl.anaToMia.Widgets.environment.ExecutionException; import us.isidor.gdl.anaToMia.Widgets.environment.InvalidGdlSchemaException; @@ -20,10 +20,10 @@ public GdlRadioButton(Topic tmRepresentative, Construct receivedData, GdlVisibleObject gdlParent) throws InvalidGdlSchemaException, ExecutionException{ super(tmRepresentative, receivedData, gdlParent); - // TODO: create a radio button for each tm construct - this.createRadioButton().setText("Radio Button 1"); - this.createRadioButton().setText("Radio Button 2"); - this.createRadioButton().setText("Radio Button 3"); + + if(receivedData != null && this.getConstraint() != null) this.setReceivedData(); + else this.setDefaultValue(); + this.setNthButtons(); } @@ -38,19 +38,48 @@
@Override public void addSubItem(String value) throws InvalidGdlSchemaException, ExecutionException { - // TODO: implement + RadioButton rb = this.createRadioButton(); + rb.setText(value); + rb.setValue(true); + } + + public void addUncheckedSubItem(String value) throws InvalidGdlSchemaException, ExecutionException { + this.createRadioButton().setText(value); + } + + + @Override + protected void setReceivedData() throws InvalidGdlSchemaException, ExecutionException { + super.setReceivedData(); + ArrayList<String> options = this.tmService.getAllPossibleValues(); + + for (String opt : options) this.addUncheckedSubItem(opt); } @Override public ArrayList<String> getSelectedValues(){ - // TODO: implement - return new ArrayList<String>(); + ArrayList<String> result = new ArrayList<String>(); + + for (Widget elem : this.subElements) { + ButtonableObject bo = (ButtonableObject)elem; + Widget wdgt = bo.getMainObject(); + if((wdgt instanceof RadioButton) && ((RadioButton)wdgt).getValue()) result.add(((RadioButton)wdgt).getText()); + } + + return result; } @Override public void fixValue(){ - // TODO: implement + for (Widget elem : this.subElements) { + ButtonableObject bo = (ButtonableObject)elem; + Widget wdgt = bo.getMainObject(); + if(wdgt instanceof RadioButton){ + RadioButton rb = (RadioButton)wdgt; + rb.setEnabled(false); + } + } } }
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 Wed Nov 23 01:03:19 2011 (r1036) +++ trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm Mon Nov 28 07:02:47 2011 (r1037) @@ -171,6 +171,9 @@ {"subject_identifiers":["[gdlt:Button]"]}, {"subject_identifiers":["[gdlt:Action-Button]"]}, {"subject_identifiers":["[gdlt:Commit-Button]"]}, + {"subject_identifiers":["[gdlt:Input-Button]"]}, + {"subject_identifiers":["[gdlt:Check-Box]"]}, + {"subject_identifiers":["[gdlt:Radio-Button]"]},
{"subject_identifiers":["[gdlsrv:service-schema]"], "instance_of":["si:[gdlt:Schema]"], "names":[{"type":"si:[gdl:schema-name]", "value":"GDL Schema for a Service UI"}]}, {"subject_identifiers":["[gdlsrv:service-default-editor-topic-view]"], "instance_of":["si:[gdlt:Default-Editor-Topic-View]"], "names":[{"type":"si:[gdl:view-name]", "value":"GDL Default Editor Topic View for instances of http://services.org/serviceregistry/model/types/Service%22%7D], "occurrences":[{"type":"si:[gdl:id]", "value":"service_default_editor_topic_view_id"}, {"type":"si:[gdl:width]", "value":"552px"}, {"type":"si:[gdl:height]", "value":"800px"},{"type":"si:[gdl:background-color]", "value":"gray"}]}, @@ -228,7 +231,7 @@ {"subject_identifiers":["[gdlsrv:service-variant-name-iis-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]}, {"subject_identifiers":["[model:service-variant-name-ii-constraint]"], "instance_of":["si:[gdlt:Variant-Name-Identifiers]"]},
- {"subject_identifiers":["[gdlsrv:service-variant-name-reifier-text]"], "instance_of":["si:[gdlt:Text]"], "occurrences":[{"type":"si:[gdl:id]", "value":"service_variant_name_reifier_text_id"}, {"type":"si:[gdl:readonly]", "value":"false"}, {"type":"si:[gdl:width]", "value":"470px"},{"type":"si:[gdl:cursor]", "value":"text"}]}, + {"subject_identifiers":["[gdlsrv:service-variant-name-reifier-text]"], "instance_of":["si:[gdlt:Radio-Button]"], "occurrences":[{"type":"si:[gdl:id]", "value":"service_variant_name_reifier_text_id"}]}, {"subject_identifiers":["[gdlsrv:service-variant-name-reifier-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"490px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, {"subject_identifiers":["[gdlsrv:service-variant-name-reifier-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]}, {"subject_identifiers":["[model:service-variant-name-reifier-constraint]"], "instance_of":["si:[gdlt:Variant-Name-Reifier]"]}, @@ -300,6 +303,9 @@ {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdlt:Text-Object]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdlt:Button]"}]}, {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdlt:Button]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdlt:Action-Button]"}]}, {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdlt:Action-Button]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdlt:Commit-Button]"}]}, + {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdlt:Button]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdlt:Input-Button]"}]}, + {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdlt:Input-Button]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdlt:Radio-Button]"}]}, + {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[gdlt:Input-Button]"},{"type":"si:[tmdm:subtype]", "player":"si:[gdlt:Check-Box]"}]}, {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constraint]", "player":"si:[model:service-psi-constraint]"},{"type":"si:[tmcl:constrained]", "player":"si:[types:Service]"}]},