1 2 25 26 package org.aspectj.ajde.ui.swing; 27 28 import javax.swing.*; 29 import java.io.*; 30 import java.awt.*; 31 import javax.swing.border.*; 32 import org.aspectj.ajde.*; 33 34 37 public class BuildOptionsPanel extends OptionsPanel { 38 39 protected static BuildOptionsPanel INSTANCE = new BuildOptionsPanel(); 40 41 private ButtonGroup compilerMode_buttonGroup = new ButtonGroup(); 42 private TitledBorder titledBorder1; 43 private Border border3; 44 private Border border4; 45 private TitledBorder titledBorder2; 46 private Border border5; 47 private Border border1; 48 private Border border2; 49 private JPanel jPanel3 = new JPanel(); 50 private BorderLayout borderLayout6 = new BorderLayout(); 51 private JPanel jPanel4 = new JPanel(); 52 private JPanel compileOptions_panel1 = new JPanel(); 53 private JPanel build_panel1 = new JPanel(); 54 private JRadioButton normal_radioButton = new JRadioButton(); 55 private JRadioButton strict_radioButton = new JRadioButton(); 56 private JRadioButton lenient_radioButton = new JRadioButton(); 57 private BorderLayout borderLayout8 = new BorderLayout(); 58 private Box options_box1 = Box.createVerticalBox(); 59 private BorderLayout borderLayout5 = new BorderLayout(); 60 private JLabel spacer_label = new JLabel(); 61 private JTextField workingDir_field = new JTextField(); 62 private JPanel jPanel2 = new JPanel(); 63 private JPanel jPanel1 = new JPanel(); 64 private Box options_box = Box.createVerticalBox(); 65 private JPanel build_panel = new JPanel(); 66 private JTextField nonStandard_field = new JTextField(); 67 private JCheckBox pre1_checkBox = new JCheckBox(); 68 private JCheckBox assertions_checkBox = new JCheckBox(); 69 private JCheckBox useJavac_checkBox = new JCheckBox(); 70 private JCheckBox preprocess_checkBox = new JCheckBox(); 71 private JPanel compileOptions_panel = new JPanel(); 72 private JLabel workingDir_label = new JLabel(); 73 private JLabel nonStandard_label = new JLabel(); 74 private BorderLayout borderLayout4 = new BorderLayout(); 75 private BorderLayout borderLayout3 = new BorderLayout(); 76 private BorderLayout borderLayout2 = new BorderLayout(); 77 private Box fields_box = Box.createVerticalBox(); 78 private BorderLayout borderLayout1 = new BorderLayout(); 79 private BorderLayout borderLayout7 = new BorderLayout(); 80 81 public BuildOptionsPanel() { 82 try { 83 jbInit(); 84 this.setName("AspectJ Build Options"); 85 86 compilerMode_buttonGroup.add(normal_radioButton); 87 compilerMode_buttonGroup.add(strict_radioButton); 88 compilerMode_buttonGroup.add(lenient_radioButton); 89 } catch (Exception e) { 90 Ajde.getDefault().getErrorHandler().handleError("Could not initialize GUI.", e); 91 } 92 } 93 94 public void loadOptions() throws IOException { 95 assertions_checkBox.setSelected( 96 Ajde.getDefault().getBuildManager().getBuildOptions().getSourceOnePointFourMode() 97 ); 98 preprocess_checkBox.setSelected( 99 Ajde.getDefault().getBuildManager().getBuildOptions().getPreprocessMode() 100 ); 101 useJavac_checkBox.setSelected( 102 Ajde.getDefault().getBuildManager().getBuildOptions().getUseJavacMode() 103 ); 104 pre1_checkBox.setSelected( 105 Ajde.getDefault().getBuildManager().getBuildOptions().getPortingMode() 106 ); 107 108 nonStandard_field.setText( 109 Ajde.getDefault().getBuildManager().getBuildOptions().getNonStandardOptions() 110 ); 111 workingDir_field.setText( 112 Ajde.getDefault().getBuildManager().getBuildOptions().getWorkingOutputPath() 113 ); 114 115 if (Ajde.getDefault().getBuildManager().getBuildOptions().getStrictSpecMode()) { 116 strict_radioButton.setSelected(true); 117 } else if (Ajde.getDefault().getBuildManager().getBuildOptions().getLenientSpecMode()) { 118 lenient_radioButton.setSelected(true); 119 } else { 120 normal_radioButton.setSelected(true); 121 } 122 } 123 124 public void saveOptions() throws IOException { 125 AjdeUIManager.getDefault().getBuildOptions().setSourceOnePointFourMode( 126 assertions_checkBox.isSelected() 127 ); 128 AjdeUIManager.getDefault().getBuildOptions().setPreprocessMode( 129 preprocess_checkBox.isSelected() 130 ); 131 AjdeUIManager.getDefault().getBuildOptions().setUseJavacMode( 132 useJavac_checkBox.isSelected() 133 ); 134 AjdeUIManager.getDefault().getBuildOptions().setPortingMode( 135 pre1_checkBox.isSelected() 136 ); 137 138 AjdeUIManager.getDefault().getBuildOptions().setNonStandardOptions( 139 nonStandard_field.getText() 140 ); 141 AjdeUIManager.getDefault().getBuildOptions().setWorkingDir( 142 workingDir_field.getText() 143 ); 144 145 AjdeUIManager.getDefault().getBuildOptions().setStrictSpecMode(strict_radioButton.isSelected()); 146 AjdeUIManager.getDefault().getBuildOptions().setLenientSpecMode(lenient_radioButton.isSelected()); 147 } 148 149 public static BuildOptionsPanel getDefault() { 150 return INSTANCE; 151 } 152 153 private void jbInit() throws Exception { 154 titledBorder1 = 155 new TitledBorder( 156 BorderFactory.createEtchedBorder(Color.white, new Color(156, 156, 158)), 157 "ajc Options"); 158 border3 = 159 BorderFactory.createCompoundBorder( 160 new TitledBorder( 161 BorderFactory.createEtchedBorder(Color.white, new Color(156, 156, 158)), 162 "ajc Options"), 163 BorderFactory.createEmptyBorder(5, 5, 5, 5)); 164 border4 = 165 BorderFactory.createEtchedBorder(Color.white, new Color(156, 156, 158)); 166 titledBorder2 = 167 new TitledBorder( 168 BorderFactory.createEtchedBorder(Color.white, new Color(156, 156, 158)), 169 "ajc Strictness Mode"); 170 border5 = 171 BorderFactory.createCompoundBorder( 172 titledBorder2, 173 BorderFactory.createEmptyBorder(5, 5, 5, 5)); 174 border1 = 175 BorderFactory.createCompoundBorder( 176 titledBorder2, 177 BorderFactory.createEmptyBorder(5, 5, 5, 5)); 178 border2 = 179 BorderFactory.createCompoundBorder( 180 titledBorder1, 181 BorderFactory.createEmptyBorder(5, 5, 5, 5)); 182 titledBorder1.setTitle("ajc Options"); 183 titledBorder1.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 184 titledBorder2.setTitleFont(new java.awt.Font ("Dialog", 0, 11)); 185 this.setLayout(borderLayout6); 186 compileOptions_panel1.setLayout(borderLayout8); 187 build_panel1.setLayout(borderLayout5); 188 build_panel1.setFont(new java.awt.Font ("Dialog", 0, 11)); 189 build_panel1.setBorder(border1); 190 build_panel1.setMaximumSize(new Dimension(2147483647, 109)); 191 normal_radioButton.setFont(new java.awt.Font ("Dialog", 0, 11)); 192 normal_radioButton.setText("Normal"); 193 strict_radioButton.setText( 194 "Be extra strict in interpreting the Java specification"); 195 strict_radioButton.setFont(new java.awt.Font ("Dialog", 0, 11)); 196 lenient_radioButton.setText( 197 "Be lenient in interpreting the Java specification"); 198 lenient_radioButton.setFont(new java.awt.Font ("Dialog", 0, 11)); 199 spacer_label.setText(" "); 200 workingDir_field.setFont(new java.awt.Font ("SansSerif", 0, 11)); 201 workingDir_field.setMinimumSize(new Dimension(200, 21)); 202 workingDir_field.setPreferredSize(new Dimension(210, 21)); 203 jPanel2.setLayout(borderLayout3); 204 jPanel1.setLayout(borderLayout2); 205 build_panel.setLayout(borderLayout4); 206 build_panel.setBorder(border2); 207 nonStandard_field.setFont(new java.awt.Font ("SansSerif", 0, 11)); 208 nonStandard_field.setMinimumSize(new Dimension(100, 21)); 209 nonStandard_field.setPreferredSize(new Dimension(210, 21)); 210 pre1_checkBox.setText( 211 "Signal warnings for pre-1.0 language use to ease porting"); 212 pre1_checkBox.setToolTipText(""); 213 pre1_checkBox.setFont(new java.awt.Font ("Dialog", 0, 11)); 214 assertions_checkBox.setFont(new java.awt.Font ("Dialog", 0, 11)); 215 assertions_checkBox.setText("Support assertions from 1.4 Java specification"); 216 useJavac_checkBox.setText("Use javac to generate .class files"); 217 useJavac_checkBox.setFont(new java.awt.Font ("Dialog", 0, 11)); 218 preprocess_checkBox.setFont(new java.awt.Font ("Dialog", 0, 11)); 219 preprocess_checkBox.setToolTipText(""); 220 preprocess_checkBox.setText("Only preprocess and generate .java source files"); 221 compileOptions_panel.setLayout(borderLayout1); 222 nonStandard_label.setText("Non-standard compiler options:"); 223 nonStandard_label.setFont(new java.awt.Font ("Dialog", 0, 11)); 224 nonStandard_label.setPreferredSize(new Dimension(100, 16)); 225 nonStandard_label.setToolTipText(""); 226 jPanel3.setLayout(borderLayout7); 227 workingDir_label.setFont(new java.awt.Font ("Dialog", 0, 11)); 228 workingDir_label.setPreferredSize(new Dimension(150, 16)); 229 workingDir_label.setText("Working directory (for preprocess and use-javac): "); 230 this.add(jPanel3, BorderLayout.NORTH); 231 jPanel2.add(workingDir_label, BorderLayout.CENTER); 232 jPanel2.add(workingDir_field, BorderLayout.EAST); 233 fields_box.add(jPanel1, null); 234 fields_box.add(jPanel2, null); 235 jPanel1.add(nonStandard_label, BorderLayout.CENTER); 236 jPanel1.add(nonStandard_field, BorderLayout.EAST); 237 compileOptions_panel.add(options_box, BorderLayout.NORTH); 238 compileOptions_panel.add(fields_box, BorderLayout.SOUTH); 239 options_box.add(assertions_checkBox, null); 240 options_box.add(preprocess_checkBox, null); 241 options_box.add(useJavac_checkBox, null); 242 options_box.add(spacer_label, null); 244 jPanel3.add(build_panel, BorderLayout.CENTER); 245 build_panel.add(compileOptions_panel, BorderLayout.NORTH); 246 jPanel3.add(build_panel1, BorderLayout.SOUTH); 247 build_panel1.add(compileOptions_panel1, BorderLayout.NORTH); 248 compileOptions_panel1.add(options_box1, BorderLayout.NORTH); 249 options_box1.add(normal_radioButton, null); 250 options_box1.add(lenient_radioButton, null); 251 options_box1.add(strict_radioButton, null); 252 this.add(jPanel4, BorderLayout.CENTER); 253 } 254 } | Popular Tags |