merge
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / concept / graph / ConceptGraphView.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.editor.view.concept.graph;
5
6 import org.eclipse.jface.viewers.ISelection;
7 import org.eclipse.jface.viewers.StructuredSelection;
8 import org.eclipse.jface.viewers.Viewer;
9 import org.eclipse.swt.SWT;
10 import org.eclipse.swt.widgets.Composite;
11 import org.eclipse.ui.IEditorInput;
12 import org.eclipse.ui.IEditorPart;
13 import org.eclipse.ui.IWorkbenchPart;
14 import org.eclipse.zest.core.viewers.GraphViewer;
15 import org.eclipse.zest.core.widgets.ZestStyles;
16 import org.eclipse.zest.layouts.LayoutAlgorithm;
17 import org.eclipse.zest.layouts.LayoutStyles;
18 import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
19
20 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
21 import eu.etaxonomy.taxeditor.editor.EditorUtil;
22 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
23 import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
24
25 /**
26 * @author andreas
27 *
28 */
29 public class ConceptGraphView extends AbstractCdmEditorViewPart {
30
31 public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept.graph";
32
33 private GraphViewer viewer;
34 private LayoutAlgorithm layoutAlgoritm;
35
36 /* (non-Javadoc)
37 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
38 */
39 @Override
40 protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
41
42 // if(part instanceof ConceptGraphView){
43 // // ConceptGraphView is maximized
44 // return;
45 // }
46
47 if(EditorUtil.getActiveEditor() == null){
48 showEmptyPage();
49 return;
50 }
51
52 if(part instanceof BulkEditor){
53 showEmptyPage();
54 return;
55 }
56
57
58 if(part instanceof MultiPageTaxonEditor){
59 if(! part.equals(this.part)){
60 IEditorInput input = ((IEditorPart) part).getEditorInput();
61 showViewer(part, new StructuredSelection(input));
62 }
63 showViewer();
64 }
65
66 }
67
68 /* (non-Javadoc)
69 * @see eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#onComplete()
70 */
71 @Override
72 public boolean onComplete() {
73 // TODO IGNORED
74 return false;
75 }
76
77 /* (non-Javadoc)
78 * @see eu.etaxonomy.taxeditor.view.AbstractCdmViewPart#getViewer()
79 */
80 @Override
81 public Viewer getViewer() {
82 return viewer;
83 }
84
85 /* (non-Javadoc)
86 * @see eu.etaxonomy.taxeditor.view.AbstractCdmViewPart#createViewer(org.eclipse.swt.widgets.Composite)
87 */
88 @Override
89 public void createViewer(Composite parent) {
90
91 viewer = new GraphViewer(parent, SWT.NONE);
92 getSite().setSelectionProvider(viewer);
93
94 viewer.setContentProvider(new ConceptGraphContentProvider());
95 viewer.setLabelProvider(new ConceptGraphLabelProvider());
96
97 viewer.setConnectionStyle(ZestStyles.CONNECTIONS_DIRECTED);
98
99 viewer.setLayoutAlgorithm(getLayoutAlgoritm(), false);
100
101 // createMenu();
102 //
103 // createToolbar();
104
105
106 }
107
108 private LayoutAlgorithm getLayoutAlgoritm() {
109
110 if (layoutAlgoritm == null) {
111 // layoutAlgoritm = new CompositeLayoutAlgorithm(
112 // LayoutStyles.NO_LAYOUT_NODE_RESIZING,
113 // new LayoutAlgorithm[] {
114 // new TreeLayoutAlgorithm(
115 // LayoutStyles.NO_LAYOUT_NODE_RESIZING),
116 // new HorizontalShift(
117 // LayoutStyles.NO_LAYOUT_NODE_RESIZING) });
118
119 layoutAlgoritm = new TreeLayoutAlgorithm(
120 LayoutStyles.NO_LAYOUT_NODE_RESIZING);
121 layoutAlgoritm.setEntityAspectRatio(0.5);
122 }
123 return layoutAlgoritm;
124 }
125
126
127 }