merging in latest changes from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / uses / UsesViewPart.java
1 /**
2 * Copyright (C) 2011 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.editor.view.uses;
10
11 import org.eclipse.jface.viewers.TreeViewer;
12 import org.eclipse.swt.SWT;
13 import org.eclipse.swt.dnd.Transfer;
14 import org.eclipse.swt.widgets.Composite;
15 import org.eclipse.swt.widgets.Tree;
16
17 import eu.etaxonomy.cdm.model.common.CdmBase;
18 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDragListener;
19 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDropAdapter;
20 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementTransfer;
21 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
22 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
23 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
24
25
26 /**
27 * The Class create a speific Use View to keep the taxonomic view clean
28 * @author a.theys
29 * @created mar 13, 2012
30 * @version 1.0
31 */
32 public class UsesViewPart extends DescriptiveViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData {
33
34 /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.uses"</code> */
35 public static final String ID = "eu.etaxonomy.taxeditor.editor.view.uses";
36 /** {@inheritDoc} */
37 @Override
38 public void createViewer(Composite parent) {
39
40 viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL
41 | SWT.V_SCROLL | SWT.FULL_SELECTION));
42 viewer.setContentProvider(new UsesContentProvider(featureNodeContainerCache));
43 viewer.setLabelProvider(new UsesLabelProvider());
44 viewer.setAutoExpandLevel(2);
45
46
47
48 Transfer[] transfers = new Transfer[] { DescriptionElementTransfer.getInstance() };
49 viewer.addDragSupport(dndOperations, transfers, new DescriptionElementDragListener(
50 this));
51 viewer.addDropSupport(dndOperations, transfers,
52 new DescriptionElementDropAdapter(viewer));
53
54 // Propagate selection from viewer
55 getSite().setSelectionProvider(viewer);
56
57 showAllElementsAction = new ToggleDescriptionAction(false);
58 hideAllElementsAction = new ToggleDescriptionAction(true);
59
60 // Add context menu to tree
61 createMenu();
62
63 createToolbar();
64
65 }
66
67 /** {@inheritDoc} */
68 @Override
69 public boolean postOperation(CdmBase objectAffectedByOperation) {
70 viewer.refresh();
71 return super.postOperation(objectAffectedByOperation);
72 }
73
74
75
76 }