Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/make/src/classes/build/tools/generatenimbus/Utils.java
32287 views
/*1* Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425package build.tools.generatenimbus;2627import java.util.ArrayList;28import java.util.List;29import javax.swing.plaf.synth.Region;3031public class Utils {3233public static String escape(String s) {34return s.replace("\"", "\\\"");35}3637public static String normalize(String s) {38char[] src = s.toCharArray();39StringBuilder buf = new StringBuilder();40List<String> parts = new ArrayList<String>();41boolean capitalize = false;4243for (int i = 0; i < src.length; i++) {44switch (src[i]) {45case '\\':46case '"':47break;48case '.':49capitalize = true;50break;51case ':':52parts.add(buf.toString());53buf.delete(0, buf.length());54capitalize = true;55break;56default:57buf.append(capitalize ? Character.toUpperCase(src[i]) : src[i]);58capitalize = false;59break;60}61}62parts.add(buf.toString());6364// Try to optimize long class names by omitting repeating prefixes, e.g.65// SliderTrackPainter.java instead of SliderSliderTrackPainter.java66String result = parts.get(0);67for (int i = 1; i < parts.size(); i++) {68String part = parts.get(i);69if (part.startsWith(result)) {70result = part;71} else {72result += part;73}74}75return result;76}7778public static String regionNameToCaps(String regionName) {79if (Region.ARROW_BUTTON.getName().equals(regionName)) {80return "ARROW_BUTTON";81} else if (Region.BUTTON.getName().equals(regionName)) {82return "BUTTON";83} else if (Region.CHECK_BOX.getName().equals(regionName)) {84return "CHECK_BOX";85} else if (Region.CHECK_BOX_MENU_ITEM.getName().equals(regionName)) {86return "CHECK_BOX_MENU_ITEM";87} else if (Region.COLOR_CHOOSER.getName().equals(regionName)) {88return "COLOR_CHOOSER";89} else if (Region.COMBO_BOX.getName().equals(regionName)) {90return "COMBO_BOX";91} else if (Region.DESKTOP_ICON.getName().equals(regionName)) {92return "DESKTOP_ICON";93} else if (Region.DESKTOP_PANE.getName().equals(regionName)) {94return "DESKTOP_PANE";95} else if (Region.EDITOR_PANE.getName().equals(regionName)) {96return "EDITOR_PANE";97} else if (Region.FILE_CHOOSER.getName().equals(regionName)) {98return "FILE_CHOOSER";99} else if (Region.FORMATTED_TEXT_FIELD.getName().equals(regionName)) {100return "FORMATTED_TEXT_FIELD";101} else if (Region.INTERNAL_FRAME.getName().equals(regionName)) {102return "INTERNAL_FRAME";103} else if (Region.INTERNAL_FRAME_TITLE_PANE.getName().equals(regionName)) {104return "INTERNAL_FRAME_TITLE_PANE";105} else if (Region.LABEL.getName().equals(regionName)) {106return "LABEL";107} else if (Region.LIST.getName().equals(regionName)) {108return "LIST";109} else if (Region.MENU.getName().equals(regionName)) {110return "MENU";111} else if (Region.MENU_BAR.getName().equals(regionName)) {112return "MENU_BAR";113} else if (Region.MENU_ITEM.getName().equals(regionName)) {114return "MENU_ITEM";115} else if (Region.MENU_ITEM_ACCELERATOR.getName().equals(regionName)) {116return "MENU_ITEM_ACCELERATOR";117} else if (Region.OPTION_PANE.getName().equals(regionName)) {118return "OPTION_PANE";119} else if (Region.PANEL.getName().equals(regionName)) {120return "PANEL";121} else if (Region.PASSWORD_FIELD.getName().equals(regionName)) {122return "PASSWORD_FIELD";123} else if (Region.POPUP_MENU.getName().equals(regionName)) {124return "POPUP_MENU";125} else if (Region.POPUP_MENU_SEPARATOR.getName().equals(regionName)) {126return "POPUP_MENU_SEPARATOR";127} else if (Region.PROGRESS_BAR.getName().equals(regionName)) {128return "PROGRESS_BAR";129} else if (Region.RADIO_BUTTON.getName().equals(regionName)) {130return "RADIO_BUTTON";131} else if (Region.RADIO_BUTTON_MENU_ITEM.getName().equals(regionName)) {132return "RADIO_BUTTON_MENU_ITEM";133} else if (Region.ROOT_PANE.getName().equals(regionName)) {134return "ROOT_PANE";135} else if (Region.SCROLL_BAR.getName().equals(regionName)) {136return "SCROLL_BAR";137} else if (Region.SCROLL_BAR_THUMB.getName().equals(regionName)) {138return "SCROLL_BAR_THUMB";139} else if (Region.SCROLL_BAR_TRACK.getName().equals(regionName)) {140return "SCROLL_BAR_TRACK";141} else if (Region.SCROLL_PANE.getName().equals(regionName)) {142return "SCROLL_PANE";143} else if (Region.SEPARATOR.getName().equals(regionName)) {144return "SEPARATOR";145} else if (Region.SLIDER.getName().equals(regionName)) {146return "SLIDER";147} else if (Region.SLIDER_THUMB.getName().equals(regionName)) {148return "SLIDER_THUMB";149} else if (Region.SLIDER_TRACK.getName().equals(regionName)) {150return "SLIDER_TRACK";151} else if (Region.SPINNER.getName().equals(regionName)) {152return "SPINNER";153} else if (Region.SPLIT_PANE.getName().equals(regionName)) {154return "SPLIT_PANE";155} else if (Region.SPLIT_PANE_DIVIDER.getName().equals(regionName)) {156return "SPLIT_PANE_DIVIDER";157} else if (Region.TABBED_PANE.getName().equals(regionName)) {158return "TABBED_PANE";159} else if (Region.TABBED_PANE_CONTENT.getName().equals(regionName)) {160return "TABBED_PANE_CONTENT";161} else if (Region.TABBED_PANE_TAB.getName().equals(regionName)) {162return "TABBED_PANE_TAB";163} else if (Region.TABBED_PANE_TAB_AREA.getName().equals(regionName)) {164return "TABBED_PANE_TAB_AREA";165} else if (Region.TABLE.getName().equals(regionName)) {166return "TABLE";167} else if (Region.TABLE_HEADER.getName().equals(regionName)) {168return "TABLE_HEADER";169} else if (Region.TEXT_AREA.getName().equals(regionName)) {170return "TEXT_AREA";171} else if (Region.TEXT_FIELD.getName().equals(regionName)) {172return "TEXT_FIELD";173} else if (Region.TEXT_PANE.getName().equals(regionName)) {174return "TEXT_PANE";175} else if (Region.TOGGLE_BUTTON.getName().equals(regionName)) {176return "TOGGLE_BUTTON";177} else if (Region.TOOL_BAR.getName().equals(regionName)) {178return "TOOL_BAR";179} else if (Region.TOOL_BAR_CONTENT.getName().equals(regionName)) {180return "TOOL_BAR_CONTENT";181} else if (Region.TOOL_BAR_DRAG_WINDOW.getName().equals(regionName)) {182return "TOOL_BAR_DRAG_WINDOW";183} else if (Region.TOOL_BAR_SEPARATOR.getName().equals(regionName)) {184return "TOOL_BAR_SEPARATOR";185} else if (Region.TOOL_TIP.getName().equals(regionName)) {186return "TOOL_TIP";187} else if (Region.TREE.getName().equals(regionName)) {188return "TREE";189} else if (Region.TREE_CELL.getName().equals(regionName)) {190return "TREE_CELL";191} else if (Region.VIEWPORT.getName().equals(regionName)) {192return "VIEWPORT";193}194throw new RuntimeException("Bad Region name " + regionName);195}196197public static String statesToConstantName(String states) {198String s = states.replace(" ", "");199s = states.replace("+", "_");200return s.toUpperCase();201}202203//takes a states string of the form Enabled+Foo+Bar.204//removes any whitespace. Replaces the + signs with And.205public static String statesToClassName(String states) {206String s = states.replace(" ", "");207s = states.replace("+", "And");208return s;209}210211public static String formatDouble(String doubleValue) {212return doubleValue.replace("INF", "Double.POSITIVE_INFINITY");213}214}215216217