Project

General

Profile

Download (3.21 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(3-3/3)