Project

General

Profile

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

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

    
54
	private boolean showDebug;
55

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

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

    
66
	}
67

    
68
	/** {@inheritDoc} */
69
	@Override
70
	protected void showParts() {
71

    
72
		showDebug = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_DEBUG_INFORMATION);
73

    
74
		Object input;
75

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

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

    
109
		layout();
110
	}
111

    
112
	private void createHeadlineSection(RootElement parent){
113
		HeadlineSection headlineSection = formFactory.createHeadlineSection(parent);
114
		addPart(headlineSection);
115
	}
116

    
117
	private void createSourceSection(RootElement parent){
118
	    int expandStyle = StoreUtil.getSectionStyle(SourceSection.class, getInput().getClass().getCanonicalName(), false);
119
        SourceSection sourceSection =  formFactory.createSourceSection(getConversationHolder(), parent, expandStyle);
120
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
121
        addPart(sourceSection);
122
    }
123

    
124
    private void createAnnotationSections(RootElement parent) {
125
        int expandStyle = StoreUtil.getSectionStyle(AnnotationSection.class, getInput().getClass().getCanonicalName(), false);
126
        AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), parent, expandStyle);
127

    
128
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
129
        expandStyle = StoreUtil.getSectionStyle(MarkerSection.class, getInput().getClass().getCanonicalName(), false);
130
        MarkerSection markerSection = formFactory.createMarkerSection(getConversationHolder(), parent, expandStyle);
131

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

    
134
        addPart(annotationSection);
135
        addPart(markerSection);
136
    }
137

    
138
    private void createIdentifiableSections(RootElement parent) {
139
        int expandStyle = StoreUtil.getSectionStyle(SourceSection.class, getInput().getClass().getCanonicalName(), false);
140
        SourceSection sourceSection = formFactory.createSourceSection(getConversationHolder(), parent, expandStyle);
141

    
142
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
143
        expandStyle =  StoreUtil.getSectionStyle(IdentifierSection.class, getInput().getClass().getCanonicalName(), false);
144
        IdentifierSection identifierSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, expandStyle);
145

    
146
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
147
        expandStyle =  StoreUtil.getSectionStyle(ExtensionSection.class, getInput().getClass().getCanonicalName(), false);
148
        ExtensionSection extensionSection = formFactory.createExtensionSection(getConversationHolder(), parent, expandStyle);
149

    
150
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
151
        expandStyle =  StoreUtil.getSectionStyle(CreditSection.class, getInput().getClass().getCanonicalName(), false);
152
        CreditSection creditSection = formFactory.createCreditSection(getConversationHolder(), parent, expandStyle);
153

    
154
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
155
        expandStyle =  StoreUtil.getSectionStyle(RightsSection.class, getInput().getClass().getCanonicalName(), false);
156
        RightsSection rightsSection = formFactory.createRightsSection(getConversationHolder(), parent, expandStyle);
157

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

    
160
        addPart(sourceSection);
161
        addPart(identifierSection);
162
        addPart(extensionSection);
163
        addPart(creditSection);
164
        addPart(rightsSection);
165

    
166
	}
167

    
168
    private void createIdentifiableMediaSections(RootElement parent) {
169
        int expandStyle = StoreUtil.getSectionStyle(MediaSection.class, getInput().getClass().getCanonicalName(), false);
170
        MediaSection mediaSection = formFactory.createMediaSection(getConversationHolder(), parent, expandStyle);
171

    
172
        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
173

    
174
        addPart(mediaSection);
175
    }
176

    
177
	private void createVersionSection(RootElement parent){
178
		VersionSection versionSection = formFactory.createVersionSection(parent, ExpandableComposite.NO_TITLE | StoreUtil.getSectionStyle(VersionSection.class, getInput().getClass().getCanonicalName(), true));
179
		addPart(versionSection);
180
	}
181

    
182
	private void createCdmBaseSection(RootElement parent) {
183

    
184
		CdmBaseSection cdmBaseSection = formFactory.createCdmBaseSection(parent, ExpandableComposite.NO_TITLE | StoreUtil.getSectionStyle(CdmBaseSection.class, getInput().getClass().getCanonicalName(), true));
185
		addPart(cdmBaseSection);
186
	}
187

    
188
	@Override
189
	public void update(CdmDataChangeMap arg0) {
190
	}
191

    
192
	@Inject
193
    @Optional
194
    private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_SUPPLEMENTAL)boolean refresh){
195
        if(refresh){
196
            this.refresh();
197
        }
198
    }
199
}
(2-2/2)