1/* 2 * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26package build.tools.generatenimbus; 27 28import javax.xml.bind.annotation.XmlAttribute; 29import javax.xml.bind.annotation.XmlElement; 30 31class UIProperty extends UIDefault<String> { 32 public static enum PropertyType { 33 BOOLEAN, INT, FLOAT, DOUBLE, STRING, FONT, COLOR, INSETS, DIMENSION, BORDER 34 } 35 @XmlAttribute private PropertyType type; 36 37 @XmlElement private Border border; 38 @XmlElement private Dimension dimension; 39 @XmlElement private Insets insets; 40 @XmlElement private Matte matte; 41 @XmlElement private Typeface typeface; 42 43 @XmlAttribute 44 @Override public void setValue(String value) { 45 super.setValue(value); 46 } 47 48 public String write(String prefix) { 49 switch (type) { 50 case BOOLEAN: 51 return String.format(" d.put(\"%s%s\", Boolean.%s);\n", 52 prefix, getName(), getValue().toUpperCase()); ///autobox 53 case STRING: 54 return String.format(" d.put(\"%s%s\", \"%s\");\n", 55 prefix, getName(), getValue()); 56 case INT: 57 return String.format(" d.put(\"%s%s\", Integer.valueOf(%s));\n", 58 prefix, getName(), getValue()); 59 case FLOAT: 60 return String.format(" d.put(\"%s%s\", Float.valueOf(%sf));\n", 61 prefix, getName(), getValue()); 62 case DOUBLE: 63 return String.format(" d.put(\"%s%s\", Double.valueOf(%s));\n", 64 prefix, getName(), getValue()); 65 case COLOR: 66 return String.format(" addColor(d, \"%s%s\", %s);\n", 67 prefix, getName(), matte.write()); 68 case FONT: 69 return String.format(" d.put(\"%s%s\", %s);\n", 70 prefix, getName(), typeface.write()); 71 case INSETS: 72 return String.format(" d.put(\"%s%s\", %s);\n", 73 prefix, getName(), insets.write(true)); 74 case DIMENSION: 75 return String.format(" d.put(\"%s%s\", new DimensionUIResource(%d, %d));\n", 76 prefix, getName(), dimension.width, dimension.height); 77 case BORDER: 78 return String.format(" d.put(\"%s%s\", new BorderUIResource(%s));\n", 79 prefix, getName(), border.write()); 80 default: 81 return "### Look, something's wrong with UIProperty.write() $$$"; 82 } 83 } 84} 85