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