Author: rwhitcomb Date: Fri Dec 8 19:37:27 2017 New Revision: 1817549 URL: http://svn.apache.org/viewvc?rev=1817549&view=rev Log: Explicitly add a "Sequence<?>" constructor for Insets, Bounds, Dimensions, etc. (basically all the "wtk" classes where we updated the "decode" methods to accept a JSON list). So, update all these decode methods to use the new constructor. Then, add a "Sequence<?>" setter method for Insets (padding) in all the places we had already cleaned up the padding code.
Also similarly fix up CalendarDate.Range and Time.Range. Tidy up some comments in JSONSerializer. Modified: pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java pivot/trunk/core/src/org/apache/pivot/util/CalendarDate.java pivot/trunk/core/src/org/apache/pivot/util/Time.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserButtonSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraExpanderSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPaletteSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSheetSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTextInputSkin.java pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java pivot/trunk/wtk/src/org/apache/pivot/wtk/CornerRadii.java pivot/trunk/wtk/src/org/apache/pivot/wtk/Dimensions.java pivot/trunk/wtk/src/org/apache/pivot/wtk/Insets.java pivot/trunk/wtk/src/org/apache/pivot/wtk/Limits.java pivot/trunk/wtk/src/org/apache/pivot/wtk/Point.java pivot/trunk/wtk/src/org/apache/pivot/wtk/Span.java pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BorderSkin.java pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BoxPaneSkin.java pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/LabelSkin.java Modified: pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java (original) +++ pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java Fri Dec 8 19:37:27 2017 @@ -235,14 +235,20 @@ public class JSONSerializer implements S /** * Reads data from a JSON stream. + * <p> Processes macros at this level using {@link MacroReader}. * * @param reader The reader from which data will be read. * @return One of the following types, depending on the content of the stream - * and the value of {@link #getType()}: <ul> - * <li>pivot.collections.Dictionary</li> <li>pivot.collections.Sequence</li> - * <li>java.lang.String</li> <li>java.lang.Number</li> - * <li>java.lang.Boolean</li> <li><tt>null</tt></li> <li>A JavaBean - * object</li> </ul> + * and the value of {@link #getType()}: + * <ul> + * <li>pivot.collections.Dictionary</li> + * <li>pivot.collections.Sequence</li> + * <li>java.lang.String</li> + * <li>java.lang.Number</li> + * <li>java.lang.Boolean</li> + * <li><tt>null</tt></li> + * <li>A JavaBean object</li> + * </ul> * @throws IOException for any I/O related errors while reading. * @throws SerializationException for any formatting errors in the data. */ @@ -262,7 +268,7 @@ public class JSONSerializer implements S // Read the root value Object object; try { - object = readValue(macroReader, type, "<root>"); + object = readValue(macroReader, type, type.getTypeName()); } catch (SerializationException exception) { System.err.println("An error occurred while processing input at line number " + (lineNumberReader.getLineNumber() + 1)); @@ -777,8 +783,7 @@ public class JSONSerializer implements S c = reader.read(); if (valueType == null) { - // The map is a bean instance; get the generic type of the - // property + // The map is a bean instance; get the generic type of the property Type genericValueType = ((BeanAdapter) dictionary).getGenericType(key); if (genericValueType != null) { Modified: pivot/trunk/core/src/org/apache/pivot/util/CalendarDate.java URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/util/CalendarDate.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/core/src/org/apache/pivot/util/CalendarDate.java (original) +++ pivot/trunk/core/src/org/apache/pivot/util/CalendarDate.java Fri Dec 8 19:37:27 2017 @@ -28,6 +28,7 @@ import java.util.regex.Pattern; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.json.JSONSerializer; import org.apache.pivot.serialization.SerializationException; @@ -101,6 +102,25 @@ public final class CalendarDate implemen } } + public Range(Sequence<?> range) { + Utils.checkNull(range, "range"); + + Object startRange = range.get(0); + Object endRange = range.get(1); + + if (startRange instanceof String) { + this.start = CalendarDate.decode((String) startRange); + } else { + this.start = (CalendarDate) startRange; + } + + if (endRange instanceof String) { + this.end = CalendarDate.decode((String) endRange); + } else { + this.end = (CalendarDate) endRange; + } + } + public int getLength() { return Math.abs(this.start.subtract(this.end)) + 1; } @@ -182,9 +202,7 @@ public final class CalendarDate implemen } } else if (value.startsWith("[")) { try { - @SuppressWarnings("unchecked") - List<String> values = (List<String>)JSONSerializer.parseList(value); - range = new Range(values.get(0), values.get(1)); + range = new Range(JSONSerializer.parseList(value)); } catch (SerializationException exception) { throw new IllegalArgumentException(exception); } Modified: pivot/trunk/core/src/org/apache/pivot/util/Time.java URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/util/Time.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/core/src/org/apache/pivot/util/Time.java (original) +++ pivot/trunk/core/src/org/apache/pivot/util/Time.java Fri Dec 8 19:37:27 2017 @@ -26,6 +26,7 @@ import java.util.regex.Pattern; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.json.JSONSerializer; import org.apache.pivot.serialization.SerializationException; import org.apache.pivot.util.Utils; @@ -98,6 +99,25 @@ public final class Time implements Compa } } + public Range(Sequence<?> range) { + Utils.checkNull(range, "range"); + + Object startRange = range.get(0); + Object endRange = range.get(1); + + if (startRange instanceof String) { + this.start = Time.decode((String) startRange); + } else { + this.start = (Time) startRange; + } + + if (endRange instanceof String) { + this.end = Time.decode((String) endRange); + } else { + this.end = (Time) endRange; + } + } + public int getLength() { return Math.abs(this.start.subtract(this.end)) + 1; } @@ -179,9 +199,7 @@ public final class Time implements Compa } } else if (value.startsWith("[")) { try { - @SuppressWarnings("unchecked") - List<String> values = (List<String>)JSONSerializer.parseList(value); - range = new Range(values.get(0), values.get(1)); + range = new Range(JSONSerializer.parseList(value)); } catch (SerializationException exception) { throw new IllegalArgumentException(exception); } Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java Fri Dec 8 19:37:27 2017 @@ -588,6 +588,10 @@ public class TerraAccordionSkin extends setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraCalendarButtonSkin.java Fri Dec 8 19:37:27 2017 @@ -28,6 +28,7 @@ import java.awt.geom.RoundRectangle2D; import java.util.Locale; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.util.Vote; import org.apache.pivot.wtk.Border; @@ -505,6 +506,10 @@ public class TerraCalendarButtonSkin ext setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserButtonSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserButtonSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserButtonSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraColorChooserButtonSkin.java Fri Dec 8 19:37:27 2017 @@ -27,6 +27,7 @@ import java.awt.geom.Path2D; import java.awt.geom.RoundRectangle2D; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.util.Vote; import org.apache.pivot.wtk.Border; @@ -476,6 +477,10 @@ public class TerraColorChooserButtonSkin setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraExpanderSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraExpanderSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraExpanderSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraExpanderSkin.java Fri Dec 8 19:37:27 2017 @@ -24,6 +24,7 @@ import java.awt.Graphics2D; import java.awt.RenderingHints; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.util.Vote; import org.apache.pivot.wtk.BoxPane; @@ -602,6 +603,10 @@ public class TerraExpanderSkin extends E setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListButtonSkin.java Fri Dec 8 19:37:27 2017 @@ -29,6 +29,7 @@ import java.awt.geom.RoundRectangle2D; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.util.Vote; import org.apache.pivot.wtk.ApplicationContext; @@ -602,6 +603,10 @@ public class TerraListButtonSkin extends setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java Fri Dec 8 19:37:27 2017 @@ -27,6 +27,7 @@ import java.awt.geom.Path2D; import java.awt.geom.RoundRectangle2D; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.wtk.Bounds; import org.apache.pivot.wtk.Button; @@ -499,14 +500,16 @@ public class TerraMenuButtonSkin extends setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } public final void setPadding(Number padding) { - Utils.checkNull(padding, "padding"); - - setPadding(padding.intValue()); + setPadding(new Insets(padding)); } public final void setPadding(String padding) { Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPaletteSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPaletteSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPaletteSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPaletteSkin.java Fri Dec 8 19:37:27 2017 @@ -25,6 +25,7 @@ import java.awt.RenderingHints; import java.awt.geom.Line2D; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.wtk.Bounds; import org.apache.pivot.wtk.BoxPane; @@ -430,6 +431,10 @@ public class TerraPaletteSkin extends Wi setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraPushButtonSkin.java Fri Dec 8 19:37:27 2017 @@ -25,6 +25,7 @@ import java.awt.RenderingHints; import java.awt.geom.RoundRectangle2D; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.wtk.Button; import org.apache.pivot.wtk.Component; @@ -428,6 +429,10 @@ public class TerraPushButtonSkin extends setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSheetSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSheetSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSheetSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSheetSkin.java Fri Dec 8 19:37:27 2017 @@ -21,6 +21,7 @@ import java.awt.Graphics2D; import java.awt.Toolkit; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.util.Vote; import org.apache.pivot.wtk.Bounds; @@ -545,6 +546,10 @@ public class TerraSheetSkin extends Wind setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java Fri Dec 8 19:37:27 2017 @@ -1248,14 +1248,16 @@ public class TerraTabPaneSkin extends Ta setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } public final void setPadding(Number padding) { - Utils.checkNull(padding, "padding"); - - setPadding(padding.intValue()); + setPadding(new Insets(padding)); } public final void setPadding(String padding) { Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTextInputSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTextInputSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTextInputSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTextInputSkin.java Fri Dec 8 19:37:27 2017 @@ -34,6 +34,7 @@ import java.awt.geom.Rectangle2D; import java.text.AttributedCharacterIterator; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.text.AttributedStringCharacterIterator; import org.apache.pivot.text.CompositeIterator; import org.apache.pivot.util.StringUtils; @@ -1017,6 +1018,10 @@ public class TerraTextInputSkin extends setPadding(new Insets(padding)); } + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + public final void setPadding(int padding) { setPadding(new Insets(padding)); } Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Bounds.java Fri Dec 8 19:37:27 2017 @@ -20,6 +20,7 @@ import java.io.Serializable; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.json.JSONSerializer; import org.apache.pivot.serialization.SerializationException; import org.apache.pivot.util.Utils; @@ -118,6 +119,15 @@ public final class Bounds implements Ser height = bounds.getInt(HEIGHT_KEY); } + public Bounds(Sequence<?> bounds) { + Utils.checkNull(bounds, "bounds"); + + x = ((Number)bounds.get(0)).intValue(); + y = ((Number)bounds.get(1)).intValue(); + width = ((Number)bounds.get(2)).intValue(); + height = ((Number)bounds.get(3)).intValue(); + } + /** * Convert a {@link java.awt.Rectangle} to one of our bounds objects. * @param rectangle The existing rectangle to convert (cannot @@ -428,9 +438,7 @@ public final class Bounds implements Ser } } else if (boundsValue.startsWith("[")) { try { - @SuppressWarnings("unchecked") - List<Integer> values = (List<Integer>)JSONSerializer.parseList(boundsValue); - bounds = new Bounds(values.get(0), values.get(1), values.get(2), values.get(3)); + bounds = new Bounds(JSONSerializer.parseList(boundsValue)); } catch (SerializationException exception) { throw new IllegalArgumentException(exception); } Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/CornerRadii.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/CornerRadii.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/CornerRadii.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/CornerRadii.java Fri Dec 8 19:37:27 2017 @@ -20,6 +20,7 @@ import java.io.Serializable; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.json.JSONSerializer; import org.apache.pivot.serialization.SerializationException; import org.apache.pivot.util.Utils; @@ -111,6 +112,17 @@ public final class CornerRadii implement check(this); } + public CornerRadii(Sequence<?> cornerRadii) { + Utils.checkNull(cornerRadii, "cornerRadii"); + + topLeft = ((Number)cornerRadii.get(0)).intValue(); + topRight = ((Number)cornerRadii.get(1)).intValue(); + bottomLeft = ((Number)cornerRadii.get(2)).intValue(); + bottomRight = ((Number)cornerRadii.get(3)).intValue(); + + check(this); + } + @Override public boolean equals(Object object) { boolean equals = false; @@ -175,9 +187,7 @@ public final class CornerRadii implement } } else if (value.startsWith("[")) { try { - @SuppressWarnings("unchecked") - List<Integer> values = (List<Integer>)JSONSerializer.parseList(value); - cornerRadii = new CornerRadii(values.get(0), values.get(1), values.get(2), values.get(3)); + cornerRadii = new CornerRadii(JSONSerializer.parseList(value)); } catch (SerializationException exception) { throw new IllegalArgumentException(exception); } @@ -202,4 +212,5 @@ public final class CornerRadii implement return cornerRadii; } + } Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Dimensions.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Dimensions.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/Dimensions.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Dimensions.java Fri Dec 8 19:37:27 2017 @@ -20,6 +20,7 @@ import java.io.Serializable; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.json.JSONSerializer; import org.apache.pivot.serialization.SerializationException; import org.apache.pivot.util.Utils; @@ -67,6 +68,13 @@ public final class Dimensions implements height = dimensions.getInt(HEIGHT_KEY, 0); } + public Dimensions(Sequence<?> dimensions) { + Utils.checkNull(dimensions, "dimensions"); + + width = ((Number)dimensions.get(0)).intValue(); + height = ((Number)dimensions.get(1)).intValue(); + } + /** * Expand this dimensions by the given amount (positive or * negative) in both width and height directions. @@ -150,9 +158,7 @@ public final class Dimensions implements } } else if (value.startsWith("[")) { try { - @SuppressWarnings("unchecked") - List<Integer> values = (List<Integer>)JSONSerializer.parseList(value); - dimensions = new Dimensions(values.get(0), values.get(1)); + dimensions = new Dimensions(JSONSerializer.parseList(value)); } catch (SerializationException exception) { throw new IllegalArgumentException(exception); } Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Insets.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Insets.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/Insets.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Insets.java Fri Dec 8 19:37:27 2017 @@ -20,6 +20,7 @@ import java.io.Serializable; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.json.JSONSerializer; import org.apache.pivot.serialization.SerializationException; import org.apache.pivot.util.Utils; @@ -123,7 +124,15 @@ public final class Insets implements Ser this.left = insets.getInt(LEFT_KEY); this.bottom = insets.getInt(BOTTOM_KEY); this.right = insets.getInt(RIGHT_KEY); + } + + public Insets(Sequence<?> insets) { + Utils.checkNull(insets, "padding/margin"); + this.top = ((Number)insets.get(0)).intValue(); + this.left = ((Number)insets.get(1)).intValue(); + this.bottom = ((Number)insets.get(2)).intValue(); + this.right = ((Number)insets.get(3)).intValue(); } /** @@ -214,9 +223,7 @@ public final class Insets implements Ser } } else if (value.startsWith("[")) { try { - @SuppressWarnings("unchecked") - List<Integer> values = (List<Integer>)JSONSerializer.parseList(value); - insets = new Insets(values.get(0), values.get(1), values.get(2), values.get(3)); + insets = new Insets(JSONSerializer.parseList(value)); } catch (SerializationException exception) { throw new IllegalArgumentException(exception); } Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Limits.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Limits.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/Limits.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Limits.java Fri Dec 8 19:37:27 2017 @@ -20,6 +20,7 @@ import java.io.Serializable; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.json.JSONSerializer; import org.apache.pivot.serialization.SerializationException; import org.apache.pivot.util.Utils; @@ -78,7 +79,7 @@ public final class Limits implements Ser * {@link #MAXIMUM_KEY}. Missing minimum value will set {@link Integer#MIN_VALUE} * as the min, and missing maximum will set {@link Integer#MAX_VALUE} as the max. * - * @param limits The JSON-formatted dictionary containing the desired limits values. + * @param limits The map/dictionary containing the desired limits values. * @throws IllegalArgumentException if the min is greater than the max. */ public Limits(Dictionary<String, ?> limits) { @@ -92,6 +93,17 @@ public final class Limits implements Ser } } + public Limits(Sequence<?> limits) { + Utils.checkNull(limits, "limits"); + + minimum = ((Number)limits.get(0)).intValue(); + maximum = ((Number)limits.get(1)).intValue(); + + if (minimum > maximum) { + throw new IllegalArgumentException("minimum is greater than maximum."); + } + } + /** * @return The range of this limits, that is, the maximum less the minimum * plus one (since the limits are inclusive). Returns a long value because @@ -203,9 +215,7 @@ public final class Limits implements Ser } } else if (value.startsWith("[")) { try { - @SuppressWarnings("unchecked") - List<Integer> values = (List<Integer>)JSONSerializer.parseList(value); - limits = new Limits(values.get(0), values.get(1)); + limits = new Limits(JSONSerializer.parseList(value)); } catch (SerializationException exception) { throw new IllegalArgumentException(exception); } Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Point.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Point.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/Point.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Point.java Fri Dec 8 19:37:27 2017 @@ -20,6 +20,7 @@ import java.io.Serializable; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.json.JSONSerializer; import org.apache.pivot.serialization.SerializationException; import org.apache.pivot.util.Utils; @@ -58,6 +59,13 @@ public final class Point implements Seri this.y = point.getInt(Y_KEY); } + public Point(Sequence<?> point) { + Utils.checkNull(point, "point"); + + this.x = ((Number)point.get(0)).intValue(); + this.y = ((Number)point.get(1)).intValue(); + } + /** * Return a new <tt>Point</tt> object which represents * this point moved to a new location, <tt>dx</tt> and @@ -124,9 +132,7 @@ public final class Point implements Seri } } else if (value.startsWith("[")) { try { - @SuppressWarnings("unchecked") - List<Integer> values = (List<Integer>)JSONSerializer.parseList(value); - point = new Point(values.get(0), values.get(1)); + point = new Point(JSONSerializer.parseList(value)); } catch (SerializationException exception) { throw new IllegalArgumentException(exception); } Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Span.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Span.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/Span.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Span.java Fri Dec 8 19:37:27 2017 @@ -18,6 +18,7 @@ package org.apache.pivot.wtk; import org.apache.pivot.collections.Dictionary; import org.apache.pivot.collections.List; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.json.JSONSerializer; import org.apache.pivot.serialization.SerializationException; import org.apache.pivot.util.Utils; @@ -91,6 +92,13 @@ public final class Span { end = span.getInt(END_KEY); } + public Span(Sequence<?> span) { + Utils.checkNull(span, "span"); + + start = ((Number)span.get(0)).intValue(); + end = ((Number)span.get(1)).intValue(); + } + /** * Returns the length of the span. * @@ -347,9 +355,7 @@ public final class Span { } } else if (value.startsWith("[")) { try { - @SuppressWarnings("unchecked") - List<Integer> values = (List<Integer>)JSONSerializer.parseList(value); - span = new Span(values.get(0), values.get(1)); + span = new Span(JSONSerializer.parseList(value)); } catch (SerializationException exception) { throw new IllegalArgumentException(exception); } Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BorderSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BorderSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BorderSkin.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BorderSkin.java Fri Dec 8 19:37:27 2017 @@ -29,6 +29,7 @@ import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.wtk.Border; import org.apache.pivot.wtk.BorderListener; @@ -409,13 +410,24 @@ public class BorderSkin extends Containe * Sets the amount of space to leave between the edge of the Border and its * content. * - * @param padding A dictionary with keys in the set {left, top, bottom, + * @param padding A dictionary with keys in the set {top, left, bottom, * right}. */ public final void setPadding(Dictionary<String, ?> padding) { setPadding(new Insets(padding)); } + /** + * Sets the amount of space to leave between the edge of the Border and its + * content. + * + * @param padding A sequence with values in the order [top, left, bottom, + * right]. + */ + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + /** * Sets the amount of space to leave between the edge of the Border and its * content, uniformly on all four edges. Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BoxPaneSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BoxPaneSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BoxPaneSkin.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/BoxPaneSkin.java Fri Dec 8 19:37:27 2017 @@ -17,6 +17,7 @@ package org.apache.pivot.wtk.skin; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.wtk.BoxPane; import org.apache.pivot.wtk.BoxPaneListener; @@ -560,13 +561,24 @@ public class BoxPaneSkin extends Contain * Sets the amount of space to leave between the edge of the BoxPane and its * components. * - * @param padding A dictionary with keys in the set {left, top, bottom, + * @param padding A dictionary with keys in the set {top, left, bottom, * right}. */ public final void setPadding(Dictionary<String, ?> padding) { setPadding(new Insets(padding)); } + /** + * Sets the amount of space to leave between the edge of the BoxPane and its + * components. + * + * @param padding A sequence with values in the order [top, left, bottom, + * right]. + */ + public final void setPadding(Sequence<?> padding) { + setPadding(new Insets(padding)); + } + /** * Sets the amount of space to leave between the edge of the BoxPane and its * components, uniformly on all four edges. Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/LabelSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/LabelSkin.java?rev=1817549&r1=1817548&r2=1817549&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/LabelSkin.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/LabelSkin.java Fri Dec 8 19:37:27 2017 @@ -31,6 +31,7 @@ import java.text.StringCharacterIterator import org.apache.pivot.collections.ArrayList; import org.apache.pivot.collections.Dictionary; +import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Utils; import org.apache.pivot.wtk.Component; import org.apache.pivot.wtk.Dimensions; @@ -640,12 +641,21 @@ public class LabelSkin extends Component * Sets the amount of space to leave between the edge of the Label and its * text. * - * @param padding A dictionary with keys in the set {left, top, bottom, + * @param padding A dictionary with keys in the set {top, left, bottom, * right}. */ public final void setPadding(Dictionary<String, ?> padding) { - Utils.checkNull(padding, "padding"); + setPadding(new Insets(padding)); + } + /** + * Sets the amount of space to leave between the edge of the Label and its + * text. + * + * @param padding A sequence with values in the order [top, left, bottom, + * right]. + */ + public final void setPadding(Sequence<?> padding) { setPadding(new Insets(padding)); } @@ -666,9 +676,7 @@ public class LabelSkin extends Component * @param padding The new (integer) padding value to use for all edges. */ public final void setPadding(Number padding) { - Utils.checkNull(padding, "padding"); - - setPadding(padding.intValue()); + setPadding(new Insets(padding)); } /** @@ -679,8 +687,6 @@ public class LabelSkin extends Component * keys left, top, bottom, and/or right. */ public final void setPadding(String padding) { - Utils.checkNull(padding, "padding"); - setPadding(Insets.decode(padding)); }