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 java.util.ArrayList; 29import java.util.List; 30import javax.xml.bind.annotation.XmlElement; 31import javax.xml.bind.annotation.XmlElementWrapper; 32 33 34class UIStyle { 35 public static enum CacheMode { 36 NO_CACHING, FIXED_SIZES, NINE_SQUARE_SCALE 37 } 38 39 @XmlElement private UIColor textForeground = null; 40 @XmlElement(name="inherit-textForeground") 41 private boolean textForegroundInherited = true; 42 43 @XmlElement private UIColor textBackground = null; 44 @XmlElement(name="inherit-textBackground") 45 private boolean textBackgroundInherited = true; 46 47 @XmlElement private UIColor background = null; 48 @XmlElement(name="inherit-background") 49 private boolean backgroundInherited = true; 50 51 @XmlElement private boolean cacheSettingsInherited = true; 52 @XmlElement CacheMode cacheMode = CacheMode.FIXED_SIZES; 53 @XmlElement String maxHozCachedImgScaling = "1.0"; 54 @XmlElement String maxVertCachedImgScaling = "1.0"; 55 56 @XmlElement(name="uiProperty") 57 @XmlElementWrapper(name="uiproperties") 58 private List<UIProperty> uiProperties = new ArrayList<UIProperty>(); 59 60 private UIStyle parentStyle = null; 61 public void setParentStyle(UIStyle parentStyle) { 62 this.parentStyle = parentStyle; 63 } 64 65 public CacheMode getCacheMode() { 66 if (cacheSettingsInherited) { 67 return (parentStyle == null ? 68 CacheMode.FIXED_SIZES : parentStyle.getCacheMode()); 69 } else { 70 return cacheMode; 71 } 72 } 73 74 public String getMaxHozCachedImgScaling() { 75 if (cacheSettingsInherited) { 76 return (parentStyle == null ? 77 "1.0" : parentStyle.getMaxHozCachedImgScaling()); 78 } else { 79 return maxHozCachedImgScaling; 80 } 81 } 82 83 public String getMaxVertCachedImgScaling() { 84 if (cacheSettingsInherited) { 85 return (parentStyle == null ? 86 "1.0" : parentStyle.getMaxVertCachedImgScaling()); 87 } else { 88 return maxVertCachedImgScaling; 89 } 90 } 91 92 public String write(String prefix) { 93 StringBuilder sb = new StringBuilder(); 94 if (! textForegroundInherited) { 95 sb.append(String.format(" addColor(d, \"%s%s\", %s);\n", 96 prefix, "textForeground", textForeground.getValue().write())); 97 } 98 if (! textBackgroundInherited) { 99 sb.append(String.format(" addColor(d, \"%s%s\", %s);\n", 100 prefix, "textBackground", textBackground.getValue().write())); 101 } 102 if (! backgroundInherited) { 103 sb.append(String.format(" addColor(d, \"%s%s\", %s);\n", 104 prefix, "background", background.getValue().write())); 105 } 106 for (UIProperty property : uiProperties) { 107 sb.append(property.write(prefix)); 108 } 109 return sb.toString(); 110 } 111} 112