1 2 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 46 class BrowserView extends JPanel { 47 private BrowserViewPanel masterView; 48 private BrowserViewPanel slaveView; 49 private boolean slaveViewVisible = false; 50 private String 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 84 if (Ajde.getDefault().getProjectProperties().getBuildConfigFiles().size() > 0) { 85 Ajde.getDefault().getConfigurationManager().setActiveConfigFile((String )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 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 } 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 configsList) { 117 configs_comboBox.removeAllItems(); 118 for (Iterator it = configsList.iterator(); it.hasNext(); ) { 119 configs_comboBox.addItem((String )it.next()); 120 } 121 } 122 123 public void setSelectedConfig(String 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 getSelectedConfig() { 132 return (String )configs_comboBox.getSelectedItem(); 133 } 134 135 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 { 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 () { 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 ("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 () { 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 () { 181 public void actionPerformed(ActionEvent e) { 182 back_button_actionPerformed(e); 183 } 184 }); 185 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 ("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 () { 198 public void actionPerformed(ActionEvent e) { 199 } 201 }); 202 zoomToFile_button.addActionListener(new java.awt.event.ActionListener () { 203 public void actionPerformed(ActionEvent e) { 204 } 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 ("Dialog", 0, 11)); 214 joinpointProbe_button.addActionListener(new java.awt.event.ActionListener () { 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 } 243 void back_button_actionPerformed(ActionEvent e) { 244 } 246 247 251 static class ConfigsCellRenderer extends JLabel implements ListCellRenderer { 252 public ConfigsCellRenderer() { 253 setOpaque(true); 254 } 255 256 public Component getListCellRendererComponent(JList list, 257 Object value, 258 int index, 259 boolean isSelected, 260 boolean cellHasFocus) { 261 if (value == null) return this; 262 263 java.io.File file = new File(value.toString()); 264 setText(file.getName()); 265 setBackground(isSelected ? Color.gray : Color.lightGray); 266 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 313 void configs_comboBox_actionPerformed(ActionEvent e) { 314 if (configs_comboBox.getSelectedItem() != null) { 315 if (!configs_comboBox.getSelectedItem().toString().equals(lastSelectedConfig)) { 316 lastSelectedConfig = configs_comboBox.getSelectedItem().toString(); 318 Ajde.getDefault().getConfigurationManager().setActiveConfigFile(lastSelectedConfig); 319 } 320 } 321 } 322 323 private void joinpointProbe_button_actionPerformed(ActionEvent e) { 324 } 326 } | Popular Tags |