implementation and generalization of a form framework to be used in the tabbed proper...
authorn.hoffmann <n.hoffmann@localhost>
Tue, 3 Nov 2009 10:09:06 +0000 (10:09 +0000)
committern.hoffmann <n.hoffmann@localhost>
Tue, 3 Nov 2009 10:09:06 +0000 (10:09 +0000)
26 files changed:
.gitattributes
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractEntitySetSection.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractSelectionComposite.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractTermComboComposite.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationComposite.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AnnotationSection.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/DescriptionElementSourceComposite.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/EditorFormToolkit.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/LanguageComboComposite.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/NameSelectionComposite.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/OriginalSourceSection.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ReferenceSelectionComposite.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TaxonSelectionComposite.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextWithLabelComposite.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditComposite.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditSection.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionComposite.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionSection.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/IdentifiableSourceComposite.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerComposite.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerSection.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaComposite.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaSection.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsComposite.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsSection.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/SourceSection.java [new file with mode: 0644]

index 1289fda7f082378281bee5f09c22ecf4f15fa853..bcef0c100b1d55d8dcafebb92b7d6823c5be64a0 100644 (file)
@@ -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 (file)
index daebf73..0000000
+++ /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<T extends VersionableEntity> 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 (file)
index a92f907..0000000
+++ /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<T extends IdentifiableEntity> 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 (file)
index 6c7d48f..0000000
+++ /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<T extends DefinedTermBase> extends AbstractFormComposite implements SelectionListener, IPropertyChangeListener{
-
-       private static final Logger logger = Logger.getLogger(AbstractTermComboComposite.class);
-       
-       T selection;
-       
-       private Label label;
-       private Combo combo;
-
-       private ArrayList<T> terms;
-
-       private Comparator<T> 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<T> preferredTerms = preferredTerms();
-               
-               combo.removeAll();
-               
-               terms = new ArrayList<T>();
-               
-               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<T> 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 (file)
index cd69508..0000000
+++ /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 (file)
index 73a4165..0000000
+++ /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<AnnotatableEntity> {
-
-       /**
-        * @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<Annotation> 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 (file)
index 96b7048..0000000
+++ /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
index ca86e91a324374fdf672d9bb2bc3ef6b6a6d7abc..1ef3c41c6a141e2941bedf04e2d70275bef08c96 100644 (file)
@@ -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 (file)
index 97794db..0000000
+++ /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<Language> {
-
-       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<Language> 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 (file)
index ea99a98..0000000
+++ /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<TaxonNameBase> {
-
-       /**
-        * @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 (file)
index 90a381e..0000000
+++ /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<DescriptionElementBase> implements IPropertyChangeListener{
-
-
-       public OriginalSourceSection(Composite parent, DescriptionElementBase entity, int style){
-               super(parent, entity, Section.TWISTIE | Section.COMPACT | style);
-               
-               setText("Citations");
-       }
-
-       /*
-        * 
-        */
-       public void createDynamicContents() {
-               
-               Set<DescriptionElementSource> 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 (file)
index 4b0639e..0000000
+++ /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<ReferenceBase>{
-
-       /**
-        * @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 (file)
index 019de4f..0000000
+++ /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<TaxonBase> {
-
-       /**
-        * @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();
-       }
-
-}
index b0e3d461f5357ba3d623c5e0bc91f902315e3d3c..78a560dd915a53453a7e8a7558f84b5f2ae14670 100644 (file)
@@ -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 (file)
index 0000000..0493670
--- /dev/null
@@ -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 (file)
index 0000000..94a2184
--- /dev/null
@@ -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<IdentifiableEntity> {
+
+       /**
+        * @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 (file)
index 0000000..eb6833b
--- /dev/null
@@ -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 (file)
index 0000000..705fd12
--- /dev/null
@@ -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<IdentifiableEntity> {
+
+       /**
+        * @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 (file)
index 0000000..4810727
--- /dev/null
@@ -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 (file)
index 0000000..15dcf86
--- /dev/null
@@ -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 (file)
index 0000000..d25bec1
--- /dev/null
@@ -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<AnnotatableEntity> {
+
+       /**
+        * @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 (file)
index 0000000..3b202f8
--- /dev/null
@@ -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 (file)
index 0000000..731b61a
--- /dev/null
@@ -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<IdentifiableMediaEntity>{
+
+       /**
+        * @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 (file)
index 0000000..5265786
--- /dev/null
@@ -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 (file)
index 0000000..621d28b
--- /dev/null
@@ -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<IdentifiableEntity> {
+
+       /**
+        * @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 (file)
index 0000000..c3c1ba5
--- /dev/null
@@ -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<IdentifiableEntity> {
+
+       /**
+        * @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;
+       }
+
+}