Revision 5964be2c
Added by Patrick Plitzner over 5 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java | ||
---|---|---|
4 | 4 |
package eu.etaxonomy.taxeditor.ui.element; |
5 | 5 |
|
6 | 6 |
import java.net.URI; |
7 |
|
|
8 | 7 |
import java.util.ArrayList; |
9 | 8 |
import java.util.Comparator; |
10 | 9 |
import java.util.HashSet; |
... | ... | |
12 | 11 |
import java.util.Map; |
13 | 12 |
import java.util.Set; |
14 | 13 |
|
15 |
import org.eclipse.jface.layout.GridDataFactory; |
|
16 | 14 |
import org.eclipse.jface.util.IPropertyChangeListener; |
17 | 15 |
import org.eclipse.jface.viewers.ISelection; |
18 | 16 |
import org.eclipse.jface.viewers.ISelectionProvider; |
... | ... | |
36 | 34 |
import org.eclipse.swt.widgets.Display; |
37 | 35 |
import org.eclipse.swt.widgets.Event; |
38 | 36 |
import org.eclipse.swt.widgets.Label; |
39 |
import org.eclipse.swt.widgets.Text; |
|
40 | 37 |
import org.eclipse.ui.forms.IFormColors; |
41 | 38 |
import org.eclipse.ui.forms.widgets.ExpandableComposite; |
42 | 39 |
import org.eclipse.ui.forms.widgets.FormToolkit; |
... | ... | |
44 | 41 |
import org.eclipse.ui.forms.widgets.TableWrapData; |
45 | 42 |
import org.eclipse.ui.internal.forms.widgets.FormFonts; |
46 | 43 |
import org.joda.time.DateTime; |
47 |
import org.joda.time.LocalDateTime; |
|
48 |
|
|
49 | 44 |
import org.joda.time.Partial; |
50 | 45 |
import org.springframework.security.core.GrantedAuthority; |
51 | 46 |
|
... | ... | |
55 | 50 |
import eu.etaxonomy.cdm.model.agent.Person; |
56 | 51 |
import eu.etaxonomy.cdm.model.agent.Team; |
57 | 52 |
import eu.etaxonomy.cdm.model.common.Annotation; |
58 |
import eu.etaxonomy.cdm.model.common.AnnotationType; |
|
59 | 53 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
60 | 54 |
import eu.etaxonomy.cdm.model.common.Credit; |
61 | 55 |
import eu.etaxonomy.cdm.model.common.DefinedTerm; |
... | ... | |
122 | 116 |
import eu.etaxonomy.taxeditor.ui.dialog.CloneClassificationDetailElement; |
123 | 117 |
import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection.UnitType; |
124 | 118 |
import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement; |
125 |
|
|
126 | 119 |
import eu.etaxonomy.taxeditor.ui.openurl.IOpenUrlEnabled; |
127 | 120 |
import eu.etaxonomy.taxeditor.ui.openurl.OpenUrlSelectorElement; |
128 | 121 |
import eu.etaxonomy.taxeditor.ui.password.EditPasswordElement; |
... | ... | |
437 | 430 |
* a {@link org.eclipse.swt.widgets.Display} object. |
438 | 431 |
*/ |
439 | 432 |
public CdmFormFactory(Display display) { |
440 |
super(display); |
|
441 |
init(); |
|
433 |
this(display, null); |
|
442 | 434 |
} |
443 | 435 |
|
444 | 436 |
/** |
... | ... | |
518 | 510 |
@Override |
519 | 511 |
public void adapt(Composite composite) { |
520 | 512 |
composite.addMouseListener(selectionMouseHandler); |
521 |
|
|
513 |
|
|
522 | 514 |
super.adapt(composite); |
523 | 515 |
} |
524 | 516 |
|
... | ... | |
925 | 917 |
ICdmFormElement parentElement, |
926 | 918 |
String labelString, |
927 | 919 |
T selection, |
928 |
int style,
|
|
920 |
int style, |
|
929 | 921 |
Comparator<T> comparator) { |
930 | 922 |
return this.createDefinedTermComboElement(termType, null, parentElement, labelString, selection, true, style, false, comparator); |
931 | 923 |
} |
... | ... | |
939 | 931 |
int style) { |
940 | 932 |
return this.createDefinedTermComboElement(termType, null, parentElement, labelString, selection, addEmptyElement, style, false, null); |
941 | 933 |
} |
942 |
|
|
934 |
|
|
943 | 935 |
public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement( |
944 | 936 |
TermType termType, |
945 | 937 |
ICdmFormElement parentElement, |
946 | 938 |
String labelString, |
947 |
T selection,
|
|
939 |
T selection, |
|
948 | 940 |
int style) { |
949 | 941 |
return this.createDefinedTermComboElement(termType, null, parentElement, labelString, selection, true, style, false, null); |
950 | 942 |
} |
... | ... | |
2146 | 2138 |
addAndAdaptElement(parentElement, element); |
2147 | 2139 |
return element; |
2148 | 2140 |
} |
2149 |
|
|
2141 |
|
|
2150 | 2142 |
public NameDetailElement createNameDetailElement(ICdmFormElement parentElement, int style){ |
2151 | 2143 |
NameDetailElement element = new NameDetailElement(this, parentElement, style); |
2152 | 2144 |
addAndAdaptElement(parentElement, element); |
... | ... | |
2912 | 2904 |
// label.setText(labelText+" (yyyy-MM-dd)"); |
2913 | 2905 |
// DateElementFormElement dateElement = new DateElementFormElement(this, dateTime, style, formElement.getLayoutComposite()); |
2914 | 2906 |
// dateElement.initInternalController(); |
2915 |
//
|
|
2907 |
// |
|
2916 | 2908 |
// return dateElement; |
2917 | 2909 |
// } |
2918 |
|
|
2910 |
|
|
2919 | 2911 |
public DateElement createDateElement(ICdmFormElement formElement, String labelText, DateTime dateTime, int style, boolean editableText){ |
2920 | 2912 |
Label label = new Label(formElement.getLayoutComposite(), style); |
2921 | 2913 |
label.setText(labelText); |
... | ... | |
3029 | 3021 |
return section; |
3030 | 3022 |
} |
3031 | 3023 |
|
3032 |
|
|
3024 |
|
|
3033 | 3025 |
public TaxonOfRelationshipElement createTaxonOfRelationshipDetailElement( |
3034 | 3026 |
ICdmFormElement parentElement, int style) { |
3035 | 3027 |
TaxonOfRelationshipElement section = new TaxonOfRelationshipElement(this, parentElement, style); |
... | ... | |
3054 | 3046 |
// return element; |
3055 | 3047 |
// } |
3056 | 3048 |
|
3057 |
|
|
3049 |
|
|
3058 | 3050 |
|
3059 | 3051 |
|
3060 | 3052 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java | ||
---|---|---|
67 | 67 |
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementMediaSection; |
68 | 68 |
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementSourceSection; |
69 | 69 |
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionSourceSection; |
70 |
|
|
71 | 70 |
import eu.etaxonomy.taxeditor.ui.section.description.MediaDetailsSection; |
72 | 71 |
import eu.etaxonomy.taxeditor.ui.section.description.NaturalLanguageSection; |
73 | 72 |
import eu.etaxonomy.taxeditor.ui.section.description.ScopeSection; |
... | ... | |
142 | 141 |
|
143 | 142 |
@Override |
144 | 143 |
public void setInput(Object input) { |
145 |
|
|
144 |
|
|
146 | 145 |
if(input instanceof TreeNode){ |
147 | 146 |
input = ((TreeNode) input).getValue(); |
148 | 147 |
} |
... | ... | |
190 | 189 |
// Too much type checking to decide which detail view to display. |
191 | 190 |
// Need to build in a mechanism where navigators / editors are 'aware' |
192 | 191 |
// of the corresponding detail viewer. |
193 |
|
|
192 |
|
|
194 | 193 |
Object input = getInput(); |
195 | 194 |
|
196 | 195 |
destroySections(); |
... | ... | |
324 | 323 |
createEmptySection(rootElement); |
325 | 324 |
} |
326 | 325 |
layout(); |
327 |
|
|
326 |
|
|
328 | 327 |
} |
329 | 328 |
|
330 | 329 |
|
... | ... | |
357 | 356 |
/** {@inheritDoc} */ |
358 | 357 |
@Override |
359 | 358 |
public void setSelection(ISelection selection, boolean reveal) { |
360 |
|
|
359 |
|
|
361 | 360 |
this.selection = selection; |
362 |
|
|
361 |
|
|
363 | 362 |
if(this.selection!=null){ |
364 | 363 |
SelectionChangedEvent selectionChangedEvent = new SelectionChangedEvent(this, selection); |
365 | 364 |
fireSelectionChanged(selectionChangedEvent); |
366 | 365 |
} |
367 |
|
|
366 |
|
|
368 | 367 |
} |
369 | 368 |
|
370 | 369 |
private void createTaxonSections(RootElement parent) { |
... | ... | |
495 | 494 |
destroySections(); |
496 | 495 |
|
497 | 496 |
DescriptionElementDetailSection descriptionElementDetailSection = formFactory.createDescriptionElementDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); |
498 |
|
|
497 |
|
|
499 | 498 |
// IntextReferenceSection intextReferenceSection = formFactory.createIntextReferenceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); |
500 |
|
|
499 |
|
|
501 | 500 |
formFactory.createHorizontalSeparator(parent, SWT.BORDER); |
502 | 501 |
|
503 | 502 |
DescriptionElementSourceSection descriptionElementSourceSection = formFactory.createDescriptionElementSourceSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE); |
... | ... | |
585 | 584 |
|
586 | 585 |
DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); |
587 | 586 |
//TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539 |
588 |
if(!(AbstractUtility.getActiveE4Part() instanceof IDerivedUnitFacadePart)){ |
|
589 |
derivedUnitGeneralDetailSection.setShowOnlyDerivedUnitData(true); |
|
590 |
} |
|
587 |
// if(!(AbstractUtility.getActiveE4Part() instanceof IDerivedUnitFacadePart)){
|
|
588 |
// derivedUnitGeneralDetailSection.setShowOnlyDerivedUnitData(true);
|
|
589 |
// }
|
|
591 | 590 |
addPart(derivedUnitGeneralDetailSection); |
592 | 591 |
|
593 | 592 |
formFactory.createHorizontalSeparator(parent, SWT.BORDER); |
... | ... | |
786 | 785 |
// ReferencedEntityDetailSection referencedEntityBaseDetailSection = formFactory.createReferencedEntityDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); |
787 | 786 |
addPart(taxonRelationshipDetailSection); |
788 | 787 |
//addPart(referencedEntityBaseDetailSection); |
789 |
|
|
788 |
|
|
790 | 789 |
NonViralNameDetailSection nonViralNameSection = formFactory |
791 | 790 |
.createNonViralNameDetailSection(getConversationHolder(), parent, this, true, |
792 | 791 |
ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); |
... | ... | |
823 | 822 |
addPart(nameRelationshipSection); |
824 | 823 |
//} |
825 | 824 |
|
826 |
|
|
825 |
|
|
827 | 826 |
//} |
828 | 827 |
} |
829 | 828 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmDataViewerE4.java | ||
---|---|---|
9 | 9 |
|
10 | 10 |
package eu.etaxonomy.taxeditor.view.e4; |
11 | 11 |
|
12 |
import javax.inject.Inject; |
|
13 |
|
|
14 |
import org.eclipse.e4.core.contexts.IEclipseContext; |
|
12 | 15 |
import org.eclipse.jface.viewers.StructuredSelection; |
13 | 16 |
import org.eclipse.jface.viewers.Viewer; |
14 | 17 |
import org.eclipse.swt.SWT; |
... | ... | |
43 | 46 |
|
44 | 47 |
protected ScrolledForm scrolledForm; |
45 | 48 |
|
46 |
private final Composite body;
|
|
49 |
private Composite body; |
|
47 | 50 |
|
48 | 51 |
protected RootElement rootElement; |
49 | 52 |
|
53 |
@Inject |
|
54 |
protected IEclipseContext context; |
|
55 |
|
|
50 | 56 |
//TODO: create a super class for this? |
51 | 57 |
private Object input; |
52 | 58 |
|
53 |
protected final IDirtyMarkable part;
|
|
59 |
protected IDirtyMarkable part; |
|
54 | 60 |
|
61 |
@Inject |
|
62 |
public AbstractCdmDataViewerE4() { |
|
63 |
|
|
64 |
} |
|
55 | 65 |
|
56 |
public AbstractCdmDataViewerE4(Composite parent, IDirtyMarkable part) {
|
|
66 |
public void init(Composite parent, IDirtyMarkable part) {
|
|
57 | 67 |
this.part = part; |
58 | 68 |
|
59 | 69 |
managedForm = new ManagedForm(parent){ |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/details/DetailsPartE4.java | ||
---|---|---|
12 | 12 |
import javax.annotation.PostConstruct; |
13 | 13 |
import javax.inject.Inject; |
14 | 14 |
|
15 |
import org.eclipse.e4.core.contexts.ContextInjectionFactory; |
|
16 |
import org.eclipse.e4.core.contexts.IEclipseContext; |
|
15 | 17 |
import org.eclipse.e4.ui.model.application.ui.basic.MPart; |
16 | 18 |
import org.eclipse.jface.viewers.IStructuredSelection; |
17 | 19 |
import org.eclipse.swt.widgets.Composite; |
... | ... | |
38 | 40 |
} |
39 | 41 |
|
40 | 42 |
@PostConstruct |
41 |
public void create(Composite parent, MPart thisPart) { |
|
43 |
public void create(Composite parent, MPart thisPart, IEclipseContext context) {
|
|
42 | 44 |
|
43 | 45 |
this.thisPart = thisPart; |
44 | 46 |
|
45 |
viewer = new DetailsViewerE4(parent, this); |
|
47 |
viewer = ContextInjectionFactory.make(DetailsViewerE4.class, context); |
|
48 |
((DetailsViewerE4)viewer).init(parent, this); |
|
46 | 49 |
|
47 | 50 |
// Propagate selection from viewer |
48 | 51 |
selectionChangedListener = (event -> selService.setSelection(AbstractUtility.getElementsFromSelectionChangedEvent(event))); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/details/DetailsViewerE4.java | ||
---|---|---|
17 | 17 |
import org.eclipse.jface.viewers.SelectionChangedEvent; |
18 | 18 |
import org.eclipse.jface.viewers.TreeNode; |
19 | 19 |
import org.eclipse.swt.SWT; |
20 |
import org.eclipse.swt.widgets.Composite; |
|
21 | 20 |
import org.eclipse.ui.forms.widgets.ExpandableComposite; |
22 | 21 |
|
23 | 22 |
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; |
... | ... | |
55 | 54 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
56 | 55 |
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer; |
57 | 56 |
import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart; |
58 |
import eu.etaxonomy.taxeditor.model.IDirtyMarkable; |
|
59 | 57 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
60 | 58 |
import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship; |
61 | 59 |
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys; |
... | ... | |
135 | 133 |
private ISelection selection; |
136 | 134 |
private boolean detailsEnabled = true; |
137 | 135 |
|
138 |
public DetailsViewerE4(Composite parent, IDirtyMarkable part) { |
|
139 |
super(parent, part); |
|
140 |
|
|
141 |
} |
|
142 | 136 |
public void setInput(Object input, Object activePart) { |
143 | 137 |
if (activePart instanceof IDistributionEditor){ |
144 | 138 |
detailsEnabled = false; |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/supplementaldata/SupplementalDataPartE4.java | ||
---|---|---|
14 | 14 |
import javax.annotation.PostConstruct; |
15 | 15 |
import javax.inject.Inject; |
16 | 16 |
|
17 |
import org.eclipse.e4.core.contexts.ContextInjectionFactory; |
|
18 |
import org.eclipse.e4.core.contexts.IEclipseContext; |
|
17 | 19 |
import org.eclipse.e4.ui.model.application.ui.basic.MPart; |
18 | 20 |
import org.eclipse.jface.viewers.IStructuredSelection; |
19 | 21 |
import org.eclipse.jface.viewers.StructuredSelection; |
... | ... | |
46 | 48 |
} |
47 | 49 |
|
48 | 50 |
@PostConstruct |
49 |
public void create(Composite parent, MPart thisPart) { |
|
51 |
public void create(Composite parent, MPart thisPart, IEclipseContext context) {
|
|
50 | 52 |
|
51 | 53 |
this.thisPart = thisPart; |
52 | 54 |
|
53 |
viewer = new SupplementalDataViewerE4(parent, this); |
|
55 |
viewer = ContextInjectionFactory.make(SupplementalDataViewerE4.class, context); |
|
56 |
((SupplementalDataViewerE4)viewer).init(parent, this); |
|
54 | 57 |
} |
55 | 58 |
|
56 | 59 |
@Override |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/supplementaldata/SupplementalDataViewerE4.java | ||
---|---|---|
11 | 11 |
|
12 | 12 |
import org.eclipse.jface.viewers.ISelection; |
13 | 13 |
import org.eclipse.swt.SWT; |
14 |
import org.eclipse.swt.widgets.Composite; |
|
15 | 14 |
import org.eclipse.ui.forms.widgets.ExpandableComposite; |
16 | 15 |
|
17 | 16 |
import eu.etaxonomy.cdm.model.common.AnnotatableEntity; |
... | ... | |
19 | 18 |
import eu.etaxonomy.cdm.model.common.VersionableEntity; |
20 | 19 |
import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity; |
21 | 20 |
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; |
22 |
import eu.etaxonomy.taxeditor.model.IDirtyMarkable; |
|
23 | 21 |
import eu.etaxonomy.taxeditor.model.IElementHasDetails; |
24 | 22 |
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys; |
25 | 23 |
import eu.etaxonomy.taxeditor.preference.PreferencesUtil; |
... | ... | |
47 | 45 |
|
48 | 46 |
private boolean showDebug; |
49 | 47 |
|
50 |
public SupplementalDataViewerE4(Composite parent, IDirtyMarkable viewPart) { |
|
51 |
super(parent, viewPart); |
|
52 |
} |
|
53 |
|
|
54 | 48 |
/** {@inheritDoc} */ |
55 | 49 |
@Override |
56 | 50 |
public ISelection getSelection() { |
Also available in: Unified diff
ref #6925 Inject context into details and supplemental view