metasim 01/01/12 11:02:48
Modified: src/antidote/org/apache/tools/ant/gui/modules/edit
ElementNavigator.java
Log:
Added ability to add new targets.
Revision Changes Path
1.5 +16 -11
jakarta-ant/src/antidote/org/apache/tools/ant/gui/modules/edit/ElementNavigator.java
Index: ElementNavigator.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/modules/edit/ElementNavigator.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ElementNavigator.java 2001/01/11 19:26:49 1.4
+++ ElementNavigator.java 2001/01/12 19:02:46 1.5
@@ -54,13 +54,10 @@
package org.apache.tools.ant.gui.modules.edit;
import org.apache.tools.ant.gui.core.*;
import org.apache.tools.ant.gui.event.*;
-import org.apache.tools.ant.gui.acs.ElementTreeSelectionModel;
-import org.apache.tools.ant.gui.acs.ElementTreeModel;
-import org.apache.tools.ant.gui.acs.ACSProjectElement;
+import org.apache.tools.ant.gui.acs.*;
import javax.swing.*;
import javax.swing.tree.*;
-import javax.swing.event.TreeSelectionListener;
-import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.*;
import java.awt.GridLayout;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
@@ -71,7 +68,7 @@
/**
* Module for navigating build file elemenets.
*
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
* @author Simeon Fitch
*/
public class ElementNavigator extends AntModule {
@@ -104,10 +101,11 @@
_tree.setCellRenderer(new ElementTreeCellRenderer());
_tree.addMouseListener(new PopupHandler());
_tree.putClientProperty("JTree.lineStyle", "Angled");
+ _tree.setShowsRootHandles(true);
JScrollPane scroller = new JScrollPane(_tree);
add(scroller);
- setPreferredSize(new Dimension(200, 100));
+ setPreferredSize(new Dimension(250, 100));
setMinimumSize(new Dimension(200, 100));
}
@@ -134,12 +132,18 @@
* it should be cancelled.
*/
public boolean eventPosted(EventObject event) {
+ ElementTreeModel model = (ElementTreeModel)_tree.getModel();
+ // XXX This crap needs cleaning up. Type switching is lazy...
if(event instanceof PropertyChangeEvent) {
// The project node has changed.
-// XXX This won't work until ACSTreeNodeElement.getParent() is fixed
-// ElementTreeModel model =
(ElementTreeModel)_tree.getModel();
-// model.nodeChanged((TreeNode)model.getRoot());
-
+ model.fireNodeChanged((ACSElement)event.getSource());
+ }
+ else if(event instanceof NewElementEvent && model != null) {
+ ACSElement element =
((NewElementEvent)event).getNewElement();
+ model.fireNodeAdded(element);
+ TreePath path = new TreePath(model.getPathToRoot(element));
+ _selections.setSelectionPath(path);
+ _tree.scrollPathToVisible(path);
}
else {
ACSProjectElement project = null;
@@ -190,6 +194,7 @@
public boolean accept(EventObject event) {
return event instanceof ProjectSelectedEvent ||
event instanceof ProjectClosedEvent ||
+ event instanceof NewElementEvent ||
event instanceof PropertyChangeEvent;
}
}