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-2006 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: /*
043: * Utils.java
044: *
045: * Created on April 12, 2004, 6:53 PM
046: */
047: package org.netbeans.modules.mobility.project.ui.wizard;
048:
049: import java.io.File;
050: import javax.swing.JComponent;
051: import javax.swing.JFileChooser;
052: import javax.swing.filechooser.FileFilter;
053: import org.openide.util.NbBundle;
054:
055: /**
056: *
057: * @author David Kaspar
058: */
059: public class Utils {
060:
061: private Utils() {
062: //To avoid instantiation
063: }
064:
065: public static String browseFolder(final JComponent parent,
066: final String oldValue, final String title) {
067: return browseFilter(parent, oldValue, title,
068: JFileChooser.DIRECTORIES_ONLY, new FileFilter() {
069: public boolean accept(File f) {
070: return f.exists() && f.canRead()
071: && f.isDirectory();
072: }
073:
074: public String getDescription() {
075: return NbBundle.getMessage(Utils.class,
076: "LBL_Utils_FolderFilter"); // NOI18N
077: }
078: });
079: }
080:
081: public static String browseFilter(final JComponent parent,
082: final String oldValue, final String title,
083: final int fileSelection, final FileFilter filter) {
084: final JFileChooser chooser = new JFileChooser();
085: chooser.setFileSelectionMode(fileSelection);
086: chooser.setFileFilter(filter);
087: if (oldValue != null)
088: chooser.setSelectedFile(new File(oldValue));
089: chooser.setDialogTitle(title);
090: if (chooser.showOpenDialog(parent) == JFileChooser.APPROVE_OPTION) {
091: return chooser.getSelectedFile().getAbsolutePath();
092: }
093: return null;
094: }
095:
096: public static File findSubFile(final File[] files,
097: final String fileName) {
098: final String lowerCaseFileName = fileName.toLowerCase();
099: File aprox = null;
100: if (files != null)
101: for (int a = 0; a < files.length; a++) {
102: final File file = files[a];
103: final String name = file.getName();
104: if (fileName.equals(name))
105: return file;
106: if (lowerCaseFileName.equals(name.toLowerCase()))
107: aprox = file;
108: }
109: return aprox;
110: }
111:
112: public static File findAnyFile(final File[] files, String ext) {
113: ext = ext.toLowerCase();
114: if (files != null)
115: for (int a = 0; a < files.length; a++) {
116: final File file = files[a];
117: final String name = file.getName();
118: final int i = name.lastIndexOf('.');
119: if (i >= 0) {
120: if (ext.equals(name.substring(i + 1).toLowerCase()))
121: return file;
122: }
123: }
124: return null;
125: }
126:
127: }
|