KickJava   Java API By Example, From Geeks To Geeks.

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


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 java.io.*;
30 import java.awt.*;
31 import javax.swing.border.*;
32 import org.aspectj.ajde.*;
33
34 /**
35  * @author Mik Kersten
36  */

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 JavaDoc 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 JavaDoc {
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 JavaDoc("Dialog", 0, 11));
184         titledBorder2.setTitleFont(new java.awt.Font JavaDoc("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 JavaDoc("Dialog", 0, 11));
189         build_panel1.setBorder(border1);
190         build_panel1.setMaximumSize(new Dimension(2147483647, 109));
191         normal_radioButton.setFont(new java.awt.Font JavaDoc("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 JavaDoc("Dialog", 0, 11));
196         lenient_radioButton.setText(
197             "Be lenient in interpreting the Java specification");
198         lenient_radioButton.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
199         spacer_label.setText(" ");
200         workingDir_field.setFont(new java.awt.Font JavaDoc("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 JavaDoc("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 JavaDoc("Dialog", 0, 11));
214         assertions_checkBox.setFont(new java.awt.Font JavaDoc("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 JavaDoc("Dialog", 0, 11));
218         preprocess_checkBox.setFont(new java.awt.Font JavaDoc("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 JavaDoc("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 JavaDoc("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(pre1_checkBox, null);
243
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