Project

General

Profile

« Previous | Next » 

Revision 61e0ca66

Added by Lorna Morris about 12 years ago

Fixes #2572. Fixes #2574. Also simplified SupplementalDataViewer so that everytime the viewer is refreshed the sections are recreated.

View differences:

.gitattributes
1412 1412
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractReferencedEntityElement.java -text
1413 1413
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationElement.java -text
1414 1414
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationSection.java -text
1415
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseElement.java -text
1416
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseSection.java -text
1415 1417
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CreditElement.java -text
1416 1418
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CreditSection.java -text
1417 1419
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/ExtensionElement.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
48 48
import eu.etaxonomy.cdm.model.agent.Team;
49 49
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
50 50
import eu.etaxonomy.cdm.model.common.Annotation;
51
import eu.etaxonomy.cdm.model.common.CdmBase;
51 52
import eu.etaxonomy.cdm.model.common.Credit;
52 53
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
53 54
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
......
226 227
import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
227 228
import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationElement;
228 229
import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationSection;
230
import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseElement;
231
import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseSection;
229 232
import eu.etaxonomy.taxeditor.ui.section.supplemental.CreditElement;
230 233
import eu.etaxonomy.taxeditor.ui.section.supplemental.CreditSection;
231 234
import eu.etaxonomy.taxeditor.ui.section.supplemental.ExtensionElement;
......
1397 1400
		parentElement.addElement(element);
1398 1401
		return element;
1399 1402
	}
1403
	
1404
	/**
1405
	 * @param cdmBaseSection
1406
	 * @param object
1407
	 * @param style
1408
	 * @return
1409
	 */
1410
	public CdmBaseElement createCdmBaseElement(ICdmFormElement parentElement,
1411
			CdmBase entity, int style) {
1412
		CdmBaseElement element = new CdmBaseElement(this, parentElement,
1413
				entity, style);
1414
		adapt(element);
1415
		parentElement.addElement(element);
1416
		return element;
1417
	}
1418

  
1400 1419

  
1401 1420
	/**
1402 1421
	 * <p>
......
1419 1438
		adapt(section);
1420 1439
		return section;
1421 1440
	}
1441
	
1442
	/**
1443
	 * @param parent
1444
	 * @param i
1445
	 * @return
1446
	 */
1447
	public CdmBaseSection createCdmBaseSection(ICdmFormElement parentElement, int style) {
1448
		CdmBaseSection section = new CdmBaseSection(this, parentElement, style);
1449
		parentElement.addElement(section);
1450
		adapt(section);
1451
		return section;
1452
	}
1422 1453

  
1423 1454
	/**
1424 1455
	 * <p>
......
2501 2532

  
2502 2533

  
2503 2534

  
2535

  
2536

  
2537

  
2504 2538
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseElement.java
1
// $Id$
2
/**
3
* Copyright (C) 2009 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
package eu.etaxonomy.taxeditor.ui.section.supplemental;
11

  
12
import eu.etaxonomy.cdm.model.common.CdmBase;
13
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
14
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
15
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
16
import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
17
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
18

  
19
/**
20
 * @author l.morris
21
 * @date 24 Jan 2012
22
 *
23
 */
24
public class CdmBaseElement extends AbstractCdmFormElement implements IEntityElement<CdmBase>{
25

  
26
	private TextWithLabelElement text_uuid;
27
	private TextWithLabelElement text_objectId;
28
	private CdmBase entity;
29
	/**
30
	 * @param formFactory
31
	 * @param formElement
32
	 */
33
	public CdmBaseElement(CdmFormFactory formFactory,
34
			ICdmFormElement formElement, CdmBase entity, int style) {
35
		
36
		super(formFactory, formElement);
37
		text_uuid = formFactory.createTextWithLabelElement(formElement, "UUID", null, style);		
38
		text_objectId = formFactory.createTextWithLabelElement(formElement, "Object ID", null, style);
39
		setEntity(entity);
40
	}
41

  
42
	/* (non-Javadoc)
43
	 * @see eu.etaxonomy.taxeditor.ui.element.ISelectable#setSelected(boolean)
44
	 */
45
	@Override
46
	public void setSelected(boolean selected) {
47
		// this entity element is not likely to get selected
48
	}
49

  
50
	/* (non-Javadoc)
51
	 * @see eu.etaxonomy.taxeditor.ui.element.IEntityElement#getEntity()
52
	 */
53
	@Override
54
	public CdmBase getEntity() {
55
		return entity;
56
	}
57

  
58
	
59
	public void setEntity(CdmBase entity) {
60
		
61
		this.entity = entity;			
62
		
63
		text_uuid.setText(entity != null ? entity.getUuid().toString() : "");	
64
		text_objectId.setText(entity != null ? entity.getId()+"" : "");
65
	}
66
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseSection.java
1
// $Id$
2
/**
3
* Copyright (C) 2009 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
package eu.etaxonomy.taxeditor.ui.section.supplemental;
11

  
12
import eu.etaxonomy.cdm.model.common.CdmBase;
13
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
14
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
15
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
16

  
17
/**
18
 * @author l.morris
19
 * @date 24 Jan 2012
20
 *
21
 */
22
public class CdmBaseSection extends AbstractFormSection<CdmBase> {
23
	
24
	private CdmBaseElement cdmBaseElement;
25

  
26
	/**
27
	 * @param formFactory
28
	 * @param parentElement
29
	 * @param selectionProvider
30
	 * @param style
31
	 */
32
	public CdmBaseSection(CdmFormFactory formFactory,
33
			ICdmFormElement parentElement,
34
			int style) {
35

  
36
		super(formFactory, parentElement, style);
37
		cdmBaseElement = formFactory.createCdmBaseElement(this, null, style);
38
	}
39
	
40
	/** {@inheritDoc} */
41
	@Override
42
	public void setEntity(CdmBase entity) {
43
		super.setEntity(entity);
44
		cdmBaseElement.setEntity(entity);
45
	}
46

  
47
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/VersionElement.java
35 35
	private Label label_created;
36 36
	private Label label_updated;
37 37
	
38
	private TextWithLabelElement text_uuid;
39
	private TextWithLabelElement text_objectId;
38
	
40 39
	private VersionableEntity entity;
41
	private boolean showDebug;
42 40
	
43 41
	/**
44 42
	 * <p>Constructor for VersionElement.</p>
45 43
	 *
46 44
	 * @param style a int.
47
	 * @param toolkit a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
45
	 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
48 46
	 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
49 47
	 * @param entity a {@link eu.etaxonomy.cdm.model.common.VersionableEntity} object.
50 48
	 */
51
	public VersionElement(CdmFormFactory toolkit, ICdmFormElement parentElement, VersionableEntity entity, int style) {
52
		super(toolkit, parentElement);
53
		
54
		showDebug = PreferencesUtil.getPreferenceStore().getBoolean(PreferencesUtil.SHOW_DEBUG_INFORMATION);
55
				
56
		label_created = toolkit.createLabel(getLayoutComposite(), null);
49
	public VersionElement(CdmFormFactory formFactory, ICdmFormElement parentElement, VersionableEntity entity, int style) {
50
		super(formFactory, parentElement);
51
			
52
		label_created = formFactory.createLabel(getLayoutComposite(), null, style);
57 53
		label_created.setLayoutData(CdmFormFactory.FILL_HORIZONTALLY());
58 54

  
59
		label_updated = toolkit.createLabel(getLayoutComposite(), null);
55
		label_updated = formFactory.createLabel(getLayoutComposite(), null, style);
60 56
		label_updated.setLayoutData(CdmFormFactory.FILL_HORIZONTALLY());
61 57
		
62
		if(showDebug){
63
			text_uuid = toolkit.createTextWithLabelElement(parentElement, "UUID", null, style);
64
			
65
			text_objectId = toolkit.createTextWithLabelElement(parentElement, "Object ID", null, style);
66
		}
58
		
59
		setEntity(entity);
67 60
	}
68 61
	
69 62
	/**
......
75 68

  
76 69
		this.entity = entity;
77 70
		
78
		String createdString = "Created "
79
				+ dateFormat(entity.getCreated())
80
				+ " by " + userFormat(entity.getCreatedBy());			
81
		label_created.setText(createdString);
82

  
83
		String updatedString = "Updated "
84
				+ dateFormat(entity.getUpdated())
85
				+ " by " + userFormat(entity.getUpdatedBy());
86
		label_updated.setText(updatedString);
87
		
88
		
71
		String createdString = "";
72
		String updatedString = "";
89 73
		
90
		if(showDebug){
91
			text_uuid.setText(entity.getUuid().toString());
92
			
93
			text_objectId.setText(entity.getId()+"");
74
		if(entity != null){
75
			createdString = "Created "
76
					+ dateFormat(entity.getCreated())
77
					+ " by " + userFormat(entity.getCreatedBy());			
78
			updatedString = "Updated "
79
					+ dateFormat(entity.getUpdated())
80
					+ " by " + userFormat(entity.getUpdatedBy());
94 81
		}
95 82
		
83
		label_created.setText(createdString);
84
		label_updated.setText(updatedString);
96 85
	}
97 86
	
98 87
	private String dateFormat(DateTime dateTime){
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/VersionSection.java
26 26

  
27 27
	private VersionElement versionElement;
28 28
	
29
	
29 30
	/**
30 31
	 * <p>Constructor for VersionSection.</p>
31 32
	 *
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewer.java
19 19
import org.eclipse.ui.forms.widgets.Section;
20 20

  
21 21
import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
22
import eu.etaxonomy.cdm.model.common.CdmBase;
22 23
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
23 24
import eu.etaxonomy.cdm.model.common.VersionableEntity;
24 25
import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity;
25 26
import eu.etaxonomy.taxeditor.model.IElementHasDetails;
27
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
26 28
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
27 29
import eu.etaxonomy.taxeditor.ui.element.RootElement;
28 30
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.EntityDetailType;
29 31
import eu.etaxonomy.taxeditor.ui.section.media.MediaSection;
30 32
import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationSection;
33
import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseSection;
31 34
import eu.etaxonomy.taxeditor.ui.section.supplemental.CreditSection;
32 35
import eu.etaxonomy.taxeditor.ui.section.supplemental.ExtensionSection;
33 36
import eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineSection;
......
48 51
 */
49 52
public class SupplementalDataViewer extends AbstractCdmDataViewer implements ISelectionChangedListener {
50 53

  
51
	private enum VIEW_PART{
52
		VersionableEntity, 
53
		AnnotatableEntity, 
54
		IdentifiableEntity, 
55
		IdentifiableMediaEntity,
56
		EMPTY;
57
	}
58
	
59
	private VIEW_PART currentViewPart;
54
	private boolean showDebug;
60 55

  
61 56
	
62 57
	/**
......
95 90
	@Override
96 91
	protected void showParts() {
97 92
		
93
		showDebug = PreferencesUtil.getPreferenceStore().getBoolean(PreferencesUtil.SHOW_DEBUG_INFORMATION);
94
				
98 95
		Object input;
99 96
		
100 97
		if(getInput() instanceof IElementHasDetails){
......
103 100
			input = getInput();
104 101
		}
105 102
		
106
		if(input instanceof IdentifiableMediaEntity){
107
			if(currentViewPart != VIEW_PART.IdentifiableMediaEntity){
108
				currentViewPart = VIEW_PART.IdentifiableMediaEntity;
109
				createIdentifiableMediaSections(rootElement);
110
			}
111
		}else if(input instanceof IdentifiableEntity){
112
			if(currentViewPart != VIEW_PART.IdentifiableEntity){
113
				currentViewPart = VIEW_PART.IdentifiableEntity;
114
				createIdentifiableSections(rootElement);
115
			}
116
		}else if(input instanceof AnnotatableEntity){
117
			if(currentViewPart != VIEW_PART.AnnotatableEntity){
118
				currentViewPart = VIEW_PART.AnnotatableEntity;
103
		destroySections();
104
		//1. Headline
105
		createHeadlineSection(rootElement);
106
		//2. Annotatable entitiy
107
		if(input instanceof AnnotatableEntity){ 
119 108
				createAnnotationSections(rootElement);
120
			}
121
		}else if(input instanceof VersionableEntity){
122
			if(currentViewPart != VIEW_PART.VersionableEntity){
123
				currentViewPart = VIEW_PART.VersionableEntity;
124
				createHeadlineSection(rootElement);
125
			}
126
		}else{
127
			currentViewPart = VIEW_PART.EMPTY;
109
		}
110
		//3. Identifiable entity
111
		if(input instanceof IdentifiableEntity){
112
			createIdentifiableSections(rootElement);
113
		}
114
		//4. Identifiable media entity
115
		if(input instanceof IdentifiableMediaEntity){
116
			createIdentifiableMediaSections(rootElement);			
117
		}
118
		//5. Versionable
119
		if(input instanceof VersionableEntity){
120
				createVersionSection(rootElement);
121
		}	
122
		//6. CdmBase
123
		if(showDebug){
124
			createCdmBaseSection(rootElement);
128 125
		}
129 126
		
130 127
		layout();
131 128
	}
132
	
129

  
130

  
131

  
133 132
	private void createHeadlineSection(RootElement parent){
134
		destroySections();
135 133
		HeadlineSection headlineSection = formFactory.createHeadlineSection(parent);
136 134
		addPart(headlineSection);
137
		
138
		if(currentViewPart == VIEW_PART.VersionableEntity){
139
			createVersionSection(parent);
140
		}
141 135
	}
142 136
	
143 137
	private void createAnnotationSections(RootElement parent){
144
		createHeadlineSection(parent);
145 138
		AnnotationSection annotationSection = (AnnotationSection) 
146 139
			formFactory.createEntityDetailSection(EntityDetailType.ANNOTATION, getConversationHolder(), parent, Section.TWISTIE);
147 140
		
......
154 147
		
155 148
		addPart(annotationSection);
156 149
		addPart(markerSection);
157
		
158
		if(currentViewPart == VIEW_PART.AnnotatableEntity){
159
			createVersionSection(parent);
160
		}
161 150
	}
162 151

  
163
	private void createIdentifiableSections(RootElement parent){
164
		createAnnotationSections(parent);		
152
	private void createIdentifiableSections(RootElement parent){		
165 153
		CreditSection creditSection = (CreditSection) 
166 154
			formFactory.createEntityDetailSection(EntityDetailType.CREDIT, getConversationHolder(), parent, Section.TWISTIE);
167 155
		
......
187 175
		addPart(rightsSection);
188 176
		addPart(sourceSection);
189 177
		
190
		if(currentViewPart == VIEW_PART.IdentifiableEntity){
191
			createVersionSection(parent);
192
		}
193 178
	}
194 179
	
195 180
	private void createIdentifiableMediaSections(RootElement parent){
196
		createIdentifiableSections(parent);
197 181
		MediaSection mediaSection = (MediaSection) 
198 182
			formFactory.createEntityDetailSection(EntityDetailType.MEDIA, getConversationHolder(), parent, Section.TWISTIE);
199 183
		
200 184
		formFactory.createHorizontalSeparator(parent, SWT.BORDER);
201 185
		
202 186
		addPart(mediaSection);
203
		
204
		if(currentViewPart == VIEW_PART.IdentifiableMediaEntity){
205
			createVersionSection(parent);
206
		}
207 187
	}
208 188
	
209 189
	private void createVersionSection(RootElement parent){		
......
211 191
		addPart(versionSection);
212 192
	}
213 193
	
194
	/**
195
	 * @param rootElement
196
	 */
197
	private void createCdmBaseSection(RootElement parent) {
198
		
199
		CdmBaseSection cdmBaseSection = formFactory.createCdmBaseSection(parent, Section.NO_TITLE | Section.EXPANDED);
200
		addPart(cdmBaseSection);
201
	}
202
	
214 203
	/*
215 204
	 * (non-Javadoc)
216 205
	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
......
220 209
		if(event.getSource() instanceof DetailsViewer){
221 210
			if(event.getSelection() == CdmFormFactory.EMPTY_SELECTION){
222 211
				setInput(null);
223
				currentViewPart = VIEW_PART.EMPTY;
224 212
				return;
225 213
			}
226 214
			

Also available in: Unified diff