View Javadoc

1   /*
2    *  XNap - A P2P framework and client.
3    *
4    *  See the file AUTHORS for copyright information.
5    *
6    *  This program is free software; you can redistribute it and/or modify
7    *  it under the terms of the GNU General Public License as published by
8    *  the Free Software Foundation.
9    *
10   *  This program is distributed in the hope that it will be useful,
11   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   *  GNU General Public License for more details.
14   *
15   *  You should have received a copy of the GNU General Public License
16   *  along with this program; if not, write to the Free Software
17   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18   */
19  
20  package org.xnap.gui.component;
21  
22  import org.xnap.gui.util.GUIHelper;
23  
24  /***
25   * This class provides a {@link DirectoryPanel} for directory
26   * selection.
27   */
28  public class DirectoryList extends AbstractListPanel
29  {
30  
31  	//--- Data field(s) ---
32  
33  	private DirectoryPanel dtfDirectory;
34  
35  	//--- Constructor(s) ---
36  
37  	public DirectoryList(String[] directories, int size, int visibleRows)
38  	{
39  		super(visibleRows);
40  
41  		dtfDirectory = new MyDirectoryPanel("", size);
42  		GUIHelper.bindEnterKeyLocally
43  			(dtfDirectory.getTextField(), getAddAction());
44  		getInputBox().add(dtfDirectory, 0);
45  
46  		addItems(directories);
47  	}
48  
49  	// --- Method(s) ---
50  
51  	public String[] getDirectories()
52  	{
53  		return getStringItems();
54  	}
55  
56  	protected Object getInput()
57  	{
58  		return dtfDirectory.getDirectory();
59  	}
60  
61  	protected void setInput(Object item)
62  	{
63  		dtfDirectory.setDirectory((item != null) ? item.toString() : null);
64  	}
65  
66  	//--- Inner Class(es) ---
67  
68  	private class MyDirectoryPanel extends DirectoryPanel
69  	{
70  		public MyDirectoryPanel(String text, int size)
71  		{
72  			super(text, size);
73  		}
74  
75  		public void directorySelected(String dir)
76  		{
77  			addInput();
78  		}
79  	}
80  }