]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java
Replace System.err and System.out with SLF4J Logging
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / outline / SCLModuleOutlinePage.java
1 package org.simantics.scl.ui.outline;
2
3 import org.eclipse.jface.viewers.ILabelProvider;
4 import org.eclipse.jface.viewers.ILabelProviderListener;
5 import org.eclipse.jface.viewers.ISelection;
6 import org.eclipse.jface.viewers.ISelectionChangedListener;
7 import org.eclipse.jface.viewers.ITreeContentProvider;
8 import org.eclipse.jface.viewers.StructuredSelection;
9 import org.eclipse.jface.viewers.TreeViewer;
10 import org.eclipse.swt.SWT;
11 import org.eclipse.swt.graphics.Image;
12 import org.eclipse.swt.widgets.Composite;
13 import org.eclipse.swt.widgets.Control;
14 import org.eclipse.swt.widgets.Tree;
15 import org.eclipse.ui.part.Page;
16 import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
17 import org.simantics.scl.ui.editor2.SCLModuleEditor2;
18
19 public class SCLModuleOutlinePage extends Page implements IContentOutlinePage {
20
21     private SCLOutlineViewer outlineViewer;
22     private SCLModuleEditor2 moduleEditor;
23     
24     public SCLModuleOutlinePage(SCLModuleEditor2 moduleEditor) {
25         this.moduleEditor = moduleEditor;
26     }
27
28     @Override
29     public void addSelectionChangedListener(ISelectionChangedListener listener) {
30         if (outlineViewer != null)
31             outlineViewer.addSelectionChangedListener(listener);
32     }
33
34     @Override
35     public ISelection getSelection() {
36         if (outlineViewer != null)
37             outlineViewer.getSelection();
38         return StructuredSelection.EMPTY;
39     }
40
41     @Override
42     public void removeSelectionChangedListener(ISelectionChangedListener listener) {
43         if (outlineViewer != null)
44             outlineViewer.removeSelectionChangedListener(listener);
45     }
46
47     @Override
48     public void setSelection(ISelection selection) {
49         if (outlineViewer != null)
50             outlineViewer.setSelection(selection);
51     }
52
53     @Override
54     public void createControl(Composite parent) {
55         Tree tree = new Tree(parent, SWT.MULTI);
56         outlineViewer = new SCLOutlineViewer(tree);
57         
58         SCLModuleOutlineProvider provider = new SCLModuleOutlineProvider();
59         outlineViewer.setContentProvider(provider);
60         outlineViewer.setLabelProvider(provider);
61         
62         outlineViewer.setInput(moduleEditor.getEditorInput());
63     }
64
65     @Override
66     public Control getControl() {
67         if (outlineViewer != null)
68             outlineViewer.getControl();
69         return null;
70     }
71
72     @Override
73     public void setFocus() {
74         if (outlineViewer != null)
75             outlineViewer.getControl().setFocus();
76     }
77
78     protected class SCLOutlineViewer extends TreeViewer {
79
80         public SCLOutlineViewer(Tree tree) {
81             super(tree);
82             setAutoExpandLevel(ALL_LEVELS);
83             setUseHashlookup(true);
84         }
85
86         
87     }
88     
89     protected class SCLModuleOutlineProvider implements ITreeContentProvider, ILabelProvider {
90
91         @Override
92         public Object[] getElements(Object inputElement) {
93             return null;
94         }
95
96         @Override
97         public Object[] getChildren(Object parentElement) {
98             return null;
99         }
100
101         @Override
102         public Object getParent(Object element) {
103             return null;
104         }
105
106         @Override
107         public boolean hasChildren(Object element) {
108             return false;
109         }
110
111         @Override
112         public void addListener(ILabelProviderListener listener) {
113             
114         }
115
116         @Override
117         public boolean isLabelProperty(Object element, String property) {
118             return false;
119         }
120
121         @Override
122         public void removeListener(ILabelProviderListener listener) {
123             
124         }
125
126         @Override
127         public Image getImage(Object element) {
128             return null;
129         }
130
131         @Override
132         public String getText(Object element) {
133             return null;
134         }
135         
136         @Override
137         public void dispose() {
138             ITreeContentProvider.super.dispose();
139         }
140
141     }
142 }