Initial revision
[old-projects.git] / ekit / com / hexidec / ekit / component / FileDialog.java
CommitLineData
c2da4d40
JL
1package com.hexidec.ekit.component;\r
2\r
3import com.hexidec.ekit.EkitCore;\r
4import java.awt.event.ActionListener;\r
5import java.awt.Container;\r
6import javax.swing.border.*;\r
7import javax.swing.BorderFactory;\r
8import javax.swing.BoxLayout;\r
9import javax.swing.event.ListSelectionListener;\r
10import javax.swing.event.ListSelectionEvent;\r
11import javax.swing.JButton;\r
12import javax.swing.JDialog;\r
13import javax.swing.JList;\r
14import javax.swing.JPanel;\r
15import javax.swing.JScrollPane;\r
16import javax.swing.ListSelectionModel;\r
17import javax.swing.SwingConstants;\r
18import javax.swing.WindowConstants;\r
19\r
20public class FileDialog extends JDialog implements ActionListener\r
21{\r
22 private EkitCore ParentEkit;\r
23 private JList FileList;\r
24 private String FileDir;\r
25 private String[]Files;\r
26 private String SelectedFile;\r
27\r
28 public FileDialog(EkitCore parentEkit, String fileDir, String[] fileList, String title, boolean modal)\r
29 {\r
30 super(parentEkit.getFrame(), title, modal);\r
31 FileDir = fileDir;\r
32 Files = fileList;\r
33 ParentEkit = parentEkit;\r
34 init();\r
35 }\r
36\r
37 public void actionPerformed(java.awt.event.ActionEvent e)\r
38 {\r
39 if(e.getActionCommand().equals("save"))\r
40 {\r
41 hide();\r
42 }\r
43 else if(e.getActionCommand().equals("cancel"))\r
44 {\r
45 SelectedFile = null;\r
46 hide();\r
47 }\r
48 }\r
49\r
50 public void init()\r
51 {\r
52 SelectedFile="";\r
53 Container contentPane = getContentPane();\r
54 contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));\r
55 setBounds(100,100,300,200);\r
56 setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);\r
57\r
58 FileList = new JList(Files);\r
59 FileList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
60 FileList.clearSelection();\r
61 ListSelectionModel lsm = FileList.getSelectionModel();\r
62\r
63 lsm.addListSelectionListener(new ListSelectionListener() \r
64 {\r
65 public void valueChanged(ListSelectionEvent e)\r
66 {\r
67 if(!e.getValueIsAdjusting())\r
68 {\r
69 ListSelectionModel sm = FileList.getSelectionModel();\r
70 if(!sm.isSelectionEmpty())\r
71 {\r
72 SelectedFile = Files[sm.getMinSelectionIndex()];\r
73 }\r
74 }\r
75 }\r
76 \r
77 });\r
78\r
79 JScrollPane fileScrollPane = new JScrollPane(FileList);\r
80 fileScrollPane.setAlignmentX(LEFT_ALIGNMENT);\r
81 JPanel centerPanel = new JPanel();\r
82 centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.X_AXIS));\r
83 centerPanel.add(fileScrollPane);\r
84 centerPanel.setBorder(BorderFactory.createTitledBorder("Files"));\r
85\r
86 JPanel buttonPanel= new JPanel(); \r
87 buttonPanel.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));\r
88\r
89 JButton saveButton = new JButton("Accept");\r
90 saveButton.setActionCommand("save");\r
91 saveButton.addActionListener(this);\r
92 JButton cancelButton = new JButton("Cancel");\r
93 cancelButton.setActionCommand("cancel");\r
94 cancelButton.addActionListener(this);\r
95\r
96 buttonPanel.add(saveButton);\r
97 buttonPanel.add(cancelButton);\r
98\r
99 contentPane.add(centerPanel);\r
100 contentPane.add(buttonPanel);\r
101 setVisible(true);\r
102 }\r
103\r
104 public String getSelectedFile()\r
105 {\r
106 if(SelectedFile != null)\r
107 {\r
108 SelectedFile = FileDir + "/" + SelectedFile;\r
109 }\r
110 return SelectedFile;\r
111 }\r
112\r
113}\r