- enabled supplemental view for ConceptView (#4681)
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / concept / ConceptViewPart.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.taxeditor.editor.view.concept;
12
13 import org.eclipse.jface.action.GroupMarker;
14 import org.eclipse.jface.action.IToolBarManager;
15 import org.eclipse.jface.action.MenuManager;
16 import org.eclipse.jface.viewers.ISelection;
17 import org.eclipse.jface.viewers.ListViewer;
18 import org.eclipse.jface.viewers.StructuredSelection;
19 import org.eclipse.jface.viewers.Viewer;
20 import org.eclipse.swt.widgets.Composite;
21 import org.eclipse.swt.widgets.Control;
22 import org.eclipse.swt.widgets.Menu;
23 import org.eclipse.ui.IEditorInput;
24 import org.eclipse.ui.IEditorPart;
25 import org.eclipse.ui.IWorkbenchActionConstants;
26 import org.eclipse.ui.IWorkbenchPart;
27
28 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
29 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
30 import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor;
31 import eu.etaxonomy.taxeditor.model.AbstractUtility;
32 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
33 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
34 import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
35
36 /**
37 * @author n.hoffmann
38 * @created Jan 24, 2011
39 * @version 1.0
40 */
41 public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData{
42
43 public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept";
44
45 private ListViewer viewer;
46
47 /* (non-Javadoc)
48 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
49 */
50 @Override
51 protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
52 if(AbstractUtility.getActiveEditor() == null){
53 showEmptyPage();
54 return;
55 }
56
57 if(part instanceof BulkEditor){
58 showEmptyPage();
59 return;
60 }
61
62 if(part instanceof AbstractGraphKeyEditor){
63 showEmptyPage();
64 return;
65 }
66
67 if(part instanceof MultiPageTaxonEditor){
68 if(! part.equals(this.part)){
69 IEditorInput input = ((IEditorPart) part).getEditorInput();
70 showViewer(part, new StructuredSelection(input));
71 }
72 showViewer();
73 }
74
75 }
76
77 /* (non-Javadoc)
78 * @see eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#onComplete()
79 */
80 @Override
81 public boolean onComplete() {
82 return true;
83 }
84
85 /* (non-Javadoc)
86 * @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#getViewer()
87 */
88 @Override
89 public Viewer getViewer() {
90 return viewer;
91 }
92
93 /* (non-Javadoc)
94 * @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#createViewer(org.eclipse.swt.widgets.Composite)
95 */
96 @Override
97 public void createViewer(Composite parent) {
98 viewer = new ListViewer(parent);
99
100 viewer.setContentProvider(new ConceptContentProvider());
101 viewer.setLabelProvider(new ConceptLabelProvider());
102
103
104 viewer.setSorter(new ConceptViewerSorter());
105
106 getSite().setSelectionProvider(viewer);
107
108 createMenu();
109
110 createToolbar();
111 }
112
113 private void createMenu(){
114 MenuManager menuManager = new MenuManager();
115 menuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
116
117 getSite().registerContextMenu(menuManager, viewer);
118
119 Control control = viewer.getControl();
120 Menu menu = menuManager.createContextMenu(control);
121
122 control.setMenu(menu);
123 }
124
125 private void createToolbar() {
126 IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();
127 // toolBarManager.add();
128 // toolBarManager.add();
129 }
130
131
132 /* (non-Javadoc)
133 * @see eu.etaxonomy.taxeditor.editor.view.AbstractCdmEditorViewPart#changed(java.lang.Object)
134 */
135 @Override
136 public void changed(Object object) {
137 getViewer().refresh();
138 super.changed(object);
139 }
140 }