Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2013
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package plugin;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import org.eclipse.jface.viewers.IStructuredContentProvider;
  6. import org.eclipse.jface.viewers.ITreeContentProvider;
  7. import org.eclipse.jface.viewers.LabelProvider;
  8. import org.eclipse.jface.viewers.TreeViewer;
  9. import org.eclipse.jface.viewers.Viewer;
  10. import org.eclipse.swt.SWT;
  11. import org.eclipse.swt.graphics.Image;
  12. import org.eclipse.swt.widgets.Composite;
  13. import org.eclipse.ui.ISharedImages;
  14. import org.eclipse.ui.PlatformUI;
  15. import org.eclipse.ui.part.ViewPart;
  16.  
  17. public class NavigationView extends ViewPart {
  18.     public static final String ID = "plugin.navigationView";
  19.     private TreeViewer viewer;
  20.      
  21.     class TreeObject {
  22.         private String name;
  23.         private TreeParent parent;
  24.        
  25.         public TreeObject(String name) {
  26.             this.name = name;
  27.         }
  28.         public String getName() {
  29.             return name;
  30.         }
  31.         public void setParent(TreeParent parent) {
  32.             this.parent = parent;
  33.         }
  34.         public TreeParent getParent() {
  35.             return parent;
  36.         }
  37.         public String toString() {
  38.             return getName();
  39.         }
  40.     }
  41.    
  42.     class TreeParent extends TreeObject {
  43.         private ArrayList children;
  44.         public TreeParent(String name) {
  45.             super(name);
  46.             children = new ArrayList();
  47.         }
  48.         public void addChild(TreeObject child) {
  49.             children.add(child);
  50.             child.setParent(this);
  51.         }
  52.         public void removeChild(TreeObject child) {
  53.             children.remove(child);
  54.             child.setParent(null);
  55.         }
  56.         public TreeObject[] getChildren() {
  57.             return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
  58.         }
  59.         public boolean hasChildren() {
  60.             return children.size()>0;
  61.         }
  62.     }
  63.  
  64.     class ViewContentProvider implements IStructuredContentProvider,
  65.                                            ITreeContentProvider {
  66.  
  67.         public void inputChanged(Viewer v, Object oldInput, Object newInput) {
  68.         }
  69.        
  70.         public void dispose() {
  71.         }
  72.        
  73.         public Object[] getElements(Object parent) {
  74.             return getChildren(parent);
  75.         }
  76.        
  77.         public Object getParent(Object child) {
  78.             if (child instanceof TreeObject) {
  79.                 return ((TreeObject)child).getParent();
  80.             }
  81.             return null;
  82.         }
  83.        
  84.         public Object[] getChildren(Object parent) {
  85.             if (parent instanceof TreeParent) {
  86.                 return ((TreeParent)parent).getChildren();
  87.             }
  88.             return new Object[0];
  89.         }
  90.  
  91.         public boolean hasChildren(Object parent) {
  92.             if (parent instanceof TreeParent)
  93.                 return ((TreeParent)parent).hasChildren();
  94.             return false;
  95.         }
  96.     }
  97.    
  98.     class ViewLabelProvider extends LabelProvider {
  99.  
  100.         public String getText(Object obj) {
  101.             return obj.toString();
  102.         }
  103.         public Image getImage(Object obj) {
  104.             String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
  105.             if (obj instanceof TreeParent)
  106.                imageKey = ISharedImages.IMG_OBJ_FOLDER;
  107.             return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
  108.         }
  109.     }
  110.  
  111.     /**
  112.      * We will set up a dummy model to initialize tree heararchy. In real
  113.      * code, you will connect to a real model and expose its hierarchy.
  114.      */
  115.     private TreeObject createDummyModel() {
  116.         TreeObject to1 = new TreeObject("Inbox");
  117.        
  118.         TreeObject to2 = new TreeObject("Drafts");
  119.         TreeObject to3 = new TreeObject("Sent");
  120.         TreeParent p1 = new TreeParent("me@this.com");
  121.         p1.addChild(to1);
  122.         p1.addChild(to2);
  123.         p1.addChild(to3);
  124.  
  125.         TreeObject to4 = new TreeObject("Inbox");
  126.         TreeParent p2 = new TreeParent("other@aol.com");
  127.         p2.addChild(to4);
  128.  
  129.  
  130.         final TreeObject to4 = new TreeObject("Inbox");
  131.        
  132.         viewer.addOpenListener(new IOpenListener() {
  133.            
  134.         public void open(final OpenEvent event) {
  135.            
  136.             IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
  137.            
  138.             if(selection.getFirstElement() == to4){
  139.                 MessageDialog.openInformation(null, "Open", "Open Message Dialog!");
  140.             }
  141.            
  142.                 }
  143.             });
  144.        
  145.         TreeParent root = new TreeParent("");
  146.         root.addChild(p1);
  147.         root.addChild(p2);
  148.         return root;
  149.        
  150.        
  151.      
  152.     }
  153.  
  154.    
  155.    
  156.     /**
  157.      * This is a callback that will allow us to create the viewer and initialize
  158.      * it.
  159.      */
  160.     public void createPartControl(Composite parent) {
  161.         viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
  162.         viewer.setContentProvider(new ViewContentProvider());
  163.         viewer.setLabelProvider(new ViewLabelProvider());
  164.         viewer.setInput(createDummyModel());
  165.     }
  166.    
  167.     /**
  168.      * Passing the focus request to the viewer's control.
  169.      */
  170.     public void setFocus() {
  171.         viewer.getControl().setFocus();
  172.     }
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement