Project

General

Profile

Download (6.37 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 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

    
10
package eu.etaxonomy.taxeditor.view.e4.supplementaldata;
11

    
12
import javax.inject.Inject;
13

    
14
import org.eclipse.e4.core.di.annotations.Optional;
15
import org.eclipse.e4.ui.di.UIEventTopic;
16
import org.eclipse.jface.viewers.ISelection;
17
import org.eclipse.swt.SWT;
18
import org.eclipse.ui.forms.widgets.ExpandableComposite;
19

    
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.description.DescriptionBase;
24
import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity;
25
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
26
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
27
import eu.etaxonomy.taxeditor.model.IElementHasDetails;
28
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
29
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
30
import eu.etaxonomy.taxeditor.ui.element.RootElement;
31
import eu.etaxonomy.taxeditor.ui.section.media.MediaSection;
32
import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationSection;
33
import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseSection;
34
import eu.etaxonomy.taxeditor.ui.section.supplemental.CreditSection;
35
import eu.etaxonomy.taxeditor.ui.section.supplemental.ExtensionSection;
36
import eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineSection;
37
import eu.etaxonomy.taxeditor.ui.section.supplemental.MarkerSection;
38
import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
39
import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection;
40
import eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection;
41
import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.IdentifierSection;
42
import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
43

    
44
/**
45
 *
46
 * @author pplitzner
47
 * @since Aug 10, 2017
48
 *
49
 */
50
public class SupplementalDataViewerE4 extends AbstractCdmDataViewerE4 {
51

    
52
	private boolean showDebug;
53

    
54
	/** {@inheritDoc} */
55
	@Override
56
	public ISelection getSelection() {
57
		return null;
58
	}
59

    
60
	/** {@inheritDoc} */
61
	@Override
62
	public void setSelection(ISelection selection, boolean reveal) {
63

    
64
	}
65

    
66
	/** {@inheritDoc} */
67
	@Override
68
	protected void showParts() {
69

    
70
		showDebug = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_DEBUG_INFORMATION);
71

    
72
		Object input;
73

    
74
		if(getInput() instanceof IElementHasDetails){
75
			input = ((IElementHasDetails) getInput()).getData();
76
		}else{
77
			input = getInput();
78
		}
79

    
80
		destroySections();
81
		//1. Headline
82
		createHeadlineSection(rootElement);
83
		//2. Annotatable entitiy
84
		if(input instanceof AnnotatableEntity){
85
				createAnnotationSections(rootElement);
86
		}
87
		//3. Identifiable entity
88
		if(input instanceof IdentifiableEntity){
89
			createIdentifiableSections(rootElement);
90
		}
91
		//4. Identifiable media entity
92
		if(input instanceof IdentifiableMediaEntity){
93
			createIdentifiableMediaSections(rootElement);
94
		}
95
		//5. Versionable
96
		if(input instanceof VersionableEntity){
97
				createVersionSection(rootElement);
98
		}
99
		//6. CdmBase
100
		if(showDebug){
101
			createCdmBaseSection(rootElement);
102
		}
103

    
104
		layout();
105
	}
106

    
107
	private void createHeadlineSection(RootElement parent){
108
		HeadlineSection headlineSection = formFactory.createHeadlineSection(parent);
109
		addPart(headlineSection);
110
	}
111

    
112
    private void createAnnotationSections(RootElement parent) {
113
        AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
114

    
115
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
116

    
117
        MarkerSection markerSection = formFactory.createMarkerSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
118

    
119
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
120

    
121
        addPart(annotationSection);
122
        addPart(markerSection);
123
    }
124

    
125
    private void createIdentifiableSections(RootElement parent) {
126

    
127
        if(!(getInput() instanceof DescriptionBase)){
128
            //sources are shown in DetailsView for Descriptions
129
            SourceSection sourceSection = formFactory.createSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
130
            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
131
            addPart(sourceSection);
132
        }
133

    
134
        IdentifierSection identifierSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
135

    
136
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
137

    
138
        ExtensionSection extensionSection = formFactory.createExtensionSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
139

    
140
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
141

    
142
        CreditSection creditSection = formFactory.createCreditSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
143

    
144
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
145

    
146
        RightsSection rightsSection = formFactory.createRightsSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
147

    
148
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
149

    
150
        addPart(identifierSection);
151
        addPart(extensionSection);
152
        addPart(creditSection);
153
        addPart(rightsSection);
154

    
155
	}
156

    
157
    private void createIdentifiableMediaSections(RootElement parent) {
158
        MediaSection mediaSection = formFactory.createMediaSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
159

    
160
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
161

    
162
        addPart(mediaSection);
163
    }
164

    
165
	private void createVersionSection(RootElement parent){
166
		VersionSection versionSection = formFactory.createVersionSection(parent, ExpandableComposite.NO_TITLE | ExpandableComposite.EXPANDED);
167
		addPart(versionSection);
168
	}
169

    
170
	private void createCdmBaseSection(RootElement parent) {
171

    
172
		CdmBaseSection cdmBaseSection = formFactory.createCdmBaseSection(parent, ExpandableComposite.NO_TITLE | ExpandableComposite.EXPANDED);
173
		addPart(cdmBaseSection);
174
	}
175

    
176
	@Override
177
	public void update(CdmDataChangeMap arg0) {
178
	}
179

    
180
	@Inject
181
    @Optional
182
    private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_SUPPLEMENTAL)boolean refresh){
183
        if(refresh){
184
            this.refresh();
185
        }
186
    }
187
}
(2-2/2)