Initial revision
[old-projects.git] / ekit / com / hexidec / ekit / component / FileDialog.java
diff --git a/ekit/com/hexidec/ekit/component/FileDialog.java b/ekit/com/hexidec/ekit/component/FileDialog.java
new file mode 100644 (file)
index 0000000..7dd3b2f
--- /dev/null
@@ -0,0 +1,113 @@
+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