001 /****************************************************************************** 002 * Copyright (C) MActor Developers. All rights reserved. * 003 * ---------------------------------------------------------------------------* 004 * This file is part of MActor. * 005 * * 006 * MActor is free software; you can redistribute it and/or modify * 007 * it under the terms of the GNU General Public License as published by * 008 * the Free Software Foundation; either version 2 of the License, or * 009 * (at your option) any later version. * 010 * * 011 * MActor is distributed in the hope that it will be useful, * 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 014 * GNU General Public License for more details. * 015 * * 016 * You should have received a copy of the GNU General Public License * 017 * along with MActor; if not, write to the Free Software * 018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * 019 ******************************************************************************/ 020 package org.mactor.ui.gui.project.editors; 021 022 import java.awt.event.ActionEvent; 023 import java.io.File; 024 025 import javax.swing.AbstractAction; 026 import javax.swing.JButton; 027 import javax.swing.JFileChooser; 028 import javax.swing.JTextField; 029 030 import org.mactor.framework.spec.ProjectContext; 031 032 public class GlobalDirSelector extends SimpleRowPanel { 033 JTextField path = new JTextField(30); 034 static JFileChooser fc = new JFileChooser(ProjectContext.getGlobalInstance().getProjectDir()); 035 JButton selectButton = new JButton(new AbstractAction("Select..") { 036 public void actionPerformed(ActionEvent e) { 037 int returnVal = fc.showOpenDialog(GlobalDirSelector.this); 038 if (returnVal == JFileChooser.APPROVE_OPTION) { 039 File f = fc.getSelectedFile(); 040 path.setText(f.getAbsolutePath()); 041 } 042 } 043 }); 044 public GlobalDirSelector() { 045 add(path); 046 add(selectButton); 047 fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 048 } 049 public String getPath() { 050 return path.getText(); 051 } 052 public void setPath(String path) { 053 if (path != null && path.length() > 0) 054 fc.setSelectedFile(new File(path).getAbsoluteFile()); 055 this.path.setText(path); 056 } 057 }