| Home >> All >> com >> port80 >> eclipse >> xml >> [ editors Javadoc ] |
Source code: com/port80/eclipse/xml/editors/XMLOutlineContentProvider.java
1 package com.port80.eclipse.xml.editors; 2 3 import org.eclipse.core.resources.ResourcesPlugin; 4 import org.eclipse.jface.viewers.ITreeContentProvider; 5 import org.eclipse.jface.viewers.LabelProvider; 6 import org.eclipse.jface.viewers.TreeViewer; 7 import org.eclipse.jface.viewers.Viewer; 8 import org.eclipse.swt.graphics.Image; 9 10 /** 11 * Data model for JavaccOutlinePage. 12 * 13 * @author chrisl 14 */ 15 public class XMLOutlineContentProvider extends LabelProvider implements ITreeContentProvider { 16 17 //////////////////////////////////////////////////////////////////////// 18 19 private static final String NAME = "XMLOutlineContentProvider"; 20 private static final boolean DEBUG = true; 21 22 //////////////////////////////////////////////////////////////////////// 23 24 private TreeFolder fInvisibleRoot; 25 private TreeObject fTop; 26 27 //////////////////////////////////////////////////////////////////////// 28 29 /** 30 * Constructor for MethodViewContentProvider. 31 */ 32 public XMLOutlineContentProvider() { 33 super(); 34 fInvisibleRoot = new TreeFolder(""); 35 } 36 37 //////////////////////////////////////////////////////////////////////// 38 39 public void setInput(TreeObject top) { 40 fInvisibleRoot=new TreeFolder(""); 41 if (top != null) 42 fInvisibleRoot.addChild(top); 43 fTop = top; 44 } 45 46 // ITreeContentProvider ///////////////////////////////////////////// 47 48 public Object getParent(Object child) { 49 if (child instanceof TreeObject) { 50 return ((TreeObject) child).getParent(); 51 } 52 return null; 53 } 54 55 public Object[] getChildren(Object parent) { 56 if (parent instanceof TreeFolder) { 57 return ((TreeFolder) parent).getChildren(); 58 } 59 return new Object[0]; 60 } 61 62 public boolean hasChildren(Object parent) { 63 if (parent instanceof TreeFolder) 64 return ((TreeFolder) parent).hasChildren(); 65 return false; 66 } 67 68 // IStructuredContentProvider interface /////////////////////////// 69 70 public Object[] getElements(Object parent) { 71 if (parent == null || parent == ResourcesPlugin.getWorkspace()) { 72 return getChildren(fInvisibleRoot); 73 } 74 return getChildren(parent); 75 } 76 77 // IContentProvider interface ///////////////////////////////// 78 79 public void inputChanged(Viewer v, Object oldInput, Object newInput) { 80 } 81 82 public void dispose() { 83 } 84 85 // LabelProvider interface ///////////////////////////////////// 86 87 public String getText(Object a) { 88 return a.toString(); 89 } 90 91 public Image getImage(Object a) { 92 return ((TreeObject) a).getImage(); 93 } 94 95 //////////////////////////////////////////////////////////////////////// 96 97 public TreeFolder getRoot() { 98 return fInvisibleRoot; 99 } 100 101 public TreeObject getTop() { 102 return fTop; 103 } 104 105 public void expandTree(TreeViewer viewer) { 106 viewer.expandToLevel(3); 107 } 108 109 public TreeObject findElement(Object a) { 110 return findElement(a, fTop); 111 } 112 113 /** 114 * Find object 'a' in the given 'subtree' base on comparison of its encasuplated element. 115 */ 116 private TreeObject findElement(Object a, TreeObject subtree) { 117 if (a == null) 118 return null; 119 if (a.equals(subtree.getElement())) 120 return subtree; 121 if (subtree instanceof TreeFolder) { 122 TreeFolder folder = (TreeFolder) subtree; 123 TreeObject item; 124 for (int i = 0; i < folder.getNumChildren(); ++i) { 125 item = findElement(a, folder.getChild(i)); 126 if (item != null) 127 return item; 128 } 129 } 130 return null; 131 } 132 133 //////////////////////////////////////////////////////////////////////// 134 135 }