--- /dev/null
+package com.hexidec.ekit.component;\r
+\r
+import com.hexidec.ekit.EkitCore;\r
+import java.awt.event.ActionListener;\r
+import java.awt.Container;\r
+import javax.swing.border.*;\r
+import javax.swing.BorderFactory;\r
+import javax.swing.BoxLayout;\r
+import javax.swing.event.ListSelectionListener;\r
+import javax.swing.event.ListSelectionEvent;\r
+import javax.swing.JButton;\r
+import javax.swing.JDialog;\r
+import javax.swing.JList;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.SwingConstants;\r
+import javax.swing.WindowConstants;\r
+\r
+public class FileDialog extends JDialog implements ActionListener\r
+{\r
+ private EkitCore ParentEkit;\r
+ private JList FileList;\r
+ private String FileDir;\r
+ private String[]Files;\r
+ private String SelectedFile;\r
+\r
+ public FileDialog(EkitCore parentEkit, String fileDir, String[] fileList, String title, boolean modal)\r
+ {\r
+ super(parentEkit.getFrame(), title, modal);\r
+ FileDir = fileDir;\r
+ Files = fileList;\r
+ ParentEkit = parentEkit;\r
+ init();\r
+ }\r
+\r
+ public void actionPerformed(java.awt.event.ActionEvent e)\r
+ {\r
+ if(e.getActionCommand().equals("save"))\r
+ {\r
+ hide();\r
+ }\r
+ else if(e.getActionCommand().equals("cancel"))\r
+ {\r
+ SelectedFile = null;\r
+ hide();\r
+ }\r
+ }\r
+\r
+ public void init()\r
+ {\r
+ SelectedFile="";\r
+ Container contentPane = getContentPane();\r
+ contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));\r
+ setBounds(100,100,300,200);\r
+ setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);\r
+\r
+ FileList = new JList(Files);\r
+ FileList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ FileList.clearSelection();\r
+ ListSelectionModel lsm = FileList.getSelectionModel();\r
+\r
+ lsm.addListSelectionListener(new ListSelectionListener() \r
+ {\r
+ public void valueChanged(ListSelectionEvent e)\r
+ {\r
+ if(!e.getValueIsAdjusting())\r
+ {\r
+ ListSelectionModel sm = FileList.getSelectionModel();\r
+ if(!sm.isSelectionEmpty())\r
+ {\r
+ SelectedFile = Files[sm.getMinSelectionIndex()];\r
+ }\r
+ }\r
+ }\r
+ \r
+ });\r
+\r
+ JScrollPane fileScrollPane = new JScrollPane(FileList);\r
+ fileScrollPane.setAlignmentX(LEFT_ALIGNMENT);\r
+ JPanel centerPanel = new JPanel();\r
+ centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.X_AXIS));\r
+ centerPanel.add(fileScrollPane);\r
+ centerPanel.setBorder(BorderFactory.createTitledBorder("Files"));\r
+\r
+ JPanel buttonPanel= new JPanel(); \r
+ buttonPanel.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));\r
+\r
+ JButton saveButton = new JButton("Accept");\r
+ saveButton.setActionCommand("save");\r
+ saveButton.addActionListener(this);\r
+ JButton cancelButton = new JButton("Cancel");\r
+ cancelButton.setActionCommand("cancel");\r
+ cancelButton.addActionListener(this);\r
+\r
+ buttonPanel.add(saveButton);\r
+ buttonPanel.add(cancelButton);\r
+\r
+ contentPane.add(centerPanel);\r
+ contentPane.add(buttonPanel);\r
+ setVisible(true);\r
+ }\r
+\r
+ public String getSelectedFile()\r
+ {\r
+ if(SelectedFile != null)\r
+ {\r
+ SelectedFile = FileDir + "/" + SelectedFile;\r
+ }\r
+ return SelectedFile;\r
+ }\r
+\r
+}\r