Fixes #2427
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / userecords / UseRecordsViewPart.java
1 package eu.etaxonomy.taxeditor.view.userecords;
2
3 import org.eclipse.jface.viewers.ISelection;
4 import org.eclipse.jface.viewers.IStructuredSelection;
5 import org.eclipse.jface.viewers.Viewer;
6 import org.eclipse.swt.widgets.Composite;
7 import org.eclipse.ui.IEditorPart;
8 import org.eclipse.ui.IWorkbenchPart;
9
10 import eu.etaxonomy.cdm.model.description.Feature;
11 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
12 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
13 import eu.etaxonomy.taxeditor.store.StoreUtil;
14 import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
15 import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
16
17
18 public class UseRecordsViewPart extends AbstractCdmEditorViewPart implements IPartContentHasSupplementalData{
19
20 public static String ID = "eu.etaxonomy.taxeditor.view.userecords";
21 private UseRecordsViewer viewer;
22
23 @Override
24 public void createViewer(Composite parent) {
25 //selectionService.addPostSelectionListener(this);
26
27 viewer = new UseRecordsViewer(parent, this);
28 getSite().setSelectionProvider(viewer);
29
30 }
31
32 @Override
33 public void selectionChanged(IWorkbenchPart part, ISelection selection) {
34 if(StoreUtil.getActiveEditor() == null){
35 showEmptyPage();
36 return;
37 }
38
39 if(part == this){
40 return;
41 }
42
43 if(!(selection instanceof IStructuredSelection)){
44 return;
45 }
46
47 IStructuredSelection structuredSelection = (IStructuredSelection) selection;
48
49 if((part instanceof IEditorPart) || (part instanceof AbstractCdmViewPart)) {
50 if(structuredSelection.size() != 1){
51 showEmptyPage();
52 return;
53 }
54
55 // do not show details for feature nodes TODO really?
56 if(structuredSelection.getFirstElement() instanceof FeatureNodeContainer){
57 // do show the map for distributions
58 Feature feature = ((FeatureNodeContainer) ((IStructuredSelection) selection).getFirstElement()).getFeature();
59 if(!feature.equals(Feature.DISTRIBUTION())){
60 showEmptyPage();
61 return;
62 }
63 }
64
65 showViewer(part, structuredSelection);
66 }else{
67 showEmptyPage();
68 }
69
70 }
71
72 @Override
73 public Viewer getViewer() {
74 return viewer;
75 }
76
77 /** {@inheritDoc} */
78 @Override
79 public void dispose() {
80 super.dispose();
81 selectionService.removePostSelectionListener(this);
82 }
83
84 /**
85 * <p>onComplete</p>
86 *
87 * @return a boolean.
88 */
89 public boolean onComplete() {
90 return true;
91 }
92
93
94
95
96
97
98 }