glennm 01/01/12 07:22:50
Added: src/main/org/apache/tools/ant/taskdefs/optional/ide
default.ini VAJAntTool.java VAJAntToolGUI.java
VAJBuildInfo.java
Log:
VAJ IDE integration classes.
These should be moved to a contribution project
when one is created.
Submitted by: Wolf Siberski
Christoph Wilhelms
Revision Changes Path
1.1
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ide/default.ini
Index: default.ini
===================================================================
Name=Ant
Version=0.1
Help-Item=Ant Help,doc/VAJAntTool.html
Menu-Items=Ant Build,org.apache.tools.ant.taskdefs.optional.ide.VAJAntTool,-P;
1.1
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJAntTool.java
Index: VAJAntTool.java
===================================================================
package org.apache.tools.ant.taskdefs.optional.ide;
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import com.ibm.ivj.util.base.Project;
import com.ibm.ivj.util.base.ToolData;
import com.ibm.ivj.util.base.IvjException;
import org.apache.tools.ant.BuildException;
/**
* This class is the equivalent to org.apache.tools.ant.Main for the
* VAJ tool environment. It's main is called when the user selects
* Tools->Ant Build from the VAJ project menu.
* Additionally this class provides methods to save build info for
* a project in the repository and load it from the repository
*
* @author: Wolf Siberski
*/
public class VAJAntTool {
private static final String TOOL_DATA_KEY = "AntTool";
/**
* Loads the BuildInfo for the specified VAJ project from the
* tool data for this project.
* If there is no build info stored for that project, a new
* default BuildInfo is returned
*
* @return BuildInfo buildInfo build info for the specified project
* @param projectName String project name
*/
public static VAJBuildInfo loadBuildData(String projectName) {
VAJBuildInfo result = null;
try {
Project project = VAJUtil.getWorkspace().loadedProjectNamed(
projectName );
if ( project.testToolRepositoryData(TOOL_DATA_KEY) ) {
ToolData td =
project.getToolRepositoryData(TOOL_DATA_KEY);
String data = (String)td.getData();
result = VAJBuildInfo.parse( data );
} else {
result = new VAJBuildInfo();
}
result.setVAJProjectName( projectName );
} catch (Throwable t) {
System.out.println("BuildInfo for Project " + projectName +
" could not be loaded" + t);
throw new BuildException(t);
}
return result;
}
/**
* Starts the application.
* @param args an array of command-line arguments
*/
public static void main(java.lang.String[] args) {
VAJBuildInfo info;
if ( args.length >= 2 && args[1] instanceof String ) {
String projectName = (String)args[1];
info = loadBuildData( projectName );
}
else {
info = new VAJBuildInfo();
}
VAJAntToolGUI mainFrame = new VAJAntToolGUI( info );
mainFrame.show();
}
/**
* Saves the BuildInfo for a project in the VAJ repository.
* @param info BuildInfo build info to save
*/
public static void saveBuildData(VAJBuildInfo info) {
String data = info.asDataString();
try {
ToolData td = new ToolData( TOOL_DATA_KEY, data );
VAJUtil.getWorkspace().loadedProjectNamed(
info.getVAJProjectName() ).setToolRepositoryData( td );
} catch (Throwable t) {
throw new BuildException("BuildInfo for Project " +
info.getVAJProjectName() +
" could not be saved", t);
}
}
}
1.1
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJAntToolGUI.java
Index: VAJAntToolGUI.java
===================================================================
package org.apache.tools.ant.taskdefs.optional.ide;
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import java.util.Vector;
import java.awt.Frame;
import java.awt.Dialog;
import java.awt.Panel;
import java.awt.MenuBar;
import java.awt.Menu;
import java.awt.MenuItem;
import java.awt.Label;
import java.awt.TextField;
import java.awt.TextArea;
import java.awt.List;
import java.awt.Choice;
import java.awt.Button;
import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import java.awt.event.TextListener;
import java.awt.event.WindowListener;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.TextEvent;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeListener;
import org.apache.tools.ant.Main;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildListener;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.Project;
/**
* This is a simple grafical user interface to provide the information needed
by ANT and
* to start the build-process within IBM VisualAge for Java.
* <p>
* I was using AWT to make it independent from the JDK-version. Please don't
ask me for a Swing-version:
* I am very familiar with Swing and I really think that it's not necessary
for such a simple gui!
* <p>
* It is completely developed in VAJ using the visual composition editor.
About 90% of the code is generated by VAJ,
* but in fact I did a lot of <i>code-beautification</i> ;-).
* <p>
* @version 1.0 h
* @author: Christoph Wilhelms, TUI Infotec GmbH
*/
public class VAJAntToolGUI extends Frame {
/**
* Members
*/
private VAJBuildLogger logger = new VAJBuildLogger();
private String lineSeparator = "\r\n";
private PrivateEventHandler iEventHandler = new PrivateEventHandler();
/**
* Members of the main-window
*/
// main model
private VAJBuildInfo iBuildInfo = null;
// Menue
private MenuBar iAntMakeMenuBar = null;
private Menu iFileMenu = null;
private MenuItem iSaveMenuItem = null;
private MenuItem iMenuSeparator = null;
private MenuItem iShowLogMenuItem = null;
private Menu iHelpMenu = null;
private MenuItem iAboutMenuItem = null;
// Container
private Panel iContentsPane = null;
private Panel iOptionenPanel = null;
private Panel iCommandButtonPanel = null;
private FlowLayout iCommandButtonPanelFlowLayout = null;
// Project name
private Label iProjectLabel = null;
private Label iProjectText = null;
// XML-file
private Label iBuildFileLabel = null;
private TextField iBuildFileTextField = null;
private boolean iConnPtoP2Aligning = false;
private Button iBrowseButton = null;
private FileDialog iFileDialog = null;
// Options
private Choice iMessageOutputLevelChoice = null;
private Label iMessageOutputLevelLabel = null;
private Label iTargetLabel = null;
private List iTargetList = null;
// Command-buttons
private Button iBuildButton = null;
private Button iReloadButton = null;
private Button iCloseButton = null;
/**
* log-Window
*/
// Container
private Frame iMessageFrame = null;
private Panel iMessageCommandPanel = null;
private Panel iMessageContentPanel = null;
// Components
private TextArea iMessageTextArea = null;
private Button iMessageOkButton = null;
private Button iMessageClearLogButton = null;
/**
* About-dialog
*/
// Container
private Dialog iAboutDialog = null;
private Panel iAboutDialogContentPanel = null;
private Panel iAboutInfoPanel = null;
private Panel iAboutCommandPanel = null;
// Labels
private Label iAboutTitleLabel = null;
private Label iAboutDevLabel = null;
private Label iAboutContactLabel = null;
// Buttons
private Button iAboutOkButton = null;
/**
* This internal BuildLogger, to be honest, is just a BuildListener.
* It does nearly the same as the DefaultLogger, but uses the
Loggin-Window for output.
*/
private class VAJBuildLogger implements BuildListener {
private long startTime = System.currentTimeMillis();
/**
* VAJBuildLogger constructor comment.
*/
public VAJBuildLogger() {
super();
}
/**
* Fired after the last target has finished. This event
* will still be thrown if an error occured during the build.
*
* @see BuildEvent#getException()
*/
public void buildFinished(BuildEvent event) {
Throwable error = event.getException();
if (error == null) {
getMessageTextArea().append(lineSeparator +
"BUILD SUCCESSFUL");
}
else {
getMessageTextArea().append(lineSeparator +
"BUILD FAILED" + lineSeparator);
if (error instanceof BuildException) {
getMessageTextArea().append(error.toString());
Throwable nested =
((BuildException)error).getException();
if (nested != null) {
nested.printStackTrace(System.err);
}
}
else {
error.printStackTrace(System.err);
}
}
getMessageTextArea().append(lineSeparator + "Total
time: " + formatTime(System.currentTimeMillis() - startTime));
}
/**
* Fired before any targets are started.
*/
public void buildStarted(BuildEvent event) {
startTime = System.currentTimeMillis();
getMessageTextArea().append(lineSeparator);
}
/**
* Fired whenever a message is logged.
*
* @see BuildEvent#getMessage()
* @see BuildEvent#getPriority()
*/
public void messageLogged(BuildEvent event) {
if (event.getPriority() <=
getBuildInfo().getOutputMessageLevel()) {
String msg = "";
if (event.getTask() != null)
msg = "[" +
event.getTask().getTaskName() + "] ";
getMessageTextArea().append(lineSeparator + msg
+ event.getMessage());
}
}
/**
* Fired when a target has finished. This event will
* still be thrown if an error occured during the build.
*
* @see BuildEvent#getException()
*/
public void targetFinished(BuildEvent event) {
}
/**
* Fired when a target is started.
*
* @see BuildEvent#getTarget()
*/
public void targetStarted(BuildEvent event) {
if (getBuildInfo().getOutputMessageLevel() <=
Project.MSG_INFO) {
getMessageTextArea().append(lineSeparator +
event.getTarget().getName() + ":");
}
}
/**
* Fired when a task has finished. This event will still
* be throw if an error occured during the build.
*
* @see BuildEvent#getException()
*/
public void taskFinished(BuildEvent event) {
}
/**
* Fired when a task is started.
*
* @see BuildEvent#getTask()
*/
public void taskStarted(BuildEvent event) {
}
/**
* Chris: HACK: remove when Ant-Refactoring is finished!
*/
public void buildSuccessful() {
getMessageTextArea().append(lineSeparator + "BUILD
SUCCESSFUL");
getMessageTextArea().append(lineSeparator + "Total
time: " + formatTime(System.currentTimeMillis() - startTime));
}
/**
* Chris: HACK: remove when Ant-Refactoring is finished!
*/
public void buildFailed(Throwable exc) {
getMessageTextArea().append(lineSeparator + "BUILD
FAILED" + lineSeparator);
if (exc instanceof BuildException) {
getMessageTextArea().append(exc.toString());
Throwable nested =
((BuildException)exc).getException();
if (nested != null) {
nested.printStackTrace(System.err);
}
}
else {
exc.printStackTrace(System.err);
}
getMessageTextArea().append(lineSeparator + "Total
time: " + formatTime(System.currentTimeMillis() - startTime));
}
}
/**
* Eventhandler to handle all AWT-events
*/
private class PrivateEventHandler implements ActionListener,
ItemListener, TextListener, WindowListener, PropertyChangeListener {
/**
* ActionListener method
*/
public void actionPerformed(ActionEvent e) {
try {
/* #### Main App-Frame #### */
// browse XML-File with filechooser
if (e.getSource() ==
VAJAntToolGUI.this.getBrowseButton()) {
getFileDialog().setDirectory(getBuildFileTextField().getText().substring(0,
getBuildFileTextField().getText().lastIndexOf('\\') + 1));
getFileDialog().setFile("*.xml");
getFileDialog().show();
if
(!getFileDialog().getFile().equals("") ) {
getBuildFileTextField().setText(getFileDialog().getDirectory() +
getFileDialog().getFile());
}
}
// dispose and exit application
if (e.getSource() ==
VAJAntToolGUI.this.getCloseButton()) {
dispose();
System.exit(0);
}
// start build-process
if (e.getSource() ==
VAJAntToolGUI.this.getBuildButton())
executeTarget();
if (e.getSource() ==
VAJAntToolGUI.this.getReloadButton()) {
try {
getBuildInfo().updateTargetList();
fillList();
}
catch (Throwable fileNotFound) {
handleException(fileNotFound);
getTargetList().removeAll();
getBuildButton().setEnabled(false);
}
}
// MenuItems
if (e.getSource() ==
VAJAntToolGUI.this.getSaveMenuItem())
saveBuildInfo();
if (e.getSource() ==
VAJAntToolGUI.this.getAboutMenuItem())
getAboutDialog().show();
if (e.getSource() ==
VAJAntToolGUI.this.getShowLogMenuItem())
getMessageFrame().show();
/* #### About dialog #### */
if (e.getSource() ==
VAJAntToolGUI.this.getAboutOkButton())
getAboutDialog().dispose();
/* #### Log frame #### */
if (e.getSource() ==
VAJAntToolGUI.this.getMessageOkButton())
getMessageFrame().dispose();
if (e.getSource() ==
VAJAntToolGUI.this.getMessageClearLogButton())
getMessageTextArea().setText("");
if (e.getSource() ==
VAJAntToolGUI.this.getMessageOkButton())
getMessageFrame().dispose();
}
catch (Throwable exc) {
handleException(exc);
}
}
/**
* ItemListener method
*/
public void itemStateChanged(ItemEvent e) {
try {
if (e.getSource() ==
VAJAntToolGUI.this.getTargetList())
getBuildButton().setEnabled(true);
if (e.getSource() ==
VAJAntToolGUI.this.getMessageOutputLevelChoice())
getBuildInfo().setOutputMessageLevel(getMessageOutputLevelChoice().getSelectedIndex());
if (e.getSource() ==
VAJAntToolGUI.this.getTargetList())
getBuildInfo().setTarget(getTargetList().getSelectedItem());
}
catch (Throwable exc) {
handleException(exc);
}
}
/**
* PropertyChangeListener method
*/
public void propertyChange(java.beans.PropertyChangeEvent evt) {
if (evt.getSource() ==
VAJAntToolGUI.this.getBuildInfo() &&
(evt.getPropertyName().equals("projectName")))
connectProjectNameToLabel();
if (evt.getSource() ==
VAJAntToolGUI.this.getBuildInfo() &&
(evt.getPropertyName().equals("buildFileName")))
connectBuildFileNameToTextField();
}
/**
* TextListener method
*/
public void textValueChanged(TextEvent e) {
if (e.getSource() ==
VAJAntToolGUI.this.getBuildFileTextField())
connectTextFieldToBuildFileName();
}
/**
* WindowListener methods
*/
public void windowClosing(WindowEvent e) {
try {
if (e.getSource() == VAJAntToolGUI.this) {
dispose();
System.exit(0);
}
if (e.getSource() ==
VAJAntToolGUI.this.getAboutDialog())
getAboutDialog().dispose();
if (e.getSource() ==
VAJAntToolGUI.this.getMessageFrame())
getMessageFrame().dispose();
}
catch (Throwable exc) {
handleException(exc);
}
}
public void windowActivated(WindowEvent e) {};
public void windowClosed(WindowEvent e) {};
public void windowDeactivated(WindowEvent e) {};
public void windowDeiconified(WindowEvent e) {};
public void windowIconified(WindowEvent e) {};
public void windowOpened(WindowEvent e) {};
}
/**
* AntMake default-constructor.
*/
private VAJAntToolGUI() {
super();
initialize();
}
/**
* AntMake constructor called by VAJAntTool integration.
* @param buildInfo VAJBuildInfo
*/
public VAJAntToolGUI(VAJBuildInfo newBuildInfo) {
super();
setBuildInfo(newBuildInfo);
initialize();
}
/**
* This method is used to center dialogs.
*/
public static void centerDialog(Dialog dialog) {
dialog.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width / 2) -
(dialog.getSize().width / 2),
(java.awt.Toolkit.getDefaultToolkit().getScreenSize().height / 2) -
(dialog.getSize().height / 2));
}
/**
* connectBuildFileNameToTextField: (BuildInfo.buildFileName <-->
BuildFileTextField.text)
*/
private void connectBuildFileNameToTextField() {
/* Set the target from the source */
try {
if (iConnPtoP2Aligning == false) {
iConnPtoP2Aligning = true;
if ((getBuildInfo() != null)) {
getBuildFileTextField().setText(getBuildInfo().getBuildFileName());
}
iConnPtoP2Aligning = false;
}
} catch (Throwable iExc) {
iConnPtoP2Aligning = false;
handleException(iExc);
}
}
/**
* connectProjectNameToLabel: (BuildInfo.vajProjectName <-->
ProjectText.text)
*/
private void connectProjectNameToLabel() {
/* Set the target from the source */
try {
if ((getBuildInfo() != null)) {
getProjectText().setText(getBuildInfo().getVAJProjectName());
}
} catch (Throwable iExc) {
handleException(iExc);
}
}
/**
* connectTextFieldToBuildFileName: (BuildInfo.buildFileName <-->
BuildFileTextField.text)
*/
private void connectTextFieldToBuildFileName() {
/* Set the source from the target */
try {
if (iConnPtoP2Aligning == false) {
iConnPtoP2Aligning = true;
if ((getBuildInfo() != null)) {
getBuildInfo().setBuildFileName(getBuildFileTextField().getText());
}
iConnPtoP2Aligning = false;
}
} catch (Throwable iExc) {
iConnPtoP2Aligning = false;
handleException(iExc);
}
}
/**
* external build of a .jar-file
*/
private void executeTarget() {
try {
getMessageFrame().show();
// Chris: HACK: remove when Ant-Refactoring is finished!
logger.buildStarted(null);
getBuildInfo().executeProject(logger);
// Chris: HACK: remove when Ant-Refactoring is finished!
logger.buildSuccessful();
}
catch (Throwable exc) {
// We aren't interested in exceptions! All necessary
information has been written to the logging-window!
// Unfortunately ANT-Refactoring isn't done yet!
// Chris: HACK: remove when Ant-Refactoring is finished!
logger.buildFailed( exc );
}
return;
}
/**
* Fills the taget-list with project-targets
*/
private void fillList() {
getTargetList().removeAll();
Vector targets = getBuildInfo().getProjectTargets();
for (int i = 0;i < targets.size(); i++) {
getTargetList().add(targets.elementAt(i).toString());
}
getTargetList().select(iBuildInfo.getProjectTargets().indexOf(iBuildInfo.getTarget()));
if (getTargetList().getSelectedIndex() >= 0) {
getBuildButton().setEnabled(true);
}
}
/**
* Copied from DefaultLogger to provide the same time-format.
*/
public static String formatTime(long millis) {
long seconds = millis / 1000;
long minutes = seconds / 60;
if (minutes > 0) {
return Long.toString(minutes) + " minute"
+ (minutes == 1 ? " " : "s ")
+ Long.toString(seconds%60) + " second"
+ (seconds%60 == 1 ? "" : "s");
}
else {
return Long.toString(seconds) + " second"
+ (seconds%60 == 1 ? "" : "s");
}
}
/**
* Return the AboutCommandPanel property value.
* @return java.awt.Panel
*/
private Panel getAboutCommandPanel() {
if (iAboutCommandPanel == null) {
try {
iAboutCommandPanel = new Panel();
iAboutCommandPanel.setName("AboutCommandPanel");
iAboutCommandPanel.setLayout(new
java.awt.FlowLayout());
getAboutCommandPanel().add(getAboutOkButton(),
getAboutOkButton().getName());
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAboutCommandPanel;
}
/**
* Return the AboutContactLabel property value.
* @return java.awt.Label
*/
private Label getAboutContactLabel() {
if (iAboutContactLabel == null) {
try {
iAboutContactLabel = new Label();
iAboutContactLabel.setName("AboutContactLabel");
iAboutContactLabel.setAlignment(java.awt.Label.CENTER);
iAboutContactLabel.setText("contact: [EMAIL
PROTECTED] or [EMAIL PROTECTED]");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAboutContactLabel;
}
/**
* Return the AboutDevLabel property value.
* @return java.awt.Label
*/
private Label getAboutDevLabel() {
if (iAboutDevLabel == null) {
try {
iAboutDevLabel = new Label();
iAboutDevLabel.setName("AboutDevLabel");
iAboutDevLabel.setAlignment(java.awt.Label.CENTER);
iAboutDevLabel.setText("developed by Wolf
Siberski & Christoph Wilhelms");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAboutDevLabel;
}
/**
* Return the AboutDialog property value.
* @return java.awt.Dialog
*/
private Dialog getAboutDialog() {
if (iAboutDialog == null) {
try {
iAboutDialog = new Dialog(this);
iAboutDialog.setName("AboutDialog");
iAboutDialog.setResizable(false);
iAboutDialog.setLayout(new
java.awt.BorderLayout());
iAboutDialog.setBounds(550, 14, 383, 142);
iAboutDialog.setModal(true);
iAboutDialog.setTitle("About...");
getAboutDialog().add(getAboutDialogContentPanel(), "Center");
iAboutDialog.pack();
centerDialog(iAboutDialog);
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAboutDialog;
}
/**
* Return the AboutDialogContentPanel property value.
* @return java.awt.Panel
*/
private Panel getAboutDialogContentPanel() {
if (iAboutDialogContentPanel == null) {
try {
iAboutDialogContentPanel = new Panel();
iAboutDialogContentPanel.setName("AboutDialogContentPanel");
iAboutDialogContentPanel.setLayout(new
java.awt.BorderLayout());
getAboutDialogContentPanel().add(getAboutCommandPanel(), "South");
getAboutDialogContentPanel().add(getAboutInfoPanel(), "Center");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAboutDialogContentPanel;
}
/**
* Return the AboutInfoPanel property value.
* @return java.awt.Panel
*/
private Panel getAboutInfoPanel() {
if (iAboutInfoPanel == null) {
try {
iAboutInfoPanel = new Panel();
iAboutInfoPanel.setName("AboutInfoPanel");
iAboutInfoPanel.setLayout(new GridBagLayout());
GridBagConstraints constraintsAboutTitleLabel =
new GridBagConstraints();
constraintsAboutTitleLabel.gridx = 0;
constraintsAboutTitleLabel.gridy = 0;
constraintsAboutTitleLabel.fill =
GridBagConstraints.HORIZONTAL;
constraintsAboutTitleLabel.weightx = 1.0;
constraintsAboutTitleLabel.weighty = 1.0;
constraintsAboutTitleLabel.insets = new
Insets(4, 0, 4, 0);
getAboutInfoPanel().add(getAboutTitleLabel(),
constraintsAboutTitleLabel);
GridBagConstraints constraintsAboutDevLabel =
new GridBagConstraints();
constraintsAboutDevLabel.gridx = 0;
constraintsAboutDevLabel.gridy = 1;
constraintsAboutDevLabel.fill =
GridBagConstraints.HORIZONTAL;
constraintsAboutDevLabel.weightx = 1.0;
constraintsAboutDevLabel.insets = new Insets(4,
0, 0, 0);
getAboutInfoPanel().add(getAboutDevLabel(),
constraintsAboutDevLabel);
GridBagConstraints constraintsAboutContactLabel
= new GridBagConstraints();
constraintsAboutContactLabel.gridx = 0;
constraintsAboutContactLabel.gridy = 2;
constraintsAboutContactLabel.fill =
GridBagConstraints.HORIZONTAL;
constraintsAboutContactLabel.weightx = 1.0;
constraintsAboutContactLabel.insets = new
Insets(2, 0, 4, 0);
getAboutInfoPanel().add(getAboutContactLabel(),
constraintsAboutContactLabel);
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAboutInfoPanel;
}
/**
* Return the AboutMenuItem property value.
* @return java.awt.MenuItem
*/
private MenuItem getAboutMenuItem() {
if (iAboutMenuItem == null) {
try {
iAboutMenuItem = new MenuItem();
iAboutMenuItem.setLabel("About...");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAboutMenuItem;
}
/**
* Return the AboutOkButton property value.
* @return java.awt.Button
*/
private Button getAboutOkButton() {
if (iAboutOkButton == null) {
try {
iAboutOkButton = new Button();
iAboutOkButton.setName("AboutOkButton");
iAboutOkButton.setLabel("OK");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAboutOkButton;
}
/**
* Return the AboutTitleLabel property value.
* @return java.awt.Label
*/
private Label getAboutTitleLabel() {
if (iAboutTitleLabel == null) {
try {
iAboutTitleLabel = new Label();
iAboutTitleLabel.setName("AboutTitleLabel");
iAboutTitleLabel.setFont(new Font("Arial", 1,
12));
iAboutTitleLabel.setAlignment(Label.CENTER);
iAboutTitleLabel.setText("Ant VisualAge for
Java Tool-Integration");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAboutTitleLabel;
}
/**
* Return the AntMakeMenuBar property value.
* @return java.awt.MenuBar
*/
private MenuBar getAntMakeMenuBar() {
if (iAntMakeMenuBar == null) {
try {
iAntMakeMenuBar = new MenuBar();
iAntMakeMenuBar.add(getFileMenu());
iAntMakeMenuBar.add(getHelpMenu());
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iAntMakeMenuBar;
}
/**
* Return the BrowseButton property value.
* @return Button
*/
private Button getBrowseButton() {
if (iBrowseButton == null) {
try {
iBrowseButton = new Button();
iBrowseButton.setName("BrowseButton");
iBrowseButton.setLabel("...");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iBrowseButton;
}
/**
* Return the BuildButton property value.
* @return java.awt.Button
*/
private Button getBuildButton() {
if (iBuildButton == null) {
try {
iBuildButton = new Button();
iBuildButton.setName("BuildButton");
iBuildButton.setLabel("Build");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iBuildButton;
}
/**
* Return the BuildFileLabel property value.
* @return java.awt.Label
*/
private Label getBuildFileLabel() {
if (iBuildFileLabel == null) {
try {
iBuildFileLabel = new Label();
iBuildFileLabel.setName("BuildFileLabel");
iBuildFileLabel.setText("Ant-Buildfile:");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iBuildFileLabel;
}
/**
* Return the BuildFileTextField property value.
* @return java.awt.TextField
*/
private TextField getBuildFileTextField() {
if (iBuildFileTextField == null) {
try {
iBuildFileTextField = new TextField();
iBuildFileTextField.setName("BuildFileTextField");
iBuildFileTextField.setBackground(SystemColor.textHighlightText);
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iBuildFileTextField;
}
/**
* Return the BuildInfo property value.
* @return org.apache.tools.ant.taskdefs.optional.ide.VAJBuildInfo
*/
private VAJBuildInfo getBuildInfo() {
return iBuildInfo;
}
/**
* Return the CloseButton property value.
* @return java.awt.Button
*/
private Button getCloseButton() {
if (iCloseButton == null) {
try {
iCloseButton = new Button();
iCloseButton.setName("CloseButton");
iCloseButton.setLabel("Close");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iCloseButton;
}
/**
* Return the CommandButtonPanel property value.
* @return java.awt.Panel
*/
private Panel getCommandButtonPanel() {
if (iCommandButtonPanel == null) {
try {
iCommandButtonPanel = new Panel();
iCommandButtonPanel.setName("CommandButtonPanel");
iCommandButtonPanel.setLayout(getCommandButtonPanelFlowLayout());
iCommandButtonPanel.setBackground(SystemColor.control);
iCommandButtonPanel.add(getReloadButton());
getCommandButtonPanel().add(getBuildButton(),
getBuildButton().getName());
getCommandButtonPanel().add(getCloseButton(),
getCloseButton().getName());
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iCommandButtonPanel;
}
/**
* Return the CommandButtonPanelFlowLayout property value.
* @return java.awt.FlowLayout
*/
private FlowLayout getCommandButtonPanelFlowLayout() {
FlowLayout iCommandButtonPanelFlowLayout = null;
try {
/* Create part */
iCommandButtonPanelFlowLayout = new FlowLayout();
iCommandButtonPanelFlowLayout.setAlignment(FlowLayout.RIGHT);
} catch (Throwable iExc) {
handleException(iExc);
};
return iCommandButtonPanelFlowLayout;
}
/**
* Return the ContentsPane property value.
* @return java.awt.Panel
*/
private Panel getContentsPane() {
if (iContentsPane == null) {
try {
iContentsPane = new Panel();
iContentsPane.setName("ContentsPane");
iContentsPane.setLayout(new BorderLayout());
getContentsPane().add(getCommandButtonPanel(),
"South");
getContentsPane().add(getOptionenPanel(),
"Center");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iContentsPane;
}
/**
* Return the FileDialog property value.
* @return java.awt.FileDialog
*/
private FileDialog getFileDialog() {
if (iFileDialog == null) {
try {
iFileDialog = new FileDialog(this);
iFileDialog.setName("FileDialog");
iFileDialog.setLayout(null);
centerDialog(iFileDialog);
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iFileDialog;
}
/**
* Return the FileMenu property value.
* @return java.awt.Menu
*/
private Menu getFileMenu() {
if (iFileMenu == null) {
try {
iFileMenu = new Menu();
iFileMenu.setLabel("File");
iFileMenu.add(getSaveMenuItem());
iFileMenu.add(getMenuSeparator());
iFileMenu.add(getShowLogMenuItem());
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iFileMenu;
}
/**
* Return the HelpMenu property value.
* @return java.awt.Menu
*/
private Menu getHelpMenu() {
if (iHelpMenu == null) {
try {
iHelpMenu = new Menu();
iHelpMenu.setLabel("Help");
iHelpMenu.add(getAboutMenuItem());
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iHelpMenu;
}
/**
* Return the MenuSeparator1 property value.
* @return java.awt.MenuItem
*/
private MenuItem getMenuSeparator() {
if (iMenuSeparator == null) {
try {
iMenuSeparator = new MenuItem();
iMenuSeparator.setLabel("-");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iMenuSeparator;
}
/**
* Return the MessageClearLogButton property value.
* @return java.awt.Button
*/
private Button getMessageClearLogButton() {
if (iMessageClearLogButton == null) {
try {
iMessageClearLogButton = new Button();
iMessageClearLogButton.setName("MessageClearLogButton");
iMessageClearLogButton.setLabel("Clear Log");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iMessageClearLogButton;
}
/**
* Return the MessageCommandPanel property value.
* @return java.awt.Panel
*/
private Panel getMessageCommandPanel() {
if (iMessageCommandPanel == null) {
try {
iMessageCommandPanel = new Panel();
iMessageCommandPanel.setName("MessageCommandPanel");
iMessageCommandPanel.setLayout(new
FlowLayout());
getMessageCommandPanel().add(getMessageClearLogButton(),
getMessageClearLogButton().getName());
getMessageCommandPanel().add(getMessageOkButton(),
getMessageOkButton().getName());
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iMessageCommandPanel;
}
/**
* Return the MessageContentPanel property value.
* @return java.awt.Panel
*/
private Panel getMessageContentPanel() {
if (iMessageContentPanel == null) {
try {
iMessageContentPanel = new Panel();
iMessageContentPanel.setName("MessageContentPanel");
iMessageContentPanel.setLayout(new
BorderLayout());
iMessageContentPanel.setBackground(SystemColor.control);
getMessageContentPanel().add(getMessageTextArea(), "Center");
getMessageContentPanel().add(getMessageCommandPanel(), "South");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iMessageContentPanel;
}
/**
* Return the MessageFrame property value.
* @return java.awt.Frame
*/
private Frame getMessageFrame() {
if (iMessageFrame == null) {
try {
iMessageFrame = new Frame();
iMessageFrame.setName("MessageFrame");
iMessageFrame.setLayout(new BorderLayout());
iMessageFrame.setBounds(0, 0, 750, 250);
iMessageFrame.setTitle("Message Log");
iMessageFrame.add(getMessageContentPanel(),
"Center");
iMessageFrame.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width /
2) - (iMessageFrame.getSize().width / 2),
(java.awt.Toolkit.getDefaultToolkit().getScreenSize().height / 2));
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iMessageFrame;
}
/**
* Return the MessageOkButton property value.
* @return java.awt.Button
*/
private Button getMessageOkButton() {
if (iMessageOkButton == null) {
try {
iMessageOkButton = new Button();
iMessageOkButton.setName("MessageOkButton");
iMessageOkButton.setLabel("Close");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iMessageOkButton;
}
/**
* Return the MessageOutputLevelChoice property value.
* @return java.awt.Choice
*/
private Choice getMessageOutputLevelChoice() {
if (iMessageOutputLevelChoice == null) {
try {
iMessageOutputLevelChoice = new Choice();
iMessageOutputLevelChoice.setName("MessageOutputLevelChoice");
iMessageOutputLevelChoice.add("Error");
iMessageOutputLevelChoice.add("Warning");
iMessageOutputLevelChoice.add("Info");
iMessageOutputLevelChoice.add("Verbose");
iMessageOutputLevelChoice.add("Debug");
iMessageOutputLevelChoice.select(2);
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iMessageOutputLevelChoice;
}
/**
* Return the MessageOutputLevelLabel property value.
* @return java.awt.Label
*/
private Label getMessageOutputLevelLabel() {
if (iMessageOutputLevelLabel == null) {
try {
iMessageOutputLevelLabel = new Label();
iMessageOutputLevelLabel.setName("MessageOutputLevelLabel");
iMessageOutputLevelLabel.setText("Message
Level:");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iMessageOutputLevelLabel;
}
/**
* Return the MessageTextArea property value.
* @return java.awt.TextArea
*/
private TextArea getMessageTextArea() {
if (iMessageTextArea == null) {
try {
iMessageTextArea = new TextArea();
iMessageTextArea.setName("MessageTextArea");
iMessageTextArea.setFont(new Font("monospaced",
0, 12));
iMessageTextArea.setText("");
iMessageTextArea.setEditable(false);
iMessageTextArea.setEnabled(true);
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iMessageTextArea;
}
/**
* Return the Panel1 property value.
* @return java.awt.Panel
*/
private Panel getOptionenPanel() {
if (iOptionenPanel == null) {
try {
iOptionenPanel = new Panel();
iOptionenPanel.setName("OptionenPanel");
iOptionenPanel.setLayout(new GridBagLayout());
iOptionenPanel.setBackground(SystemColor.control);
GridBagConstraints constraintsProjectLabel =
new GridBagConstraints();
constraintsProjectLabel.gridx = 0;
constraintsProjectLabel.gridy = 0;
constraintsProjectLabel.anchor =
GridBagConstraints.WEST;
constraintsProjectLabel.insets = new Insets(4,
4, 4, 4);
getOptionenPanel().add(getProjectLabel(),
constraintsProjectLabel);
GridBagConstraints constraintsBuildFileLabel =
new GridBagConstraints();
constraintsBuildFileLabel.gridx = 0;
constraintsBuildFileLabel.gridy = 1;
constraintsBuildFileLabel.anchor =
GridBagConstraints.WEST;
constraintsBuildFileLabel.insets = new
Insets(4, 4, 4, 4);
getOptionenPanel().add(getBuildFileLabel(),
constraintsBuildFileLabel);
GridBagConstraints constraintsTargetLabel = new
GridBagConstraints();
constraintsTargetLabel.gridx = 0;
constraintsTargetLabel.gridy = 2;
constraintsTargetLabel.anchor =
GridBagConstraints.NORTHWEST;
constraintsTargetLabel.insets = new Insets(4,
4, 4, 4);
getOptionenPanel().add(getTargetLabel(),
constraintsTargetLabel);
GridBagConstraints constraintsProjectText = new
GridBagConstraints();
constraintsProjectText.gridx = 1;
constraintsProjectText.gridy = 0;
constraintsProjectText.gridwidth = 2;
constraintsProjectText.fill =
GridBagConstraints.HORIZONTAL;
constraintsProjectText.anchor =
GridBagConstraints.WEST;
constraintsProjectText.insets = new Insets(4,
4, 4, 4);
getOptionenPanel().add(getProjectText(),
constraintsProjectText);
GridBagConstraints
constraintsBuildFileTextField = new GridBagConstraints();
constraintsBuildFileTextField.gridx = 1;
constraintsBuildFileTextField.gridy = 1;
constraintsBuildFileTextField.fill =
GridBagConstraints.HORIZONTAL;
constraintsBuildFileTextField.anchor =
GridBagConstraints.WEST;
constraintsBuildFileTextField.weightx = 1.0;
constraintsBuildFileTextField.insets = new
Insets(4, 4, 4, 4);
getOptionenPanel().add(getBuildFileTextField(),
constraintsBuildFileTextField);
GridBagConstraints constraintsBrowseButton =
new GridBagConstraints();
constraintsBrowseButton.gridx = 2;
constraintsBrowseButton.gridy = 1;
constraintsBrowseButton.insets = new Insets(4,
4, 4, 4);
getOptionenPanel().add(getBrowseButton(),
constraintsBrowseButton);
GridBagConstraints constraintsTargetList = new
GridBagConstraints();
constraintsTargetList.gridx = 1;
constraintsTargetList.gridy = 2;
constraintsTargetList.gridheight = 2;
constraintsTargetList.fill =
GridBagConstraints.BOTH;
constraintsTargetList.weightx = 1.0;
constraintsTargetList.weighty = 1.0;
constraintsTargetList.insets = new Insets(4, 4,
4, 4);
getOptionenPanel().add(getTargetList(),
constraintsTargetList);
GridBagConstraints
constraintsMessageOutputLevelLabel = new GridBagConstraints();
constraintsMessageOutputLevelLabel.gridx = 0;
constraintsMessageOutputLevelLabel.gridy = 4;
constraintsMessageOutputLevelLabel.anchor =
GridBagConstraints.WEST;
constraintsMessageOutputLevelLabel.insets = new
Insets(4, 4, 4, 4);
getOptionenPanel().add(getMessageOutputLevelLabel(),
constraintsMessageOutputLevelLabel);
GridBagConstraints
constraintsMessageOutputLevelChoice = new GridBagConstraints();
constraintsMessageOutputLevelChoice.gridx = 1;
constraintsMessageOutputLevelChoice.gridy = 4;
constraintsMessageOutputLevelChoice.fill =
GridBagConstraints.HORIZONTAL;
constraintsMessageOutputLevelChoice.anchor =
GridBagConstraints.WEST;
constraintsMessageOutputLevelChoice.weightx =
1.0;
constraintsMessageOutputLevelChoice.insets =
new Insets(4, 4, 4, 4);
getOptionenPanel().add(getMessageOutputLevelChoice(),
constraintsMessageOutputLevelChoice);
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iOptionenPanel;
}
/**
* Return the ProjectLabel property value.
* @return java.awt.Label
*/
private Label getProjectLabel() {
if (iProjectLabel == null) {
try {
iProjectLabel = new Label();
iProjectLabel.setName("ProjectLabel");
iProjectLabel.setText("Projectname:");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iProjectLabel;
}
/**
* Return the ProjectText property value.
* @return java.awt.Label
*/
private Label getProjectText() {
if (iProjectText == null) {
try {
iProjectText = new Label();
iProjectText.setName("ProjectText");
iProjectText.setText(" ");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iProjectText;
}
/**
* Return the ReloadButton property value.
* @return java.awt.Button
*/
private Button getReloadButton() {
if (iReloadButton == null) {
try {
iReloadButton = new Button();
iReloadButton.setName("ReloadButton");
iReloadButton.setLabel("(Re)Load");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iReloadButton;
}
/**
* Return the SaveMenuItem property value.
* @return java.awt.MenuItem
*/
private MenuItem getSaveMenuItem() {
if (iSaveMenuItem == null) {
try {
iSaveMenuItem = new MenuItem();
iSaveMenuItem.setLabel("Save BuildInfo To
Repository");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iSaveMenuItem;
}
/**
* Return the ShowLogMenuItem property value.
* @return java.awt.MenuItem
*/
private MenuItem getShowLogMenuItem() {
if (iShowLogMenuItem == null) {
try {
iShowLogMenuItem = new MenuItem();
iShowLogMenuItem.setLabel("Log");
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iShowLogMenuItem;
}
/**
* Return the TargetLabel property value.
* @return java.awt.Label
*/
private Label getTargetLabel() {
if (iTargetLabel == null) {
try {
iTargetLabel = new Label();
iTargetLabel.setName("TargetLabel");
iTargetLabel.setText("Target:");
iTargetLabel.setEnabled(true);
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iTargetLabel;
}
/**
* Return the TargetList property value.
* @return java.awt.List
*/
private List getTargetList() {
if (iTargetList == null) {
try {
iTargetList = new List();
iTargetList.setName("TargetList");
iTargetList.setEnabled(true);
} catch (Throwable iExc) {
handleException(iExc);
}
}
return iTargetList;
}
/**
* Called whenever the part throws an exception.
* @param exception Throwable
*/
private void handleException(Throwable exception) {
// Write exceptions to the log-window
getMessageTextArea().append(lineSeparator + lineSeparator +
exception.getMessage());
getMessageFrame().show();
}
/**
* Initializes connections
* @exception Exception The exception description.
*/
private void initConnections() throws Exception {
this.addWindowListener(iEventHandler);
getBrowseButton().addActionListener(iEventHandler);
getCloseButton().addActionListener(iEventHandler);
getBuildButton().addActionListener(iEventHandler);
getSaveMenuItem().addActionListener(iEventHandler);
getAboutOkButton().addActionListener(iEventHandler);
getAboutMenuItem().addActionListener(iEventHandler);
getMessageOkButton().addActionListener(iEventHandler);
getMessageClearLogButton().addActionListener(iEventHandler);
getMessageOkButton().addActionListener(iEventHandler);
getShowLogMenuItem().addActionListener(iEventHandler);
getAboutDialog().addWindowListener(iEventHandler);
getMessageFrame().addWindowListener(iEventHandler);
getReloadButton().addActionListener(iEventHandler);
getTargetList().addItemListener(iEventHandler);
getMessageOutputLevelChoice().addItemListener(iEventHandler);
getBuildFileTextField().addTextListener(iEventHandler);
connectProjectNameToLabel();
connectBuildFileNameToTextField();
}
/**
* Initialize the class.
*/
private void initialize() {
try {
setName("AntMake");
setMenuBar(getAntMakeMenuBar());
setLayout(new java.awt.BorderLayout());
setSize(389, 222);
setTitle("Ant VisualAge for Java Tool-Integration");
add(getContentsPane(), "Center");
initConnections();
} catch (Throwable iExc) {
handleException(iExc);
}
setLocation((Toolkit.getDefaultToolkit().getScreenSize().width
/ 2) - (getSize().width / 2),
(java.awt.Toolkit.getDefaultToolkit().getScreenSize().height / 2) -
(getSize().height));
if ((getTargetList().getItemCount() == 0) ||
(getTargetList().getSelectedIndex() < 0)) {
getBuildButton().setEnabled(false);
}
}
/**
* Saves the build-informations to repository
*/
private void saveBuildInfo() {
try {
VAJAntTool.saveBuildData(getBuildInfo());
}
catch (Throwable exc) {
// This Exception occurs when you try to write into a
versioned project
handleException( exc );
}
return;
}
/**
* Set the BuildInfo to a new value.
* @param newValue
org.apache.tools.ant.taskdefs.optional.vaj.VAJBuildInfo
*/
private void setBuildInfo(VAJBuildInfo newValue) {
if (iBuildInfo != newValue) {
try {
/* Stop listening for events from the current
object */
if (iBuildInfo != null) {
iBuildInfo.removePropertyChangeListener(iEventHandler);
}
iBuildInfo = newValue;
/* Listen for events from the new object */
if (iBuildInfo != null) {
iBuildInfo.addPropertyChangeListener(iEventHandler);
}
connectProjectNameToLabel();
connectBuildFileNameToTextField();
// Select the log-level given by BuildInfo
getMessageOutputLevelChoice().select(iBuildInfo.getOutputMessageLevel());
fillList();
// BuildInfo can conly be saved to a VAJ
project if tool API is called via the projects context-menu
if ((iBuildInfo.getVAJProjectName() == null) ||
(iBuildInfo.getVAJProjectName().equals(""))) {
getSaveMenuItem().setEnabled(false);
}
} catch (Throwable iExc) {
handleException(iExc);
}
}
}
}
1.1
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJBuildInfo.java
Index: VAJBuildInfo.java
===================================================================
package org.apache.tools.ant.taskdefs.optional.ide;
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
import java.util.Hashtable;
import java.util.Vector;
import java.util.Enumeration;
import org.apache.tools.ant.*;
import java.io.File;
/**
* This class wraps the Ant project information needed to
* start Ant from Visual Age.
* It serves the following purposes:
* - acts as model for AntMakeFrame
* - converts itself to/from String (to store the information
* as ToolData in the VA repository)
* - wraps Project functions for the GUI (get target list,
* execute target)
*
* @author Wolf Siberski, TUI Infotec GmbH
*/
public class VAJBuildInfo {
// name of the VA project this BuildInfo belongs to
private String vajProjectName = "";
// name of the Ant build file
private String buildFileName = "";
// main targets found in the build file
private Vector projectTargets = new Vector();
// target selected for execution
private java.lang.String target = "";
// log level
private int outputMessageLevel = Project.MSG_INFO;
// Ant Project created from build file
private transient Project project;
// is true if Project initialization was successful
private transient boolean projectInitialized = false;
// Support for bound properties
protected transient java.beans.PropertyChangeSupport propertyChange;
/**
* The addPropertyChangeListener method was generated to support the
propertyChange field.
*/
public synchronized void
addPropertyChangeListener(java.beans.PropertyChangeListener listener) {
getPropertyChange().addPropertyChangeListener(listener);
}
/**
* Returns the BuildInfo information as String. The BuildInfo can
* be rebuilt from that String by calling parse().
* @return java.lang.String
*/
public String asDataString() {
String result = getOutputMessageLevel() + "|" + getBuildFileName() +
"|" + getTarget();
for ( Enumeration e = getProjectTargets().elements();
e.hasMoreElements(); ) {
result = result + "|" + e.nextElement();
}
return result;
}
/**
* Executes the target set by setTarget().
* @param listener BuildListener for the output of the build
*/
public void executeProject( BuildListener listener ) {
Throwable error = null;
try {
if (!isProjectInitialized()) {
project = new Project();
}
project.addBuildListener( listener );
// Chris: HACK: replace when Ant-Refactoring is finished!
// project.fireBuildStarted();
if (!isProjectInitialized()) {
initProject();
}
project.executeTarget(target);
} catch (RuntimeException exc) {
error = exc;
throw exc;
} catch (Error err) {
error = err;
throw err;
} finally {
// Chris: HACK: replace when Ant-Refactoring is finished!
// project.fireBuildFinished(error);
project.removeBuildListener( listener );
}
}
/**
* Search for the insert position to keep names a sorted list of Strings
* This method has been copied from org.apache.tools.ant.Main
*/
private static int findTargetPosition(Vector names, String name) {
int res = names.size();
for (int i=0; i<names.size() && res == names.size(); i++) {
if (name.compareTo((String)names.elementAt(i)) < 0) {
res = i;
}
}
return res;
}
/**
* The firePropertyChange method was generated to support the propertyChange
field.
*/
public void firePropertyChange(java.lang.String propertyName,
java.lang.Object oldValue, java.lang.Object newValue) {
getPropertyChange().firePropertyChange(propertyName, oldValue,
newValue);
}
/**
* Returns the build file name.
* @return build file name.
*/
public String getBuildFileName() {
return buildFileName;
}
/**
* Returns the log level
* @return log level.
*/
public int getOutputMessageLevel() {
return outputMessageLevel;
}
/**
* Returns the Ant project
* @return org.apache.tools.ant.Project
*/
private Project getProject() {
return project;
}
/**
* return a list of all targets in the current buildfile
*/
public Vector getProjectTargets() {
return projectTargets;
}
/**
* Accessor for the propertyChange field.
*/
protected java.beans.PropertyChangeSupport getPropertyChange() {
if (propertyChange == null) {
propertyChange = new java.beans.PropertyChangeSupport(this);
};
return propertyChange;
}
/**
* Insert the method's description here.
* Creation date: (07.11.2000 10:34:18)
* @return java.lang.String
*/
public java.lang.String getTarget() {
return target;
}
/**
* returns the VA project name
* @return The projectName property value.
*/
public String getVAJProjectName() {
return vajProjectName;
}
/**
* Initializes the Ant project. Assumes that the
* project attribute is already set.
*/
private void initProject() {
try {
project.init();
File buildFile = new File(getBuildFileName());
project.setUserProperty("ant.file",
buildFile.getAbsolutePath());
ProjectHelper.configureProject(project, buildFile);
setProjectInitialized(true);
} catch (RuntimeException exc) {
setProjectInitialized(false);
throw exc;
} catch (Error err) {
setProjectInitialized(false);
throw err;
}
}
/**
* Returns true, if the Ant project is initialized
* (i.e. buildfile loaded)
*/
public boolean isProjectInitialized() {
return projectInitialized;
}
/**
* Creates a BuildInfo object from a String
* The String must be in the format
* outputMessageLevel'|'buildFileName'|'defaultTarget'|'(project target'|')*
*
* @return org.apache.tools.ant.taskdefs.optional.vaj.BuildInfo
* @param data java.lang.String
*/
public static VAJBuildInfo parse(String data) {
VAJBuildInfo result = new VAJBuildInfo();
try {
java.util.StringTokenizer tok = new java.util.StringTokenizer(
data, "|" );
result.setOutputMessageLevel( tok.nextToken() );
result.setBuildFileName( tok.nextToken() );
result.setTarget( tok.nextToken() );
while( tok.hasMoreTokens() ) {
result.projectTargets.addElement( tok.nextToken() );
}
} catch ( Throwable t ) {
}
return result;
}
/**
* The removePropertyChangeListener method was generated to support the
propertyChange field.
*/
public synchronized void
removePropertyChangeListener(java.beans.PropertyChangeListener listener) {
getPropertyChange().removePropertyChangeListener(listener);
}
/**
* Sets the build file name
* @param buildFileName build file name
*/
public void setBuildFileName(String newBuildFileName) {
String oldValue = buildFileName;
buildFileName = newBuildFileName;
setProjectInitialized(false);
firePropertyChange("buildFileName", oldValue, buildFileName);
}
/**
* Sets the log level (value must be one of the constants in Project)
* @param outputMessageLevel log level.
*/
public void setOutputMessageLevel(int newOutputMessageLevel) {
int oldValue = outputMessageLevel;
outputMessageLevel = newOutputMessageLevel;
firePropertyChange("outputMessageLevel", new Integer(oldValue), new
Integer(outputMessageLevel));
}
/**
* Sets the log level (value must be one of the constants in Project)
* @param outputMessageLevel log level as String.
*/
private void setOutputMessageLevel(String outputMessageLevel) {
int level = Integer.parseInt( outputMessageLevel );
setOutputMessageLevel( level );
}
/**
*/
private void setProjectInitialized(boolean initialized) {
Boolean oldValue = new Boolean(projectInitialized);
projectInitialized = initialized;
firePropertyChange("projectInitialized", oldValue, new
Boolean(projectInitialized));
}
/**
* Sets the target to execute when executeBuild is called
* @param newTarget build target
*/
public void setTarget(String newTarget) {
String oldValue = target;
target = newTarget;
firePropertyChange("target", oldValue, target);
}
/**
* Sets the name of the Visual Age for Java project where
* this BuildInfo belongs to
* @param newProjectName VAJ project
*/
public void setVAJProjectName(String newVAJProjectName) {
String oldValue = vajProjectName;
vajProjectName = newVAJProjectName;
firePropertyChange("VAJProjectName", oldValue, vajProjectName);
}
/**
* reloads the build file and updates the target list
*/
public void updateTargetList() {
project = new Project();
initProject();
projectTargets.removeAllElements();
Enumeration ptargets = project.getTargets().elements();
while (ptargets.hasMoreElements()) {
Target currentTarget = (Target) ptargets.nextElement();
if ( currentTarget.getDescription() != null ) {
String targetName = currentTarget.getName();
int pos = findTargetPosition( projectTargets,
targetName );
projectTargets.insertElementAt(targetName, pos);
}
}
}
}