From 37b7945d7a02f53674a44886d92e1e8e39d8564d Mon Sep 17 00:00:00 2001 From: "n.hoffmann" Date: Tue, 3 Nov 2009 10:09:06 +0000 Subject: [PATCH] implementation and generalization of a form framework to be used in the tabbed properties view --- .gitattributes | 23 +- .../forms/AbstractEntitySetSection.java | 100 --------- .../forms/AbstractSelectionComposite.java | 94 -------- .../forms/AbstractTermComboComposite.java | 210 ------------------ .../taxeditor/forms/AnnotationComposite.java | 55 ----- .../taxeditor/forms/AnnotationSection.java | 110 --------- .../DescriptionElementSourceComposite.java | 57 ----- .../taxeditor/forms/EditorFormToolkit.java | 6 + .../forms/LanguageComboComposite.java | 39 ---- .../forms/NameSelectionComposite.java | 39 ---- .../forms/OriginalSourceSection.java | 102 --------- .../forms/ReferenceSelectionComposite.java | 39 ---- .../forms/TaxonSelectionComposite.java | 38 ---- .../forms/TextWithLabelComposite.java | 2 +- .../forms/entitysections/CreditComposite.java | 25 +++ .../forms/entitysections/CreditSection.java | 81 +++++++ .../entitysections/ExtensionComposite.java | 25 +++ .../entitysections/ExtensionSection.java | 82 +++++++ .../IdentifiableSourceComposite.java | 25 +++ .../forms/entitysections/MarkerComposite.java | 25 +++ .../forms/entitysections/MarkerSection.java | 79 +++++++ .../forms/entitysections/MediaComposite.java | 25 +++ .../forms/entitysections/MediaSection.java | 81 +++++++ .../forms/entitysections/RightsComposite.java | 25 +++ .../forms/entitysections/RightsSection.java | 81 +++++++ .../forms/entitysections/SourceSection.java | 81 +++++++ 26 files changed, 654 insertions(+), 895 deletions(-) delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractEntitySetSection.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractSelectionComposite.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractTermComboComposite.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationComposite.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationSection.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/DescriptionElementSourceComposite.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/LanguageComboComposite.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/NameSelectionComposite.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/OriginalSourceSection.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ReferenceSelectionComposite.java delete mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TaxonSelectionComposite.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditComposite.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditSection.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionComposite.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionSection.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/IdentifiableSourceComposite.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerComposite.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerSection.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaComposite.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaSection.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsComposite.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsSection.java create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/SourceSection.java diff --git a/.gitattributes b/.gitattributes index 1289fda7f..bcef0c100 100644 --- a/.gitattributes +++ b/.gitattributes @@ -831,30 +831,31 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSy taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/reference/IReferenceSearch.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/reference/ReferenceSelectComposite.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractEditorFormSection.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractEntitySetSection.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractFormComposite.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractSelectionComposite.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractTermComboComposite.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationComposite.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationSection.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/Container.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/DescriptionElementSourceComposite.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/EditorFormToolkit.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/IPropertyChangeEmitter.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ImageComposite.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/LanguageComboComposite.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/MultilineTextWithLabel.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/NameSelectionComposite.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/OriginalSourceSection.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ReferenceSelectionComposite.java -text -taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TaxonSelectionComposite.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextActionComposite.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextWithLabelComposite.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/AbstractEntitySetSection.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/AnnotationComposite.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/AnnotationSection.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditComposite.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditSection.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/DescriptionElementSourceComposite.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionComposite.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionSection.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/IdentifiableSourceComposite.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerComposite.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerSection.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaComposite.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaSection.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/OriginalSourceSection.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsComposite.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsSection.java -text +taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/SourceSection.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selectioncomposites/AbstractSelectionComposite.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selectioncomposites/NameSelectionComposite.java -text taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selectioncomposites/ReferenceSelectionComposite.java -text diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractEntitySetSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractEntitySetSection.java deleted file mode 100644 index daebf7369..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractEntitySetSection.java +++ /dev/null @@ -1,100 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.ToolBarManager; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; - -import eu.etaxonomy.cdm.model.common.VersionableEntity; - -/** - * @author nho - * - */ -public abstract class AbstractEntitySetSection extends AbstractEditorFormSection { - - protected T entity; - protected Composite container; - - /** - * @param parent - * @param style - */ - protected AbstractEntitySetSection(Composite parent, T entity, int style) { - super(parent, style); - this.entity = entity; - setTextClient(createToolbar()); - - } - - private Control createToolbar() { - ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT); -// IMenuService menuService = (IMenuService) EditorUtil.getService(IMenuService.class); -// menuService.populateContributionManager(toolBarManager, "toolbar:de.md.contributions.sectionToolbar"); - - - toolBarManager.add(getAddAction()); - - return toolBarManager.createControl(this); - } - - /** - * @return - */ - protected abstract IAction getAddAction(); - - private void createContainer(){ - if(container != null) - container.dispose(); - container = toolkit.createContainer(getClient(), SWT.NULL); - - container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - container.setLayout(new GridLayout()); - } - - /** - * Call this method after dynamically changing the client area. - * If the options changed is set to true, will also fire a state changed - * event to inform the user of unsaved changes. - * - * @param changed - */ - protected void internalUpdateSection(boolean changed){ - createContainer(); - createDynamicContents(); - this.reflow(); - if(changed) - firePropertyChangeEvent(null); - } - - /** - * - */ - protected abstract void createDynamicContents(); - - /** - * Sets this composites entity - * - * Call this method when the page gets loaded - * or otherwise updated from outside - * - * @param entity the entity to set - */ - public void setEntity(T entity) { - this.entity = entity; - internalUpdateSection(false); - } - - /** - * @return the entity - */ - public T getEntity() { - return entity; - } -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractSelectionComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractSelectionComposite.java deleted file mode 100644 index a92f907be..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractSelectionComposite.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; - -import eu.etaxonomy.cdm.model.common.IdentifiableEntity; - -/** - * @author nho - * - */ -public abstract class AbstractSelectionComposite extends AbstractFormComposite implements SelectionListener{ - - protected T selection; - - protected Label label; - protected Text text; - protected Button button; - - /** - * @param parent - * @param style - */ - public AbstractSelectionComposite(Composite parent, String labelString, T selection, int style) { - super(parent, style); - - this.selection = selection; - - this.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); - GridLayout layout = (GridLayout) this.getLayout(); - layout.numColumns = 2; - - label = toolkit.createLabel(this, labelString, SWT.WRAP); - GridData labelData = new GridData(); - labelData.horizontalSpan = 2; - label.setLayoutData(labelData); - - text = toolkit.createText(this, "", SWT.BORDER | SWT.WRAP); - text.setEditable(false); - text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); - - button = toolkit.createButton(this, "Browse", SWT.PUSH); - button.addSelectionListener(this); - - updateText(); - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) - */ - public void widgetDefaultSelected(SelectionEvent e) { - // do nothing - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - public void widgetSelected(SelectionEvent e) { - firePropertyChangeEvent(null); - } - - /** - * Return the selected object - * - * @return - */ - public T getSelection(){ - return selection; - } - - /** - * - * @param selection - */ - public void setSelection(T selection){ - this.selection = selection; - updateText(); - } - - protected void updateText(){ - if(selection != null) - text.setText(selection.getTitleCache()); - } -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractTermComboComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractTermComboComposite.java deleted file mode 100644 index 6c7d48f51..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractTermComboComposite.java +++ /dev/null @@ -1,210 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import org.apache.log4j.Logger; -import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Listener; -import org.eclipse.ui.forms.events.HyperlinkAdapter; -import org.eclipse.ui.forms.events.HyperlinkEvent; -import org.eclipse.ui.forms.widgets.Hyperlink; - -import eu.etaxonomy.cdm.model.common.DefinedTermBase; -import eu.etaxonomy.taxeditor.editor.EditorUtil; -import eu.etaxonomy.taxeditor.preference.LanguageMenuPreferences; -import eu.etaxonomy.taxeditor.preference.PreferencesUtil; - -/** - * @author nho - * - */ -public abstract class AbstractTermComboComposite extends AbstractFormComposite implements SelectionListener, IPropertyChangeListener{ - - private static final Logger logger = Logger.getLogger(AbstractTermComboComposite.class); - - T selection; - - private Label label; - private Combo combo; - - private ArrayList terms; - - private Comparator termComparator; - - private Composite msgComposite; - - /** - * @param parent - * @param style - */ - public AbstractTermComboComposite(Composite parent, String labelString, T selection, int visibleItems, int style) { - super(parent, style); - - label = toolkit.createLabel(this, labelString); - label.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); - - // create combo - combo = new Combo(this, SWT.BORDER | SWT.READ_ONLY); - combo.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); - combo.setVisibleItemCount(visibleItems); - - populateTerms(); - - combo.addSelectionListener(this); - PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this); - } - - public T getSelection(){ - return selection; - } - - public void setSelection(T selection){ - Listener[] listeners = combo.getListeners(SWT.Selection); - - for (Listener listener : listeners){ - combo.removeListener(SWT.Selection, listener); - } - - combo.select(terms.indexOf(selection)); - - for (Listener listener : listeners){ - combo.addListener(SWT.Selection, listener); - } - } - - private void populateTerms(){ - List preferredTerms = preferredTerms(); - - combo.removeAll(); - - terms = new ArrayList(); - - int i = 0; - int index = 0; - if(termComparator != null) - Collections.sort(preferredTerms, termComparator); - for (T term : preferredTerms) { - String description = term.getDescription(); - if (description == null) { - logger.warn("No description for " + term + " - not added to combo"); - continue; - } - combo.add(description); - terms.add(term); - - i++; - if (selection != null) { - if (selection.equals(term)) { - index = i; - } - } else { - // TODO isn't it better to put the last language at the top of the menu, not automatically select? -// if (lastLanguage != null && lastLanguage.equals(language)) { -// index = i; -// } - } - } - - // Check whether language is in menu - if (msgComposite != null) { - msgComposite.dispose(); - msgComposite = null; - } - if (selection != null && index == 0) { - createTermNotInPreferredTerms(selection); - } - - combo.select(index); - } - - /** - * @return - */ - protected abstract List preferredTerms(); - - private void createTermNotInPreferredTerms(T term) { - - msgComposite = toolkit.createComposite(this); - GridLayout layout = new GridLayout(); - layout.numColumns = 2; - msgComposite.setLayout(layout); - msgComposite.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL - | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL - | GridData.VERTICAL_ALIGN_CENTER)); - - String langText = term.getDescription() == null ? term.getLabel() : term.getDescription(); - langText += " is not one of your preferred " + term.getClass().getSimpleName().toLowerCase() + "s. "; - Label label = toolkit.createLabel(msgComposite, langText, SWT.WRAP); - label.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL - | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL - | GridData.VERTICAL_ALIGN_CENTER)); - - Hyperlink linkEdit = toolkit.createHyperlink(msgComposite, "Edit preferences", SWT.WRAP); - linkEdit.addHyperlinkListener(new HyperlinkAdapter() { - /* (non-Javadoc) - * @see org.eclipse.ui.forms.events.HyperlinkAdapter#linkActivated(org.eclipse.ui.forms.events.HyperlinkEvent) - */ - @Override - public void linkActivated(HyperlinkEvent e) { - org.eclipse.ui.dialogs.PreferencesUtil.createPreferenceDialogOn(EditorUtil.getShell(), - LanguageMenuPreferences.ID, null, null).open(); - } - }); - - msgComposite.moveBelow(combo); - - pack(true); - layout(); - } - - public void addSelectionListener(SelectionListener listener){ - combo.addSelectionListener(listener); - } - - public void removeSelectionListener(SelectionListener listener){ - combo.removeSelectionListener(listener); - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - public void widgetSelected(SelectionEvent e) { - selection = terms.get(combo.getSelectionIndex()); - } - - /* (non-Javadoc) - * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent) - */ - public void propertyChange(PropertyChangeEvent event) { - if (PreferencesUtil.PREFERRED_TERMS_CHANGE.equals(event.getProperty())) { - populateTerms(); - } - } - - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#dispose() - */ - @Override - public void dispose() { - super.dispose(); - PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this); - } - - // not used - public void widgetDefaultSelected(SelectionEvent e) {} -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationComposite.java deleted file mode 100644 index cd69508c5..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationComposite.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.widgets.Composite; - -import eu.etaxonomy.cdm.model.common.Annotation; - -/** - * @author nho - * - */ -public class AnnotationComposite extends MultilineTextWithLabel implements ModifyListener{ - - private Annotation annotation; - - /** - * - * @param parent - * @param annotation - * @param style - */ - protected AnnotationComposite(Composite parent, Annotation annotation, int style) { - super(parent, "Annotation", null, 100, style); - - this.setAnnotation(annotation); - - text.addModifyListener(this); - } - - /** - * @param annotation the annotation to set - */ - public void setAnnotation(Annotation annotation) { - this.annotation = annotation; - setText(annotation.getText()); - } - - /** - * @return the annotation - */ - public Annotation getAnnotation() { - return annotation; - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) - */ - public void modifyText(ModifyEvent e) { - annotation.setText(getText()); - } -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationSection.java deleted file mode 100644 index 73a4165ea..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationSection.java +++ /dev/null @@ -1,110 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import java.util.Set; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IAction; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.forms.widgets.Section; - -import eu.etaxonomy.cdm.model.common.AnnotatableEntity; -import eu.etaxonomy.cdm.model.common.Annotation; -import eu.etaxonomy.cdm.model.common.AnnotationType; -import eu.etaxonomy.cdm.model.common.Language; -import eu.etaxonomy.taxeditor.store.CdmStore; - -/** - * @author n.hoffmann - * - */ -public class AnnotationSection extends AbstractEntitySetSection { - - /** - * @param parent - * @param style - */ - protected AnnotationSection(Composite parent, AnnotatableEntity annotatableEntity, int style) { - super(parent, annotatableEntity, Section.TWISTIE | Section.COMPACT | style); - - setText("Annotations"); - } - - - /* - * (non-Javadoc) - * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents() - */ - @Override - public void createDynamicContents() { - - Set annotations = null; - if(getEntity() != null){ - annotations = getEntity().getAnnotations(); - } - - if(annotations == null || annotations.size() == 0){ - toolkit.createLabel(container, "No annotations yet."); - }else{ - for(Annotation annotation : annotations){ - - toolkit.createAnnotationComposite(container, annotation, SWT.NULL); - - Button button_remove = toolkit.createButton(container, "Remove", SWT.PUSH); - button_remove.addSelectionListener(new RemoveListener(annotation)); - } - } - } - - private class RemoveListener extends SelectionAdapter{ - private Annotation annotation; - - public RemoveListener(Annotation annotation){ - this.annotation = annotation; - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - @Override - public void widgetSelected(SelectionEvent e) { - getEntity().removeAnnotation(annotation); - internalUpdateSection(true); - } - } - - - - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction() - */ - @Override - protected IAction getAddAction() { - Action addAnnotation = new Action("add", Action.AS_PUSH_BUTTON){ - /* (non-Javadoc) - * @see org.eclipse.jface.action.Action#run() - */ - @Override - public void run() { - String text = ""; - AnnotationType type = AnnotationType.EDITORIAL(); - Language language = CdmStore.getDefaultLanguage(); - - Annotation annotation = Annotation.NewInstance(text, type, language); - getEntity().addAnnotation(annotation); - internalUpdateSection(true); - if(! getSection().isExpanded()) - getSection().setExpanded(true); - internalUpdateSection(true); - } - }; - addAnnotation.setToolTipText("Create a new annotation"); - return addAnnotation; - } -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/DescriptionElementSourceComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/DescriptionElementSourceComposite.java deleted file mode 100644 index 96b7048f7..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/DescriptionElementSourceComposite.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.widgets.Composite; - -import eu.etaxonomy.cdm.model.common.DescriptionElementSource; - -/** - * @author nho - */ -public class DescriptionElementSourceComposite extends AbstractFormComposite implements IPropertyChangeListener{ - - private DescriptionElementSource source; - - private ReferenceSelectionComposite citationSelection; - private TextWithLabelComposite microCitation; - private NameSelectionComposite nameSelection; - - protected DescriptionElementSourceComposite(Composite parent, DescriptionElementSource source, int style){ - super(parent, style); - this.source = source; - - citationSelection = new ReferenceSelectionComposite(this, "Citation", source.getCitation(), SWT.NULL); - citationSelection.addPropertyChangeListener(this); - - microCitation = new TextWithLabelComposite(this, "Citation Detail", source.getCitationMicroReference(), SWT.NULL); - microCitation.addPropertyChangeListener(this); - - nameSelection = new NameSelectionComposite(this, "Name in Source", source.getNameUsedInSource(), SWT.NULL); - nameSelection.addPropertyChangeListener(this); - } - - - /** - * @return the source - */ - public DescriptionElementSource getSource() { - return source; - } - - /* (non-Javadoc) - * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) - */ - public void propertyChange(PropertyChangeEvent event) { - source.setCitation(citationSelection.getSelection()); - source.setCitationMicroReference(microCitation.getText()); - source.setNameUsedInSource(nameSelection.getSelection()); - firePropertyChangeEvent(event); - } -} \ No newline at end of file diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/EditorFormToolkit.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/EditorFormToolkit.java index ca86e91a3..1ef3c41c6 100644 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/EditorFormToolkit.java +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/EditorFormToolkit.java @@ -20,6 +20,12 @@ import eu.etaxonomy.cdm.model.common.DescriptionElementSource; import eu.etaxonomy.cdm.model.common.Language; import eu.etaxonomy.cdm.model.description.DescriptionElementBase; import eu.etaxonomy.cdm.model.taxon.TaxonBase; +import eu.etaxonomy.taxeditor.forms.entitysections.AnnotationComposite; +import eu.etaxonomy.taxeditor.forms.entitysections.AnnotationSection; +import eu.etaxonomy.taxeditor.forms.entitysections.DescriptionElementSourceComposite; +import eu.etaxonomy.taxeditor.forms.entitysections.OriginalSourceSection; +import eu.etaxonomy.taxeditor.forms.selectioncomposites.TaxonSelectionComposite; +import eu.etaxonomy.taxeditor.forms.termcombos.LanguageComboComposite; /** * @author nho diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/LanguageComboComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/LanguageComboComposite.java deleted file mode 100644 index 97794db72..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/LanguageComboComposite.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import java.util.List; - -import org.eclipse.swt.widgets.Composite; - -import eu.etaxonomy.cdm.model.common.Language; -import eu.etaxonomy.taxeditor.preference.PreferencesUtil; - -/** - * @author nho - * - */ -public class LanguageComboComposite extends AbstractTermComboComposite { - - private static final int VISIBLE_ITEMS = 20; - - /** - * - * @param parent - * @param labelString - * @param selection - * @param style - */ - protected LanguageComboComposite(Composite parent, String labelString, Language selection, int style) { - super(parent, labelString, selection, VISIBLE_ITEMS, style); - } - - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.forms.AbstractTermComboComposite#preferredTerms() - */ - @Override - protected List preferredTerms() { - return PreferencesUtil.getPreferredLanguages(); - } -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/NameSelectionComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/NameSelectionComposite.java deleted file mode 100644 index ea99a98f0..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/NameSelectionComposite.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.widgets.Composite; - -import eu.etaxonomy.cdm.model.name.TaxonNameBase; -import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredNameSelectionDialog; - -/** - * @author nho - * - */ -public class NameSelectionComposite extends AbstractSelectionComposite { - - /** - * @param parent - * @param labelString - * @param selection - * @param style - */ - public NameSelectionComposite(Composite parent, String labelString, - TaxonNameBase selection, int style) { - super(parent, labelString, selection, style); - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - @Override - public void widgetSelected(SelectionEvent e) { - super.widgetSelected(e); - selection = FilteredNameSelectionDialog.selectName(getShell(), selection); - updateText(); - } - -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/OriginalSourceSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/OriginalSourceSection.java deleted file mode 100644 index 90a381e3e..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/OriginalSourceSection.java +++ /dev/null @@ -1,102 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import java.util.Set; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.forms.widgets.Section; - -import eu.etaxonomy.cdm.model.common.DescriptionElementSource; -import eu.etaxonomy.cdm.model.description.DescriptionElementBase; - -/** - * @author n.hoffmann - * - */ -public class OriginalSourceSection extends AbstractEntitySetSection implements IPropertyChangeListener{ - - - public OriginalSourceSection(Composite parent, DescriptionElementBase entity, int style){ - super(parent, entity, Section.TWISTIE | Section.COMPACT | style); - - setText("Citations"); - } - - /* - * - */ - public void createDynamicContents() { - - Set sources = null; - if(getEntity() != null){ - sources = getEntity().getSources(); - } - - if(sources == null || sources.size() == 0){ - toolkit.createLabel(container, "No citations yet."); - }else{ - for(DescriptionElementSource source : sources){ - DescriptionElementSourceComposite descriptionElementSourceComposite = toolkit.createDescriptionElementSourceComposite(container, source, SWT.NULL); - descriptionElementSourceComposite.addPropertyChangeListener(this); - - Button button_remove = toolkit.createButton(container, "Remove", SWT.PUSH); - button_remove.addSelectionListener(new RemoveListener(source)); - } - } - } - - private class RemoveListener extends SelectionAdapter{ - private DescriptionElementSource source; - - public RemoveListener(DescriptionElementSource source){ - this.source = source; - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - @Override - public void widgetSelected(SelectionEvent e) { - getEntity().removeSource(source); - internalUpdateSection(true); - } - } - - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction() - */ - @Override - protected IAction getAddAction() { - Action addCitation = new Action("add", Action.AS_PUSH_BUTTON){ - /* (non-Javadoc) - * @see org.eclipse.jface.action.Action#run() - */ - @Override - public void run() { - getEntity().addSource(DescriptionElementSource.NewInstance()); - if(! getSection().isExpanded()) - getSection().setExpanded(true); - internalUpdateSection(true); - } - }; - addCitation.setToolTipText("Create a new citation"); - return addCitation; - } - - /* (non-Javadoc) - * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) - */ - public void propertyChange(PropertyChangeEvent event) { - firePropertyChangeEvent(event); - } -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ReferenceSelectionComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ReferenceSelectionComposite.java deleted file mode 100644 index 4b0639e7c..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ReferenceSelectionComposite.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.widgets.Composite; - -import eu.etaxonomy.cdm.model.reference.ReferenceBase; -import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredReferenceSelectionDialog; - -/** - * @author nho - * - */ -public class ReferenceSelectionComposite extends AbstractSelectionComposite{ - - /** - * @param parent - * @param labelString - * @param selection - * @param style - */ - public ReferenceSelectionComposite(Composite parent, String labelString, - ReferenceBase selection, int style) { - super(parent, labelString, selection, style); - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - @Override - public void widgetSelected(SelectionEvent e) { - super.widgetSelected(e); - selection = FilteredReferenceSelectionDialog.selectReference(getShell(), selection); - - updateText(); - } -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TaxonSelectionComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TaxonSelectionComposite.java deleted file mode 100644 index 019de4ff8..000000000 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TaxonSelectionComposite.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * - */ -package eu.etaxonomy.taxeditor.forms; - -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.widgets.Composite; - -import eu.etaxonomy.cdm.model.taxon.TaxonBase; -import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredTaxonSelectionDialog; - -/** - * @author nho - * - */ -public class TaxonSelectionComposite extends AbstractSelectionComposite { - - /** - * @param parent - * @param labelString - * @param selection - * @param style - */ - public TaxonSelectionComposite(Composite parent, String labelString, - TaxonBase selection, int style) { - super(parent, labelString, selection, style); } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - @Override - public void widgetSelected(SelectionEvent e) { - super.widgetSelected(e); - selection = FilteredTaxonSelectionDialog.selectTaxon(getShell()); - updateText(); - } - -} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextWithLabelComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextWithLabelComposite.java index b0e3d461f..78a560dd9 100644 --- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextWithLabelComposite.java +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextWithLabelComposite.java @@ -24,7 +24,7 @@ public class TextWithLabelComposite extends AbstractFormComposite implements Mod * @param parent * @param style */ - protected TextWithLabelComposite(Composite parent, String labelString, String initialText, int style) { + public TextWithLabelComposite(Composite parent, String labelString, String initialText, int style) { super(parent, style); this.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditComposite.java new file mode 100644 index 000000000..04936702c --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditComposite.java @@ -0,0 +1,25 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.taxeditor.forms.AbstractFormComposite; + +/** + * @author nho + * + */ +public class CreditComposite extends AbstractFormComposite { + + /** + * @param parent + * @param style + */ + public CreditComposite(Composite parent, int style) { + super(parent, style); + // TODO Auto-generated constructor stub + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditSection.java new file mode 100644 index 000000000..94a218416 --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditSection.java @@ -0,0 +1,81 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.cdm.model.common.Credit; +import eu.etaxonomy.cdm.model.common.IdentifiableEntity; + +/** + * @author nho + * + */ +public class CreditSection extends AbstractEntitySetSection { + + /** + * @param parent + * @param entity + * @param style + */ + protected CreditSection(Composite parent, IdentifiableEntity entity, + int style) { + super(parent, entity, style); + setText("Credits"); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents() + */ + @Override + protected void createDynamicContents() { + // TODO Auto-generated method stub + + } + + private class RemoveListener extends SelectionAdapter{ + private Credit credit; + + public RemoveListener(Credit credit){ + this.credit = credit; + } + + /* (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { + getEntity().removeCredit(credit); + internalUpdateSection(true); + } + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction() + */ + @Override + protected IAction getAddAction() { + Action addCredit = new Action("add", Action.AS_PUSH_BUTTON){ + /* (non-Javadoc) + * @see org.eclipse.jface.action.Action#run() + */ + @Override + public void run() { + Credit credit = Credit.NewInstance(null, null); + getEntity().addCredit(credit); + internalUpdateSection(true); + if(! getSection().isExpanded()) + getSection().setExpanded(true); + internalUpdateSection(true); + } + }; + addCredit.setToolTipText("Create a new credit entry"); + return addCredit; + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionComposite.java new file mode 100644 index 000000000..eb6833b2f --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionComposite.java @@ -0,0 +1,25 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.taxeditor.forms.AbstractFormComposite; + +/** + * @author nho + * + */ +public class ExtensionComposite extends AbstractFormComposite { + + /** + * @param parent + * @param style + */ + public ExtensionComposite(Composite parent, int style) { + super(parent, style); + // TODO Auto-generated constructor stub + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionSection.java new file mode 100644 index 000000000..705fd1292 --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionSection.java @@ -0,0 +1,82 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.cdm.model.common.Extension; +import eu.etaxonomy.cdm.model.common.IdentifiableEntity; +import eu.etaxonomy.cdm.model.common.Marker; + +/** + * @author nho + * + */ +public class ExtensionSection extends AbstractEntitySetSection { + + /** + * @param parent + * @param entity + * @param style + */ + protected ExtensionSection(Composite parent, IdentifiableEntity entity, + int style) { + super(parent, entity, style); + setText("Extensions"); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents() + */ + @Override + protected void createDynamicContents() { + // TODO Auto-generated method stub + + } + + private class RemoveListener extends SelectionAdapter{ + private Extension extension; + + public RemoveListener(Extension extension){ + this.extension = extension; + } + + /* (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { + getEntity().removeExtension(extension); + internalUpdateSection(true); + } + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction() + */ + @Override + protected IAction getAddAction() { + Action addExtension = new Action("add", Action.AS_PUSH_BUTTON){ + /* (non-Javadoc) + * @see org.eclipse.jface.action.Action#run() + */ + @Override + public void run() { + Extension extension = Extension.NewInstance(); + getEntity().addExtension(extension); + internalUpdateSection(true); + if(! getSection().isExpanded()) + getSection().setExpanded(true); + internalUpdateSection(true); + } + }; + addExtension.setToolTipText("Create a new extension"); + return addExtension; + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/IdentifiableSourceComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/IdentifiableSourceComposite.java new file mode 100644 index 000000000..4810727b9 --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/IdentifiableSourceComposite.java @@ -0,0 +1,25 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.taxeditor.forms.AbstractFormComposite; + +/** + * @author nho + * + */ +public class IdentifiableSourceComposite extends AbstractFormComposite { + + /** + * @param parent + * @param style + */ + public IdentifiableSourceComposite(Composite parent, int style) { + super(parent, style); + // TODO Auto-generated constructor stub + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerComposite.java new file mode 100644 index 000000000..15dcf860a --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerComposite.java @@ -0,0 +1,25 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.taxeditor.forms.AbstractFormComposite; + +/** + * @author nho + * + */ +public class MarkerComposite extends AbstractFormComposite { + + /** + * @param parent + * @param style + */ + public MarkerComposite(Composite parent, int style) { + super(parent, style); + // TODO Auto-generated constructor stub + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerSection.java new file mode 100644 index 000000000..d25bec147 --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerSection.java @@ -0,0 +1,79 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.cdm.model.common.AnnotatableEntity; +import eu.etaxonomy.cdm.model.common.Marker; + +/** + * @author nho + * + */ +public class MarkerSection extends AbstractEntitySetSection { + + /** + * @param parent + * @param entity + * @param style + */ + protected MarkerSection(Composite parent, AnnotatableEntity entity, int style) { + super(parent, entity, style); + setText("Marker"); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents() + */ + @Override + protected void createDynamicContents() { + // TODO + } + + private class RemoveListener extends SelectionAdapter{ + private Marker marker; + + public RemoveListener(Marker marker){ + this.marker = marker; + } + + /* (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { + getEntity().removeMarker(marker); + internalUpdateSection(true); + } + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction() + */ + @Override + protected IAction getAddAction() { + Action addMarker = new Action("add", Action.AS_PUSH_BUTTON){ + /* (non-Javadoc) + * @see org.eclipse.jface.action.Action#run() + */ + @Override + public void run() { + Marker marker = Marker.NewInstance(); + getEntity().addMarker(marker); + internalUpdateSection(true); + if(! getSection().isExpanded()) + getSection().setExpanded(true); + internalUpdateSection(true); + } + }; + addMarker.setToolTipText("Create a new marker"); + return addMarker; + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaComposite.java new file mode 100644 index 000000000..3b202f821 --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaComposite.java @@ -0,0 +1,25 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.taxeditor.forms.AbstractFormComposite; + +/** + * @author nho + * + */ +public class MediaComposite extends AbstractFormComposite { + + /** + * @param parent + * @param style + */ + public MediaComposite(Composite parent, int style) { + super(parent, style); + // TODO Auto-generated constructor stub + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaSection.java new file mode 100644 index 000000000..731b61ad9 --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaSection.java @@ -0,0 +1,81 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity; +import eu.etaxonomy.cdm.model.media.Media; + +/** + * @author nho + * + */ +public class MediaSection extends AbstractEntitySetSection{ + + /** + * @param parent + * @param entity + * @param style + */ + protected MediaSection(Composite parent, IdentifiableMediaEntity entity, + int style) { + super(parent, entity, style); + setText("Media"); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents() + */ + @Override + protected void createDynamicContents() { + // TODO Auto-generated method stub + + } + + private class RemoveListener extends SelectionAdapter{ + private Media media; + + public RemoveListener(Media media){ + this.media = media; + } + + /* (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { + getEntity().removeMedia(media); + internalUpdateSection(true); + } + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction() + */ + @Override + protected IAction getAddAction() { + Action addMedia = new Action("add", Action.AS_PUSH_BUTTON){ + /* (non-Javadoc) + * @see org.eclipse.jface.action.Action#run() + */ + @Override + public void run() { + Media media = Media.NewInstance(); + getEntity().addMedia(media); + internalUpdateSection(true); + if(! getSection().isExpanded()) + getSection().setExpanded(true); + internalUpdateSection(true); + } + }; + addMedia.setToolTipText("Create a new marker"); + return addMedia; + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsComposite.java new file mode 100644 index 000000000..5265786bc --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsComposite.java @@ -0,0 +1,25 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.taxeditor.forms.AbstractFormComposite; + +/** + * @author nho + * + */ +public class RightsComposite extends AbstractFormComposite { + + /** + * @param parent + * @param style + */ + public RightsComposite(Composite parent, int style) { + super(parent, style); + // TODO Auto-generated constructor stub + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsSection.java new file mode 100644 index 000000000..621d28b8c --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsSection.java @@ -0,0 +1,81 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.cdm.model.common.IdentifiableEntity; +import eu.etaxonomy.cdm.model.media.Rights; + +/** + * @author nho + * + */ +public class RightsSection extends AbstractEntitySetSection { + + /** + * @param parent + * @param entity + * @param style + */ + protected RightsSection(Composite parent, IdentifiableEntity entity, + int style) { + super(parent, entity, style); + setText("Rights"); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents() + */ + @Override + protected void createDynamicContents() { + // TODO Auto-generated method stub + + } + + private class RemoveListener extends SelectionAdapter{ + private Rights rights; + + public RemoveListener(Rights rights){ + this.rights = rights; + } + + /* (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { + getEntity().removeRights(rights); + internalUpdateSection(true); + } + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction() + */ + @Override + protected IAction getAddAction() { + Action addRights = new Action("add", Action.AS_PUSH_BUTTON){ + /* (non-Javadoc) + * @see org.eclipse.jface.action.Action#run() + */ + @Override + public void run() { + Rights rights = Rights.NewInstance(); + getEntity().addRights(rights); + internalUpdateSection(true); + if(! getSection().isExpanded()) + getSection().setExpanded(true); + internalUpdateSection(true); + } + }; + addRights.setToolTipText("Create a new marker"); + return addRights; + } + +} diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/SourceSection.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/SourceSection.java new file mode 100644 index 000000000..c3c1ba549 --- /dev/null +++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/SourceSection.java @@ -0,0 +1,81 @@ +/** + * + */ +package eu.etaxonomy.taxeditor.forms.entitysections; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.widgets.Composite; + +import eu.etaxonomy.cdm.model.common.IdentifiableEntity; +import eu.etaxonomy.cdm.model.common.IdentifiableSource; + +/** + * @author nho + * + */ +public class SourceSection extends AbstractEntitySetSection { + + /** + * @param parent + * @param entity + * @param style + */ + protected SourceSection(Composite parent, IdentifiableEntity entity, + int style) { + super(parent, entity, style); + setText("Sources"); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents() + */ + @Override + protected void createDynamicContents() { + // TODO Auto-generated method stub + + } + + private class RemoveListener extends SelectionAdapter{ + private IdentifiableSource source; + + public RemoveListener(IdentifiableSource source){ + this.source = source; + } + + /* (non-Javadoc) + * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) + */ + @Override + public void widgetSelected(SelectionEvent e) { + getEntity().removeSource(source); + internalUpdateSection(true); + } + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#getAddAction() + */ + @Override + protected IAction getAddAction() { + Action addSource = new Action("add", Action.AS_PUSH_BUTTON){ + /* (non-Javadoc) + * @see org.eclipse.jface.action.Action#run() + */ + @Override + public void run() { + IdentifiableSource source = IdentifiableSource.NewInstance(); + getEntity().addSource(source); + internalUpdateSection(true); + if(! getSection().isExpanded()) + getSection().setExpanded(true); + internalUpdateSection(true); + } + }; + addSource.setToolTipText("Create a new marker"); + return addSource; + } + +} -- 2.34.1