home *** CD-ROM | disk | FTP | other *** search
- import java.awt.event.InputEvent;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.util.Enumeration;
- import javax.swing.AbstractButton;
- import javax.swing.JMenu;
- import javax.swing.JMenuItem;
- import javax.swing.event.PopupMenuEvent;
- import javax.swing.event.PopupMenuListener;
- import javax.swing.event.TreeSelectionEvent;
- import javax.swing.event.TreeSelectionListener;
- import javax.swing.text.JTextComponent;
- import org.w3c.dom.Node;
-
- public class TreeEventHandler implements TreeSelectionListener, MouseListener, PopupMenuListener {
- JMenu addF;
- JMenu addE;
- XMLPro theApp;
- AttribPanel pan;
- JTextComponent data;
- ElemPanel tree;
- boolean clicked = false;
- ElemNode lastElem;
- static int POPUPLIMIT = 15;
-
- TreeEventHandler(AttribPanel var1, JTextComponent var2, ElemPanel var3, XMLPro var4) {
- this.theApp = var4;
- this.pan = var1;
- this.data = var2;
- this.tree = var3;
- }
-
- public void mouseClicked(MouseEvent var1) {
- }
-
- public void mouseEntered(MouseEvent var1) {
- }
-
- public void mouseExited(MouseEvent var1) {
- }
-
- public void mousePressed(MouseEvent var1) {
- }
-
- public void mouseReleased(MouseEvent var1) {
- if ((var1.isPopupTrigger() || ((InputEvent)var1).getModifiers() == 4) && this.tree.popup != null) {
- this.tree.popup.removeAll();
- PopupSelected var2 = new PopupSelected(this.tree, this.theApp);
- if (this.tree.selectedElem != null && this.tree.selectedElem.e.getNodeType() == 1) {
- this.tree.popup.addPopupMenuListener(this);
- int var4 = 0;
- boolean var5 = false;
- ElemPalette var6 = this.theApp.elemPalette;
- if (var6.model.size() > 0) {
- this.addE = new JMenu(Strings.AddElement);
- ElemSelected var7 = new ElemSelected(this.tree, this.addE);
- this.tree.popup.add(this.addE);
- Enumeration var8 = var6.model.elements();
-
- while(var8.hasMoreElements() && !var5) {
- String var9 = (String)var8.nextElement();
- ++var4;
- JMenuItem var3;
- this.addE.add(var3 = new JMenuItem(var9));
- ((AbstractButton)var3).addActionListener(var7);
- if (this.tooMany(this.addE, var4)) {
- var5 = true;
- }
- }
- }
-
- JMenuItem var10;
- this.tree.popup.add(var10 = new JMenuItem(Strings.AddPCDATA));
- ((AbstractButton)var10).addActionListener(var2);
- int var19 = 0;
- if (this.theApp.xmlDocument.entVals != null) {
- this.addF = new JMenu(Strings.AddEntity);
- EntSelected var20 = new EntSelected(this.tree, this.addF, this.theApp);
- this.tree.popup.add(this.addF);
- Enumeration var21 = this.theApp.xmlDocument.entVals.keys();
-
- while(var21.hasMoreElements() && var19++ < POPUPLIMIT) {
- this.addF.add(var10 = new JMenuItem(var21.nextElement().toString()));
- ((AbstractButton)var10).addActionListener(var20);
- }
-
- if (var19 >= POPUPLIMIT) {
- this.addF.addSeparator();
- this.addF.add(new JMenuItem(Strings.MoreInEntity));
- }
- }
-
- this.tree.popup.add(var10 = new JMenuItem(Strings.AddCDATA));
- ((AbstractButton)var10).addActionListener(var2);
- this.tree.popup.add(var10 = new JMenuItem(Strings.AddComment));
- ((AbstractButton)var10).addActionListener(var2);
- }
-
- JMenuItem var14;
- this.tree.popup.add(var14 = new JMenuItem(Strings.DeleteElement));
- ((AbstractButton)var14).addActionListener(var2);
- this.tree.popup.add(var14 = new JMenuItem(Strings.MoveElementUp));
- ((AbstractButton)var14).addActionListener(var2);
- this.tree.popup.add(var14 = new JMenuItem(Strings.MoveElementDown));
- ((AbstractButton)var14).addActionListener(var2);
- this.tree.popup.add(var14 = new JMenuItem(Strings.ExpandBeneath));
- ((AbstractButton)var14).addActionListener(var2);
- this.tree.popup.add(var14 = new JMenuItem(Strings.CollapseBeneath));
- ((AbstractButton)var14).addActionListener(var2);
- this.tree.popup.show(this.tree.theTree, var1.getX(), var1.getY());
- }
-
- }
-
- public void nodeSelected(ElemNode var1) {
- this.theApp.treeSelected = true;
- Node var2 = var1.e;
- this.tree.selectedElem = var1;
- if (var2.getParentNode() != null) {
- if (var2.getNodeType() == 1) {
- this.pan.editElement(var2);
- this.data.setText("");
- this.data.setEditable(false);
- this.data.repaint();
- if (this.theApp.xmlDocument.entVals != null) {
- this.theApp.entityPalette.curr.setEnabled(true);
- } else {
- this.theApp.entityPalette.curr.setEnabled(false);
- }
- } else if (var2.getNodeType() == 3) {
- this.pan.clear();
- String var3 = var2.getNodeValue();
- var3 = StringUtils.replaceStr(var3, "<", '<');
- this.data.setText(var3);
- this.data.repaint();
- this.data.setEditable(true);
- this.theApp.entityPalette.curr.setEnabled(false);
- } else if (var2.getNodeType() == 4) {
- this.pan.clear();
- String var5 = var2.getNodeValue();
- this.data.setText(var5);
- this.data.repaint();
- this.data.setEditable(true);
- this.theApp.entityPalette.curr.setEnabled(false);
- } else if (var2.getNodeType() == 8) {
- this.pan.clear();
- String var6 = var2.getNodeValue();
- this.data.setText(var6);
- this.data.repaint();
- this.data.setEditable(true);
- this.theApp.entityPalette.curr.setEnabled(false);
- } else if (var2.getNodeType() == 5) {
- this.pan.clear();
- this.data.setText("");
- String var7 = var2.getNodeValue();
- this.data.setText((String)this.theApp.xmlDocument.entVals.get(var2.getNodeName()));
- this.data.repaint();
- this.data.setEditable(false);
- this.theApp.entityPalette.curr.setEnabled(false);
- }
-
- this.theApp.elemPalette.updateElements();
- }
- }
-
- public void popupMenuCanceled(PopupMenuEvent var1) {
- if (this.addE != null) {
- this.addE.setSelected(false);
- this.addE.setPopupMenuVisible(false);
- }
-
- if (this.addF != null) {
- this.addF.setSelected(false);
- this.addF.setPopupMenuVisible(false);
- }
-
- }
-
- public void popupMenuWillBecomeInvisible(PopupMenuEvent var1) {
- }
-
- public void popupMenuWillBecomeVisible(PopupMenuEvent var1) {
- }
-
- public boolean tooMany(JMenu var1, int var2) {
- if (var2 < POPUPLIMIT) {
- return false;
- } else {
- var1.addSeparator();
- var1.add(new JMenuItem(Strings.MoreInElement));
- return true;
- }
- }
-
- public void valueChanged(TreeSelectionEvent var1) {
- ElemNode var2 = (ElemNode)var1.getPath().getLastPathComponent();
- this.nodeSelected(var2);
- }
- }
-