You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@locus.apache.org on 2000/11/07 15:22:48 UTC
cvs commit: jakarta-ant/src/antidote/org/apache/tools/ant/gui/resources action.properties antidote.properties
bodewig 00/11/07 06:22:46
Modified: src/antidote/docs gui-requirements.html
src/antidote/org/apache/tools/ant/gui Console.java
ProjectNavigator.java ProjectProxy.java
PropertyEditor.java
src/antidote/org/apache/tools/ant/gui/resources
action.properties antidote.properties
Added: src/antidote TODO
src/antidote/org/apache/tools/ant/gui
TargetSelectionModel.java
src/antidote/org/apache/tools/ant/gui/event
TargetSelectionEvent.java
Log:
Enable Antidote to select and run targets.
Submitted by: Simeon Fitch <me...@yahoo.com>
Revision Changes Path
1.1 jakarta-ant/src/antidote/TODO
Index: TODO
===================================================================
TODO List:
* Need Ant API access to:
- Tasks within a Target
- The topo sorted task list to get flattened dependencies
- The build setup code to recduce code replication.
- Normalize the Ant data model to represent a more consistent
tree structure, and more bean-like API.
* Cause console to clear when a project is closed.
* Better define the data model architecture, and how it interfaces
with the Ant data model.
* Define a list of proposed changes for the Ant datamodel,
specifically the Project class and the ability to stop running builds,
and reduction of code duplication in launching builds.
* Project navigator (currently stubbed out in the ProjectNavigator class).
* Implement a ListSelectionModel that is backed by a set of selected
targets.
* Project properties viewer, including the ability to view
dependencies (local and cascading).
* Acquire or implement a logging facility.
* Build launching capability.
* Build monitoring console.
* Get some icons!
* Create a listener for the ActionManager that knows how to change
the enanbled state of the various actions based on the
application state.
1.2 +4 -4 jakarta-ant/src/antidote/docs/gui-requirements.html
Index: gui-requirements.html
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/docs/gui-requirements.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gui-requirements.html 2000/11/03 12:04:21 1.1
+++ gui-requirements.html 2000/11/07 14:22:25 1.2
@@ -5,7 +5,7 @@
</HEAD>
<BODY>
<H1>Ant GUI Feature List</H1>
- <P>Version 0.3 (2000/10/31)</P>
+ <P>Version 0.4 (2000/11/06)</P>
<P>Authors:
<A HREF="mailto:simeon@fitch.net">Simeon H.K. Fitch</A>,
<A HREF="mailto:chris@christophertodd.com">Chris Todd</A>,
@@ -31,7 +31,6 @@
<P>The features are in a loose order of expressed interested by
contributors.</P>
-
<!-- Section List -->
<OL TYPE="A">
@@ -68,7 +67,6 @@
</OL>
<BR>
-
<LI><H2>Build Wizard (auto-configure)</H2></LI>
<P>To make starting a new project with Ant as easy as possible, the a
wizard type of UI can be used where the user provides some basic
@@ -155,7 +153,9 @@
introspection to discover attribute set, then reference some other
mechanism for attributes that are manifested as properties.</I>
</LI>
- <LI>Report errors in the XML source.</LI>
+ <LI>Report errors in the XML source.</LI>
+ <LI>Provide a list of recently opened documents for
+ quick reloading.</LI>
</OL>
<LI>View project contents.</LI>
<OL TYPE="a">
1.3 +19 -3 jakarta-ant/src/antidote/org/apache/tools/ant/gui/Console.java
Index: Console.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/Console.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Console.java 2000/11/06 12:52:42 1.2
+++ Console.java 2000/11/07 14:22:27 1.3
@@ -54,6 +54,7 @@
package org.apache.tools.ant.gui;
import org.apache.tools.ant.gui.event.*;
import javax.swing.*;
+import javax.swing.plaf.ComponentUI;
import javax.swing.text.Document;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
@@ -63,7 +64,7 @@
/**
* Logging console display.
*
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
* @author Simeon Fitch
*/
public class Console extends AntEditor {
@@ -82,7 +83,7 @@
context.getEventBus().addMember(EventBus.MONITORING, new Handler());
setLayout(new BorderLayout());
- _text = new JTextPane();
+ _text = new NoWrapTextPane();
_text.setEditable(false);
JScrollPane scroller = new JScrollPane(_text);
scroller.setVerticalScrollBarPolicy(
@@ -162,7 +163,6 @@
}
}
}
-
/** Class providing filtering for project events. */
private static class Filter implements BusFilter {
/**
@@ -173,6 +173,22 @@
*/
public boolean accept(EventObject event) {
return event instanceof AntBuildEvent;
+ }
+ }
+
+ /** Specialization of JTextPane to provide proper wrapping behavior. */
+ private static class NoWrapTextPane extends JTextPane {
+ /**
+ * Overridden to ensure that the JTextPane is only
+ * forced to match the viewport if it is smaller than
+ * the viewport.
+ *
+ * @return True if smaller than viewport, false otherwise.
+ */
+ public boolean getScrollableTracksViewportWidth() {
+ ComponentUI ui = getUI();
+ return getParent() != null ? ui.getPreferredSize(this).width <=
+ getParent().getSize().width : true;
}
}
1.3 +3 -1 jakarta-ant/src/antidote/org/apache/tools/ant/gui/ProjectNavigator.java
Index: ProjectNavigator.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/ProjectNavigator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ProjectNavigator.java 2000/11/06 12:52:43 1.2
+++ ProjectNavigator.java 2000/11/07 14:22:29 1.3
@@ -61,7 +61,7 @@
/**
* AntEditor for displaying the project target in a
*
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
* @author Simeon Fitch
*/
class ProjectNavigator extends AntEditor {
@@ -116,9 +116,11 @@
// XXX this needs to be tested against
// different version of Swing...
_tree.setModel(null);
+ _tree.setSelectionModel(null);
}
else {
_tree.setModel(project.getTreeModel());
+ _tree.setSelectionModel(project.getTreeSelectionModel());
}
}
}
1.3 +54 -11 jakarta-ant/src/antidote/org/apache/tools/ant/gui/ProjectProxy.java
Index: ProjectProxy.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/ProjectProxy.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ProjectProxy.java 2000/11/06 12:52:43 1.2
+++ ProjectProxy.java 2000/11/07 14:22:30 1.3
@@ -52,17 +52,17 @@
* <http://www.apache.org/>.
*/
package org.apache.tools.ant.gui;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.ProjectHelper;
-import org.apache.tools.ant.BuildEvent;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.BuildListener;
+import org.apache.tools.ant.*;
import org.apache.tools.ant.gui.event.*;
import java.io.File;
import java.io.IOException;
import javax.swing.tree.TreeModel;
import javax.swing.text.Document;
+import javax.swing.tree.TreeSelectionModel;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.TreeSelectionListener;
import java.util.Enumeration;
+import java.util.Vector;
/**
* This class provides the gateway interface to the data model for
@@ -70,7 +70,7 @@
* (or other external datamodel) occurs. This class also provides various
* views into the data model, such as TreeModel, Documenet, etc.
*
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
* @author Simeon Fitch
*/
public class ProjectProxy {
@@ -81,8 +81,10 @@
private File _file = null;
/** The real Ant Project instance. */
private Project _project = null;
- /** Private the current thread executing a build. */
+ /** The current thread executing a build. */
private Thread _buildThread = null;
+ /** The selection model for selected targets. */
+ private TargetSelectionModel _selections = null;
/**
* File loading ctor.
@@ -101,6 +103,8 @@
*/
private void loadProject() throws IOException {
_project = new Project();
+ _selections = new TargetSelectionModel();
+ _selections.addTreeSelectionListener(new SelectionForwarder());
synchronized(_project) {
_project.init();
@@ -118,6 +122,15 @@
}
/**
+ * Called to indicate that the project is no longer going to be used
+ * by the GUI, and that any cleanup should occur.
+ *
+ */
+ //public void close() {
+ //
+ //}
+
+ /**
* Build the project with the current target (or the default target
* if none is selected. Build occurs on a separate thread, so method
* returns immediately.
@@ -153,6 +166,15 @@
}
/**
+ * Get the tree selection model for selected targets.
+ *
+ * @return Selection model.
+ */
+ public TreeSelectionModel getTreeSelectionModel() {
+ return _selections;
+ }
+
+ /**
* Get the Document perspective on the data.
*
* @return Document view on project.
@@ -197,10 +219,23 @@
try {
fireBuildEvent(new BuildEvent(
_project), BuildEventType.BUILD_STARTED);
- // XXX add code to indicate target execution
- // on the targets that are selected.
- _project.executeTarget(
- _project.getDefaultTarget());
+
+ // Generate list of targets to execute.
+ Target[] targets = _selections.getSelectedTargets();
+ Vector targetNames = new Vector();
+ if(targets.length == 0) {
+ targetNames.add(_project.getDefaultTarget());
+ }
+ else {
+ for(int i = 0; i < targets.length; i++) {
+ targetNames.add(targets[i].getName());
+ }
+ }
+
+ // Execute build on selected targets. XXX It would be
+ // nice if the Project API supported passing in target
+ // objects rather than String names.
+ _project.executeTargets(targetNames);
}
catch(BuildException ex) {
BuildEvent errorEvent = new BuildEvent(_project);
@@ -215,6 +250,14 @@
_buildThread = null;
}
}
+ }
+ }
+
+ /** Forwards selection events to the event bus. */
+ private class SelectionForwarder implements TreeSelectionListener {
+ public void valueChanged(TreeSelectionEvent e) {
+ _context.getEventBus().postEvent(new TargetSelectionEvent(
+ _context, _selections.getSelectedTargets()));
}
}
1.2 +162 -2 jakarta-ant/src/antidote/org/apache/tools/ant/gui/PropertyEditor.java
Index: PropertyEditor.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/PropertyEditor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PropertyEditor.java 2000/11/03 12:04:24 1.1
+++ PropertyEditor.java 2000/11/07 14:22:32 1.2
@@ -52,18 +52,178 @@
* <http://www.apache.org/>.
*/
package org.apache.tools.ant.gui;
+import org.apache.tools.ant.Target;
+import org.apache.tools.ant.gui.event.*;
import javax.swing.*;
+import java.util.*;
+import java.io.StringReader;
+import java.io.IOException;
+import java.awt.BorderLayout;
/**
* Stub for a property editor.
*
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
* @author Simeon H.K. Fitch
*/
class PropertyEditor extends AntEditor {
+ /** Text pane. */
+ private JEditorPane _text = null;
+
+ /**
+ * Standard ctor.
+ *
+ * @param context Application context.
+ */
public PropertyEditor(AppContext context) {
super(context);
- add(new JLabel(getName()));
+ context.getEventBus().addMember(EventBus.MONITORING, new Handler());
+ setLayout(new BorderLayout());
+
+ _text = new JEditorPane("text/html", getAppContext().getResources().
+ getString(getClass(), "noTargets"));
+ _text.setEditable(false);
+ _text.setOpaque(false);
+
+ add(BorderLayout.CENTER, _text);
}
+
+ /**
+ * Populate the display with the given target info.
+ *
+ * @param targets Targets to display info for.
+ */
+ private void displayTargetInfo(Target[] targets) {
+
+ // The text to display.
+ String text = null;
+
+ int num = targets == null ? 0 : targets.length;
+ Object[] args = null;
+ switch(num) {
+ case 0:
+ text = getAppContext().getResources().
+ getString(getClass(), "noTargets");
+ break;
+ case 1:
+ args = getTargetParams(targets[0]);
+ text = getAppContext().getResources().
+ getMessage(getClass(), "oneTarget", args);
+ break;
+ default:
+ args = getTargetParams(targets);
+ text = getAppContext().getResources().
+ getMessage(getClass(), "manyTargets", args);
+ break;
+ }
+
+ if(text != null) {
+ _text.setText(text);
+ }
+ }
+
+ /**
+ * Get the parameters for the formatted message presented for a single
+ * target.
+ *
+ * @param target Target to generate params for.
+ * @return Argument list for the formatted message.
+ */
+ private Object[] getTargetParams(Target target) {
+ List args = new LinkedList();
+ args.add(target.getName());
+ args.add(target.getDescription() == null ?
+ "" : target.getDescription());
+ StringBuffer buf = new StringBuffer();
+ Enumeration enum = target.getDependencies();
+ while(enum.hasMoreElements()) {
+ buf.append(enum.nextElement());
+ if(enum.hasMoreElements()) {
+ buf.append(", ");
+ }
+ }
+ args.add(buf.toString());
+
+ return args.toArray();
+ }
+
+ /**
+ * Get the parameters for the formatted message presented for multiple
+ * targets.
+ *
+ * @param target Targets to generate params for.
+ * @return Argument list for the formatted message.
+ */
+ private Object[] getTargetParams(Target[] targets) {
+ List args = new LinkedList();
+
+ StringBuffer buf = new StringBuffer();
+ Set depends = new HashSet();
+ for(int i = 0; i < targets.length; i++) {
+ buf.append(targets[i].getName());
+ if(i < targets.length - 1) {
+ buf.append(", ");
+ }
+
+ Enumeration enum = targets[i].getDependencies();
+ while(enum.hasMoreElements()) {
+ depends.add(enum.nextElement());
+ }
+ }
+
+ args.add(buf.toString());
+
+ Iterator it = depends.iterator();
+ buf = new StringBuffer();
+ while(it.hasNext()) {
+ buf.append(it.next());
+ if(it.hasNext()) {
+ buf.append(", ");
+ }
+ }
+
+ args.add(buf.toString());
+
+ return args.toArray();
+ }
+
+ /** Class for handling project events. */
+ private class Handler implements BusMember {
+ private final Filter _filter = new Filter();
+
+ /**
+ * Get the filter to that is used to determine if an event should
+ * to to the member.
+ *
+ * @return Filter to use.
+ */
+ public BusFilter getBusFilter() {
+ return _filter;
+ }
+
+ /**
+ * Called when an event is to be posted to the member.
+ *
+ * @param event Event to post.
+ */
+ public void eventPosted(EventObject event) {
+ TargetSelectionEvent e = (TargetSelectionEvent) event;
+ Target[] targets = e.getSelectedTargets();
+ displayTargetInfo(targets);
+ }
+
+ }
+ /** Class providing filtering for project events. */
+ private static class Filter implements BusFilter {
+ /**
+ * Determines if the given event should be accepted.
+ *
+ * @param event Event to test.
+ * @return True if event should be given to BusMember, false otherwise.
+ */
+ public boolean accept(EventObject event) {
+ return event instanceof TargetSelectionEvent;
+ }
+ }
}
1.1 jakarta-ant/src/antidote/org/apache/tools/ant/gui/TargetSelectionModel.java
Index: TargetSelectionModel.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999, 2000 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 apache@apache.org.
*
* 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/>.
*/
package org.apache.tools.ant.gui;
import org.apache.tools.ant.Target;
import javax.swing.tree.DefaultTreeSelectionModel;
import javax.swing.tree.TreePath;
import java.util.*;
/**
* Selection model for the currently selected targets.
*
* @version $Revision: 1.1 $
* @author Simeon Fitch
*/
class TargetSelectionModel extends DefaultTreeSelectionModel {
/**
* Default ctor.
*
*/
public TargetSelectionModel() {
setSelectionMode(DISCONTIGUOUS_TREE_SELECTION);
}
/**
* Convenience method for providing the set of currently selected
* targets.
*
* @return the currently selected targets.
*/
public Target[] getSelectedTargets() {
TreePath[] path = getSelectionPaths();
List values = new LinkedList();
for(int i = 0; path != null && i < path.length; i++) {
Object val = path[i].getLastPathComponent();
if(val instanceof Target) {
values.add(val);
}
}
Target[] retval = new Target[values.size()];
values.toArray(retval);
return retval;
}
}
1.1 jakarta-ant/src/antidote/org/apache/tools/ant/gui/event/TargetSelectionEvent.java
Index: TargetSelectionEvent.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999, 2000 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 apache@apache.org.
*
* 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/>.
*/
package org.apache.tools.ant.gui.event;
import org.apache.tools.ant.Target;
import org.apache.tools.ant.gui.command.Command;
import org.apache.tools.ant.gui.command.NoOpCmd;
import org.apache.tools.ant.gui.AppContext;
/**
* Event indicating that the current set of selected targets has changed.
*
* @version $Revision: 1.1 $
* @author Simeon Fitch
*/
public class TargetSelectionEvent extends AntEvent {
/** New set of selected targets. */
private Target[] _selectedTargets = null;
/**
* Standard ctor.
*
* @param context application context.
*/
public TargetSelectionEvent(AppContext context, Target[] selectedTargets) {
super(context);
_selectedTargets = selectedTargets;
}
/**
* Current set of selected targets.
*
* @return selected target set.
*/
public Target[] getSelectedTargets() {
return _selectedTargets;
}
/**
* Create the appropriate default response command to this event.
*
* @return Command representing an appropriate response to this event.
*/
public Command createDefaultCmd() {
return new NoOpCmd();
}
}
1.3 +1 -1 jakarta-ant/src/antidote/org/apache/tools/ant/gui/resources/action.properties
Index: action.properties
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/resources/action.properties,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- action.properties 2000/11/06 12:52:50 1.2
+++ action.properties 2000/11/07 14:22:42 1.3
@@ -1,6 +1,6 @@
menus=File, Build, Help
-actions=open, close, exit, about, startBuild, stopBuild
+actions=open, close, exit, about, startBuild
new.name=New
new.shortDescription=Create a new project
1.3 +16 -1 jakarta-ant/src/antidote/org/apache/tools/ant/gui/resources/antidote.properties
Index: antidote.properties
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/resources/antidote.properties,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- antidote.properties 2000/11/06 12:52:50 1.2
+++ antidote.properties 2000/11/07 14:22:43 1.3
@@ -15,7 +15,22 @@
# Set specific class properties.
org.apache.tools.ant.gui.SourceEditor.name=Source
-org.apache.tools.ant.gui.PropertyEditor.name=Properties
+
+org.apache.tools.ant.gui.PropertyEditor.name=Target Info
+org.apache.tools.ant.gui.PropertyEditor.noTargets=No targets selected.
+org.apache.tools.ant.gui.PropertyEditor.oneTarget=\
+<html><table>\
+<tr><td align="right"><b>Name</b>:</td><td>{0}</td></tr>\
+<tr><td align="right"><b>Description</b>:</td><td>{1}</td></tr>\
+<tr><td align="right"><b>Depends</b>:</td><td>{2}</td></tr>\
+</table></html>
+
+org.apache.tools.ant.gui.PropertyEditor.manyTargets=\
+<html><table>\
+<tr><td align="right"><b>Names</b>:</td><td>{0}</td></tr>\
+<tr><td align="right"><b>Depends</b>:</td><td>{1}</td></tr>\
+</table></html>
+
org.apache.tools.ant.gui.ProjectNavigator.name=Project
org.apache.tools.ant.gui.Console.name=Console
org.apache.tools.ant.gui.Console.logLevel=Log message level: