1 package net.sourceforge.pmd.swingui;
2
3 import net.sourceforge.pmd.PMDDirectory;
4 import net.sourceforge.pmd.PMDException;
5
6 import javax.swing.JButton;
7 import javax.swing.JDialog;
8 import javax.swing.JFrame;
9 import javax.swing.JPanel;
10 import javax.swing.JScrollPane;
11 import javax.swing.JSplitPane;
12 import javax.swing.UIManager;
13 import java.awt.BorderLayout;
14 import java.awt.Color;
15 import java.awt.event.ActionEvent;
16 import java.awt.event.ActionListener;
17 import java.io.File;
18
19 /***
20 *
21 * @author Donald A. Leckie
22 * @since August 29, 2002
23 * @version $Revision: 1.11 $, $Date: 2003/05/28 18:08:35 $
24 */
25 class RulesClassSelectDialog extends JDialog {
26
27 private DirectoryTree m_tree;
28 private DirectoryTable m_table;
29 private JSplitPane m_splitPane;
30 private JScrollPane m_treeScrollPane;
31 private JScrollPane m_tableScrollPane;
32 private File m_selectedClassFile;
33 private boolean m_selectWasPressed;
34
35 /***
36 *******************************************************************************
37 *
38 * @param parentWindow
39 */
40 protected RulesClassSelectDialog(JFrame parentWindow) throws PMDException {
41 super(parentWindow, "Rules Class File Selector", true);
42
43 setSize(ComponentFactory.adjustWindowSize(1200, 800));
44 setLocationRelativeTo(PMDViewer.getViewer());
45 setResizable(true);
46 setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
47 createDirectoryTreeScrollPane();
48 createDirectoryTableScrollPane();
49 createDirectorySplitPane();
50 buildTree();
51 JPanel buttonPanel = createButtonPanel();
52 JPanel contentPanel = new JPanel(new BorderLayout());
53 contentPanel.add(m_splitPane, BorderLayout.CENTER);
54 contentPanel.add(buttonPanel, BorderLayout.SOUTH);
55
56 getContentPane().add(contentPanel);
57 }
58
59 /***
60 *********************************************************************************
61 *
62 */
63 private void createDirectoryTreeScrollPane() {
64 Color background;
65
66 m_tree = new DirectoryTree("Rules Repository");
67 m_treeScrollPane = ComponentFactory.createScrollPane(m_tree);
68 background = UIManager.getColor("pmdTreeBackground");
69
70 m_treeScrollPane.getViewport().setBackground(background);
71 }
72
73 /***
74 *********************************************************************************
75 *
76 */
77 private void createDirectoryTableScrollPane() {
78 Color background;
79
80 m_table = new DirectoryTable(m_tree, ".class");
81 m_tableScrollPane = ComponentFactory.createScrollPane(m_table);
82 background = UIManager.getColor("pmdTableBackground");
83
84 m_tableScrollPane.getViewport().setBackground(background);
85 }
86
87 /***
88 *********************************************************************************
89 *
90 */
91 private void createDirectorySplitPane() {
92 m_splitPane = ComponentFactory.createHorizontalSplitPane(m_treeScrollPane, m_tableScrollPane);
93 }
94
95 /***
96 *******************************************************************************
97 *
98 */
99 private void buildTree() throws PMDException {
100 PMDDirectory pmdDirectory = PMDDirectory.getDirectory();
101 String rulesDirectoryPath = pmdDirectory.getRuleSetsDirectoryPath();
102 File[] rulesDirectory = {new File(rulesDirectoryPath)};
103 ((DirectoryTreeModel) m_tree.getModel()).setupFiles(rulesDirectory);
104 m_tree.expandRootNode();
105 }
106
107 /***
108 *******************************************************************************
109 *
110 */
111 private JPanel createButtonPanel() {
112 ActionListener selectActionListener = new SelectButtonActionListener();
113 ActionListener cancelActionListener = new CancelButtonActionListener();
114 JPanel buttonPanel = ComponentFactory.createButtonPanel();
115 JButton selectButton = ComponentFactory.createSaveButton(selectActionListener);
116 JButton cancelButton = ComponentFactory.createCancelButton(cancelActionListener);
117 selectButton.setText("Select");
118 buttonPanel.add(selectButton);
119 buttonPanel.add(cancelButton);
120
121 return buttonPanel;
122 }
123
124 /***
125 *******************************************************************************
126 *
127 * @return
128 */
129 protected File getSelectedClassFile() {
130 return m_selectedClassFile;
131 }
132
133 /***
134 *******************************************************************************
135 *
136 * @return
137 */
138 protected boolean selectWasPressed() {
139 return m_selectWasPressed;
140 }
141
142 /***
143 *******************************************************************************
144 *******************************************************************************
145 *******************************************************************************
146 */
147 private class SelectButtonActionListener implements ActionListener {
148
149 /***
150 ********************************************************************
151 *
152 * @param event
153 */
154 public void actionPerformed(ActionEvent event) {
155 m_selectWasPressed = true;
156 m_selectedClassFile = m_table.getSelectedFile();
157 RulesClassSelectDialog.this.setVisible(false);
158 }
159 }
160
161 /***
162 *******************************************************************************
163 *******************************************************************************
164 *******************************************************************************
165 */
166 private class CancelButtonActionListener implements ActionListener {
167
168 /***
169 ********************************************************************
170 *
171 * @param event
172 */
173 public void actionPerformed(ActionEvent event) {
174 RulesClassSelectDialog.this.setVisible(false);
175 }
176 }
177 }
This page was automatically generated by Maven