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