home *** CD-ROM | disk | FTP | other *** search
- import com.ibm.xml.parser.TXText;
- import java.awt.BorderLayout;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Point;
- import java.awt.dnd.DragSource;
- import java.awt.dnd.DropTarget;
- import java.util.Enumeration;
- import java.util.Vector;
- import javax.swing.JPanel;
- import javax.swing.JPopupMenu;
- import javax.swing.JScrollPane;
- import javax.swing.JTree;
- import javax.swing.text.JTextComponent;
- import javax.swing.tree.DefaultMutableTreeNode;
- import javax.swing.tree.DefaultTreeModel;
- import javax.swing.tree.TreePath;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.EntityReference;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
-
- public class ElemPanel extends JPanel {
- // $FF: renamed from: d org.w3c.dom.Document
- Document field_0;
- AttribPanel pan;
- JPopupMenu popup;
- JTextComponent data;
- ElemNode selectedElem = null;
- TreeEventHandler treeEventHandler;
- ElemNode tree = null;
- JTree theTree;
- XMLPro theApp;
- public String oldText = null;
- DragSource theDragSource;
- DropTarget theDropTarget;
- ElemPanel$MyDragGestureListener theDragGestureListener;
- ElemPanel$MyDragSourceListener theDragSourceListener;
- ElemPanel$MyDropTargetListener theDropTargetListener;
-
- ElemPanel(AttribPanel var1, JTextComponent var2, XMLPro var3) {
- this.theApp = var3;
- this.pan = var1;
- this.data = var2;
- ((Container)this).setLayout(new BorderLayout());
- }
-
- void addElement(String var1, int var2) {
- Object var3 = null;
- switch (var2) {
- case 1:
- var3 = this.field_0.createElement(var1);
- break;
- case 2:
- case 5:
- case 6:
- case 7:
- default:
- return;
- case 3:
- var3 = this.field_0.createTextNode("");
- break;
- case 4:
- var3 = this.field_0.createCDATASection("");
- break;
- case 8:
- var3 = this.field_0.createComment("");
- }
-
- this.selectedElem.e.appendChild((Node)var3);
- ElemNode var4 = new ElemNode((Node)var3);
- this.selectedElem.add(var4);
- ((DefaultTreeModel)this.theTree.getModel()).nodeStructureChanged(this.selectedElem);
- this.selectNode(var4);
- this.theApp.xmlDocument.validated = false;
- this.theApp.xmlDocument.modified = true;
- this.theApp.undoManager.nodeInserted(var4);
- this.theTree.repaint();
- }
-
- void addElements(ElemNode var1, Node var2) {
- NodeList var3 = var2.getChildNodes();
- Object var5 = null;
- if (this.tree == null) {
- ElemNode var9 = new ElemNode(var2);
- this.tree = var9;
- this.theTree = new JTree(this.tree);
- this.theTree.setCellRenderer(new XMLTreeCellRenderer(this, this.theApp));
- this.theDragGestureListener = new ElemPanel$MyDragGestureListener(this);
- this.theDragSourceListener = new ElemPanel$MyDragSourceListener(this);
- this.theDropTargetListener = new ElemPanel$MyDropTargetListener(this);
- this.theDragSource = new DragSource();
- this.theDragSource.createDefaultDragGestureRecognizer(this.getTree(), 2, this.theDragGestureListener);
- this.theDropTarget = new DropTarget(this.getTree(), 2, this.theDropTargetListener);
- this.theTree.setRowHeight(-1);
- this.popup = new JPopupMenu();
- ((Container)this).add(this.popup);
- JScrollPane var6 = new JScrollPane(this.theTree);
- this.treeEventHandler = new TreeEventHandler(this.pan, this.data, this, this.theApp);
- this.theTree.addTreeSelectionListener(this.treeEventHandler);
- this.theTree.addMouseListener(this.treeEventHandler);
- ((Container)this).add("Center", var6);
- this.addElements(var9, var2);
- this.theTree.expandRow(0);
- } else {
- int var15 = var3.getLength();
-
- for(int var7 = 0; var7 < var15; ++var7) {
- Node var4 = var3.item(var7);
- if (var4.getNodeType() == 1) {
- ElemNode var10 = new ElemNode(var4);
- ((DefaultMutableTreeNode)var1).add(var10);
- this.addElements(var10, var4);
- } else if (var4.getNodeType() == 5) {
- ElemNode var11 = new ElemNode(var4);
- ((DefaultMutableTreeNode)var1).add(var11);
- } else if (var4.getNodeType() == 3) {
- TXText var8 = (TXText)var4;
- if (!var8.getIsIgnorableWhitespace()) {
- ElemNode var12 = new ElemNode(var4);
- ((DefaultMutableTreeNode)var1).add(var12);
- }
- } else if (var4.getNodeType() == 4) {
- ElemNode var13 = new ElemNode(var4);
- ((DefaultMutableTreeNode)var1).add(var13);
- } else if (var4.getNodeType() == 8) {
- ElemNode var14 = new ElemNode(var4);
- ((DefaultMutableTreeNode)var1).add(var14);
- }
- }
- }
-
- }
-
- void addElements(Document var1) {
- this.field_0 = var1;
- this.addElements(this.tree, var1.getDocumentElement());
- ElemNode var2 = (ElemNode)this.theTree.getModel().getRoot();
- this.selectNode(var2);
- }
-
- void addEntity(String var1) {
- EntityReference var2 = this.field_0.createEntityReference(var1);
- this.selectedElem.e.appendChild(var2);
- ElemNode var3 = new ElemNode(var2);
- this.selectedElem.add(var3);
- ((DefaultTreeModel)this.theTree.getModel()).nodeStructureChanged(this.selectedElem);
- this.selectNode(var3);
- this.theApp.xmlDocument.validated = false;
- this.theApp.xmlDocument.modified = true;
- this.theApp.undoManager.nodeInserted(var3);
- this.theTree.repaint();
- }
-
- void collapseBeneath() {
- this.theApp.setWaitCursor();
- ElemNode var1 = this.selectedElem;
- Enumeration var2 = ((DefaultMutableTreeNode)var1).postorderEnumeration();
-
- while(var2.hasMoreElements()) {
- var1 = (ElemNode)var2.nextElement();
- if (!((DefaultMutableTreeNode)var1).isLeaf()) {
- this.theTree.collapsePath(new TreePath(((DefaultMutableTreeNode)var1).getPath()));
- }
- }
-
- this.theApp.setDefaultCursor();
- }
-
- public void dataChanged() {
- if (this.selectedElem != null) {
- if (this.selectedElem.e.getNodeType() == 3 || this.selectedElem.e.getNodeType() == 4 || this.selectedElem.e.getNodeType() == 8) {
- this.oldText = this.selectedElem.e.getNodeValue();
- String var1 = this.data.getText();
- if ((this.oldText == null || !this.oldText.equals(var1)) && this.selectedElem != null) {
- if (this.selectedElem.e.getNodeType() == 3) {
- var1 = StringUtils.replaceStr(var1, '<', "<");
- this.selectedElem.e.setNodeValue(var1);
- } else if (this.selectedElem.e.getNodeType() == 8) {
- this.selectedElem.e.setNodeValue(var1);
- } else {
- this.selectedElem.e.setNodeValue(var1);
- }
-
- ((DefaultTreeModel)this.theTree.getModel()).nodeStructureChanged(this.selectedElem);
- this.theApp.xmlDocument.validated = false;
- this.theApp.xmlDocument.modified = true;
- this.theApp.undoManager.nodeTextMod(this.selectedElem, this.oldText);
- }
-
- }
- }
- }
-
- void deleteAttribType(String var1, String var2, ElemNode var3) {
- Element var4 = (Element)var3.e;
- String var6 = var4.getTagName();
- if (var6 != null && var6.equals(var1)) {
- var4.removeAttribute(var2);
- }
-
- Enumeration var7 = ((DefaultMutableTreeNode)var3).children();
-
- while(var7.hasMoreElements()) {
- ElemNode var5 = (ElemNode)var7.nextElement();
- this.deleteAttribType(var1, var2, var5);
- }
-
- }
-
- void deleteElem() {
- if (this.theApp.xmlDocument.document.getDocumentElement() != this.selectedElem.e) {
- ElemNode var1 = (ElemNode)this.selectedElem.getParent();
- this.theApp.xmlDocument.validated = false;
- this.theApp.xmlDocument.modified = true;
- this.theApp.undoManager.nodeDeleted(this.selectedElem, var1, (ElemNode)this.selectedElem.getNextSibling());
- this.selectedElem.e.getParentNode().removeChild(this.selectedElem.e);
- ((DefaultMutableTreeNode)var1).remove(this.selectedElem);
- this.selectedElem = var1;
- ((DefaultTreeModel)this.theTree.getModel()).nodeStructureChanged((ElemNode)this.theTree.getModel().getRoot());
- this.selectNode(var1);
- }
-
- }
-
- void deleteElemType(String var1, ElemNode var2) {
- Node var3 = var2.e;
- String var5 = var3.getNodeName();
- if (var5 != null && var5.equals(var1)) {
- ElemNode var11 = (ElemNode)((DefaultMutableTreeNode)var2).getParent();
- ((DefaultMutableTreeNode)var11).remove(var2);
- var3.getParentNode().removeChild(var3);
- } else {
- Vector var6 = var2.childrenVector();
- if (var6 == null) {
- return;
- }
-
- int var7 = var6.size();
- ElemNode[] var8 = new ElemNode[var7];
-
- for(int var9 = 0; var9 < var7; ++var9) {
- var8[var9] = (ElemNode)var6.elementAt(var9);
- }
-
- for(int var10 = 0; var10 < var7; ++var10) {
- ElemNode var4 = var8[var10];
- this.deleteElemType(var1, var4);
- }
- }
-
- }
-
- void deleteElements() {
- this.tree = null;
- ((Container)this).removeAll();
- }
-
- void elemDown() {
- ElemNode var1 = this.elemDownImp();
- if (var1 != null) {
- this.theApp.xmlDocument.validated = false;
- this.theApp.xmlDocument.modified = true;
- this.theApp.undoManager.nodeMovedDown(var1);
- }
-
- }
-
- ElemNode elemDownImp() {
- ElemNode var1 = this.selectedElem;
- ElemNode var2 = (ElemNode)((DefaultMutableTreeNode)var1).getParent();
- if (var2 == null) {
- return null;
- } else {
- int var3 = ((DefaultMutableTreeNode)var2).getChildCount();
- int var4 = ((DefaultMutableTreeNode)var2).getIndex(var1);
- if (var4 != var3 - 1) {
- ((DefaultMutableTreeNode)var2).insert(var1, var4 + 1);
- ((DefaultTreeModel)this.theTree.getModel()).nodeStructureChanged(var2);
- this.selectNode(var1);
- this.theTree.repaint();
- this.theApp.xmlDocument.validated = false;
- this.theApp.xmlDocument.modified = true;
- this.theApp.undoManager.nodeMovedDown(var1);
- Node var5 = var1.e;
- int var7 = 0;
- boolean var8 = false;
- NodeList var9 = var2.e.getChildNodes();
- int var10 = var9.getLength();
-
- for(int var11 = 0; var11 < var10; ++var11) {
- if (var8) {
- return var1;
- }
-
- Node var6 = var9.item(var11);
- if (var6 == var5) {
- var2.e.removeChild(var5);
- if (var11 < var10 - 2) {
- Node var12 = var9.item(var11 + 1);
- var2.e.insertBefore(var5, var12);
- } else {
- var2.e.appendChild(var5);
- }
-
- var8 = true;
- }
-
- ++var7;
- }
- }
-
- return null;
- }
- }
-
- void elemUp() {
- ElemNode var1 = this.elemUpImp();
- if (var1 != null) {
- this.theApp.xmlDocument.validated = false;
- this.theApp.xmlDocument.modified = true;
- this.theApp.undoManager.nodeMovedUp(var1);
- }
-
- }
-
- ElemNode elemUpImp() {
- ElemNode var1 = this.selectedElem;
- ElemNode var2 = (ElemNode)((DefaultMutableTreeNode)var1).getParent();
- if (var2 == null) {
- return null;
- } else {
- int var3 = ((DefaultMutableTreeNode)var2).getChildCount();
- int var4 = ((DefaultMutableTreeNode)var2).getIndex(var1);
- if (var4 != 0) {
- ((DefaultMutableTreeNode)var2).insert(var1, var4 - 1);
- ((DefaultTreeModel)this.theTree.getModel()).nodeStructureChanged(var2);
- this.selectNode(var1);
- this.theTree.repaint();
- NodeList var5 = var2.e.getChildNodes();
- Node var6 = var1.e;
- int var7 = 0;
- Node var8 = null;
- int var10 = var5.getLength();
-
- for(int var11 = 0; var11 < var10; ++var11) {
- Node var9 = var8;
- var8 = var5.item(var11);
- if (var8 == var6) {
- var2.e.removeChild(var6);
- var2.e.insertBefore(var6, var9);
- return var1;
- }
-
- ++var7;
- }
- }
-
- return null;
- }
- }
-
- void expandBeneath() {
- this.theApp.setWaitCursor();
- ElemNode var1 = this.selectedElem;
- Enumeration var2 = ((DefaultMutableTreeNode)var1).postorderEnumeration();
-
- while(var2.hasMoreElements()) {
- var1 = (ElemNode)var2.nextElement();
- this.theTree.expandPath(new TreePath(((DefaultMutableTreeNode)var1).getPath()));
- }
-
- this.theApp.setDefaultCursor();
- }
-
- public Dimension getPreferredSize() {
- return new Dimension(200, 400);
- }
-
- JTree getTree() {
- return this.theTree;
- }
-
- DefaultTreeModel getTreeModel() {
- return (DefaultTreeModel)this.getTree().getModel();
- }
-
- DefaultMutableTreeNode getTreeNode(int var1) {
- return (DefaultMutableTreeNode)this.getTree().getPathForRow(var1).getLastPathComponent();
- }
-
- DefaultMutableTreeNode getTreeNode(Point var1) {
- return (DefaultMutableTreeNode)this.getTree().getPathForLocation(var1.x, var1.y).getLastPathComponent();
- }
-
- void selectNode(ElemNode var1) {
- TreePath var2 = new TreePath(((DefaultMutableTreeNode)var1).getPath());
- this.theTree.expandPath(var2);
- this.theTree.setSelectionPath(var2);
- this.theTree.scrollPathToVisible(var2);
- }
-
- boolean validDragSource(Point var1) {
- try {
- Object var2 = null;
- Object var3 = null;
- Object var4 = null;
- DefaultMutableTreeNode var6 = this.getTreeNode(var1);
- DefaultMutableTreeNode var7 = this.getTreeNode(this.getTree().getLeadSelectionRow());
- DefaultMutableTreeNode var8 = (DefaultMutableTreeNode)var7.getRoot();
- return var7 != null && var6 == var7 && var7 != var8;
- } catch (NullPointerException var5) {
- return false;
- }
- }
-
- boolean validDropTarget(Point var1) {
- try {
- Object var2 = null;
- Object var3 = null;
- DefaultMutableTreeNode var6 = this.getTreeNode(var1);
- DefaultMutableTreeNode var5 = this.getTreeNode(this.getTree().getLeadSelectionRow());
- return var6 != null && !var5.isNodeDescendant(var6);
- } catch (NullPointerException var4) {
- return false;
- }
- }
- }
-