merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / derivate / DerivateView.java
1 package eu.etaxonomy.taxeditor.editor.view.derivate;
2
3 import org.eclipse.jface.action.MenuManager;
4 import org.eclipse.jface.viewers.ISelection;
5 import org.eclipse.jface.viewers.TreeViewer;
6 import org.eclipse.jface.viewers.Viewer;
7 import org.eclipse.swt.SWT;
8 import org.eclipse.swt.widgets.Composite;
9 import org.eclipse.swt.widgets.Control;
10 import org.eclipse.swt.widgets.Menu;
11 import org.eclipse.swt.widgets.Tree;
12 import org.eclipse.ui.IWorkbenchPart;
13
14 import eu.etaxonomy.cdm.model.common.CdmBase;
15 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
16 import eu.etaxonomy.taxeditor.model.AbstractUtility;
17 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
18 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
19 import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
20
21 /**
22 * Displays the derivate hierarchy of all derivates belonging to a taxon.
23 *
24 */
25 public class DerivateView extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData {
26
27 /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.desc"{trunked}</code> */
28 public static final String ID = "eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView";
29
30 protected TreeViewer viewer;
31
32 @Override
33 public void createViewer(Composite parent) {
34 viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION));
35 viewer.setContentProvider(new DerivateContentProvider());
36 viewer.setLabelProvider(new DerivateLabelProvider());
37 viewer.setAutoExpandLevel(2);
38 // Propagate selection from viewer
39 getSite().setSelectionProvider(viewer);
40
41 //create context menu
42 MenuManager menuManager = new MenuManager();
43
44 getSite().registerContextMenu(menuManager, viewer);
45
46 Control control = viewer.getControl();
47 Menu menu = menuManager.createContextMenu(control);
48
49 control.setMenu(menu);
50 }
51
52 @Override
53 public void selectionChanged(IWorkbenchPart part, ISelection selection) {
54 if(AbstractUtility.getActiveEditor()==null || !(AbstractUtility.getActiveEditor() instanceof BulkEditor)){
55 showEmptyPage();
56 return;
57 }
58 else if(part instanceof BulkEditor){
59 this.part = part;
60
61 getViewer().setInput(selection);
62
63 showViewer();
64 return;
65 }
66 }
67
68 @Override
69 public boolean onComplete() {
70 // TODO Auto-generated method stub
71 return false;
72 }
73
74 @Override
75 public Viewer getViewer() {
76 return viewer;
77 }
78
79
80 @Override
81 public boolean postOperation(CdmBase objectAffectedByOperation) {
82 return super.postOperation(objectAffectedByOperation);
83 }
84
85
86 }