Author: lgiessmann Date: Fri Jul 1 02:47:43 2011 New Revision: 542
Log: gdl-frontend: Widgets: implemented a method that gets the GDL border-color, border[-top,-right,-bottom,-left]-color properties
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/TestClass.java
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 Fri Jul 1 02:37:25 2011 (r541) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Fri Jul 1 02:47:43 2011 (r542) @@ -8,10 +8,15 @@ import us.isidor.gdl.anaToMia.Widgets.environment.InvalidGdlSchemaException; import us.isidor.gdl.anaToMia.Widgets.values.AutoNumValue; import us.isidor.gdl.anaToMia.Widgets.values.ClearValue; +import us.isidor.gdl.anaToMia.Widgets.values.ColorValue; +import us.isidor.gdl.anaToMia.Widgets.values.NumUnitValue; + +import com.google.gwt.canvas.dom.client.CssColor; import com.google.gwt.core.client.JsArray; import com.google.gwt.dom.client.Style.Display; import com.google.gwt.dom.client.Style.Float; import com.google.gwt.dom.client.Style.VerticalAlign; +import com.google.gwt.resources.css.ast.CssCompilerException; import com.google.gwt.user.client.ui.AbsolutePanel; import com.google.gwt.user.client.ui.Composite;
@@ -48,13 +53,17 @@ // a helper method that returns one occurrence of the type bound to the passed PSI. // If more than one occurrence is available an InvalidGdlSchemaException is thrown. // If nor occurrence is available the return value is null - private Occurrence getNoneOrOneOccurrence(String occurrenceType) throws InvalidGdlSchemaException{ + private Occurrence getNoneOrOneUnscopedOccurrence(String occurrenceType) throws InvalidGdlSchemaException{ JsArray<Occurrence> occs = getOccurrences(occurrenceType); + ArrayList<Occurrence> unscopedOccs = new ArrayList<Occurrence>(); + for(int i = 0; i != occs.length(); ++i){ + if(occs.get(i).getScope().length() == 0) unscopedOccs.add(occs.get(i)); + } - if(occs.length() > 1){ - throw new InvalidGdlSchemaException("The topic " + GdlPsis.getAnyIdOfTopic(this.tmRepresentative) + "must be bound to none or one occurrence of the type " + occurrenceType + "but is bound " + occs.length() + " times to it"); - } else if(occs.length() == 1){ - return occs.get(0); + if(unscopedOccs.size() > 1){ + throw new InvalidGdlSchemaException("The topic " + GdlPsis.getAnyIdOfTopic(this.tmRepresentative) + "must be bound to none or one unscoped occurrence of the type " + occurrenceType + "but is bound " + unscopedOccs.size() + " times to it"); + } else if(unscopedOccs.size() == 1){ + return unscopedOccs.get(0); } else { return null; } @@ -104,7 +113,7 @@ // returns a Display instance of a gdl:display occurrence. // If no gdl:display occurrence is set, the default value is returned public Display getDisplay() throws InvalidGdlSchemaException { - Occurrence displayOcc = getNoneOrOneOccurrence(GdlPsis.OccurrenceType.gdlId); + Occurrence displayOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlId); if(displayOcc != null){ String value = displayOcc.getValue().toLowerCase(); @@ -128,7 +137,7 @@ // returns an AutoNumValue instance of a gdl:z-index occurrence. // If no gdl:z-index occurrence is set, the default value is returned public AutoNumValue getZindex() throws InvalidGdlSchemaException { - Occurrence zOcc = getNoneOrOneOccurrence(GdlPsis.OccurrenceType.gdlZindex); + Occurrence zOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlZindex); if(zOcc != null){ return new AutoNumValue(zOcc.getValue()); } else { @@ -140,7 +149,7 @@ // returns a Float instance of a gdl:float occurrence or the default value for // this property if no gdl:float occurrence is available public Float getFloat() throws InvalidGdlSchemaException { - Occurrence floatOcc = getNoneOrOneOccurrence(GdlPsis.OccurrenceType.gdlFloat); + Occurrence floatOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlFloat); if(floatOcc != null){ String value = floatOcc.getValue().toLowerCase(); @@ -162,7 +171,7 @@ // 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 { - Occurrence clearOcc = getNoneOrOneOccurrence(GdlPsis.OccurrenceType.gdlFloat); + Occurrence clearOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlFloat); if(clearOcc != null){ try{ @@ -185,7 +194,7 @@ if(styleClass != null){ vaOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlVerticalAlign, styleClass); } else { - vaOcc = getNoneOrOneOccurrence(GdlPsis.OccurrenceType.gdlVerticalAlign); + vaOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlVerticalAlign); } if(vaOcc == null && styleClass != null){ @@ -217,17 +226,226 @@ }
+ // returns a NumUnitValue instance that represents the margin of this element. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // or null. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public NumUnitValue getMargin(String styleClass) throws InvalidGdlSchemaException { + Occurrence marginOcc = null; + if(styleClass != null){ + marginOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlMargin, styleClass); + } else { + marginOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlMargin); + } + + if(marginOcc == null && styleClass != null){ + return null; + } else if(marginOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(marginOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the margin-top of this element. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // or null. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public NumUnitValue getMarginTop(String styleClass) throws InvalidGdlSchemaException { + Occurrence marginOcc = null; + if(styleClass != null){ + marginOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlMarginTop, styleClass); + } else { + marginOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlMarginTop); + } + + if(marginOcc == null && styleClass != null){ + return null; + } else if(marginOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(marginOcc.getValue()); + } + } + - // gdlMargin [gdl:hover | gdl:focus | gdl:active] - // gdlMarginTop [gdl:hover | gdl:focus | gdl:active] - // gdlMarginRight [gdl:hover | gdl:focus | gdl:active] - // gdlMarginBottom [gdl:hover | gdl:focus | gdl:active] - // gdlMarginLeft [gdl:hover | gdl:focus | gdl:active] - // gdlBorderColor [gdl:hover | gdl:focus | gdl:active] - // gdlBorderColorTop [gdl:hover | gdl:focus | gdl:active] - // gdlBorderColorRight [gdl:hover | gdl:focus | gdl:active] - // gdlBorderColorBottom [gdl:hover | gdl:focus | gdl:active] - // gdlBorderColorLeft [gdl:hover | gdl:focus | gdl:active] + // returns a NumUnitValue instance that represents the margin-right of this element. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // or null. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public NumUnitValue getMarginRight(String styleClass) throws InvalidGdlSchemaException { + Occurrence marginOcc = null; + if(styleClass != null){ + marginOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlMarginRight, styleClass); + } else { + marginOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlMarginRight); + } + + if(marginOcc == null && styleClass != null){ + return null; + } else if(marginOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(marginOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the margin-bottom of this element. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // or null. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public NumUnitValue getMarginBottom(String styleClass) throws InvalidGdlSchemaException { + Occurrence marginOcc = null; + if(styleClass != null){ + marginOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlMarginBottom, styleClass); + } else { + marginOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlMarginBottom); + } + + if(marginOcc == null && styleClass != null){ + return null; + } else if(marginOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(marginOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the margin-left of this element. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // or null. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public NumUnitValue getMarginLeft(String styleClass) throws InvalidGdlSchemaException { + Occurrence marginOcc = null; + if(styleClass != null){ + marginOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlMarginLeft, styleClass); + } else { + marginOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlMarginLeft); + } + + if(marginOcc == null && styleClass != null){ + return null; + } else if(marginOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(marginOcc.getValue()); + } + } + + + // returns a ColorValue instance that represents the color of this element's border. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // null, null otherwise. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public ColorValue getBorderColor(String styleClass) throws InvalidGdlSchemaException { + Occurrence colorOcc = null; + if(styleClass != null){ + colorOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderColor, styleClass); + } else { + colorOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderColor); + } + + if(colorOcc == null && styleClass != null){ + return null; + } else if(colorOcc == null) { + return new ColorValue(); + } else { + return new ColorValue(colorOcc.getValue()); + } + } + + + // returns a ColorValue instance that represents the color of this element's border-top. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // null, null otherwise. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public ColorValue getBorderTopColor(String styleClass) throws InvalidGdlSchemaException { + Occurrence colorOcc = null; + if(styleClass != null){ + colorOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderTopColor, styleClass); + } else { + colorOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderTopColor); + } + + if(colorOcc == null && styleClass != null){ + return null; + } else if(colorOcc == null) { + return new ColorValue(); + } else { + return new ColorValue(colorOcc.getValue()); + } + } + + + // returns a ColorValue instance that represents the color of this element's border-right. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // null, null otherwise. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public ColorValue getBorderRightColor(String styleClass) throws InvalidGdlSchemaException { + Occurrence colorOcc = null; + if(styleClass != null){ + colorOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderRightColor, styleClass); + } else { + colorOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderRightColor); + } + + if(colorOcc == null && styleClass != null){ + return null; + } else if(colorOcc == null) { + return new ColorValue(); + } else { + return new ColorValue(colorOcc.getValue()); + } + } + + + // returns a ColorValue instance that represents the color of this element's border-bottom. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // null, null otherwise. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public ColorValue getBorderBottomColor(String styleClass) throws InvalidGdlSchemaException { + Occurrence colorOcc = null; + if(styleClass != null){ + colorOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderBottomColor, styleClass); + } else { + colorOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderBottomColor); + } + + if(colorOcc == null && styleClass != null){ + return null; + } else if(colorOcc == null) { + return new ColorValue(); + } else { + return new ColorValue(colorOcc.getValue()); + } + } + + + // returns a ColorValue instance that represents the color of this element's border-left. + // If a styleClass is set, only the corresponding value of the scoped occurrence is returned + // null, null otherwise. If the styleClass is null and no occurrence was found, the default value for this + // property is returned. + public ColorValue getBorderLeftColor(String styleClass) throws InvalidGdlSchemaException { + Occurrence colorOcc = null; + if(styleClass != null){ + colorOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderLeftColor, styleClass); + } else { + colorOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderLeftColor); + } + + if(colorOcc == null && styleClass != null){ + return null; + } else if(colorOcc == null) { + return new ColorValue(); + } else { + return new ColorValue(colorOcc.getValue()); + } + } + + // gdlBorderStyle [gdl:hover | gdl:focus | gdl:active] // gdlBorderStyleTop [gdl:hover | gdl:focus | gdl:active] // gdlBorderStyleRight [gdl:hover | gdl:focus | gdl:active]
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 Fri Jul 1 02:37:25 2011 (r541) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java Fri Jul 1 02:47:43 2011 (r542) @@ -2,6 +2,7 @@
import us.isidor.gdl.anaToMia.TmEngine.jtmsBasedEngine.JtmsTmEngine; import us.isidor.gdl.anaToMia.Widgets.isidorus.LoadSchemaCallback; +import us.isidor.gdl.anaToMia.Widgets.values.ColorValue; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler;