Project

General

Profile

Download (3.32 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.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
}
(3-3/3)