Author: lgiessmann Date: Tue Oct 18 03:17:10 2011 New Revision: 1004
Log: gdl-frontend: Widgets: implemented the item-identifier-constraints for occurrences and names
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/TmHelper.java trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm.txt
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 Mon Oct 17 08:41:37 2011 (r1003) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Tue Oct 18 03:17:10 2011 (r1004) @@ -2,6 +2,9 @@
import java.util.ArrayList; + +import org.apache.commons.codec.language.RefinedSoundex; + import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Association; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Construct; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Name; @@ -111,21 +114,21 @@ protected boolean cardMaxSet = false; protected ArrayList<Topic> rawTmValues = new ArrayList<Topic>(); protected boolean rawTmValuesSet = false; - +
// some constructors protected GdlVisibleObject() { initWidget(this.mainPanel); DOM.setStyleAttribute(this.mainPanel.getElement(), "overflow", "visible"); } - +
public GdlVisibleObject(Topic tmRepresentative, Construct receivedData, GdlVisibleObject gdlParent) throws InvalidGdlSchemaException, ExecutionException{ this(); this.tmRepresentative = tmRepresentative; this.tm = this.tmRepresentative.getTopicMap(); this.gdlParent = gdlParent; - + if(!(receivedData instanceof Topic) && !(receivedData instanceof Association) && !(receivedData instanceof Name) && !(receivedData instanceof Variant) && !(receivedData instanceof Occurrence) && !(receivedData instanceof Role) && receivedData != null) throw new ExecutionException("receivedData must be either a Topic, Association, Topic-Name, Name-Variant, Topic-Occurrence or Association-Role, but is: " + receivedData.getClass()); this.receivedData = receivedData;
@@ -133,46 +136,46 @@ this.setGdlStyle(); }
- + public GdlVisibleObject getGdlParent(){ return this.gdlParent; } - - + + public int getSubElementsCount(){ if(this.subElements == null) return 0; return this.subElements.size(); } - - + + public GdlPanel getRoot(){ return this.getGdlParent().getRoot(); } - - + + // this method takes a string and creates a new sub-element within // an instance of GdlVisibleObject with the passed string value public abstract void addSubItem(String value) throws InvalidGdlSchemaException, ExecutionException; - +
// returns the topic that represents this element public Topic getTmRepresentative(){ return this.tmRepresentative; } - - + + // sets all info elements as defined in the GDL public void setInfoElements() throws InvalidGdlSchemaException, ExecutionException{ ArrayList<Topic> infos = TmHelper.topicContainsInfo(this.tmRepresentative); - + for (Topic info : infos){ GdlInfo elem = (GdlInfo)GdlInstantiator.instantiate(info, this.receivedData, this); this.infoElements.add(elem); elem.setPosition(this); } } - - + + // this method should be invoked if a new sub-element is added to this instance protected ButtonableObject addToContainerPanel(Widget widget) throws ExecutionException, InvalidGdlSchemaException{ this.setContentOrientation(this.getContentOrientation()); @@ -182,8 +185,8 @@ this.setNthButtons(); return btn; } - - + + // removes the passed widget, it's parent, and returns the parent protected ButtonableObject removeFromContainer(Widget widget) throws InvalidGdlSchemaException, ExecutionException { for (Widget elem : this.subElements) { @@ -194,31 +197,31 @@ } } this.setNthButtons(); - + return null; } - - + + // sets all buttons in the sub-elements that are specified by a // gdl:button-position association protected void setNthButtons() throws InvalidGdlSchemaException, ExecutionException { if(this.actionButtonsAndPositions == null) this.actionButtonsAndPositions = TmHelper.topicContainsNthButtons(this.tmRepresentative); - + for(int i = 0; i != this.subElements.size(); ++i){ // search all buttons for the current sub element ArrayList<Topic> currentButtons = new ArrayList<Topic>(); for (Pair<Topic, Integer> pair : this.actionButtonsAndPositions) if(pair.getSecond() == i || (i == this.subElements.size() -1 && pair.getSecond() == -1)) currentButtons.add(pair.getFirst()); - + // remove buttons that do not belong to the current sub element anymore ((ButtonableObject)this.subElements.get(i)).removeObsoleteButtons(currentButtons); - + // add buttons that are not bound to the current sub element, but belong to it for (Topic currentButton : currentButtons) if(!((ButtonableObject)this.subElements.get(i)).containsButton(currentButton)) ((ButtonableObject)this.subElements.get(i)).addButton((GdlActionButton)GdlInstantiator.instantiate(currentButton, null, this)); } } - +
// a helper method that returns all occurrences of the type bound to the passed PSI @SuppressWarnings("unchecked") @@ -293,7 +296,7 @@ // If no gdl:display occurrence is set, the default value is returned public Display getDisplay() throws InvalidGdlSchemaException { Occurrence displayOcc = getNoneOrOneUnscopedOccurrence(PSIs.GDL.OccurrenceType.gdlDisplay); - + if(displayOcc != null){ String value = displayOcc.getValue().toLowerCase(); if(value.equals("none")){ @@ -329,7 +332,7 @@ // this property if no gdl:float occurrence is available public Float getFloat() throws InvalidGdlSchemaException { Occurrence floatOcc = getNoneOrOneUnscopedOccurrence(PSIs.GDL.OccurrenceType.gdlFloat); - + if(floatOcc != null){ String value = floatOcc.getValue().toLowerCase(); if(value.equals("none")){ @@ -345,8 +348,8 @@ return Float.NONE; } } - - + + // returns a ClearValue instance of a gdl:clear occurrence or the default value for // this property if no gdl:clear occurrence is available public ClearValue getClear() throws InvalidGdlSchemaException { @@ -362,8 +365,8 @@ return ClearValue.NONE; } } - - + + // returns a ContentOrientationValue instance of a gdl:content-orientation occurrence or the default value for // this property if no gdl:content-orientation occurrence is available public ContentOrientationValue getContentOrientation() throws InvalidGdlSchemaException { @@ -379,8 +382,8 @@ return ContentOrientationValue.VERTICAL; } } - - + + // returns a VerticalAlign instance of a gdl:vertical-align occurrence // or the default value for this property if no gdl:vertical-align occurrence // is available. The styleClass attribute is used as scope for expressing @@ -1225,7 +1228,7 @@ } }
- + // sets the id property of this element by using the GWT DOM class public void setId(String id){ if(id != null){ @@ -1258,16 +1261,16 @@ DOM.setStyleAttribute(this.mainPanel.getElement(), "styleFloat", value.getCssName()); } } - - + + // sets the float style property of all sub elements by using the GWT DOM class public void setContentOrientation(ContentOrientationValue value) throws InvalidGdlSchemaException, ExecutionException { if(value == ContentOrientationValue.HORIZONTAL && this.containerPanel == null) this.containerPanel = new HorizontalPanel(); else if(this.containerPanel == null) this.containerPanel = new VerticalPanel(); - + this.mainPanel.add(this.containerPanel); } - +
// sets the clear style property of this element by using the GWT DOM class public void setClear(ClearValue value){ @@ -1275,7 +1278,7 @@ DOM.setStyleAttribute(this.mainPanel.getElement(), "clear", value.getCssValue()); } } - +
// sets the vertical-align style property of this element and all it's sub-elements by using the GWT DOM class public void setVerticalAlign(Widget widget, VerticalAlign value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { @@ -1284,7 +1287,7 @@ } }
- + // sets the margin style property of this element by using the GWT DOM class public void setMargin(Widget widget, NumUnitValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "margin", value.getCssValue()); @@ -1313,8 +1316,8 @@ public void setMarginLeft(Widget widget, NumUnitValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "marginLeft", value.getCssValue()); } - - + + // sets the border-color style property of this element by using the GWT DOM class public void setBorderColor(Widget widget, ColorValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "borderColor", value.getCssValue()); @@ -1343,8 +1346,8 @@ public void setBorderLeftColor(Widget widget, ColorValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "borderLeftColor", value.getCssValue()); } - - + + // sets the border-style style property of this element by using the GWT DOM class public void setBorderStyle(Widget widget, BorderStyleValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "borderStyle", value.getCssValue()); @@ -1374,7 +1377,7 @@ if(value != null) this.setCssProperty(widget, styleClass, "borderLeftStyle", value.getCssValue()); }
- + // sets the border-width style property of this element by using the GWT DOM class public void setBorderWidth(Widget widget, AbsoluteNumValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "borderWidth", value.getCssValue()); @@ -1402,8 +1405,8 @@ public void setBorderLeftWidth(Widget widget, AbsoluteNumValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "borderLeftWidth", value.getCssValue()); } - - + + // sets the border-radius style property of this element by using the GWT DOM class public void setBorderRadius(Widget widget, NumUnitValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "borderRadius", value.getCssValue()); @@ -1432,8 +1435,8 @@ public void setBorderTopLeftRadius(Widget widget, NumUnitValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "borderTopLeftRadius", value.getCssValue()); } - - + + // sets the padding style property of this element by using the GWT DOM class public void setPadding(Widget widget, NumUnitValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "padding", value.getCssValue()); @@ -1462,8 +1465,8 @@ public void setPaddingLeft(Widget widget, NumUnitValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "paddingLeft", value.getCssValue()); } - - + + // sets the width style property of this element by using the GWT DOM class public void setWidth(Widget widget, AutoNumUnitValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "width", value.getCssValue()); @@ -1498,8 +1501,8 @@ public void setMaxHeight(Widget widget, AutoNumUnitValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "maxHeight", value.getCssValue()); } - - + + // sets the cursor style property of this element by using the GWT DOM class public void setCursor(Widget widget, CursorValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "cursor", value.getCssValue()); @@ -1510,8 +1513,8 @@ public void setBackgroundColor(Widget widget, ColorValue value, String styleClass) throws InvalidGdlSchemaException, ExecutionException { if(value != null) this.setCssProperty(widget, styleClass, "backgroundColor", value.getCssValue()); } - - + + // sets the passed css style porperty to the passed css value. // If a styleClass is given, the style is applied to either active, hover or focus protected void setCssProperty(String styleClass, String cssProperty, String cssValue)throws InvalidGdlSchemaException, ExecutionException{ @@ -1530,12 +1533,12 @@ throw new InvalidGdlSchemaException("GDL defines only the style classes " + values + ", but found " + styleClass); } } - - + + // sets a given css property and css value of this element's sub element protected void setCssProperty(Widget elem, String styleClass, String cssProperty, String cssValue)throws InvalidGdlSchemaException, ExecutionException{ if(cssValue == null || cssProperty == null) return; - + if(styleClass == null){ DOM.setStyleAttribute(elem.getElement(), cssProperty, cssValue); } else if(styleClass.equals(PSIs.GDL.Scope.gdlActive)){ @@ -1549,12 +1552,12 @@ throw new InvalidGdlSchemaException("GDL defines only the style classes " + values + ", but found " + styleClass); } } - - + + // sets a given css property and css value of this element's sub element protected void setCssProperty(Element elem, String styleClass, String cssProperty, String cssValue)throws InvalidGdlSchemaException, ExecutionException{ if(cssValue == null || cssProperty == null) return; - + if(styleClass == null){ DOM.setStyleAttribute(elem, cssProperty, cssValue); } else if(styleClass.equals(PSIs.GDL.Scope.gdlActive)){ @@ -1568,64 +1571,64 @@ throw new InvalidGdlSchemaException("GDL defines only the style classes " + values + ", but found " + styleClass); } } - - + + // sets all GDL styles that are defined by the topic map representative to tha passed widget public void setGdlStyle(Widget widget) throws InvalidGdlSchemaException, ExecutionException { String[] styleClasses = new String[]{null, PSIs.GDL.Scope.gdlActive, PSIs.GDL.Scope.gdlFocus, PSIs.GDL.Scope.gdlHover}; for (String styleClass : styleClasses) { this.setVerticalAlign(widget, this.getVerticalAlign(styleClass), styleClass); - + this.setMargin(widget, this.getMargin(styleClass), styleClass); this.setMarginTop(widget, this.getMarginTop(styleClass), styleClass); this.setMarginRight(widget, this.getMarginRight(styleClass), styleClass); this.setMarginBottom(widget, this.getMarginBottom(styleClass), styleClass); this.setMarginLeft(widget, this.getMarginLeft(styleClass), styleClass); - + this.setPadding(widget, this.getPadding(styleClass), styleClass); this.setPaddingTop(widget, this.getPaddingTop(styleClass), styleClass); this.setPaddingRight(widget, this.getPaddingRight(styleClass), styleClass); this.setPaddingBottom(widget, this.getPaddingBottom(styleClass), styleClass); this.setPaddingLeft(widget, this.getPaddingLeft(styleClass), styleClass); - + this.setBorderColor(widget, this.getBorderColor(styleClass), styleClass); this.setBorderTopColor(widget, this.getBorderTopColor(styleClass), styleClass); this.setBorderRightColor(widget, this.getBorderRightColor(styleClass), styleClass); this.setBorderBottomColor(widget, this.getBorderBottomColor(styleClass), styleClass); this.setBorderLeftColor(widget, this.getBorderLeftColor(styleClass), styleClass); - + this.setBorderStyle(widget, this.getBorderStyle(styleClass), styleClass); this.setBorderTopStyle(widget, this.getBorderTopStyle(styleClass), styleClass); this.setBorderRightStyle(widget, this.getBorderRightStyle(styleClass), styleClass); this.setBorderBottomStyle(widget, this.getBorderBottomStyle(styleClass), styleClass); this.setBorderLeftStyle(widget, this.getBorderLeftStyle(styleClass), styleClass); - + this.setBorderWidth(widget, this.getBorderWidth(styleClass), styleClass); this.setBorderTopWidth(widget, this.getBorderTopWidth(styleClass), styleClass); this.setBorderRightWidth(widget, this.getBorderRightWidth(styleClass), styleClass); this.setBorderBottomWidth(widget, this.getBorderBottomWidth(styleClass), styleClass); this.setBorderLeftWidth(widget, this.getBorderLeftWidth(styleClass), styleClass); - + this.setBorderRadius(widget, this.getBorderRadius(styleClass), styleClass); this.setBorderTopRightRadius(widget, this.getBorderTopRightRadius(styleClass), styleClass); this.setBorderBottomRightRadius(widget, this.getBorderBottomRightRadius(styleClass), styleClass); this.setBorderBottomLeftRadius(widget, this.getBorderBottomLeftRadius(styleClass), styleClass); this.setBorderTopLeftRadius(widget, this.getBorderTopLeftRadius(styleClass), styleClass); - + this.setCursor(widget, this.getCursor(styleClass), styleClass); - + this.setWidth(widget, this.getWidth(styleClass), styleClass); this.setMaxWidth(widget, this.getMaxWidth(styleClass), styleClass); this.setMinWidth(widget, this.getMinWidth(styleClass), styleClass); - + this.setHeight(widget, this.getHeight(styleClass), styleClass); this.setMaxHeight(widget, this.getMaxHeight(styleClass), styleClass); this.setMinHeight(widget, this.getMinHeight(styleClass), styleClass); - + this.setBackgroundColor(widget, this.getBackgroundColor(styleClass), styleClass); } } - +
// sets all GDL styles that are defined by the topic map representative protected void setGdlStyle() throws InvalidGdlSchemaException, ExecutionException { @@ -1679,8 +1682,8 @@ } return regs; } - - + + // registers a mouse-down handler to all sub-elements of this element @Override public MultipleHandlerRegistration addMouseDownHandler(MouseDownHandler handler){ @@ -1690,8 +1693,8 @@ } return regs; } - - + + // registers a mouse-up handler to all sub-elements of this element @Override public MultipleHandlerRegistration addMouseUpHandler(MouseUpHandler handler){ @@ -1701,9 +1704,9 @@ } return regs; } - - - + + + // registers a blur handler to all sub-elements of this element @Override public MultipleHandlerRegistration addBlurHandler(BlurHandler handler){ @@ -1713,12 +1716,12 @@ } return regs; } - - + + // adds the passed handler to the list eventHandlers protected void addEventHandler(Widget elem, EventHandler handler){ if(handler == null || elem == null) return; - + for (Pair<Widget, ArrayList<EventHandler>> item : this.eventHandlers) { if(item.getFirst().equals(elem)){ if(!item.getSecond().contains(handler)){ @@ -1731,8 +1734,8 @@ newHandlerList.add(handler); this.eventHandlers.add(new Pair<Widget, ArrayList<EventHandler>>(elem, newHandlerList)); } - - + + // remove the passed handler of the list eventHandlers protected void removeEventHandler(Widget elem, EventHandler handler){ for (Pair<Widget, ArrayList<EventHandler>> item : this.eventHandlers) { @@ -1741,8 +1744,8 @@ } } } - - + + // returns the last handler bound to the passed element. protected EventHandler getLastHandler(Widget elem){ for (Pair<Widget, ArrayList<EventHandler>> item : this.eventHandlers) { @@ -1753,35 +1756,35 @@ } } } - + return null; } - - + + // applies the styles bound to hover and the passed element protected void onHoverStart(Widget widget){ for (Pair<String, String> elem : this.hoverCssNamesAndStyles) { DOM.setStyleAttribute(widget.getElement(), elem.getFirst(), elem.getSecond()); } } - - + + // applies the styles bound to acitve and the passed element protected void onActiveStart(Widget widget){ for (Pair<String, String> elem : this.activeCssNamesAndStyles) { DOM.setStyleAttribute(widget.getElement(), elem.getFirst(), elem.getSecond()); } } - - + + // applies the styles bound to focus and the passed element protected void onFocusStart(Widget widget){ for (Pair<String, String> elem : this.focusCssNamesAndStyles) { DOM.setStyleAttribute(widget.getElement(), elem.getFirst(), elem.getSecond()); } } - - + + // some handler for applying the css style bound to the pseudo classes hover, active and focus public void onHoverStart(MouseOverEvent event, HoverStyleHandler handler) { Widget source = (Widget)event.getSource(); @@ -1791,7 +1794,7 @@ } }
- + // shall be called when the focus event was fired public void onHoverEnd(MouseOutEvent event, HoverStyleHandler handler) { try{ @@ -1809,7 +1812,7 @@ e.printStackTrace(); } } - +
// shall be called to apply the styles of the focus class public void onFocusStart(FocusEvent event, FocusStyleHandler handler) { @@ -1838,7 +1841,7 @@ } }
- + // shall be called to apply the styles of the active class public void onActiveStart(MouseDownEvent event, ActiveStyleHandler handler) { Widget source = (Widget)event.getSource(); @@ -1865,16 +1868,16 @@ Window.alert("could not apply the default CSS style >> " + e.getClass() + " >> " + e.getMessage()); } } - - + + // removes all GdlInfo elements. They must be remove explicitly, since they are // bound to the root panel/body public void clear(){ for (GdlInfo elem : this.infoElements) elem.removeFromParent(); } - - + + @Override public void onAttach(){ super.onAttach(); @@ -1884,20 +1887,20 @@ e.printStackTrace(); } } - - + + // if this method is called the user cannot change the represented value // of this control public abstract void fixValue(); - - + + // sets the fields for the received data protected void setReceivedData() throws InvalidGdlSchemaException, ExecutionException { -if(receivedData == null) return; - + if(receivedData == null) return; + if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclSubjectIdentifierConstraint)){ if(!(receivedData instanceof Topic)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " must be bound to a Topic, but is: " + receivedData.getClass()); - + Pattern rex = new Pattern(this.getLiteralValueForConstraint()); for(int i = 0; i != ((Topic)receivedData).getSubjectIdentifiers().length(); ++i){ String psi = ((Topic)receivedData).getSubjectIdentifiers().get(i).getReference(); @@ -1907,7 +1910,7 @@ } } else if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclSubjectLocatorConstraint)){ if(!(receivedData instanceof Topic)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " must be bound to a Topic, but is: " + receivedData.getClass()); - + Pattern rex = new Pattern(this.getLiteralValueForConstraint()); for(int i = 0; i != ((Topic)receivedData).getSubjectLocators().length(); ++i){ String sl = ((Topic)receivedData).getSubjectLocators().get(i).getReference(); @@ -1917,23 +1920,41 @@ } } else if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclItemIdentifierConstraint)){ if(!(this.receivedData instanceof Reifiable)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " must be bound to a Reifiable, but is: " + receivedData.getClass()); + + // get type + Topic constrainedTopicType = TmHelper.getConstrainedTopicType(this.getConstraint()); + + // search for the topic type + Reifiable ref = (Reifiable)this.receivedData; + // search for the characteristics type + if(this.receivedData instanceof Topic){ + JsArray<Name> names = ((Topic)this.receivedData).getNames(constrainedTopicType); + if(names.length() != 0){ + ref = names.get(0); + } else { + JsArray<Occurrence> occs = ((Topic)this.receivedData).getOccurrences(constrainedTopicType); + if(occs.length() != 0) ref = occs.get(0); + } + } + + // search for item-identifiers of the found topic type or characteristics Pattern rex = new Pattern(this.getLiteralValueForConstraint()); - for(int i = 0; i != ((ReifiableStub)receivedData).getItemIdentifiers().length(); ++i){ - String ii = ((Topic)receivedData).getItemIdentifiers().get(i).getReference(); + for(int i = 0; i != ((ReifiableStub)ref).getItemIdentifiers().length(); ++i){ + String ii = ((ReifiableStub)ref).getItemIdentifiers().get(i).getReference(); if(rex.matches(ii)){ this.addSubItem(ii); } } } else if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclTopicNameConstraint)){ if(!(receivedData instanceof Topic)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " must be bound to a Topic, but is: " + receivedData.getClass()); - + Topic nameType = TmHelper.getConstrainedStatement(this.getConstraint()); for(int i = 0; i != ((Topic)this.receivedData).getNames(nameType).length(); ++i) this.addSubItem(((Topic)this.receivedData).getNames(nameType).get(i).getValue()); } else if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclTopicOccurrenceConstraint)){ if(!(receivedData instanceof Topic)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " must be bound to a Topic, but is: " + receivedData.getClass()); - + Topic occurrenceType = TmHelper.getConstrainedStatement(this.getConstraint()); for(int i = 0; i != ((Topic)this.receivedData).getOccurrences(occurrenceType).length(); ++i) this.addSubItem(((Topic)this.receivedData).getOccurrences(occurrenceType).get(i).getValue()); @@ -1946,7 +1967,7 @@ } else if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.GDL.TopicType.gdlRolePlayer)){ 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){ @@ -1968,26 +1989,26 @@ throw new InvalidGdlSchemaException("The constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " is not suported to be bound to the value group instance " + TmHelper.getAnyIdOfTopic(this.getValueGroup())); } } - - + + // 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"); - + if(this.getDefaultLiteralValue() != null){ TopicMap tm = this.getDefaultLiteralValue().getTopicMap(); Topic occType = TmHelper.getTopicByPsi(PSIs.GDL.OccurrenceType.gdlLiteralValue, tm); JsArray<Occurrence> vals = this.getDefaultLiteralValue().getOccurrences(occType); - + if(vals.length() != 1) throw new InvalidGdlSchemaException("the topic " + TmHelper.getAnyIdOfTopic(this.getDefaultLiteralValue()) + " must be bound exactly once to a " + PSIs.GDL.OccurrenceType.gdlLiteralValue + " occurrence, but is: " + vals.length()); - + int minValues = this.getCardMin() == 0 ? 1 : this.getCardMin(); for(int i = 0; i < minValues; ++i) this.addSubItem(vals.get(0).getValue()); if(this.fixedDefaultValue()) this.fixValue(); } else if(this.getDefaultTmValue() != null){ ArrayList<Topic> values = TmHelper.getValuesForTmValue(this.getDefaultTmValue()); - + if(values.size() != 1) throw new InvalidGdlSchemaException("the default value " + TmHelper.getAnyIdOfTopic(this.getDefaultValue()) + " represetns more than one value");
int minValues = this.getCardMin() == 0 ? 1 : this.getCardMin(); @@ -1998,8 +2019,8 @@ this.addSubItem(""); } } - - + + public int getCardMin() throws InvalidGdlSchemaException { if(this.cardMinSet){ return this.cardMin; @@ -2008,8 +2029,8 @@ return TmHelper.getCardMin(this.getRootConstraint()); } } - - + + public int getCardMax() throws InvalidGdlSchemaException { if(this.cardMaxSet){ return this.cardMax; @@ -2018,8 +2039,8 @@ return TmHelper.getCardMax(this.getRootConstraint()); } } - - + + // returns the topic instance of gdlt:Value-Group that is bound to this // visible element, or null if it is unbound public Topic getValueGroup() throws InvalidGdlSchemaException { @@ -2044,8 +2065,8 @@ return this.constraintTopic; } } - - + + // returns the root (last) constraint that is bound to the value-group // of this element - or null if it is unbound public Topic getRootConstraint() throws InvalidGdlSchemaException { @@ -2083,8 +2104,8 @@ return this.defaultLiteralValueTopic; } } - - + + // returns the topic that represents the default value of // the value-group that is bound to this element - null if it is unbound public Topic getDefaultValue() throws InvalidGdlSchemaException { @@ -2093,17 +2114,17 @@ else return this.getDefaultTmValue(); }
- + // returns true if the default value is fixed // otherwise the return value is false public boolean fixedDefaultValue() throws InvalidGdlSchemaException{ Topic defVal = this.getDefaultValue(); - + if(defVal == null) return false; - + TopicMap tm = defVal.getTopicMap(); Occurrence fixedOcc = TmHelper.getSingleOccurrence(defVal, TmHelper.getTopicByPsi(PSIs.GDL.OccurrenceType.gdlFixed, tm)); - + if(fixedOcc != null){ try{ return Boolean.valueOf(fixedOcc.getValue().toLowerCase()); @@ -2114,7 +2135,7 @@ return false; } } - +
// returns all topic maps values represented by topics of the type gdlt:Tm-Value // that are valid and declared for the value-group of this element - or @@ -2142,7 +2163,7 @@ } }
- + // returns an ArrayList of strings that are set to a value group as literal values public ArrayList<String> getLiterals() throws InvalidGdlSchemaException { if(this.literalsSet){ @@ -2153,7 +2174,7 @@ return this.literals; } } - +
// returns the set literal value or null public String getSetLiteralValue() throws InvalidGdlSchemaException { @@ -2195,14 +2216,14 @@ } }
- + // 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 { @@ -2215,26 +2236,26 @@ } }
- + // 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 public String getTopicRepresentation(Topic topicToRepresent, Topic displayBy, ArrayList<Topic> preferredScopes) throws InvalidGdlSchemaException { return TmHelper.getTopicRepresentation(topicToRepresent, displayBy, preferredScopes); } - - + + // returns the strings of the control that are entered/selected // returns the strings of the control that are entered/selected public abstract ArrayList<String> getSelectedValues(); - - + + // validates names, occurrences and identifiers for tha passed value private void validateLiteralValue(String selectedValue) throws InvalidContentException, InvalidGdlSchemaException{ ArrayList<Pattern> validLiteralValues = new ArrayList<Pattern>(); @@ -2242,21 +2263,21 @@ if(validLiteralValues.size() == 0) validLiteralValues.add(new Pattern(this.getLiteralValueForConstraint())); int i = 0; for( ; i != validLiteralValues.size(); ++i) if(validLiteralValues.get(i).matches(selectedValue)) break; - + if(TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclTopicNameConstraint)){ if(i == validLiteralValues.size()) throw new InvalidContentException("the user data " + selectedValue + " for the topic-name " + TmHelper.getAnyIdOfTopic(TmHelper.getConstrainedStatement(this.getConstraint())) + " does not satisfy any of the constraints: " + Utils.arrayToString(validLiteralValues)); } else if(TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclTopicOccurrenceConstraint)){ if(i == validLiteralValues.size()) throw new InvalidContentException("the user data " + selectedValue + " for the topic-occurrence " + TmHelper.getAnyIdOfTopic(TmHelper.getConstrainedStatement(this.getConstraint())) + " does not satisfy any of the constraints: " + Utils.arrayToString(validLiteralValues)); } else if(TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclSubjectIdentifierConstraint)){ - + } else if(TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclSubjectLocatorConstraint)){ - + } else if(TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclItemIdentifierConstraint)){ - + } } - - + + // validates the the tm values of a constraint private void validateTmValue(Topic selectedPlayer) throws InvalidContentException, InvalidGdlSchemaException, ExecutionException { if(this.getRawTmValues().size() != 0 && !this.getRawTmValues().contains(selectedPlayer)){ @@ -2267,9 +2288,9 @@ } } } - - - + + + // returns the actual topics that are set as possible tm-values private ArrayList<Topic> getRawTmValues() throws InvalidGdlSchemaException{ if(this.rawTmValuesSet){ @@ -2281,32 +2302,32 @@ return this.rawTmValues; } } - - + + // returns the actual data that is hold by this instance public ArrayList<Pair<Construct, TopicMapsTypes>> getContent(Construct carrier, boolean validate) throws InvalidGdlSchemaException, ExecutionException, InvalidContentException { ArrayList<Pair<Construct, TopicMapsTypes>> result = new ArrayList<Pair<Construct,TopicMapsTypes>>(); if(this.getRootConstraint() == null) return result; Construct localCarrier = carrier; if(carrier == null) localCarrier = TmHelper.getNearestTopicOrAssociation(this); - + //TODO: finalise for (int idx = 0; idx != this.getSelectedValues().size(); ++idx){ if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclItemIdentifierConstraint)){ - + } else if (TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclSubjectIdentifierConstraint)){ - + } else if (TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclSubjectLocatorConstraint)){ - + } else if (TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclTopicNameConstraint)){ if(!(localCarrier instanceof Topic)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getRootConstraint()) + " must be bound to a Topic, but is: " + localCarrier.getClass()); Topic nameType = TmHelper.getConstrainedStatement(this.getConstraint()); JsArray<Name> names = ((Topic)localCarrier).getNames(nameType); - + Name changedName = null; if(this.getRootConstraint().equals(this.getConstraint())){ if(validate) this.validateLiteralValue(this.getSelectedValues().get(idx)); - + if(names.length() > idx){ changedName = names.get(idx); changedName.setValue(this.getSelectedValues().get(idx)); @@ -2314,19 +2335,19 @@ changedName = ((Topic)localCarrier).createName(this.getSelectedValues().get(idx), nameType, null); } } // TODO: item-identifier, reifier, variant, ... - + result.add(new Pair<Construct, TopicMapsTypes>(changedName, TopicMapsTypes.Name)); } else if (TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclVariantNameConstraint)){ - + } else if (TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclTopicOccurrenceConstraint)){ if(!(localCarrier instanceof Topic)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getRootConstraint()) + " must be bound to a Topic, but is: " + localCarrier.getClass()); Topic occurrenceType = TmHelper.getConstrainedStatement(this.getConstraint()); JsArray<Occurrence> occurrences = ((Topic)localCarrier).getOccurrences(occurrenceType); - + Occurrence changedOccurrence = null; if(this.getRootConstraint().equals(this.getConstraint())){ if(validate) this.validateLiteralValue(this.getSelectedValues().get(idx)); - + if(occurrences.length() > idx){ changedOccurrence = occurrences.get(idx); changedOccurrence.setValue(this.getSelectedValues().get(idx)); @@ -2334,19 +2355,19 @@ changedOccurrence = ((Topic)localCarrier).createOccurrence(occurrenceType, this.getSelectedValues().get(idx), null, null); } } // TODO: item-identifier, reifier, ... - + result.add(new Pair<Construct, TopicMapsTypes>(changedOccurrence, TopicMapsTypes.Occurrence)); } else if (TmHelper.isInstanceOf(this.getRootConstraint(), PSIs.TMCL.tmclTopicRoleConstraint)){ if(!(localCarrier instanceof Association)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getRootConstraint()) + " must be bound to an Association, but is: " + localCarrier.getClass()); Pair<Topic, Topic> roleAndPlayerType = TmHelper.getConstrainedRoleAndPlayerTypeOfConstraint(this.getRootConstraint()); Topic roleType = roleAndPlayerType.getFirst(); Topic playerType = roleAndPlayerType.getSecond(); - + JsArray<Role> typedRoles = ((Association)localCarrier).getRoles(roleType); ArrayList<Role> roles = new ArrayList<Role>(); for(int i = 0; i != typedRoles.length(); ++i) if(TmHelper.isInstanceOf(typedRoles.get(i).getPlayer(), playerType)) roles.add(typedRoles.get(i)); - + Role changedRole = null; if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclReifierConstraint)){ // TODO: implement @@ -2371,7 +2392,7 @@ throw new InvalidGdlSchemaException("the constraint " + TmHelper.getAnyIdOfTopic(this.getRootConstraint()) + " is not supported"); } } - + 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 Mon Oct 17 08:41:37 2011 (r1003) +++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TmHelper.java Tue Oct 18 03:17:10 2011 (r1004) @@ -857,6 +857,24 @@ } + // returns the topic that plays the role of tmcl:constrained in an association + // of the type tmcl:constrained-topic-type that is bound to the passed topic + // constraint-Topic that plays the role of tmcl:constraint + public static Topic getConstrainedTopicType(Topic constraintTopic) throws InvalidGdlSchemaException{ + if(constraintTopic == null) return null; + + TopicMap tm = constraintTopic.getTopicMap(); + Topic constraintRoleType = getTopicByPsi(PSIs.TMCL.tmclConstraint, tm); + Topic constrainedTopicTypeAssocType = getTopicByPsi(PSIs.TMCL.tmclConstrainedTopicType, tm); + Topic constrainedRoleType = getTopicByPsi(PSIs.TMCL.tmclConstrained, tm); + + ArrayList<Topic> constrainedTopicTypes = getOtherPlayerOfBinaryAssociation(constraintTopic, constraintRoleType, constrainedTopicTypeAssocType, null, constrainedRoleType); + + if(constrainedTopicTypes.size() != 1) throw new InvalidGdlSchemaException("the topic " + getAnyIdOfTopic(constraintTopic) + " must be bound exactly once to a statement topic via a " + PSIs.TMCL.tmclConstrainedTopicType + " association, but is: " + constrainedTopicTypes.size()); + else return constrainedTopicTypes.get(0); + } + + // Returns the role-combination-constraints for the passed association-type public static ArrayList<Topic> getRoleCombinationConstraints(Topic associationType){ if(associationType == null) return new ArrayList<Topic>();
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 Mon Oct 17 08:41:37 2011 (r1003) +++ trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm Tue Oct 18 03:17:10 2011 (r1004) @@ -7,10 +7,15 @@ "gdlt":"http://psi.isidor.us/gdl/types/", "gdlsrv":"http://service.org/serviceregistry/gdl/", "types":"http://services.org/serviceregistry/model/types/", - "srv":"http://service.org/serviceregistry/%22%7D, + "srv":"http://service.org/serviceregistry/", + "iipref":"http://service.org/serviceregistry/iis/", + "slpref":"http://service.org/serviceregistry/sls/", + "srvpref":"http://service.org/serviceregistry/psis/service/%22%7D, +
"item_type":"topicmap",
+ "topics": [{"subject_identifiers":["[tmcl:topic-type]"], "instance_of":["si:[tmcl:topic-type]"]}, {"subject_identifiers":["[tmcl:name-type]"], "instance_of":["si:[tmcl:topic-type]"]}, {"subject_identifiers":["[tmcl:occurrence-type]"], "instance_of":["si:[tmcl:topic-type]"]}, @@ -170,23 +175,42 @@ {"subject_identifiers":["[gdlsrv:service-psis-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]},
{"subject_identifiers":["[gdlsrv:service-sls-text]"], "instance_of":["si:[gdlt:Text]"], "occurrences":[{"type":"si:[gdl:id]", "value":"service_sls_text_id"}, {"type":"si:[gdl:readonly]", "value":"false"}, {"type":"si:[gdl:width]", "value":"470px"},{"type":"si:[gdl:cursor]", "value":"text"}]}, - {"subject_identifiers":["[gdlsrv:service-sls-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"30px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, + {"subject_identifiers":["[gdlsrv:service-sls-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"40px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, {"subject_identifiers":["[gdlsrv:service-sls-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]},
{"subject_identifiers":["[gdlsrv:service-iis-text]"], "instance_of":["si:[gdlt:Text]"], "occurrences":[{"type":"si:[gdl:id]", "value":"service_iis_text_id"}, {"type":"si:[gdl:readonly]", "value":"false"}, {"type":"si:[gdl:width]", "value":"470px"},{"type":"si:[gdl:cursor]", "value":"text"}]}, - {"subject_identifiers":["[gdlsrv:service-iis-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"50px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, + {"subject_identifiers":["[gdlsrv:service-iis-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"70px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, {"subject_identifiers":["[gdlsrv:service-iis-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]},
{"subject_identifiers":["[gdlsrv:service-name-text]"], "instance_of":["si:[gdlt:Text]"], "occurrences":[{"type":"si:[gdl:id]", "value":"service_name_text_id"}, {"type":"si:[gdl:readonly]", "value":"false"}, {"type":"si:[gdl:width]", "value":"470px"},{"type":"si:[gdl:cursor]", "value":"text"}]}, - {"subject_identifiers":["[gdlsrv:service-name-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"70px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, + {"subject_identifiers":["[gdlsrv:service-name-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"110px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, {"subject_identifiers":["[gdlsrv:service-name-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]},
{"subject_identifiers":["[gdlsrv:service-name-type-text]"], "instance_of":["si:[gdlt:Text]"], "occurrences":[{"type":"si:[gdl:id]", "value":"service_name_type_text_id"}, {"type":"si:[gdl:readonly]", "value":"false"}, {"type":"si:[gdl:width]", "value":"470px"},{"type":"si:[gdl:cursor]", "value":"text"}]}, - {"subject_identifiers":["[gdlsrv:service-name-type-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"90px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, + {"subject_identifiers":["[gdlsrv:service-name-type-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"150px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, {"subject_identifiers":["[gdlsrv:service-name-type-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]}, - {"subject_identifiers":["[model:service-name-type-constraint]"], "instance_of":["si:[gdlt:Type]"]} + {"subject_identifiers":["[model:service-name-type-constraint]"], "instance_of":["si:[gdlt:Type]"]}, + + {"subject_identifiers":["[gdlsrv:service-name-scope-text]"], "instance_of":["si:[gdlt:Text]"], "occurrences":[{"type":"si:[gdl:id]", "value":"service_name_scope_text_id"}, {"type":"si:[gdl:readonly]", "value":"false"}, {"type":"si:[gdl:width]", "value":"470px"},{"type":"si:[gdl:cursor]", "value":"text"}]}, + {"subject_identifiers":["[gdlsrv:service-name-scope-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"190px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, + {"subject_identifiers":["[gdlsrv:service-name-scope-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]}, + + {"subject_identifiers":["[gdlsrv:service-name-reifier-text]"], "instance_of":["si:[gdlt:Text]"], "occurrences":[{"type":"si:[gdl:id]", "value":"service_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-name-reifier-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"230px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, + {"subject_identifiers":["[gdlsrv:service-name-reifier-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]}, + + {"subject_identifiers":["[gdlsrv:service-name-iis-text]"], "instance_of":["si:[gdlt:Text]"], "occurrences":[{"type":"si:[gdl:id]", "value":"service_name_iis_text_id"}, {"type":"si:[gdl:readonly]", "value":"false"}, {"type":"si:[gdl:width]", "value":"470px"},{"type":"si:[gdl:cursor]", "value":"text"}]}, + {"subject_identifiers":["[gdlsrv:service-name-iis-text-position]"], "instance_of":["si:[gdlt:Position]"], "occurrences":[{"type":"si:[gdl:position-style]", "value":"absolute"}, {"type":"si:[gdl:top]", "value":"270px"}, {"type":"si:[gdl:left]", "value":"10px"}]}, + {"subject_identifiers":["[gdlsrv:service-name-iis-text-value-group]"], "instance_of":["si:[gdlt:Value-Group]"]}, + + + + {"subject_identifiers":["[model:sort-service-name-reifier]"], "instance_of":["si:[types:Reifier-Type]"]}, + {"subject_identifiers":["[model:sort-service-variant-name-reifier]"], "instance_of":["si:[types:Reifier-Type]"]}, + {"subject_identifiers":["[srvpref:sort-service]"], "subject_locators":["[slpref:sort-service]"], "item_identifiers":["[iipref:sort-service]"], "instance_of":["si:[types:Service]"], "names":[{"type":"si:[model:service-name]", "scope":["si:[model:english]"], "reifier":"si:[model:sort-service-name-reifier]", "item_identifiers":["[iipref:service-name-ii]"], "value":"Sort-Service", "variants":[{"datatype":"http://www.w3.org/2001/XMLSchema#string", "scope":["si:[model:symbolic-name]"], "reifier":"si:[model:sort-service-variant-name-reifier]", "item_identifiers":["[iipref:sort-service-variant-name-ii]"], "value":"symbolic name of sort-service"}]}]} ],
+ "associations": [{"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[tmcl:constraint]"},{"type":"si:[tmdm:subtype]", "player":"si:[tmcl:topic-name-constraint]"}]}, {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[tmcl:constraint]"},{"type":"si:[tmdm:subtype]", "player":"si:[tmcl:subject-identifier-constraint]"}]}, {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[tmcl:constraint]"},{"type":"si:[tmdm:subtype]", "player":"si:[tmcl:subject-locator-constraint]"}]}, @@ -292,12 +316,12 @@ {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[gdlsrv:service-default-editor-topic-view]"},{"type":"si:[gdl:containee]", "player":"si:[gdlsrv:service-sls-text]"}]}, {"type":"si:[gdl:position]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-sls-text-position]"},{"type":"si:[gdl:ancestor]", "player":"si:[gdlsrv:service-psis-text]"},{"type":"si:[gdl:descendant]", "player":"si:[gdlsrv:service-sls-text]"}]}, {"type":"si:[gdl:view-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-sls-text-value-group]"},{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-sls-text]"}]}, - {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-sls-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-sls-constraint]"}]}, + {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-sls-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-sl-constraint]"}]}, {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[gdlsrv:service-default-editor-topic-view]"},{"type":"si:[gdl:containee]", "player":"si:[gdlsrv:service-iis-text]"}]}, {"type":"si:[gdl:position]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-iis-text-position]"},{"type":"si:[gdl:ancestor]", "player":"si:[gdlsrv:service-sls-text]"},{"type":"si:[gdl:descendant]", "player":"si:[gdlsrv:service-iis-text]"}]}, {"type":"si:[gdl:view-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-iis-text-value-group]"},{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-iis-text]"}]}, - {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-iis-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-iis-constraint]"}]}, + {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-iis-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-ii-constraint]"}]}, {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[gdlsrv:service-default-editor-topic-view]"},{"type":"si:[gdl:containee]", "player":"si:[gdlsrv:service-name-text]"}]}, {"type":"si:[gdl:position]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-text-position]"},{"type":"si:[gdl:ancestor]", "player":"si:[gdlsrv:service-iis-text]"},{"type":"si:[gdl:descendant]", "player":"si:[gdlsrv:service-name-text]"}]}, @@ -308,7 +332,23 @@ {"type":"si:[gdl:position]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-type-text-position]"},{"type":"si:[gdl:ancestor]", "player":"si:[gdlsrv:service-name-text]"},{"type":"si:[gdl:descendant]", "player":"si:[gdlsrv:service-name-type-text]"}]}, {"type":"si:[gdl:view-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-type-text-value-group]"},{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-type-text]"}]}, {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-type-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-name-type-constraint]"}]}, - {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[model:service-name-type-constraint]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-name-constraint]"}]} + {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[model:service-name-type-constraint]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-name-constraint]"}]},
+ {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[gdlsrv:service-default-editor-topic-view]"},{"type":"si:[gdl:containee]", "player":"si:[gdlsrv:service-name-scope-text]"}]}, + {"type":"si:[gdl:position]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-scope-text-position]"},{"type":"si:[gdl:ancestor]", "player":"si:[gdlsrv:service-name-type-text]"},{"type":"si:[gdl:descendant]", "player":"si:[gdlsrv:service-name-scope-text]"}]}, + {"type":"si:[gdl:view-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-scope-text-value-group]"},{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-scope-text]"}]}, + {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-scope-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-name-scope-constraint]"}]}, + + {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[gdlsrv:service-default-editor-topic-view]"},{"type":"si:[gdl:containee]", "player":"si:[gdlsrv:service-name-reifier-text]"}]}, + {"type":"si:[gdl:position]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-reifier-text-position]"},{"type":"si:[gdl:ancestor]", "player":"si:[gdlsrv:service-name-scope-text]"},{"type":"si:[gdl:descendant]", "player":"si:[gdlsrv:service-name-reifier-text]"}]}, + {"type":"si:[gdl:view-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-reifier-text-value-group]"},{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-reifier-text]"}]}, + {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-reifier-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-name-reifier-constraint]"}]}, + + {"type":"si:[gdl:contains]", "roles":[{"type":"si:[gdl:container]", "player":"si:[gdlsrv:service-default-editor-topic-view]"},{"type":"si:[gdl:containee]", "player":"si:[gdlsrv:service-name-iis-text]"}]}, + {"type":"si:[gdl:position]", "roles":[{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-reifier-text-position]"},{"type":"si:[gdl:ancestor]", "player":"si:[gdlsrv:service-name-reifier-text]"},{"type":"si:[gdl:descendant]", "player":"si:[gdlsrv:service-name-iis-text]"}]}, + {"type":"si:[gdl:view-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-iis-text-value-group]"},{"type":"si:[gdl:descriptor]", "player":"si:[gdlsrv:service-name-iis-text]"}]}, + {"type":"si:[gdl:tm-binding]", "roles":[{"type":"si:[gdl:value-group]", "player":"si:[gdlsrv:service-name-iis-text-value-group]"},{"type":"si:[gdl:tm-construct]", "player":"si:[model:service-name-ii-constraint]"}]} + + ] } \ No newline at end of file
Modified: trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm.txt ============================================================================== --- trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm.txt Mon Oct 17 08:41:37 2011 (r1003) +++ trunk/src/anaToMia/GDL_Widgets/war/gdl_widgets/Service_GDL_Schema.jtm.txt Tue Oct 18 03:17:10 2011 (r1004) @@ -1,18 +1,18 @@ -==> Service ** - ==> subject-identifier-constraint ** - ==> subject-locator-constraint ** - ==> item-identifier-constraint ** - ==> topic-name-constraint ** - ==> regular-expression-constraint ** - ==> Type * - ==> scope-constraint * - ==> reifier-constraint * - ==> item-identifier-constraint * - ==> variant-name-constraint * - ==> Datatype - ==> Variant-Name-Scope - ==> Variant-Name-Identifiers - ==> Variant-Name-Reifier +==> Service *** + ==> subject-identifier-constraint *** + ==> subject-locator-constraint *** + ==> item-identifier-constraint *** + ==> topic-name-constraint *** + ==> regular-expression-constraint *** + ==> Type ** + ==> scope-constraint *** + ==> reifier-constraint *** + ==> item-identifier-constraint *** + ==> variant-name-constraint * * + ==> Datatype * + ==> Variant-Name-Scope * + ==> Variant-Name-Identifiers * + ==> Variant-Name-Reifier *
==> Endpoint *