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