Project

General

Profile

Download (3.35 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.editor.l10n.Messages;
24
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
25

    
26
/**
27
 * @author andreas
28
 *
29
 */
30
public class ConceptGraphView extends AbstractCdmEditorViewPart {
31

    
32
	public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept.graph"; //$NON-NLS-1$
33

    
34
	private GraphViewer viewer;
35
	private LayoutAlgorithm layoutAlgoritm;
36

    
37
	/* (non-Javadoc)
38
	 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
39
	 */
40
	@Override
41
	protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
42

    
43
//		if(part instanceof ConceptGraphView){
44
//			// ConceptGraphView is maximized
45
//			return;
46
//		}
47

    
48
		if(EditorUtil.getActiveE4Editor() == null){
49
			showEmptyPage();
50
			return;
51
		}
52

    
53
		if(part instanceof BulkEditor){
54
			showEmptyPage();
55
			return;
56
		}
57

    
58

    
59
		if(part instanceof MultiPageTaxonEditor){
60
			if(! part.equals(this.part)){
61
				IEditorInput input = ((IEditorPart) part).getEditorInput();
62
				showViewer(part, new StructuredSelection(input));
63
			}
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
	@Override
127
	protected String getViewName() {
128
		return Messages.ConceptGraphView_VIEWER_NAME;
129
	}
130

    
131

    
132
}
(3-3/3)