Author: lgiessmann Date: Fri Jul 1 04:01:40 2011 New Revision: 545
Log: gdl-frontend: Widgets: implemented some methods that get the GDL [max-,min-][width,height] properties; added the class AutoNumUnitValue that wraps numeric values, which also may be set to auto
Added: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/values/AutoNumUnitValue.java Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.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 03:26:12 2011 (r544) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Fri Jul 1 04:01:40 2011 (r545) @@ -5,6 +5,7 @@ import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Topic; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.TopicMap; import us.isidor.gdl.anaToMia.Widgets.environment.InvalidGdlSchemaException; +import us.isidor.gdl.anaToMia.Widgets.values.AutoNumUnitValue; import us.isidor.gdl.anaToMia.Widgets.values.AutoNumValue; import us.isidor.gdl.anaToMia.Widgets.values.BorderStyle; import us.isidor.gdl.anaToMia.Widgets.values.AbsoluteNumValue; @@ -663,33 +664,365 @@ } } - // gdlBorderWidth [gdl:hover | gdl:focus | gdl:active] - // gdlBorderWidthTop [gdl:hover | gdl:focus | gdl:active] - // gdlBorderWidthRight [gdl:hover | gdl:focus | gdl:active] - // gdlBorderWidthBottom [gdl:hover | gdl:focus | gdl:active] - // gdlBorderWidthLeft [gdl:hover | gdl:focus | gdl:active] - - // gdlBorderRadius [gdl:hover | gdl:focus | gdl:active] - // gdlBorderTopRightRadius [gdl:hover | gdl:focus | gdl:active] - // gdlBorderTopLeftRadius [gdl:hover | gdl:focus | gdl:active] - // gdlBorderBottomRightRadius [gdl:hover | gdl:focus | gdl:active] - // gdlBorderBottomLeftRadius [gdl:hover | gdl:focus | gdl:active] + + // returns a NumUnitValue instance that represents the radius 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 NumUnitValue getBorderRadius(String styleClass) throws InvalidGdlSchemaException { + Occurrence radiusOcc = null; + if(styleClass != null){ + radiusOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderRadius, styleClass); + } else { + radiusOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderRadius); + } + + if(radiusOcc == null && styleClass != null){ + return null; + } else if(radiusOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(radiusOcc.getValue()); + } + } - // gdlCursor [gdl:hover | gdl:focus | gdl:active] - // gdlWidth [gdl:hover | gdl:focus | gdl:active] - // gdlMinWidth [gdl:hover | gdl:focus | gdl:active] - // gdlMaxWidth [gdl:hover | gdl:focus | gdl:active] - - // gdlHeight [gdl:hover | gdl:focus | gdl:active] - // gdlMaxHeight [gdl:hover | gdl:focus | gdl:active] - // gdlMinHeight [gdl:hover | gdl:focus | gdl:active] - - // gdlPadding [gdl:hover | gdl:focus | gdl:active] - // gdlPaddingTop [gdl:hover | gdl:focus | gdl:active] - // gdlPaddingRight [gdl:hover | gdl:focus | gdl:active] - // gdlPaddingBottom [gdl:hover | gdl:focus | gdl:active] - // gdlPaddingLeft [gdl:hover | gdl:focus | gdl:active] + // returns a NumUnitValue instance that represents the radius of this element's border-top-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 NumUnitValue getBorderTopLeftRadius(String styleClass) throws InvalidGdlSchemaException { + Occurrence radiusOcc = null; + if(styleClass != null){ + radiusOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderTopLeftRadius, styleClass); + } else { + radiusOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderTopLeftRadius); + } + + if(radiusOcc == null && styleClass != null){ + return null; + } else if(radiusOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(radiusOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the radius of this element's border-top-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 NumUnitValue getBorderTopRightRadius(String styleClass) throws InvalidGdlSchemaException { + Occurrence radiusOcc = null; + if(styleClass != null){ + radiusOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderTopRightRadius, styleClass); + } else { + radiusOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderTopRightRadius); + } + + if(radiusOcc == null && styleClass != null){ + return null; + } else if(radiusOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(radiusOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the radius of this element's border-bottom-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 NumUnitValue getBorderBottomLeftRadius(String styleClass) throws InvalidGdlSchemaException { + Occurrence radiusOcc = null; + if(styleClass != null){ + radiusOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderBottomLeftRadius, styleClass); + } else { + radiusOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderBottomLeftRadius); + } + + if(radiusOcc == null && styleClass != null){ + return null; + } else if(radiusOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(radiusOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the radius of this element's border-bottom-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 NumUnitValue getBorderBottomRightRadius(String styleClass) throws InvalidGdlSchemaException { + Occurrence radiusOcc = null; + if(styleClass != null){ + radiusOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlBorderBottomRightRadius, styleClass); + } else { + radiusOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlBorderBottomRightRadius); + } + + if(radiusOcc == null && styleClass != null){ + return null; + } else if(radiusOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(radiusOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the padding of this element. + // 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 NumUnitValue getPadding(String styleClass) throws InvalidGdlSchemaException { + Occurrence paddingOcc = null; + if(styleClass != null){ + paddingOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlPadding, styleClass); + } else { + paddingOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlPadding); + } + + if(paddingOcc == null && styleClass != null){ + return null; + } else if(paddingOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(paddingOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the padding of this element's 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 NumUnitValue getPaddingTop(String styleClass) throws InvalidGdlSchemaException { + Occurrence paddingOcc = null; + if(styleClass != null){ + paddingOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlPaddingTop, styleClass); + } else { + paddingOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlPaddingTop); + } + + if(paddingOcc == null && styleClass != null){ + return null; + } else if(paddingOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(paddingOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the padding of this element's 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 NumUnitValue getPaddingRight(String styleClass) throws InvalidGdlSchemaException { + Occurrence paddingOcc = null; + if(styleClass != null){ + paddingOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlPaddingRight, styleClass); + } else { + paddingOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlPaddingRight); + } + + if(paddingOcc == null && styleClass != null){ + return null; + } else if(paddingOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(paddingOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the padding of this element's 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 NumUnitValue getPaddingBottom(String styleClass) throws InvalidGdlSchemaException { + Occurrence paddingOcc = null; + if(styleClass != null){ + paddingOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlPaddingBottom, styleClass); + } else { + paddingOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlPaddingBottom); + } + + if(paddingOcc == null && styleClass != null){ + return null; + } else if(paddingOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(paddingOcc.getValue()); + } + } + + + // returns a NumUnitValue instance that represents the padding of this element's 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 NumUnitValue getPaddingLeft(String styleClass) throws InvalidGdlSchemaException { + Occurrence paddingOcc = null; + if(styleClass != null){ + paddingOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlPaddingLeft, styleClass); + } else { + paddingOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlPaddingLeft); + } + + if(paddingOcc == null && styleClass != null){ + return null; + } else if(paddingOcc == null) { + return new NumUnitValue(); + } else { + return new NumUnitValue(paddingOcc.getValue()); + } + } + + + // returns an AutoNumUnitValue instance that represents the width of this element. + // 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 AutoNumUnitValue getWidth(String styleClass) throws InvalidGdlSchemaException { + Occurrence widthOcc = null; + if(styleClass != null){ + widthOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlWidth, styleClass); + } else { + widthOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlWidth); + } + + if(widthOcc == null && styleClass != null){ + return null; + } else if(widthOcc == null) { + return new AutoNumUnitValue(); + } else { + return new AutoNumUnitValue(widthOcc.getValue()); + } + } + + + // returns an AutoNumUnitValue instance that represents the min-width of this element. + // 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 AutoNumUnitValue getMinWidth(String styleClass) throws InvalidGdlSchemaException { + Occurrence widthOcc = null; + if(styleClass != null){ + widthOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlMinWidth, styleClass); + } else { + widthOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlMinWidth); + } + + if(widthOcc == null && styleClass != null){ + return null; + } else if(widthOcc == null) { + return new AutoNumUnitValue(); + } else { + return new AutoNumUnitValue(widthOcc.getValue()); + } + } + + + // returns an AutoNumUnitValue instance that represents the max-width of this element. + // 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 AutoNumUnitValue getMaxWidth(String styleClass) throws InvalidGdlSchemaException { + Occurrence widthOcc = null; + if(styleClass != null){ + widthOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlMaxWidth, styleClass); + } else { + widthOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlMaxWidth); + } + + if(widthOcc == null && styleClass != null){ + return null; + } else if(widthOcc == null) { + return new AutoNumUnitValue(); + } else { + return new AutoNumUnitValue(widthOcc.getValue()); + } + } + + + // returns an AutoNumUnitValue instance that represents the height of this element. + // 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 AutoNumUnitValue getHeight(String styleClass) throws InvalidGdlSchemaException { + Occurrence heightOcc = null; + if(styleClass != null){ + heightOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlHeight, styleClass); + } else { + heightOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlHeight); + } + + if(heightOcc == null && styleClass != null){ + return null; + } else if(heightOcc == null) { + return new AutoNumUnitValue(); + } else { + return new AutoNumUnitValue(heightOcc.getValue()); + } + } + + + // returns an AutoNumUnitValue instance that represents the min-height of this element. + // 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 AutoNumUnitValue getMinHeight(String styleClass) throws InvalidGdlSchemaException { + Occurrence heightOcc = null; + if(styleClass != null){ + heightOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlMinHeight, styleClass); + } else { + heightOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlMinHeight); + } + + if(heightOcc == null && styleClass != null){ + return null; + } else if(heightOcc == null) { + return new AutoNumUnitValue(); + } else { + return new AutoNumUnitValue(heightOcc.getValue()); + } + } + + + // returns an AutoNumUnitValue instance that represents the max-height of this element. + // 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 AutoNumUnitValue getMaxHeight(String styleClass) throws InvalidGdlSchemaException { + Occurrence heightOcc = null; + if(styleClass != null){ + heightOcc = getNoneOrOneScopedOccurrence(GdlPsis.OccurrenceType.gdlMaxHeight, styleClass); + } else { + heightOcc = getNoneOrOneUnscopedOccurrence(GdlPsis.OccurrenceType.gdlMaxHeight); + } + + if(heightOcc == null && styleClass != null){ + return null; + } else if(heightOcc == null) { + return new AutoNumUnitValue(); + } else { + return new AutoNumUnitValue(heightOcc.getValue()); + } + } + + + + + + + + // gdlCursor [gdl:hover | gdl:focus | gdl:active] // gdlBackgroundColor [gdl:hover | gdl:focus | gdl:active]
Added: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/values/AutoNumUnitValue.java ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/values/AutoNumUnitValue.java Fri Jul 1 04:01:40 2011 (r545) @@ -0,0 +1,46 @@ +package us.isidor.gdl.anaToMia.Widgets.values; + +import us.isidor.gdl.anaToMia.Widgets.environment.InvalidGdlSchemaException; + +public class AutoNumUnitValue extends NumUnitValue { + public AutoNumUnitValue(){ + super.unit = null; // if unit is null, the default value is auto + super.value = 0f; + } + + + public AutoNumUnitValue(String value) throws InvalidGdlSchemaException{ + String upperString = value.trim().toUpperCase(); + if(upperString.equals("AUTO")){ + super.unit = null; // if unit is null, the default value is auto + super.value = 0f; + }else if(value.endsWith("PX")){ + this.value = makeFloat(value, 2); + this.unit = CssUnit.PIXEL; + }else if (value.endsWith("PT")){ + this.value = makeFloat(value, 2); + this.unit = CssUnit.POINT; + } else if(value.endsWith("%")){ + this.value = makeFloat(value, 1); + this.unit = CssUnit.PERCENTAGE; + } else { + throw new InvalidGdlSchemaException("auto numeric values supported by the GDL containing a unit definition must be of the form <numeric-value>(pt|px|%)|auto, but found: " + value); + } + } + + + @Override + public String getStringValue() { + if(super.unit == null){ + return "auto"; + } else { + return super.getStringValue(); + } + } + + + // this method returns true, if the value must be treated as "auto" + public boolean isAuto(){ + return super.unit == null; + } +}