1 24 25 package org.aspectj.ajde.ui.swing; 26 27 import java.io.IOException ; 28 import javax.swing.*; 29 import javax.swing.event.*; 30 import javax.swing.tree.*; 31 import java.awt.*; 32 import java.awt.event.*; 33 import javax.swing.border.*; 34 import java.util.*; 35 import org.aspectj.asm.*; 36 import org.aspectj.ajde.*; 37 import org.aspectj.ajde.ui.*; 38 import org.aspectj.asm.views.*; 39 40 45 public class OptionsFrame extends JFrame { 46 47 private static final String ABOUT_TEXT = 48 "<html>\n" + 49 "<body>\n" + 50 "<p><b>AspectJ Development Environment (AJDE) " + org.aspectj.compiler.Version.text + "</b></p>\n" + 51 "<p>Submit bugs at <a HREF=\"http://aspectj.org/bugs\">http://aspectj.org/bugs</a><br>\n" + 52 "For support questions email <a HREF=\"mailto:support@aspectj.org\">\n" + 53 "support@aspectj.org</a> </p>\n" + 54 "<p>The AspectJ compiler and core tools are distributed under the Mozilla Public \n" + 55 "License version 1.1. This license has been approved by the Open Source \n" + 56 "Initiative as conforming to the Open Source Definition. For more \n" + 57 "information and the license please visit <a HREF=\"http://aspectj.org/license\">\n" + 58 "http://aspectj.org/license</a></p>\n" + 59 "</body>\n" + 60 "</html>\n"; 61 62 private JTabbedPane main_tabbedPane = new JTabbedPane(); 63 private JPanel button_panel = new JPanel(); 64 private JButton apply_button = new JButton(); 65 private JButton cancel_button = new JButton(); 66 private JButton ok_button = new JButton(); 67 private TitledBorder titledBorder1; 68 private TitledBorder titledBorder2; 69 private TitledBorder titledBorder3; 70 private Border border1; 71 private TitledBorder titledBorder4; 72 private TitledBorder titledBorder5; 73 private Border border2; 74 private TitledBorder titledBorder6; 75 private Box temp_box = Box.createVerticalBox(); 76 private Border border3; 77 private TitledBorder titledBorder7; 78 private Border border4; 79 private TitledBorder titledBorder8; 80 private Border border5; 81 private TitledBorder titledBorder9; 82 private Border border6; 83 private TitledBorder titledBorder10; 84 private ButtonGroup views_buttonGroup = new ButtonGroup(); 85 private Border border7; 86 private TitledBorder titledBorder11; 87 private Border border8; 88 private TitledBorder titledBorder12; 89 private JPanel about_panel = new JPanel(); 90 private BorderLayout borderLayout9 = new BorderLayout(); 91 private JPanel jPanel1 = new JPanel(); 92 private JEditorPane about_editorPane = new JEditorPane(); 93 private BorderLayout borderLayout10 = new BorderLayout(); 94 95 public OptionsFrame(IconRegistry icons) { 96 try { 97 jbInit(); 98 99 this.setTitle("AJDE Settings"); 100 this.setIconImage(((ImageIcon)icons.getBrowserOptionsIcon()).getImage()); 101 this.setSize(500, 500); 102 this.setLocation(200, 100); 103 104 about_editorPane.setContentType("text/html"); 105 about_editorPane.setText(ABOUT_TEXT); 106 107 addOptionsPanel(new BuildOptionsPanel()); 108 loadOptions(); 109 } 110 catch(Exception e) { 111 Ajde.getDefault().getErrorHandler().handleError("Could not open OptionsFrame", e); 112 } 113 } 114 115 118 public void addOptionsPanel(OptionsPanel panel) { 119 main_tabbedPane.add(panel, main_tabbedPane.getComponentCount()-1); 120 loadOptions(); 121 } 122 123 public void removeOptionsPanel(OptionsPanel panel) { 124 main_tabbedPane.remove(panel); 125 } 126 127 public void showPanel(OptionsPanel panel) { 128 setVisible(true); 129 main_tabbedPane.setSelectedComponent(panel); 130 } 131 132 private void loadOptions() { 133 try { 134 Component[] components = main_tabbedPane.getComponents(); 135 for 136 (int i = 0; i < components.length; i++) { 137 if (components[i] instanceof OptionsPanel) { 138 ((OptionsPanel)components[i]).loadOptions(); 139 } 140 } 141 } catch (IOException ioe) { 142 Ajde.getDefault().getErrorHandler().handleError("Could not load options.", ioe); 143 } 144 } 145 146 private void saveOptions() { 147 try { 148 Component[] components = main_tabbedPane.getComponents(); 149 for (int i = 0; i < components.length; i++) { 150 if (components[i] instanceof OptionsPanel) { 151 ((OptionsPanel)components[i]).saveOptions(); 152 } 153 } 154 } catch (IOException ioe) { 155 Ajde.getDefault().getErrorHandler().handleError("Could not load options.", ioe); 156 } 157 } 158 159 private void close() { 160 this.setVisible(false); 161 } 162 163 private void apply_button_actionPerformed(ActionEvent e) { 164 saveOptions(); 165 } 166 167 private void ok_button_actionPerformed(ActionEvent e) { 168 saveOptions(); 169 close(); 170 } 171 172 private void cancel_button_actionPerformed(ActionEvent e) { 173 close(); 174 } 175 176 private void jbInit() throws Exception { 177 titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(156, 156, 158)),"Sorting"); 178 titledBorder2 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)),"Associations (navigeable relations between sturcture nodes)"); 179 titledBorder3 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(156, 156, 158)),"Member Filtering (nodes to exclude from view)"); 180 border1 = BorderFactory.createLineBorder(Color.black,2); 181 titledBorder4 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)),"Compile Options"); 182 titledBorder5 = new TitledBorder(""); 183 border2 = BorderFactory.createLineBorder(Color.black,2); 184 titledBorder6 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)),"Run Options"); 185 border3 = BorderFactory.createEtchedBorder(Color.white,new Color(156, 156, 158)); 186 titledBorder7 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(156, 156, 158)),"Granularity (all nodes below selected level will be hidden)"); 187 border4 = BorderFactory.createEtchedBorder(Color.white,new Color(156, 156, 158)); 188 titledBorder8 = new TitledBorder(border4,"Member Visibility"); 189 border5 = BorderFactory.createEtchedBorder(Color.white,new Color(156, 156, 158)); 190 titledBorder9 = new TitledBorder(border5,"Member Modifiers"); 191 border6 = BorderFactory.createEmptyBorder(); 192 titledBorder10 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)),"Structure View Properties"); 193 border7 = BorderFactory.createEtchedBorder(Color.white,new Color(156, 156, 158)); 194 titledBorder11 = new TitledBorder(border7,"Member Kinds"); 195 border8 = BorderFactory.createEtchedBorder(Color.white,new Color(148, 145, 140)); 196 titledBorder12 = new TitledBorder(border8,"Build Paths"); 197 apply_button.setFont(new java.awt.Font ("Dialog", 0, 11)); 198 apply_button.setMaximumSize(new Dimension(70, 24)); 199 apply_button.setMinimumSize(new Dimension(63, 24)); 200 apply_button.setPreferredSize(new Dimension(70, 24)); 201 apply_button.setText("Apply"); 202 apply_button.addActionListener(new java.awt.event.ActionListener () { 203 public void actionPerformed(ActionEvent e) { 204 apply_button_actionPerformed(e); 205 } 206 }); 207 cancel_button.setFont(new java.awt.Font ("Dialog", 0, 11)); 208 cancel_button.setMaximumSize(new Dimension(70, 24)); 209 cancel_button.setMinimumSize(new Dimension(67, 24)); 210 cancel_button.setPreferredSize(new Dimension(70, 24)); 211 cancel_button.setText("Cancel"); 212 cancel_button.addActionListener(new java.awt.event.ActionListener () { 213 public void actionPerformed(ActionEvent e) { 214 cancel_button_actionPerformed(e); 215 } 216 }); 217 ok_button.setFont(new java.awt.Font ("Dialog", 0, 11)); 218 ok_button.setMaximumSize(new Dimension(70, 24)); 219 ok_button.setMinimumSize(new Dimension(49, 24)); 220 ok_button.setPreferredSize(new Dimension(70, 24)); 221 ok_button.setText("OK"); 222 ok_button.addActionListener(new java.awt.event.ActionListener () { 223 public void actionPerformed(ActionEvent e) { 224 ok_button_actionPerformed(e); 225 } 226 }); 227 main_tabbedPane.setFont(new java.awt.Font ("Dialog", 0, 11)); 228 titledBorder1.setTitle("Ordering (sort order of nodes)"); 229 titledBorder1.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 230 titledBorder2.setTitle("Associations (navigeable relations between structure nodes)"); 231 titledBorder2.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 232 titledBorder3.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 233 titledBorder6.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 234 titledBorder5.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 235 titledBorder4.setTitle("Compiler Flags"); 236 titledBorder4.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 237 titledBorder7.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 238 titledBorder8.setTitle("Access Modifiers"); 239 titledBorder8.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 240 titledBorder9.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 241 titledBorder10.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 242 titledBorder11.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 243 titledBorder12.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 244 about_panel.setLayout(borderLayout9); 245 jPanel1.setLayout(borderLayout10); 246 about_editorPane.setBackground(javax.swing.UIManager.getColor("OptionPane.background")); 247 about_editorPane.setFont(new java.awt.Font ("Dialog", 0, 11)); 248 about_editorPane.setEditable(false); 249 about_panel.add(jPanel1, BorderLayout.CENTER); 250 jPanel1.add(about_editorPane, BorderLayout.CENTER); 251 main_tabbedPane.add(about_panel, "About AJDE"); 252 this.getContentPane().add(button_panel, BorderLayout.SOUTH); 253 button_panel.add(ok_button, null); 254 button_panel.add(cancel_button, null); 255 button_panel.add(apply_button, null); 256 this.getContentPane().add(main_tabbedPane, BorderLayout.CENTER); 257 } 258 } | Popular Tags |