KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > aspectj > ajde > ui > swing > BrowserView


1
2 /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
3  *
4  * This file is part of the IDE support for the AspectJ(tm)
5  * programming language; see http://aspectj.org
6  *
7  * The contents of this file are subject to the Mozilla Public License
8  * Version 1.1 (the "License"); you may not use this file except in
9  * compliance with the License. You may obtain a copy of the License at
10  * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/.
11  *
12  * Software distributed under the License is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14  * for the specific language governing rights and limitations under the
15  * License.
16  *
17  * The Original Code is AspectJ.
18  *
19  * The Initial Developer of the Original Code is Xerox Corporation. Portions
20  * created by Xerox Corporation are Copyright (C) 1999-2002 Xerox Corporation.
21  * All Rights Reserved.
22  *
23  * Contributor(s):
24  */

25
26 package org.aspectj.ajde.ui.swing;
27
28 import javax.swing.*;
29 import javax.swing.tree.*;
30 import javax.swing.event.*;
31
32 import java.awt.*;
33 import java.io.*;
34 import javax.swing.border.*;
35 import java.awt.event.*;
36 import java.util.*;
37 import java.text.*;
38 import org.aspectj.ajde.*;
39 import java.beans.*;
40 import org.aspectj.ajde.ui.*;
41 import org.aspectj.asm.ProgramElementNode;
42
43 /**
44  * @author Mik Kersten
45  */

46 class BrowserView extends JPanel {
47     private BrowserViewPanel masterView;
48     private BrowserViewPanel slaveView;
49     private boolean slaveViewVisible = false;
50     private String JavaDoc lastSelectedConfig = "";
51
52     private IconRegistry icons = null;
53     private BorderLayout borderLayout1 = new BorderLayout();
54     private Border default_border;
55     private JPanel toolBar_panel = new JPanel();
56     private BorderLayout borderLayout2 = new BorderLayout();
57     JPanel mainToolBar_panel = new JPanel();
58     JToolBar config_toolBar = new JToolBar();
59     JComboBox configs_comboBox = null;
60     BorderLayout borderLayout3 = new BorderLayout();
61     JToolBar nav_toolBar = new JToolBar();
62     JButton forward_button = new JButton();
63     JButton back_button = new JButton();
64     GridLayout gridLayout1 = new GridLayout();
65     JSplitPane views_splitPane = new JSplitPane();
66     JToolBar command_toolBar = new JToolBar();
67     JToggleButton splitView_button = new JToggleButton();
68     JToggleButton zoomToFile_button = new JToggleButton();
69     JButton joinpointProbe_button = new JButton();
70
71     public BrowserView(BrowserViewPanel masterView, BrowserViewPanel slaveView, IconRegistry icons) {
72         try {
73             this.masterView = masterView;
74             this.slaveView = slaveView;
75             this.icons = icons;
76             configs_comboBox = new JComboBox(Ajde.getDefault().getProjectProperties().getBuildConfigFiles().toArray());
77             configs_comboBox.setRenderer(new ConfigsCellRenderer());
78 // configs_comboBox.addItemListener(new ItemListener() {
79
// public void itemStateChanged(ItemEvent e) {
80
// Ajde.getDefault().getConfigurationManager().setCurrConfigFile(lastSelectedConfig);
81
// }
82
// });
83

84             if (Ajde.getDefault().getProjectProperties().getBuildConfigFiles().size() > 0) {
85                 Ajde.getDefault().getConfigurationManager().setActiveConfigFile((String JavaDoc)Ajde.getDefault().getProjectProperties().getBuildConfigFiles().get(0));
86             }
87             
88             jbInit();
89             fixButtonBorders();
90             views_splitPane.add(masterView, JSplitPane.TOP);
91             views_splitPane.add(slaveView, JSplitPane.BOTTOM);
92             setSlaveViewVisible(false);
93
94             nav_toolBar.remove(joinpointProbe_button);
95         } catch(Exception JavaDoc e) {
96             Ajde.getDefault().getErrorHandler().handleError("Could not initialize GUI.", e);
97         }
98     }
99
100     public void setSlaveViewVisible(boolean visible) {
101         slaveViewVisible = visible;
102         if (visible) {
103             views_splitPane.add(slaveView, JSplitPane.BOTTOM);
104             views_splitPane.setDividerLocation(this.getHeight()-250);
105             //masterView.scrollToHighlightedNode();
106
} else {
107             views_splitPane.remove(slaveView);
108             views_splitPane.setDividerLocation(this.getHeight());
109         }
110     }
111
112     public boolean isSlaveViewVisible() {
113         return slaveViewVisible;
114     }
115
116     public void updateConfigs(java.util.List JavaDoc configsList) {
117         configs_comboBox.removeAllItems();
118         for (Iterator it = configsList.iterator(); it.hasNext(); ) {
119             configs_comboBox.addItem((String JavaDoc)it.next());
120         }
121     }
122
123     public void setSelectedConfig(String JavaDoc config) {
124         for (int i = 0; i < configs_comboBox.getItemCount(); i++) {
125             if (configs_comboBox.getItemAt(i).equals(config)) {
126                 configs_comboBox.setSelectedIndex(i);
127             }
128         }
129     }
130
131     public String JavaDoc getSelectedConfig() {
132         return (String JavaDoc)configs_comboBox.getSelectedItem();
133     }
134
135     /**
136      * @todo get rid of this method and make the GUI-designer generated code work properly
137      */

138     private void fixButtonBorders() {
139         back_button.setBorder(BorderFactory.createEmptyBorder());
140         forward_button.setBorder(BorderFactory.createEmptyBorder());
141         zoomToFile_button.setBorder(BorderFactory.createEmptyBorder());
142         splitView_button.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 0, Color.blue));
143     }
144
145     private void jbInit() throws Exception JavaDoc {
146         default_border = BorderFactory.createEmptyBorder();
147         this.setLayout(borderLayout1);
148         toolBar_panel.setLayout(borderLayout2);
149         toolBar_panel.setBorder(BorderFactory.createEtchedBorder());
150         config_toolBar.setBorder(default_border);
151         config_toolBar.setFloatable(false);
152         configs_comboBox.setPreferredSize(new Dimension(200, 20));
153         configs_comboBox.addActionListener(new java.awt.event.ActionListener JavaDoc() {
154             public void actionPerformed(ActionEvent e) {
155                 configs_comboBox_actionPerformed(e);
156             }
157         });
158         configs_comboBox.setMinimumSize(new Dimension(40, 20));
159         configs_comboBox.setFont(new java.awt.Font JavaDoc("SansSerif", 0, 11));
160         mainToolBar_panel.setLayout(borderLayout3);
161         nav_toolBar.setFloatable(false);
162         nav_toolBar.setBorder(default_border);
163         forward_button.addActionListener(new java.awt.event.ActionListener JavaDoc() {
164             public void actionPerformed(ActionEvent e) {
165                 forward_button_actionPerformed(e);
166             }
167         });
168         forward_button.setIcon(icons.getForwardIcon());
169         forward_button.setToolTipText("Navigate forward");
170         forward_button.setPreferredSize(new Dimension(20, 20));
171         forward_button.setMinimumSize(new Dimension(20, 20));
172         forward_button.setBorder(default_border);
173         forward_button.setMaximumSize(new Dimension(24, 20));
174         back_button.setMaximumSize(new Dimension(24, 20));
175         back_button.setBorder(default_border);
176         back_button.setMinimumSize(new Dimension(20, 20));
177         back_button.setPreferredSize(new Dimension(20, 20));
178         back_button.setToolTipText("Navigate back");
179         back_button.setIcon(icons.getBackIcon());
180         back_button.addActionListener(new java.awt.event.ActionListener JavaDoc() {
181             public void actionPerformed(ActionEvent e) {
182                 back_button_actionPerformed(e);
183             }
184         });
185 // structureViews_box.add(comment_editorPane, null);
186
views_splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
187         views_splitPane.setDividerSize(2);
188         command_toolBar.setBorder(default_border);
189         command_toolBar.setFloatable(false);
190         splitView_button.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
191         splitView_button.setBorder(default_border);
192         splitView_button.setMaximumSize(new Dimension(24, 24));
193         splitView_button.setPreferredSize(new Dimension(20, 20));
194         splitView_button.setToolTipText("Togge split-tree view mode");
195         splitView_button.setIcon(icons.getSplitStructureViewIcon());
196         splitView_button.setSelectedIcon(icons.getMergeStructureViewIcon());
197         splitView_button.addActionListener(new java.awt.event.ActionListener JavaDoc() {
198             public void actionPerformed(ActionEvent e) {
199                 //splitView_button_actionPerformed(e);
200
}
201         });
202         zoomToFile_button.addActionListener(new java.awt.event.ActionListener JavaDoc() {
203             public void actionPerformed(ActionEvent e) {
204                 //zoomToFile_button_actionPerformed(e);
205
}
206         });
207         zoomToFile_button.setIcon(icons.getZoomStructureToFileModeIcon());
208         zoomToFile_button.setSelectedIcon(icons.getZoomStructureToGlobalModeIcon());
209         zoomToFile_button.setBorder(BorderFactory.createRaisedBevelBorder());
210         zoomToFile_button.setMaximumSize(new Dimension(24, 24));
211         zoomToFile_button.setPreferredSize(new Dimension(20, 20));
212         zoomToFile_button.setToolTipText("Toggle file-view mode");
213         zoomToFile_button.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
214         joinpointProbe_button.addActionListener(new java.awt.event.ActionListener JavaDoc() {
215             public void actionPerformed(ActionEvent e) {
216                 joinpointProbe_button_actionPerformed(e);
217             }
218         });
219         joinpointProbe_button.setIcon(icons.getStructureSwingIcon(ProgramElementNode.Kind.POINTCUT));
220         joinpointProbe_button.setToolTipText("Create joinpoint probe");
221         joinpointProbe_button.setPreferredSize(new Dimension(20, 20));
222         joinpointProbe_button.setMinimumSize(new Dimension(20, 20));
223         joinpointProbe_button.setBorder(default_border);
224         joinpointProbe_button.setMaximumSize(new Dimension(24, 20));
225         this.add(toolBar_panel, BorderLayout.NORTH);
226         toolBar_panel.add(mainToolBar_panel, BorderLayout.NORTH);
227         mainToolBar_panel.add(config_toolBar, BorderLayout.CENTER);
228         config_toolBar.add(configs_comboBox, null);
229         mainToolBar_panel.add(nav_toolBar, BorderLayout.EAST);
230         nav_toolBar.add(splitView_button, null);
231         nav_toolBar.add(zoomToFile_button, null);
232         nav_toolBar.add(joinpointProbe_button, null);
233         nav_toolBar.add(back_button, null);
234         nav_toolBar.add(forward_button, null);
235         mainToolBar_panel.add(command_toolBar, BorderLayout.WEST);
236         this.add(views_splitPane, BorderLayout.CENTER);
237         views_splitPane.setDividerLocation(400);
238     }
239
240     void forward_button_actionPerformed(ActionEvent e) {
241         //AjdeUIManager.getDefault().getViewManager().navigateForwardAction();
242
}
243     void back_button_actionPerformed(ActionEvent e) {
244         //AjdeUIManager.getDefault().getViewManager().navigateBackAction();
245
}
246
247 // void splitView_button_actionPerformed(ActionEvent e) {
248
// AjdeUIManager.getDefault().getViewManager().setSplitViewMode(!slaveViewVisible);
249
// }
250

251     static class ConfigsCellRenderer extends JLabel implements ListCellRenderer {
252         public ConfigsCellRenderer() {
253             setOpaque(true);
254         }
255
256         public Component getListCellRendererComponent(JList list,
257                                                         Object JavaDoc value,
258                                                         int index,
259                                                         boolean isSelected,
260                                                         boolean cellHasFocus) {
261             if (value == null) return this;
262
263             java.io.File JavaDoc file = new File(value.toString());
264             setText(file.getName());
265             setBackground(isSelected ? Color.gray : Color.lightGray);
266 // setForeground(isSelected ? Color.lightGray : Color.gray);
267
return this;
268         }
269     }
270
271     void configDesigner_button_mouseClicked(MouseEvent e) {
272
273     }
274     void configDesigner_button_mousePressed(MouseEvent e) {
275
276     }
277     void configDesigner_button_mouseReleased(MouseEvent e) {
278
279     }
280     void configDesigner_button_mouseEntered(MouseEvent e) {
281
282     }
283     void configDesigner_button_mouseExited(MouseEvent e) {
284
285     }
286     void configDesigner_button_actionPerformed(ActionEvent e) {
287
288     }
289     void viewManager_button_mouseClicked(MouseEvent e) {
290
291     }
292     void viewManager_button_mousePressed(MouseEvent e) {
293
294     }
295     void viewManager_button_mouseReleased(MouseEvent e) {
296
297     }
298     void viewManager_button_mouseEntered(MouseEvent e) {
299
300     }
301     void viewManager_button_mouseExited(MouseEvent e) {
302
303     }
304     void viewManager_button_actionPerformed(ActionEvent e) {
305
306     }
307
308 // void zoomToFile_button_actionPerformed(ActionEvent e) {
309
// AjdeUIManager.getDefault().getViewManager().setGlobalMode(!AjdeUIManager.getDefault().getViewManager().isGlobalMode());
310
// AjdeUIManager.getDefault().getViewManager().updateView();
311
// }
312

313     void configs_comboBox_actionPerformed(ActionEvent e) {
314         if (configs_comboBox.getSelectedItem() != null) {
315             if (!configs_comboBox.getSelectedItem().toString().equals(lastSelectedConfig)) {
316                 //TopManager.INSTANCE.VIEW_MANAGER.readStructureView();
317
lastSelectedConfig = configs_comboBox.getSelectedItem().toString();
318                 Ajde.getDefault().getConfigurationManager().setActiveConfigFile(lastSelectedConfig);
319             }
320         }
321     }
322
323     private void joinpointProbe_button_actionPerformed(ActionEvent e) {
324         //joinpointProbeWizard();
325
}
326 }
Popular Tags