[isidorus-cvs] r789 - in branches/gdl-frontend/src/anaToMia/GDL_Widgets: src/us/isidor/gdl/anaToMia/Widgets src/us/isidor/gdl/anaToMia/Widgets/base src/us/isidor/gdl/anaToMia/Widgets/text war/gdl_widgets
lgiessmann at common-lisp.net
lgiessmann at common-lisp.net
Thu Aug 25 22:05:01 UTC 2011
Author: lgiessmann
Date: Thu Aug 25 15:05:01 2011
New Revision: 789
Log:
gdl-frontend: Widgets: implemented addSubItem for GdlListBox => explicitly set Literal-Values, literal-values and tm-values of the constraint bound to the element's value-group are set; currently explecitely set TM-Values are not handled
Modified:
branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/TODO.txt
branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java
branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/text/GdlListBox.java
branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/TextGrid_ServiceRegistry_required_TMCL_and_GDL_Schema_with_test_data.jtm
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/TODO.txt
==============================================================================
--- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/TODO.txt Thu Aug 25 14:25:06 2011 (r788)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/TODO.txt Thu Aug 25 15:05:01 2011 (r789)
@@ -7,6 +7,7 @@
* GdlButton
* GdlComplexData
* GdlListBox
+* implement the ahndling of default-values
* Implement TopicMaps data consumption
* Implement TopicMaps data generation
* Implement HiddenValue
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java
==============================================================================
--- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Thu Aug 25 14:25:06 2011 (r788)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Thu Aug 25 15:05:01 2011 (r789)
@@ -2115,6 +2115,13 @@
}
+ // returns the display-by schema that is defined for the passed
+ // TM-Value that is bound to this element
+ public Topic getDisplayByOfTmValue(Topic tmValue) throws InvalidGdlSchemaException{
+ return TmHelper.getDisplayByTopicOf(tmValue);
+ }
+
+
// returns the preferred scope that is bound to the value-group of
// this element - or an empty ArrayList
public ArrayList<Topic> getPreferredScopeOfValueGroup() throws InvalidGdlSchemaException {
@@ -2127,6 +2134,13 @@
}
}
+
+ // returns the preferred scope that is bound to the passed TM-Value topic
+ // this element - or an empty ArrayList
+ public ArrayList<Topic> getPreferredScopeOfTmValue(Topic tmValue) throws InvalidGdlSchemaException{
+ return TmHelper.getPrefferedScopesForTopicOf(tmValue);
+ }
+
// returns the string that represents the topic topicToRepresent corresponding
// to the passed displayBy and prefferedScopes arguments
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/text/GdlListBox.java
==============================================================================
--- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/text/GdlListBox.java Thu Aug 25 14:25:06 2011 (r788)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/text/GdlListBox.java Thu Aug 25 15:05:01 2011 (r789)
@@ -1,16 +1,15 @@
package us.isidor.gdl.anaToMia.Widgets.text;
import java.util.ArrayList;
-
import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.ListBox;
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.Widgets.base.PSIs;
+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;
@@ -27,15 +26,59 @@
public GdlListBox(Topic tmRepresentative, Construct receivedData) throws InvalidGdlSchemaException, ExecutionException{
super(tmRepresentative, receivedData);
- // TODO: create a ListBox element for each TM-elem
- this.createNewListBox().addItem("List-Box");
+
+ if(receivedData != null && this.getConstraint() != null) this.setReceivedData();
+ else this.setDefaultValue();
+
this.setNthButtons();
}
@Override
public void addSubItem(String value) throws InvalidGdlSchemaException, ExecutionException {
- // TODO: implement
+ ArrayList<String> options = new ArrayList<String>();
+
+ // get the explicitly set TM-Values and Literal-Values.
+ // if no values were set explecitly, get the values for the constraint
+ ArrayList<String> exLiteralValues = this.getLiterals();
+ ArrayList<Topic> exTmValues = this.getTmValues();
+ if(exLiteralValues.size() != 0 && exTmValues.size() != 0){
+ throw new InvalidGdlSchemaException("found literal values and tm values for the value group " + TmHelper.getAnyIdOfTopic(this.getValueGroup()) + ", but mixin literal and tm-values for a value group is not allowed!");
+ } else if(exLiteralValues.size() != 0){
+ options = exLiteralValues;
+ } else if(exTmValues.size() != 0){
+ // TODO: get all Topics that are represented by a TM-Value
+ // TODO: get its string-representation
+ // TODO: add it to the options ArrayList
+ } else {
+ ArrayList<Topic> tmValues = this.getTmValuesForConstraint();
+ if(tmValues.size() != 0){
+ for (Topic topic : tmValues) options.add(this.getTopicRepresentation(topic, this.getDisplayByOfValueGroup(), this.getPreferredScopeOfValueGroup()));
+ } else {
+ throw new InvalidGdlSchemaException("found no value to display for the value-group" + TmHelper.getAnyIdOfTopic(this.getValueGroup()));
+ }
+ }
+
+ ListBox lb = this.createNewListBox();
+ for(String item : options) lb.addItem(item);
+
+ int i = 0;
+ for( ; i != lb.getItemCount(); ++i){
+ if(lb.getItemText(i).equals(value)){
+ lb.setSelectedIndex(i);
+ break;
+ }
+ }
+
+ if(i == lb.getItemCount()){
+ lb.addItem(value);
+ for(i = 0 ; i != lb.getItemCount(); ++i){
+ if(lb.getItemText(i).equals(value)){
+ lb.setSelectedIndex(i);
+ break;
+ }
+ }
+ }
}
@@ -91,25 +134,6 @@
}
- // returns the gdl:one-per-group property - if no value is set the default value is returned
- public boolean getOnePerGroup() throws InvalidGdlSchemaException {
- Occurrence onePerGroupOcc = getNoneOrOneUnscopedOccurrence(PSIs.GDL.OccurrenceType.gdlOnePerGroup);
-
- if(onePerGroupOcc != null){
- String boolStr = onePerGroupOcc.getValue().toUpperCase();
- if(boolStr.equals("TRUE")){
- return true;
- } else if(boolStr.equals("FALSE")) {
- return false;
- } else {
- throw new InvalidGdlSchemaException("The occurrence " + PSIs.GDL.OccurrenceType.gdlOnePerGroup + " must be set to one of \"true\" or \"false\", but is \"" + onePerGroupOcc.getValue() + "\"");
- }
- } else {
- return false;
- }
- }
-
-
// returns an int instance of a gdl:size occurrence.
// If no gdl:size occurrence is set, the default value is returned
public int getSize() throws InvalidGdlSchemaException {
@@ -142,12 +166,7 @@
// directly when calling the ListBox constructor
}
-
- public void setOnePerGroup(Widget widget, boolean value){
- // TODO: implement => http://code.google.com/p/gwt-traction/source/browse/src/com/tractionsoftware/gwt/user/client/ui/GroupedListBox.java?r=054b2ce16dd9dfbd0836f09bb8678d7abb0c4fed
- }
-
-
+
// sets the css properties, by calling the super class's method and the local
// method, which sets some specific properties for the GdlText instance
@Override
@@ -155,6 +174,5 @@
super.setGdlStyle(widget);
this.setSize(widget, this.getSize());
- this.setOnePerGroup(widget, this.getOnePerGroup());
}
}
\ No newline at end of file
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/TextGrid_ServiceRegistry_required_TMCL_and_GDL_Schema_with_test_data.jtm
==============================================================================
--- branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/TextGrid_ServiceRegistry_required_TMCL_and_GDL_Schema_with_test_data.jtm Thu Aug 25 14:25:06 2011 (r788)
+++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/TextGrid_ServiceRegistry_required_TMCL_and_GDL_Schema_with_test_data.jtm Thu Aug 25 15:05:01 2011 (r789)
@@ -1280,7 +1280,7 @@
],
"subject_locators":null,
"item_identifiers":null,
- "instance_of":["si:[pref_2:Text]"
+ "instance_of":["si:[pref_2:List-Box]"
],
"names":null,
"occurrences":[{
More information about the Isidorus-cvs
mailing list