diff -ru ./src/editor/GlobalPanel.java /home/diego/workspace/editor2012/src/editor/GlobalPanel.java --- ./src/editor/GlobalPanel.java 2009-11-21 11:22:47.000000000 +0000 +++ /home/diego/workspace/editor2012/src/editor/GlobalPanel.java 2012-01-02 22:14:00.000000000 +0000 @@ -18,6 +18,33 @@ * * You should have received a copy of the GNU General Public License * along with PES Editor. If not, see . + * + * + * The functions: + * + * public static String capitalizeFully(String str, char[] delimiters) + * private static String capitalize(String str, char[] delimiters) + * private static boolean isDelimiter(char ch, char[] delimiters) + * + * have been derived from the Apache Commons 2.5 WordUtils package, under the + * Apache License, Version 2.0, that can be downloaded from: + * + * http://commons.apache.org/lang/ + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package editor; @@ -44,7 +71,7 @@ private JComboBox opBox; - private JButton doButton; + private JButton doButton, uppercaseButton, lowercaseButton; private JComboBox scopeBox; @@ -81,8 +108,10 @@ JPanel panel99 = new JPanel(); JPanel scopePanel = new JPanel(new GridLayout(2, 3)); JPanel main = new JPanel(new GridLayout(0, 1)); + JPanel casepanel = new JPanel(); scopePanel.setBorder(BorderFactory.createTitledBorder("Scope")); panel99.setBorder(BorderFactory.createTitledBorder("Adjustment")); + casepanel.setBorder(BorderFactory.createTitledBorder("Modify player names")); scopeBox = new JComboBox(scopes); teamBox = new JComboBox(); checkBox = new JCheckBox(); @@ -334,6 +363,39 @@ } } }); + + uppercaseButton = new JButton("To uppercase"); + uppercaseButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent a) { + for (int p = 1; p < Player.total; p++) { + Player play = new Player(of, p, 0); + String newName = play.name.toUpperCase(); + play.setName(newName); + } + } + }); + + + lowercaseButton = new JButton("Capitalize"); + lowercaseButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent a) { + char delimiters[] = {' ', '.', '-', '\''}; + for (int p = 1; p < Player.total; p++) { + Player play = new Player(of, p, 0); + String newName = capitalizeFully(play.name, delimiters); + + if (play.name.startsWith("MC")) + newName = "Mc" + capitalizeFully(newName.substring(2), delimiters); + + //newName.spl + + play.setName(newName); + } + } + }); + + + scopePanel.add(new JLabel("Registered Position:")); scopePanel.add(new JLabel("Exclude Team:")); scopePanel.add(new JLabel("Created Players:")); @@ -344,8 +406,11 @@ panel99.add(opBox); panel99.add(numField); panel99.add(doButton); + casepanel.add(uppercaseButton); + casepanel.add(lowercaseButton); main.add(scopePanel); main.add(panel99); + main.add(casepanel); add(main); } @@ -475,4 +540,53 @@ return result; } + + public static String capitalizeFully(String str, char[] delimiters) { + int delimLen = (delimiters == null ? -1 : delimiters.length); + if (str == null || str.length() == 0 || delimLen == 0) { + return str; + } + str = str.toLowerCase(); + return capitalize(str, delimiters); + } + + + private static String capitalize(String str, char[] delimiters) { + int delimLen = (delimiters == null ? -1 : delimiters.length); + if (str == null || str.length() == 0 || delimLen == 0) { + return str; + } + + int strLen = str.length(); + StringBuffer buffer = new StringBuffer(strLen); + boolean capitalizeNext = true; + for (int i = 0; i < strLen; i++) { + char ch = str.charAt(i); + if (isDelimiter(ch, delimiters)) { + buffer.append(ch); + capitalizeNext = true; + } else if (capitalizeNext) { + buffer.append(Character.toTitleCase(ch)); + capitalizeNext = false; + } else { + buffer.append(ch); + } + } + + return buffer.toString(); + } + + private static boolean isDelimiter(char ch, char[] delimiters) { + if (delimiters == null) { + return Character.isWhitespace(ch); + } + for (int i = 0, isize = delimiters.length; i < isize; i++) { + if (ch == delimiters[i]) { + return true; + } + } + return false; + } + + }