Project

General

Profile

Download (3.72 KB) Statistics
| Branch: | Tag: | Revision:
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.media;
12

    
13
import org.eclipse.jface.action.GroupMarker;
14
import org.eclipse.jface.action.MenuManager;
15
import org.eclipse.jface.viewers.ISelection;
16
import org.eclipse.jface.viewers.IStructuredSelection;
17
import org.eclipse.jface.viewers.StructuredSelection;
18
import org.eclipse.jface.viewers.TreeViewer;
19
import org.eclipse.jface.viewers.Viewer;
20
import org.eclipse.swt.SWT;
21
import org.eclipse.swt.widgets.Composite;
22
import org.eclipse.swt.widgets.Control;
23
import org.eclipse.swt.widgets.Menu;
24
import org.eclipse.swt.widgets.Tree;
25
import org.eclipse.ui.IEditorInput;
26
import org.eclipse.ui.IEditorPart;
27
import org.eclipse.ui.IWorkbenchActionConstants;
28
import org.eclipse.ui.IWorkbenchPart;
29

    
30
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
31
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
32
import eu.etaxonomy.taxeditor.model.AbstractUtility;
33
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
34
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
35
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
36

    
37
/**
38
 * <p>MediaViewPart class.</p>
39
 *
40
 * @author n.hoffmann
41
 * @created Jun 15, 2010
42
 * @version 1.0
43
 */
44
public class MediaViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData {
45

    
46
	/** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.medi"{trunked}</code> */
47
	public static final String ID = "eu.etaxonomy.taxeditor.editor.view.media";
48

    
49
	private TreeViewer viewer;
50

    
51
	/*
52
	 * (non-Javadoc)
53
	 * @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#createViewer(org.eclipse.swt.widgets.Composite)
54
	 */
55
	/** {@inheritDoc} */
56
	@Override
57
	public void createViewer(Composite parent) {
58

    
59
		viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL
60
				| SWT.V_SCROLL | SWT.FULL_SELECTION));
61

    
62
		viewer.setContentProvider(new MediaContentProvider());
63
		viewer.setLabelProvider(new MediaLabelProvider());
64
		viewer.setAutoExpandLevel(2);
65

    
66
		// Propagate selection from viewer
67
		getSite().setSelectionProvider(viewer);
68

    
69
		// Add context menu to tree
70
		MenuManager menuMgr = new MenuManager();
71
		menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
72
		getSite().registerContextMenu(menuMgr, viewer);
73

    
74
		Control control = viewer.getControl();
75
		Menu menu = menuMgr.createContextMenu(control);
76
		control.setMenu(menu);
77

    
78
	}
79

    
80
	/* (non-Javadoc)
81
	 * @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#getInitialSelection()
82
	 */
83
	/** {@inheritDoc} */
84
	@Override
85
	protected ISelection getInitialSelection() {
86
		if(getEditor() != null){
87
			return new StructuredSelection(getEditor().getEditorInput());
88
		}
89

    
90
		return super.getInitialSelection();
91
	}
92

    
93
	/** {@inheritDoc} */
94
	@Override
95
    protected void internal_selectionChanged(IWorkbenchPart part, ISelection selection) {
96
		if(AbstractUtility.getActiveEditor() == null){
97
			showEmptyPage();
98
			return;
99
		}
100

    
101
		if(part instanceof MultiPageTaxonEditor){
102
			IEditorInput input = ((IEditorPart) part).getEditorInput();
103
			showViewer(part, new StructuredSelection(input));
104
		}
105

    
106
		if(part instanceof BulkEditor && selection instanceof IStructuredSelection){
107
			showViewer(part, (IStructuredSelection) selection);
108
		}
109
	}
110

    
111
	/** {@inheritDoc} */
112
	@Override
113
	public void changed(Object object) {
114
		viewer.refresh();
115
		super.changed(object);
116
	}
117

    
118
	/** {@inheritDoc} */
119
	@Override
120
	public Viewer getViewer() {
121
		return viewer;
122
	}
123

    
124
	/**
125
	 * <p>onComplete</p>
126
	 *
127
	 * @return a boolean.
128
	 */
129
	@Override
130
    public boolean onComplete() {
131
		return true;
132
	}
133
}
(3-3/3)