2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.view
.supplementaldata
;
12 import org
.eclipse
.jface
.viewers
.ISelection
;
13 import org
.eclipse
.jface
.viewers
.ISelectionChangedListener
;
14 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
15 import org
.eclipse
.jface
.viewers
.SelectionChangedEvent
;
16 import org
.eclipse
.swt
.SWT
;
17 import org
.eclipse
.swt
.widgets
.Composite
;
18 import org
.eclipse
.ui
.forms
.widgets
.ExpandableComposite
;
20 import eu
.etaxonomy
.cdm
.model
.common
.AnnotatableEntity
;
21 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableEntity
;
22 import eu
.etaxonomy
.cdm
.model
.common
.VersionableEntity
;
23 import eu
.etaxonomy
.cdm
.model
.media
.IdentifiableMediaEntity
;
24 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.CdmDataChangeMap
;
25 import eu
.etaxonomy
.taxeditor
.model
.IElementHasDetails
;
26 import eu
.etaxonomy
.taxeditor
.preference
.IPreferenceKeys
;
27 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
28 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
29 import eu
.etaxonomy
.taxeditor
.ui
.element
.RootElement
;
30 import eu
.etaxonomy
.taxeditor
.ui
.section
.media
.MediaSection
;
31 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.AnnotationSection
;
32 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.CdmBaseSection
;
33 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.CreditSection
;
34 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.ExtensionSection
;
35 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.HeadlineSection
;
36 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.MarkerSection
;
37 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.RightsSection
;
38 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.SourceSection
;
39 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.VersionSection
;
40 import eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
.identifier
.IdentifierSection
;
41 import eu
.etaxonomy
.taxeditor
.view
.AbstractCdmDataViewer
;
42 import eu
.etaxonomy
.taxeditor
.view
.AbstractCdmViewPart
;
43 import eu
.etaxonomy
.taxeditor
.view
.detail
.DetailsViewer
;
46 * <p>SupplementalDataViewer class.</p>
49 * @created Feb 12, 2010
52 public class SupplementalDataViewer
extends AbstractCdmDataViewer
implements ISelectionChangedListener
{
54 private boolean showDebug
;
58 * <p>Constructor for SupplementalDataViewer.</p>
60 * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
61 * @param viewPart a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart} object.
63 public SupplementalDataViewer(Composite parent
, AbstractCdmViewPart viewPart
) {
64 super(parent
, viewPart
);
69 * @see org.eclipse.jface.viewers.Viewer#getSelection()
73 public ISelection
getSelection() {
78 * @see org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers.ISelection, boolean)
82 public void setSelection(ISelection selection
, boolean reveal
) {
87 * @see eu.etaxonomy.taxeditor.editor.view.AbstractDetailsViewer#showParts(eu.etaxonomy.cdm.model.common.AnnotatableEntity)
91 protected void showParts() {
93 showDebug
= PreferencesUtil
.getPreferenceStore().getBoolean(IPreferenceKeys
.SHOW_DEBUG_INFORMATION
);
97 if(getInput() instanceof IElementHasDetails
){
98 input
= ((IElementHasDetails
) getInput()).getData();
105 createHeadlineSection(rootElement
);
106 //2. Annotatable entitiy
107 if(input
instanceof AnnotatableEntity
){
108 createAnnotationSections(rootElement
);
110 //3. Identifiable entity
111 if(input
instanceof IdentifiableEntity
){
112 createIdentifiableSections(rootElement
);
114 //4. Identifiable media entity
115 if(input
instanceof IdentifiableMediaEntity
){
116 createIdentifiableMediaSections(rootElement
);
119 if(input
instanceof VersionableEntity
){
120 createVersionSection(rootElement
);
124 createCdmBaseSection(rootElement
);
132 private void createHeadlineSection(RootElement parent
){
133 HeadlineSection headlineSection
= formFactory
.createHeadlineSection(parent
);
134 addPart(headlineSection
);
137 private void createAnnotationSections(RootElement parent
) {
138 AnnotationSection annotationSection
= formFactory
.createAnnotationSection(getConversationHolder(), parent
, ExpandableComposite
.TWISTIE
);
140 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
142 MarkerSection markerSection
= formFactory
.createMarkerSection(getConversationHolder(), parent
, ExpandableComposite
.TWISTIE
);
144 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
146 addPart(annotationSection
);
147 addPart(markerSection
);
150 private void createIdentifiableSections(RootElement parent
) {
152 ExtensionSection extensionSection
= formFactory
.createExtensionSection(getConversationHolder(), parent
, ExpandableComposite
.TWISTIE
);
154 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
156 SourceSection sourceSection
= formFactory
.createSourceSection(getConversationHolder(), parent
, ExpandableComposite
.TWISTIE
);
158 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
160 IdentifierSection identifierSection
= formFactory
.createIdentifierDetailSection(getConversationHolder(), parent
, ExpandableComposite
.TWISTIE
);
162 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
164 CreditSection creditSection
= formFactory
.createCreditSection(getConversationHolder(), parent
, ExpandableComposite
.TWISTIE
);
166 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
168 RightsSection rightsSection
= formFactory
.createRightsSection(getConversationHolder(), parent
, ExpandableComposite
.TWISTIE
);
170 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
172 addPart(extensionSection
);
173 addPart(sourceSection
);
174 addPart(identifierSection
);
175 addPart(creditSection
);
176 addPart(rightsSection
);
180 private void createIdentifiableMediaSections(RootElement parent
) {
181 MediaSection mediaSection
= formFactory
.createMediaSection(getConversationHolder(), parent
, ExpandableComposite
.TWISTIE
);
183 formFactory
.createHorizontalSeparator(parent
, SWT
.BORDER
);
185 addPart(mediaSection
);
188 private void createVersionSection(RootElement parent
){
189 VersionSection versionSection
= formFactory
.createVersionSection(parent
, ExpandableComposite
.NO_TITLE
| ExpandableComposite
.EXPANDED
);
190 addPart(versionSection
);
196 private void createCdmBaseSection(RootElement parent
) {
198 CdmBaseSection cdmBaseSection
= formFactory
.createCdmBaseSection(parent
, ExpandableComposite
.NO_TITLE
| ExpandableComposite
.EXPANDED
);
199 addPart(cdmBaseSection
);
204 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
208 public void selectionChanged(SelectionChangedEvent event
) {
209 if(event
.getSource() instanceof DetailsViewer
){
210 if(event
.getSelection() == CdmFormFactory
.EMPTY_SELECTION
){
215 IStructuredSelection selection
= (IStructuredSelection
) event
.getSelection();
216 setInput(selection
.getFirstElement());
221 public void update(CdmDataChangeMap arg0
) {