Project

General

Profile

Download (6.18 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.media.IdentifiableMediaEntity;
24
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
25
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
26
import eu.etaxonomy.taxeditor.model.IElementHasDetails;
27
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
28
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
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.e4.AbstractCdmDataViewerE4;
42

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

    
51
	private boolean showDebug;
52

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

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

    
63
	}
64

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

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

    
71
		Object input;
72

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

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

    
103
		layout();
104
	}
105

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

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

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

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

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

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

    
124
    private void createIdentifiableSections(RootElement parent) {
125

    
126
        SourceSection sourceSection = formFactory.createSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
127

    
128
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
129

    
130
        IdentifierSection identifierSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
131

    
132
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
133

    
134
        ExtensionSection extensionSection = formFactory.createExtensionSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
135

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

    
138
        CreditSection creditSection = formFactory.createCreditSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
139

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

    
142
        RightsSection rightsSection = formFactory.createRightsSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
143

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

    
146
        addPart(sourceSection);
147
        addPart(identifierSection);
148
        addPart(extensionSection);
149
        addPart(creditSection);
150
        addPart(rightsSection);
151

    
152
	}
153

    
154
    private void createIdentifiableMediaSections(RootElement parent) {
155
        MediaSection mediaSection = formFactory.createMediaSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE);
156

    
157
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
158

    
159
        addPart(mediaSection);
160
    }
161

    
162
	private void createVersionSection(RootElement parent){
163
		VersionSection versionSection = formFactory.createVersionSection(parent, ExpandableComposite.NO_TITLE | ExpandableComposite.EXPANDED);
164
		addPart(versionSection);
165
	}
166

    
167
	private void createCdmBaseSection(RootElement parent) {
168

    
169
		CdmBaseSection cdmBaseSection = formFactory.createCdmBaseSection(parent, ExpandableComposite.NO_TITLE | ExpandableComposite.EXPANDED);
170
		addPart(cdmBaseSection);
171
	}
172

    
173
	@Override
174
	public void update(CdmDataChangeMap arg0) {
175
	}
176

    
177

    
178
	@Inject
179
    @Optional
180
    private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_SUPPLEMENTAL)boolean refresh){
181
        if(refresh){
182
            this.refresh();
183
        }
184
    }
185

    
186
}
(2-2/2)