001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.xml.wsdl.ui.wizard;
043:
044: import java.awt.Component;
045: import javax.swing.JComponent;
046: import javax.swing.JLabel;
047: import javax.swing.text.JTextComponent;
048: import org.openide.WizardDescriptor;
049:
050: /**
051: *
052: * @author mkuchtiak
053: */
054: public class Utilities {
055:
056: public static String[] createSteps(String[] before,
057: WizardDescriptor.Panel[] panels) {
058: //assert panels != null;
059: // hack to use the steps set before this panel processed
060: int diff = 0;
061: if (before == null) {
062: before = new String[0];
063: } else if (before.length > 0) {
064: diff = ("...".equals(before[before.length - 1])) ? 1 : 0; // NOI18N
065: }
066: String[] res = new String[(before.length - diff)
067: + panels.length];
068: for (int i = 0; i < res.length; i++) {
069: if (i < (before.length - diff)) {
070: res[i] = before[i];
071: } else {
072: res[i] = panels[i - before.length + diff]
073: .getComponent().getName();
074: }
075: }
076: return res;
077: }
078:
079: public static void replaceInDocument(
080: javax.swing.text.Document document, String replaceFrom,
081: String replaceTo) {
082: javax.swing.text.AbstractDocument doc = (javax.swing.text.AbstractDocument) document;
083: int len = replaceFrom.length();
084: try {
085: String content = doc.getText(0, doc.getLength());
086: int index = content.lastIndexOf(replaceFrom);
087: while (index >= 0) {
088: doc.replace(index, len, replaceTo, null);
089: content = content.substring(0, index);
090: index = content.lastIndexOf(replaceFrom);
091: }
092: } catch (javax.swing.text.BadLocationException ex) {
093: }
094: }
095:
096: /*
097: * Changes the text of a JLabel in component from oldLabel to newLabel
098: */
099: public static JTextComponent findTextFieldForLabel(
100: JComponent component, String text) {
101: JLabel label = findLabel(component, text);
102: if (label != null) {
103: Component comp = label.getLabelFor();
104: if (comp != null && (comp instanceof JTextComponent))
105: return (JTextComponent) comp;
106: }
107: return null;
108: }
109:
110: private static JLabel findLabel(JComponent component, String text) {
111: Component[] components = component.getComponents();
112: for (Component comp : components) {
113: if (comp instanceof JLabel) {
114: if (((JLabel) comp).getText().equals(text)) {
115: return (JLabel) comp;
116: }
117: } else if (comp instanceof JComponent) {
118: return findLabel((JComponent) comp, text);
119: }
120: }
121: return null;
122: }
123: }
|