fixes #1235 and #1228
authorn.hoffmann <n.hoffmann@localhost>
Tue, 27 Oct 2009 13:00:40 +0000 (13:00 +0000)
committern.hoffmann <n.hoffmann@localhost>
Tue, 27 Oct 2009 13:00:40 +0000 (13:00 +0000)
.gitattributes
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/AbstractDescriptionDetailsPage.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/CitationComposite.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/CommonNameDetailsPage.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DescriptionLabelProvider.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DescriptionMasterDetailsBlock.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DistributionDetailsPage.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DistributionMapDetailsPage.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/ImageDetailsPage.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/LabelDetailsPage.java [deleted file]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/TextDataDetailsPage.java [deleted file]

index 7cedef4881e39ab9467e7e83d4f65c16a146c84d..52fc9c82b34f1f128d6375de463bcf76d2591c94 100644 (file)
@@ -745,22 +745,14 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.ja
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInputFactory.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/ViewerConfiguration.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/WidgetTransfer.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/AbstractDescriptionDetailsPage.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/CitationComposite.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/CommonNameDetailsPage.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DescriptionContentProvider.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DescriptionLabelProvider.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DescriptionMasterDetailsBlock.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DescriptiveInformationProvider.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DistributionDetailsPage.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DistributionMapDetailsPage.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DynamicFeatureMenu.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/IDescriptiveInformationProvider.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/ImageDetailsPage.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/LabelDetailsPage.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/TaxonDescriptionFeature.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/TaxonDescriptionTreeEditor.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/TextDataDetailsPage.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/detailpage/AbstractDescriptionDetailSection.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/detailpage/AbstractDescriptionDetailsPage.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/detailpage/AnnotationSection.java -text
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/AbstractDescriptionDetailsPage.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/AbstractDescriptionDetailsPage.java
deleted file mode 100644 (file)
index 23a531b..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptiontree;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.util.IPropertyChangeListener;\r
-import org.eclipse.jface.util.PropertyChangeEvent;\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.jface.viewers.IStructuredSelection;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.ui.forms.IDetailsPage;\r
-import org.eclipse.ui.forms.IFormPart;\r
-import org.eclipse.ui.forms.IManagedForm;\r
-import org.eclipse.ui.forms.widgets.FormToolkit;\r
-import org.eclipse.ui.forms.widgets.Section;\r
-import org.eclipse.ui.forms.widgets.SharedScrolledComposite;\r
-\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.taxeditor.model.Resources;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-abstract public class AbstractDescriptionDetailsPage implements IDetailsPage, IPropertyChangeListener {        \r
-       private static final Logger logger = Logger.getLogger(AbstractDescriptionDetailsPage.class);\r
-\r
-       private static final String NO_CITATION_MSG = "No citation specified.";\r
-\r
-       private static final int DEFAULT_WIDTH = 300;\r
-\r
-       protected IManagedForm managedForm;\r
-       protected Object input;\r
-       protected Section section;\r
-       protected Composite client;\r
-       protected FormToolkit toolkit;\r
-       private boolean hasCitationControls = false;\r
-               \r
-       private CitationComposite citationComposite;\r
-\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IDetailsPage#createContents(org.eclipse.swt.widgets.Composite)\r
-        */\r
-       public void createContents(Composite parent) {\r
-\r
-               toolkit = managedForm.getToolkit();\r
-               \r
-               parent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
-               parent.setLayout(new GridLayout());\r
-               \r
-               section = toolkit.createSection(parent, Section.TITLE_BAR);\r
-               section.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
-               \r
-               client = toolkit.createComposite(section, SWT.WRAP);\r
-               client.setLayout(new GridLayout());\r
-\r
-               section.setClient(client);\r
-               \r
-//             section.setBackground(Resources.getColor(Resources.PROP_SHEET_RED));\r
-//             client.setBackground(Resources.getColor(Resources.SEARCH_VIEW_FOREGROUND));\r
-\r
-               PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);\r
-       }\r
-       \r
-       /**\r
-        * Reflows the shared scrolled composite of this description details page. Has to be called \r
-        * every time controls are added or removed from a composite in this page to ensure correct display\r
-        * of the controls.\r
-        * \r
-        * @param changed if <code>true</code>, drop the cached data\r
-        */\r
-       public void reflow(boolean changed){\r
-               ((SharedScrolledComposite) section.getParent().getParent().getParent()).reflow(changed);\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)\r
-        */\r
-       public void propertyChange(PropertyChangeEvent event) {\r
-               if (PreferencesUtil.PREFERRED_TERMS_CHANGE.equals(event.getProperty())) {\r
-                       handleChangedPrefs(event);\r
-               }\r
-       }\r
-       \r
-       /**\r
-        * Sample usage:\r
-        * <pre>        \r
-        * if (LanguageMenuPreferences.class.equals(event.getNewValue())) {\r
-        *     populateLanguages();\r
-        * }\r
-        * </pre>\r
-        * \r
-        * @param event\r
-        */\r
-       protected void handleChangedPrefs(PropertyChangeEvent event) {\r
-               // do nothing\r
-       }\r
-       \r
-       protected void createCitationControls(Composite parent) {\r
-               hasCitationControls  = true;\r
-               citationComposite = new CitationComposite(client, this, SWT.NULL);              \r
-               citationComposite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));\r
-       }       \r
-\r
-       /**\r
-        * Alerts editor that dirty state has changed.\r
-        */\r
-       protected void fireStateChanged() {\r
-               managedForm.dirtyStateChanged();\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IFormPart#commit(boolean)\r
-        */\r
-       public void commit(boolean onSave) {\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IFormPart#dispose()\r
-        */\r
-       public void dispose() {\r
-               PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this);\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IFormPart#initialize(org.eclipse.ui.forms.IManagedForm)\r
-        */\r
-       public void initialize(IManagedForm form) {\r
-               this.managedForm = form;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IFormPart#isDirty()\r
-        */\r
-       public boolean isDirty() {\r
-               return false;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IFormPart#isStale()\r
-        */\r
-       public boolean isStale() {\r
-               return false;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IFormPart#refresh()\r
-        */\r
-       public void refresh() {\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IFormPart#setFocus()\r
-        */\r
-       public void setFocus() {\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IFormPart#setFormInput(java.lang.Object)\r
-        */\r
-       public boolean setFormInput(Object input) {\r
-               // TODO Auto-generated method stub\r
-               return false;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.IPartSelectionListener#selectionChanged(org.eclipse.ui.forms.IFormPart, org.eclipse.jface.viewers.ISelection)\r
-        */\r
-       public void selectionChanged(IFormPart part, ISelection selection) {    \r
-               IStructuredSelection ssel = (IStructuredSelection)selection;\r
-               if (ssel.size()==1) {\r
-                       input = ssel.getFirstElement();\r
-               } else {\r
-                       input = null;\r
-               }\r
-               \r
-               \r
-               \r
-               if (hasCitationControls && input instanceof DescriptionElementBase) {\r
-                       citationComposite.createContents((DescriptionElementBase) input);\r
-               }\r
-       }\r
-\r
-\r
-       protected Label createLabel(String string, Composite composite, Composite parent) {\r
-               Label label = new Label(composite, SWT.WRAP);\r
-        label.setText(string);\r
-        GridData data = new GridData(GridData.GRAB_HORIZONTAL\r
-                | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL\r
-                | GridData.VERTICAL_ALIGN_CENTER);\r
-        label.setLayoutData(data);\r
-        label.setFont(parent.getFont());\r
-        return label;\r
-       }\r
-}\r
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/CitationComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/CitationComposite.java
deleted file mode 100644 (file)
index 3c3969a..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.editor.descriptiontree;
-
-import java.util.Set;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.SharedScrolledComposite;
-
-import eu.etaxonomy.cdm.common.CdmUtils;
-import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.reference.ReferenceBase;
-import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredNameSelectionDialog;
-import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredReferenceSelectionDialog;
-
-/**
- * @author n.hoffmann
- *
- */
-public class CitationComposite extends Composite{
-
-//     private Composite citationContainer;
-       private Button button_addCitation;
-       private FormToolkit toolkit;
-       private DescriptionElementBase descriptionElement;
-       private AbstractDescriptionDetailsPage page;
-
-       CitationComposite(Composite parent, AbstractDescriptionDetailsPage page, int style){
-               super(parent, style);
-               this.toolkit = page.toolkit;
-               this.page = page;
-       }
-       
-       public void createContents(DescriptionElementBase element) {
-               
-               this.descriptionElement = element;
-               
-//             if(citationContainer != null)  citationContainer.dispose();
-//             citationContainer = toolkit.createComposite(page.client.getParent().getParent());
-               for(Control control : this.getChildren()){
-                       control.dispose();
-               }
-               
-               this.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               this.setLayout(new GridLayout());
-               
-               button_addCitation = toolkit.createButton(this, "Add Citation", SWT.PUSH);
-//             
-               button_addCitation.addSelectionListener(new SelectionAdapter(){
-                       // create an empty original source control
-                       /* (non-Javadoc)
-                        * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                        */
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               descriptionElement.addSource(DescriptionElementSource.NewInstance());
-                               createContents(descriptionElement);
-//                             page.managedForm.getForm().reflow(false);//  getForm().getForm().redraw();
-
-//                             citationContainer.getParent().getParent().getParent().pack();
-                       }
-               });
-               
-               Set<DescriptionElementSource> sources = descriptionElement.getSources();
-               
-               if(sources != null){
-                       for(DescriptionElementSource source : sources){
-                               new CitationControl(this, source);
-                       }
-               }
-               
-               // composite will not draw properly if omitted
-               layout(true);
-               
-               page.reflow(true);
-       }
-       
-       /**
-        * 
-        * @author n.hoffmann
-        *
-        */
-       private class CitationControl implements ModifyListener{
-               
-               private CitationComposite parent;
-               private DescriptionElementSource source;
-               private Composite composite;
-               private ExpandableComposite expandableComposite;
-
-               public CitationControl(CitationComposite parent, DescriptionElementSource source){
-                       this.parent = parent;
-                       this.source = source;
-                       toolkit = parent.toolkit;
-                       
-                       createControls();
-               }
-               
-               public void createControls() {
-                       expandableComposite = toolkit.createExpandableComposite(parent, ExpandableComposite.TREE_NODE | ExpandableComposite.EXPANDED);
-                       
-//                     expandableComposite.setBackground(new Color(null, 50, 50, 50));
-                       
-                       expandableComposite.addExpansionListener(new ExpansionAdapter(){
-                               /* (non-Javadoc)
-                                * @see org.eclipse.ui.forms.events.ExpansionAdapter#expansionStateChanged(org.eclipse.ui.forms.events.ExpansionEvent)
-                                */
-                               @Override
-                               public void expansionStateChanged(ExpansionEvent e) {
-                                       layout(true);
-                                       page.reflow(true);
-                               }
-                       });
-                       
-                       expandableComposite.setText("New Original Source");
-                       modifyText(null);
-                       expandableComposite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-                       expandableComposite.setLayout(new GridLayout());
-                       
-                       // Citation
-                       composite = toolkit.createComposite(expandableComposite);
-                       composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-                       expandableComposite.setClient(composite);
-                       
-                       
-                       GridLayout layout = new GridLayout(4, false);
-                       composite.setLayout(layout);
-                       composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               
-                       toolkit.createLabel(composite, "Citation:");
-                       
-                       final Text text_citation = toolkit.createText(composite, "", SWT.BORDER);
-                       text_citation.setEditable(false);
-                       text_citation.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-                       if(source.getCitation() != null){
-                               text_citation.setText(source.getCitation().getTitleCache());
-                       }
-                       text_citation.addModifyListener(this);
-                       
-                       final Button button_browse = toolkit.createButton(composite, "Browse", SWT.PUSH);
-                       button_browse.addSelectionListener(new SelectionAdapter() {
-                               /* (non-Javadoc)
-                                * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                                */
-                               @Override
-                               public void widgetSelected(SelectionEvent e) {
-                                       ReferenceBase citation = FilteredReferenceSelectionDialog.selectReference
-                                               (composite.getShell(), source.getCitation());
-                                       if(citation != null){
-                                               source.setCitation(citation);
-                                               text_citation.setText(citation.getTitleCache());
-                                       }
-                               }
-                       });
-                       
-                       final Button button_remove = toolkit.createButton(composite, "Remove", SWT.PUSH);
-                       button_remove.addSelectionListener(new SelectionAdapter() {
-                               
-                               /* (non-Javadoc)
-                                * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                                */
-                               @Override
-                               public void widgetSelected(SelectionEvent e) {
-                                       DescriptionElementBase sourcedObjcet = source.getSourcedObj();
-                                       
-                                       sourcedObjcet.removeSource(source);
-                                       expandableComposite.dispose();
-                                       // redraw the parent
-                                       parent.createContents(parent.descriptionElement);
-                               }
-                       });
-                       
-                       // Citation details             
-               toolkit.createLabel(composite, "Citation Detail:");
-               
-               final Text text_microReference = toolkit.createText(composite, "", SWT.BORDER);
-               text_microReference.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-               text_microReference.setText(CdmUtils.Nz(source.getCitationMicroReference()));
-               
-               text_microReference.addModifyListener(new ModifyListener() {
-                               public void modifyText(ModifyEvent e) {
-                                       source.setCitationMicroReference(text_microReference.getText());
-                               }
-               });
-               text_microReference.addModifyListener(this);
-               
-              final Label separator = toolkit.createLabel(composite, "");
-              GridData layoutData = new GridData();
-              layoutData.horizontalSpan = 2;
-              separator.setLayoutData(layoutData);
-               
-               // Name in Source
-               toolkit.createLabel(composite, "Name In Source:");
-               
-               final Text text_nameInSource = toolkit.createText(composite, "", SWT.BORDER);
-               text_nameInSource.setEditable(false);
-               text_nameInSource.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-               if(source.getNameUsedInSource() != null){
-                       text_nameInSource.setText(source.getNameUsedInSource().getTitleCache());
-               }
-               text_nameInSource.addModifyListener(this);
-               
-               final Button button_nameInSource = toolkit.createButton(composite, "Browse", SWT.PUSH);
-               button_nameInSource.addSelectionListener(new SelectionAdapter() {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                        */
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               TaxonNameBase nameUsedInSource = FilteredNameSelectionDialog.selectName(composite.getShell(), null);
-                               source.setNameUsedInSource(nameUsedInSource);
-                               text_nameInSource.setText(nameUsedInSource.getTitleCache());
-                       }
-                       });
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
-                */
-               public void modifyText(ModifyEvent e) {
-                       String text = "";
-                       if(source.getCitation() != null){
-                               text += source.getCitation().getTitleCache();
-                       }
-                       
-                       expandableComposite.setText(text);
-                       expandableComposite.layout(true);
-                       page.reflow(true);
-               }       
-       }
-       
-       
-}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/CommonNameDetailsPage.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/CommonNameDetailsPage.java
deleted file mode 100644 (file)
index 6ea54c7..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptiontree;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.List;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.util.PropertyChangeEvent;\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.ModifyEvent;\r
-import org.eclipse.swt.events.ModifyListener;\r
-import org.eclipse.swt.events.SelectionEvent;\r
-import org.eclipse.swt.events.SelectionListener;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.widgets.Combo;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.eclipse.ui.forms.IFormPart;\r
-import org.eclipse.ui.forms.events.HyperlinkAdapter;\r
-import org.eclipse.ui.forms.events.HyperlinkEvent;\r
-import org.eclipse.ui.forms.widgets.Hyperlink;\r
-\r
-import eu.etaxonomy.cdm.model.common.Language;\r
-import eu.etaxonomy.cdm.model.common.TermLanguageComparator;\r
-import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.taxeditor.model.DescriptionHelper;\r
-import eu.etaxonomy.taxeditor.preference.LanguageMenuPreferences;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
-\r
-/**\r
- * If this is a common name whose language has not been chosen yet, the last explicitly\r
- * chosen language will be displayed in the language dropdown.\r
- * \r
- * @author p.ciardelli\r
- *\r
- */\r
-public class CommonNameDetailsPage extends AbstractDescriptionDetailsPage implements ModifyListener, SelectionListener {\r
-       \r
-       private static final Logger logger = Logger.getLogger(CommonNameDetailsPage.class);\r
-       \r
-       private Text text;\r
-       private Combo languagesCombo;\r
-       \r
-       private static final int VISIBLE_ITEMS = 20;\r
-       \r
-       /**\r
-        * Language selected last time the dialog was used.\r
-        */\r
-       private static Language lastLanguage;   \r
-       \r
-       private List<Language> languages;\r
-\r
-       private boolean selectionListenersEnabled;\r
-\r
-       private Language selectedLanguage;\r
-\r
-       private Composite msgComposite;\r
-       \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)\r
-        */\r
-       public void modifyText(ModifyEvent e) {\r
-               if (selectionListenersEnabled) {\r
-                       DescriptionHelper.setCache((DescriptionElementBase) input, text.getText());\r
-                       fireStateChanged();\r
-               }\r
-       }       \r
-       \r
-       /**\r
-        * @param language\r
-        */\r
-       private void modifyLanguage(Language language) {\r
-               if (selectionListenersEnabled) {\r
-                       ((CommonTaxonName) input).setLanguage(language);\r
-                       fireStateChanged();             \r
-               }\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)\r
-        */\r
-       public void widgetDefaultSelected(SelectionEvent e) {}\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)\r
-        */\r
-       \r
-       public void widgetSelected(SelectionEvent e) {\r
-               Language language = languages.get(languagesCombo.getSelectionIndex());\r
-               modifyLanguage(language);                               \r
-               setLastSelectedLanguage(language);\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#createContents(org.eclipse.swt.widgets.Composite)\r
-        */\r
-       public void createContents(Composite parent) {\r
-               super.createContents(parent);\r
-               \r
-               section.setText("Common Name Details"); //$NON-NLS-1$\r
-               \r
-               Label label_language = toolkit.createLabel(client, "Language:");\r
-               label_language.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));\r
-               \r
-        // create combo\r
-        languagesCombo = new Combo(client, SWT.BORDER | SWT.READ_ONLY);\r
-        languagesCombo.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));\r
-        languagesCombo.setVisibleItemCount(VISIBLE_ITEMS);\r
-               languagesCombo.addSelectionListener(this);\r
-                \r
-        Label label_name = toolkit.createLabel(client, "Common name:");\r
-        label_name.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));\r
-        \r
-               text = new Text(client, SWT.BORDER | SWT.MULTI);\r
-               text.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));       \r
-               \r
-               text.addModifyListener(this);\r
-        \r
-        populateLanguages();\r
-        \r
-        createCitationControls(parent);\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptiontree.AbstractDescriptionDetailsPage#handleChangedPrefs(org.eclipse.jface.util.PropertyChangeEvent)\r
-        */\r
-       protected void handleChangedPrefs(PropertyChangeEvent event) {\r
-               if (LanguageMenuPreferences.class.equals(event.getNewValue())) {\r
-                       populateLanguages();\r
-               }\r
-       }\r
-\r
-       /**\r
-        * @param language\r
-        */\r
-       private void setLastSelectedLanguage(Language language) {\r
-               lastLanguage = language;\r
-       }\r
-\r
-       private void populateLanguages() {\r
-               \r
-               languagesCombo.removeAll();\r
-               \r
-               languages = new ArrayList<Language>();\r
-               languages.add(0, null);\r
-               languagesCombo.add("--- No language selected ---");\r
-               \r
-               int i = 0;              \r
-               int index = 0;\r
-               List<Language> languagesTemp = PreferencesUtil.getPreferredLanguages();\r
-               Collections.sort(languagesTemp, new TermLanguageComparator<Language>());\r
-               for (Language language : languagesTemp) {\r
-                       String description = language.getDescription(); \r
-                       if (description == null) {\r
-                               logger.warn("No description for " + language + " - not added to language menu");\r
-                               continue;\r
-                       }\r
-                       languagesCombo.add(description);\r
-                       languages.add(language);\r
-\r
-                       i++;\r
-                       if (selectedLanguage != null) {\r
-                               if (selectedLanguage.equals(language)) {\r
-                                       index = i;\r
-                               }\r
-                       } else {\r
-                               // TODO isn't it better to put the last language at the top of the menu, not automatically select?\r
-//                                     if (lastLanguage != null && lastLanguage.equals(language)) {\r
-//                                             index = i;  \r
-//                                     }\r
-                       }\r
-               }\r
-               \r
-               // Check whether language is in menu\r
-               if (msgComposite != null) {\r
-                       msgComposite.dispose();\r
-                       msgComposite = null;\r
-               }\r
-               if (selectedLanguage != null && index == 0) {\r
-                       createLanguageNotInMenu(selectedLanguage);\r
-               }\r
-               \r
-               languagesCombo.select(index);           \r
-       }\r
-       \r
-       /**\r
-        * @param language\r
-        */\r
-       private void createLanguageNotInMenu(Language language) {\r
-               \r
-               msgComposite = toolkit.createComposite(client);\r
-               GridLayout layout = new GridLayout();\r
-               layout.numColumns = 2;\r
-               msgComposite.setLayout(layout);\r
-               msgComposite.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL\r
-                | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL\r
-                | GridData.VERTICAL_ALIGN_CENTER));\r
-               \r
-               String langText = language.getDescription() == null ? language.getLabel() : language.getDescription();\r
-               langText += " is not one of your preferred languages. ";\r
-               Label label = toolkit.createLabel(msgComposite, langText, SWT.WRAP);\r
-               label.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL\r
-                | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL\r
-                | GridData.VERTICAL_ALIGN_CENTER));\r
-               \r
-               Hyperlink linkEdit = toolkit.createHyperlink(msgComposite, "Edit preferences", SWT.WRAP);\r
-               linkEdit.addHyperlinkListener(new HyperlinkAdapter() {\r
-                       /* (non-Javadoc)\r
-                        * @see org.eclipse.ui.forms.events.HyperlinkAdapter#linkActivated(org.eclipse.ui.forms.events.HyperlinkEvent)\r
-                        */\r
-                       @Override\r
-                       public void linkActivated(HyperlinkEvent e) {\r
-                               org.eclipse.ui.dialogs.PreferencesUtil.createPreferenceDialogOn(client.getShell(), \r
-                                               LanguageMenuPreferences.ID, null, null).open();\r
-                       }\r
-               });\r
-               \r
-               msgComposite.moveBelow(languagesCombo);\r
-               \r
-               client.pack(true);\r
-               client.layout();\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#selectionChanged(org.eclipse.ui.forms.IFormPart, org.eclipse.jface.viewers.ISelection)\r
-        */\r
-       @Override\r
-       public void selectionChanged(IFormPart part, ISelection selection) {\r
-               super.selectionChanged(part, selection);\r
-               \r
-               setSelectionListenersEnabled(false);\r
-               \r
-               text.setText(((CommonTaxonName) input).getName());\r
-               selectedLanguage = (((CommonTaxonName) input).getLanguage());\r
-               populateLanguages();\r
-               \r
-               setSelectionListenersEnabled(true);\r
-       }\r
-\r
-       /**\r
-        * @param enabled\r
-        */\r
-       private void setSelectionListenersEnabled(boolean enabled) {\r
-               this.selectionListenersEnabled = enabled;\r
-       }\r
-}
\ No newline at end of file
index f064ed47f34e5c4921bbc47ae9829d0577763473..1473e986ef909512dbd10b8f46428fc0a938ffd5 100644 (file)
@@ -12,9 +12,9 @@ import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
 import eu.etaxonomy.cdm.model.description.Distribution;\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
 import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.description.TaxonInteraction;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.media.ImageFile;\r
 import eu.etaxonomy.taxeditor.model.DescriptionHelper;\r
@@ -42,6 +42,9 @@ public class DescriptionLabelProvider extends LabelProvider implements IStyledLa
                if (element instanceof Distribution) {\r
                        return getDistributionText((Distribution) element);                     \r
                }               \r
+               if (element instanceof TaxonInteraction) {\r
+                       return getTaxonInteractionText((TaxonInteraction) element);\r
+               }\r
                if (element instanceof DescriptionElementBase) {\r
                        return getElementText((DescriptionElementBase) element);\r
                }\r
@@ -50,7 +53,7 @@ public class DescriptionLabelProvider extends LabelProvider implements IStyledLa
                }\r
                return element.toString();\r
        }       \r
-       \r
+\r
        /**\r
         * @param element\r
         * @return\r
@@ -97,6 +100,15 @@ public class DescriptionLabelProvider extends LabelProvider implements IStyledLa
                }\r
                return text;\r
        }\r
+       \r
+       /**\r
+        * @param element\r
+        * @return\r
+        */\r
+       private String getTaxonInteractionText(TaxonInteraction element) {\r
+               String text = DescriptionHelper.getCache(element);\r
+               return text;\r
+       }\r
 \r
        /**\r
         * @param element\r
index 13f0227649dee579216f4841bc625d14f3be9ec1..e7adbef7065a77732385d7ca7435ed291cdc38c6 100644 (file)
@@ -6,6 +6,7 @@ package eu.etaxonomy.taxeditor.editor.descriptiontree;
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.action.MenuManager;\r
+import org.eclipse.jface.action.ToolBarManager;\r
 import org.eclipse.jface.viewers.ISelection;\r
 import org.eclipse.jface.viewers.ISelectionChangedListener;\r
 import org.eclipse.jface.viewers.SelectionChangedEvent;\r
@@ -18,6 +19,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;\r
 import org.eclipse.swt.layout.GridLayout;\r
 import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
 import org.eclipse.swt.widgets.Menu;\r
 import org.eclipse.swt.widgets.Tree;\r
 import org.eclipse.ui.IEditorPart;\r
@@ -30,7 +32,6 @@ import org.eclipse.ui.forms.MasterDetailsBlock;
 import org.eclipse.ui.forms.SectionPart;\r
 import org.eclipse.ui.forms.editor.FormPage;\r
 import org.eclipse.ui.forms.widgets.FormToolkit;\r
-import org.eclipse.ui.forms.widgets.ScrolledForm;\r
 import org.eclipse.ui.forms.widgets.Section;\r
 \r
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
@@ -38,10 +39,18 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Distribution;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.description.TaxonInteraction;\r
 import eu.etaxonomy.cdm.model.description.TextData;\r
 import eu.etaxonomy.cdm.model.media.ImageFile;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;\r
+import eu.etaxonomy.taxeditor.editor.descriptiontree.detailpage.CommonNameDetailsPage;\r
+import eu.etaxonomy.taxeditor.editor.descriptiontree.detailpage.DistributionDetailsPage;\r
+import eu.etaxonomy.taxeditor.editor.descriptiontree.detailpage.DistributionMapDetailsPage;\r
+import eu.etaxonomy.taxeditor.editor.descriptiontree.detailpage.ImageDetailsPage;\r
+import eu.etaxonomy.taxeditor.editor.descriptiontree.detailpage.LabelDetailsPage;\r
+import eu.etaxonomy.taxeditor.editor.descriptiontree.detailpage.TaxonInteractionDetailsPage;\r
+import eu.etaxonomy.taxeditor.editor.descriptiontree.detailpage.TextDataDetailsPage;\r
 import eu.etaxonomy.taxeditor.model.ImagesHelper;\r
 \r
 /**\r
@@ -79,6 +88,9 @@ public class DescriptionMasterDetailsBlock extends MasterDetailsBlock {
                layout.marginHeight = 2;\r
                client.setLayout(layout);\r
                \r
+               \r
+               section.setTextClient(createMasterSectionToolbar(section));\r
+               \r
                Tree tree = toolkit.createTree(client, SWT.NULL);\r
                GridData gd = new GridData(GridData.FILL_BOTH);\r
                gd.heightHint = 20;\r
@@ -134,12 +146,16 @@ public class DescriptionMasterDetailsBlock extends MasterDetailsBlock {
                Menu menu = menuMgr.createContextMenu(descriptionViewer.getControl());\r
                descriptionViewer.getControl().setMenu(menu);   \r
        }\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.forms.MasterDetailsBlock#createToolBarActions(org.eclipse.ui.forms.IManagedForm)\r
+       \r
+       /**\r
+        * @return\r
         */\r
-       protected void createToolBarActions(IManagedForm managedForm) {\r
-               final ScrolledForm form = managedForm.getForm();\r
-               Action displayAllDescriptions = new Action("displayAllDescriptions", Action.AS_PUSH_BUTTON){\r
+       private Control createMasterSectionToolbar(Section section) {\r
+               ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);\r
+//             IMenuService menuService = (IMenuService) EditorUtil.getService(IMenuService.class);\r
+//             menuService.populateContributionManager(toolBarManager, "toolbar:de.md.contributions.sectionToolbar");\r
+               \r
+               Action displayAllDescriptions = new Action("displayAll", Action.AS_PUSH_BUTTON){\r
                        /* (non-Javadoc)\r
                         * @see org.eclipse.jface.action.Action#run()\r
                         */\r
@@ -149,11 +165,23 @@ public class DescriptionMasterDetailsBlock extends MasterDetailsBlock {
                        }\r
                };\r
                displayAllDescriptions.setToolTipText("Show all descriptive data");\r
+               toolBarManager.add(displayAllDescriptions);\r
                \r
-               String groupName = "groupName";\r
+               Action collapseAllDescriptions = new Action("collapseAll", Action.AS_PUSH_BUTTON){\r
+                       /* (non-Javadoc)\r
+                        * @see org.eclipse.jface.action.Action#run()\r
+                        */\r
+                       @Override\r
+                       public void run() {\r
+                               descriptionViewer.collapseAll();\r
+                       }\r
+               };\r
+               collapseAllDescriptions.setToolTipText("Collapse all");\r
+               toolBarManager.add(collapseAllDescriptions);\r
                \r
-               form.getToolBarManager().add(displayAllDescriptions);\r
+               return toolBarManager.createControl(section);\r
        }\r
+\r
        \r
        /* (non-Javadoc)\r
         * @see org.eclipse.ui.forms.MasterDetailsBlock#registerPages(org.eclipse.ui.forms.DetailsPart)\r
@@ -245,6 +273,9 @@ public class DescriptionMasterDetailsBlock extends MasterDetailsBlock {
                        if (Distribution.class.equals(key)) {\r
                                return new DistributionDetailsPage();\r
                        }\r
+                       if(TaxonInteraction.class.equals(key)){\r
+                               return new TaxonInteractionDetailsPage();\r
+                       }\r
                        if (TextData.class.equals(key)) {\r
                                return new TextDataDetailsPage();\r
                        }                       \r
@@ -278,4 +309,13 @@ public class DescriptionMasterDetailsBlock extends MasterDetailsBlock {
                        return object.getClass();\r
                }\r
        }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.forms.MasterDetailsBlock#createToolBarActions(org.eclipse.ui.forms.IManagedForm)\r
+        */\r
+       @Override\r
+       protected void createToolBarActions(IManagedForm managedForm) {\r
+               // TODO Auto-generated method stub\r
+               \r
+       }\r
 }
\ No newline at end of file
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DistributionDetailsPage.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DistributionDetailsPage.java
deleted file mode 100644 (file)
index 2f3c6a5..0000000
+++ /dev/null
@@ -1,548 +0,0 @@
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptiontree;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.HashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.UUID;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.SelectionAdapter;\r
-import org.eclipse.swt.events.SelectionEvent;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.widgets.Combo;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.ui.forms.IFormPart;\r
-\r
-import eu.etaxonomy.cdm.api.service.ILocationService;\r
-import eu.etaxonomy.cdm.api.service.ILocationService.NamedAreaVocabularyType;\r
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
-import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
-import eu.etaxonomy.cdm.model.common.VocabularyEnum;\r
-import eu.etaxonomy.cdm.model.description.Distribution;\r
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
-import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.location.TdwgArea;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
-import eu.etaxonomy.taxeditor.editor.reference.ReferenceSelectComposite;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
-import eu.etaxonomy.taxeditor.store.CdmStore;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class DistributionDetailsPage extends AbstractDescriptionDetailsPage {\r
-       private static final Logger logger = Logger.getLogger(DescriptionMasterDetailsBlock.class);\r
-\r
-\r
-       /**\r
-        * Location service for retrieving \r
-        */\r
-       private ILocationService locationService;\r
-       /**\r
-        * Number of area menus to show\r
-        */\r
-       private static final int NUM_AREA_MENUS = 4; \r
-       /**\r
-        * UI elements\r
-        */\r
-       private Combo vocabTypeCombo;\r
-       private Combo[] areaCombos = new Combo[NUM_AREA_MENUS];\r
-       private Combo statusCombo;\r
-       private ReferenceSelectComposite referenceComposite;\r
-       /**\r
-        * Distribution fields\r
-        */\r
-       private NamedArea selectedArea;\r
-       private PresenceAbsenceTermBase<?> selectedStatus;\r
-       private NamedAreaVocabularyType selectedVocabType;\r
-       private ReferenceBase<?> selectedReference;\r
-       /**\r
-        * Lists to populate drop downs\r
-        */\r
-       private ArrayList<NamedAreaVocabularyType> vocabularyTypes;  \r
-       private List<PresenceAbsenceTermBase> statusTerms;\r
-       private List<List<NamedArea>> areas = new ArrayList<List<NamedArea>>();\r
-       private NamedArea[] selectedAreas = new NamedArea[NUM_AREA_MENUS];\r
-       /**\r
-        * Static fields to persist default values\r
-        */\r
-       private static ReferenceBase<?> lastReference;\r
-       private static PresenceAbsenceTermBase<?> lastStatusTerm;\r
-       private static NamedAreaVocabularyType lastVocabType;\r
-       private static NamedArea lastNamedArea;\r
-       Map<NamedAreaVocabularyType, List<NamedArea>> topLevelAreasByType = \r
-               new HashMap<NamedAreaVocabularyType, List<NamedArea>>();\r
-       /**\r
-        * Used to disable listeners while input values are programmatically set\r
-        */\r
-       private boolean selectionListenersEnabled;\r
-\r
-       public DistributionDetailsPage() {\r
-               \r
-               locationService = CdmStore.getLocationService();\r
-               \r
-//             initTopLevelVocabularies();\r
-       }\r
-\r
-       /**\r
-        * There is no mechanism to retrieve a NamedArea's vocabulary type. Therefore, we\r
-        * store all top-level NamedAreas with their vocabulary types. \r
-        */\r
-//     private void initTopLevelVocabularies() {\r
-//             for (NamedAreaVocabularyType vocabType : getVocabularyTypes()) {\r
-//                     List<NamedArea> list = new ArrayList<NamedArea>();\r
-//                     for (NamedArea topLevelArea : locationService.getTopLevelNamedAreasByVocabularyType(vocabType)) {\r
-//                             topLevelAreasByArea.put(topLevelArea, vocabType);\r
-//                             list.add(topLevelArea);\r
-//                     }\r
-//                     topLevelAreasByType.put(vocabType, list);\r
-//             }\r
-//     }\r
-       \r
-//     /**\r
-//      * Set inputs to selections from last time dialog was used.\r
-//      */\r
-//     private void recallPreviousSelections() {\r
-//             if (lastVocabType != null)  {\r
-//                     selectedVocabType = lastVocabType;\r
-//\r
-//                     // Last named area don't make much sense w/out a vocab type\r
-//                     if (lastNamedArea != null) {\r
-//                             selectedArea = lastNamedArea;\r
-//                     }\r
-//             }\r
-//             if (lastStatusTerm != null) {\r
-//                     selectedStatus = lastStatusTerm; \r
-//             }\r
-//             if (lastReference != null) {\r
-//                     selectedReference = lastReference;\r
-//             }\r
-//     }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#selectionChanged(org.eclipse.ui.forms.IFormPart, org.eclipse.jface.viewers.ISelection)\r
-        */\r
-       @Override\r
-       public void selectionChanged(IFormPart part, ISelection selection) {\r
-               super.selectionChanged(part, selection);\r
-               \r
-               setSelectionListenersEnabled(false);\r
-               \r
-               selectedArea = HibernateProxyHelper.deproxy(((Distribution) input).getArea(), NamedArea.class);\r
-               populateAreas();\r
-               \r
-               populateVocabTypes();\r
-               \r
-               selectedStatus = HibernateProxyHelper.deproxy(((Distribution) input).getStatus(), PresenceAbsenceTermBase.class);\r
-               populateStatus();\r
-               \r
-               setSelectionListenersEnabled(true);\r
-       }\r
-       \r
-       /**\r
-        * @param enabled\r
-        */\r
-       private void setSelectionListenersEnabled(boolean enabled) {\r
-               this.selectionListenersEnabled = enabled;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#createContents(org.eclipse.swt.widgets.Composite)\r
-        */\r
-       public void createContents(Composite parent) {\r
-               super.createContents(parent);\r
-               \r
-               section.setText("Distribution Details"); //$NON-NLS-1$\r
-               \r
-        // create vocab type\r
-               toolkit.createLabel(client, "Select an area vocabulary:");\r
-        vocabTypeCombo = createCombo(client);\r
-        vocabTypeCombo.addSelectionListener(new SelectionAdapter() {\r
-                       @Override\r
-                       public void widgetSelected(SelectionEvent e) {\r
-                               if (selectionListenersEnabled) {\r
-                                       selectVocabType();\r
-                               }\r
-                       }\r
-               });\r
-        \r
-        // create areas\r
-        toolkit.createLabel(client, "Select an area:");\r
-        for (int i = 0; i < NUM_AREA_MENUS; i++) {\r
-               areaCombos[i] = createCombo(client); \r
-            areaCombos[i].addSelectionListener(new AreaComboListener(i));\r
-            areaCombos[i].setEnabled(false);\r
-            areaCombos[i].setVisibleItemCount(20);\r
-        }\r
-        \r
-        // create status\r
-        toolkit.createLabel(client, "Select status:");\r
-               statusCombo =  new Combo(client, SWT.BORDER | SWT.READ_ONLY);\r
-               statusCombo.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL\r
-                | GridData.HORIZONTAL_ALIGN_FILL));\r
-               statusCombo.addSelectionListener(new SelectionAdapter() {\r
-                       @Override\r
-                       public void widgetSelected(SelectionEvent e) {\r
-                               if (selectionListenersEnabled) {\r
-                                       selectStatusTerm();\r
-                               }\r
-                       }\r
-               });\r
-               \r
-               // create reference\r
-        createCitationControls(parent);\r
-\r
-        populateVocabTypes();\r
-               populateAreas();        \r
-               populateStatus();\r
-       }\r
-       \r
-       /**\r
-        * @return\r
-        */\r
-       private Combo createCombo(Composite composite) {\r
-               Combo combo = new Combo(composite, SWT.BORDER | SWT.READ_ONLY);\r
-               combo.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));\r
-               return combo;\r
-       }\r
-       \r
-       class AreaComboListener extends SelectionAdapter {\r
-       private int i;\r
-               AreaComboListener(int i) {\r
-               this.i = i;\r
-       }\r
-               @Override\r
-               public void widgetSelected(SelectionEvent e) {\r
-                       if (selectionListenersEnabled) {\r
-                               selectArea(i);                          \r
-                       }\r
-               }\r
-    }\r
-    \r
-       /**\r
-        * @param selectedVocabType\r
-        * @return\r
-        */\r
-       private List<NamedArea> getNamedAreas(NamedAreaVocabularyType vocabularyType) {\r
-               List<NamedArea> topLevelTerms = getTopLevelAreas(vocabularyType);\r
-       \r
-               Collections.reverse(topLevelTerms);\r
-               \r
-               areas.add(0, topLevelTerms);\r
-               return topLevelTerms;\r
-       }\r
-       \r
-       /**\r
-        * @param vocabularyType\r
-        * @return\r
-        */\r
-       private List<NamedArea> getTopLevelAreas(\r
-                       NamedAreaVocabularyType vocabularyType) {\r
-               List<NamedArea> topLevelAreas = topLevelAreasByType.get(vocabularyType);\r
-               if (topLevelAreas == null) {\r
-                       topLevelAreas = locationService.getTopLevelNamedAreasByVocabularyType(vocabularyType);\r
-                       topLevelAreasByType.put(vocabularyType, topLevelAreas);                 \r
-               }\r
-               return topLevelAreas;\r
-       }\r
-\r
-       /**\r
-        * \r
-        */\r
-       private void populateVocabTypes() {\r
-               \r
-               vocabTypeCombo.removeAll();\r
-               \r
-               int i = 0;              \r
-               int index = -1;\r
-               for (NamedAreaVocabularyType vocabularyType : getVocabularyTypes()) {\r
-                       String vocabularyTypeLabel = vocabularyType == null ? \r
-                                       "" : vocabularyType.toString();\r
-                       vocabTypeCombo.add(vocabularyTypeLabel);\r
-                       \r
-                       if (vocabularyType != null && vocabularyType == selectedVocabType) {\r
-                               index = i;\r
-                       }\r
-                       i++;\r
-               }\r
-               if (index > -1) {\r
-                       vocabTypeCombo.select(index);\r
-               }\r
-       }\r
-\r
-    /**\r
-        * \r
-        */\r
-       private void populateAreas() {\r
-               if (selectedArea == null) {\r
-                       return;\r
-               }\r
-               \r
-               for (int i = 0; i < NUM_AREA_MENUS; i++) {\r
-                       areaCombos[i].removeAll();\r
-                       areaCombos[i].setEnabled(false);\r
-               }\r
-               \r
-               List<NamedArea> areasTmp = new ArrayList<NamedArea>();\r
-               NamedArea namedAreaTmp = selectedArea;\r
-               NamedArea parentArea = null;\r
-               do {\r
-                       areasTmp.add(namedAreaTmp);\r
-                       parentArea = getPartOf(namedAreaTmp);\r
-                       if (parentArea == null) {\r
-                               selectedVocabType = getVocabularyType(namedAreaTmp);                            \r
-                       }\r
-                       namedAreaTmp = parentArea;\r
-               } while (parentArea != null);\r
-               Collections.reverse(areasTmp);\r
-               int depth = 0;\r
-               for (NamedArea namedArea : areasTmp) {\r
-                       selectedAreas[depth] = namedArea;\r
-                       populateAreas(depth);\r
-                       depth++;\r
-               }\r
-       }\r
-       \r
-       /**\r
-        * @param depth\r
-        */\r
-       private void populateAreas(int depth) {\r
-                               \r
-               List<NamedArea> areasTmp;\r
-               if(depth == 0){\r
-                        areasTmp = getNamedAreas(selectedVocabType);\r
-               }else{\r
-                       areasTmp = getNamedAreas(selectedAreas[depth - 1], depth);\r
-               }\r
-               \r
-               int index = -1;\r
-               int i = 0;\r
-               if (areasTmp.size() > 0) {\r
-                       for(Object areaObject : areasTmp){\r
-                               NamedArea areaTmp = HibernateProxyHelper.deproxy(areaObject, NamedArea.class);\r
-                               String areaLabel = areaTmp == null ? "" : areaTmp.getLabel();\r
-                               areaCombos[depth].add(areaLabel);\r
-                               \r
-                               if (selectedAreas[depth] != null && selectedAreas[depth].equals(areaTmp)) {\r
-                                       index = i;\r
-                               }\r
-                               i++;\r
-                       }\r
-                       areaCombos[depth].setEnabled(true);\r
-                       if (index > -1) {\r
-                               areaCombos[depth].select(index);\r
-                       }\r
-               }\r
-       }\r
-       \r
-       /**\r
-        * \r
-        */\r
-       private void populateStatus() {\r
-\r
-               statusCombo.removeAll();\r
-               \r
-               int selectedIndex = -1;\r
-               int i = 0;\r
-               for (PresenceAbsenceTermBase<?> term : getStatusTerms()) {\r
-                       if (term == null) {\r
-                       } else {\r
-                               statusCombo.add(term.getLabel());               \r
-                               if (this.selectedStatus != null && this.selectedStatus.equals(term)) {\r
-                                       selectedIndex = i;\r
-                               }\r
-                       }\r
-                       i++;\r
-               }\r
-               if (selectedIndex != -1) {\r
-                       statusCombo.select(selectedIndex);      \r
-               }\r
-       }\r
-\r
-       /**\r
-        * \r
-        */\r
-       protected void selectVocabType() {\r
-               int i = vocabTypeCombo.getSelectionIndex();\r
-               selectedVocabType = getVocabularyTypes().get(i);\r
-               clearAreas();\r
-               \r
-               populateAreas(0);\r
-               \r
-//             lastVocabType = selectedVocabType;\r
-       }\r
-       \r
-       /**\r
-        * @param i\r
-        */\r
-       protected void selectArea(int depth) {\r
-               // This selection is made currently selected area\r
-               int i = areaCombos[depth].getSelectionIndex();\r
-               \r
-               selectedArea = getSelectedArea(depth, i);\r
-               \r
-               selectedAreas[depth] = selectedArea;\r
-               \r
-               clearArea(depth + 1);\r
-               populateAreas(depth + 1);\r
-               \r
-               setInputArea(selectedArea);\r
-               \r
-//             lastVocabType = selectedVocabType;\r
-//             lastNamedArea = selectedArea;\r
-       }\r
-\r
-       /**\r
-        * \r
-        */\r
-       protected void selectStatusTerm() {\r
-               int i = statusCombo.getSelectionIndex();\r
-               selectedStatus = statusTerms.get(i);\r
-               \r
-               setInputStatus(selectedStatus);\r
-               \r
-//             lastStatusTerm = selectedStatus;\r
-       }\r
-\r
-       /**\r
-        * @param area\r
-        */\r
-       private void setInputArea(NamedArea area) {\r
-               ((Distribution) input).setArea(area);\r
-       }       \r
-       \r
-       /**\r
-        * @param status\r
-        */\r
-       private void setInputStatus(PresenceAbsenceTermBase<?> status) {\r
-               ((Distribution) input).setStatus(status);\r
-       }\r
-       \r
-       /**\r
-        * @param namedAreaTmp\r
-        * @return\r
-        */\r
-       private NamedAreaVocabularyType getVocabularyType(NamedArea namedArea) {\r
-               \r
-               UUID tdwgUuid = VocabularyEnum.TdwgArea.getUuid();\r
-               UUID waterbodyOrCountryUuid = VocabularyEnum.WaterbodyOrCountry.getUuid();\r
-               UUID continentUuid = VocabularyEnum.Continent.getUuid();\r
-               \r
-               TermVocabulary<NamedArea> vocabulary = HibernateProxyHelper.deproxy(namedArea.getVocabulary(), TermVocabulary.class);\r
-               UUID vocabularyUuid = vocabulary.getUuid();\r
-               \r
-               if (vocabularyUuid.equals(tdwgUuid)) {\r
-                       return NamedAreaVocabularyType.TDWG_AREA;                       \r
-               }\r
-\r
-               if (vocabularyUuid.equals(waterbodyOrCountryUuid)) {\r
-                       return NamedAreaVocabularyType.WATERBODY_OR_COUNTRY;                    \r
-               }\r
-               \r
-               if (vocabularyUuid.equals(continentUuid)) {\r
-                       return NamedAreaVocabularyType.CONTINENT;                       \r
-               }               \r
-               \r
-               logger.warn("No matching vocabulary type found for NamedArea " + namedArea + ".");\r
-               return null;\r
-       }\r
-\r
-       /**\r
-        * @return\r
-        */\r
-       private List<NamedAreaVocabularyType> getVocabularyTypes() {\r
-               if (vocabularyTypes == null) {\r
-                       vocabularyTypes = new ArrayList<NamedAreaVocabularyType>();\r
-                       vocabularyTypes.addAll(locationService.getNamedAreaVocabularyTypes());\r
-               }\r
-               return vocabularyTypes;\r
-       }\r
-       \r
-       /**\r
-        * @param namedArea\r
-        * @return\r
-        */\r
-       private List<NamedArea> getNamedAreas(NamedArea namedArea, int depth) {\r
-               List<NamedArea> terms = new ArrayList<NamedArea>();\r
-               terms.addAll(namedArea.getIncludes());\r
-               \r
-               areas.add(depth, terms);\r
-               \r
-               return terms;\r
-       }\r
-       \r
-       /**\r
-        * @return\r
-        */\r
-       private List<PresenceAbsenceTermBase> getStatusTerms() {\r
-               if (statusTerms == null) {\r
-                       statusTerms = new ArrayList<PresenceAbsenceTermBase>();\r
-                       for (PresenceAbsenceTermBase statusTerm : PreferencesUtil.getPreferredPresenceAbsenceTerms()) {\r
-                               statusTerms.add(statusTerm);\r
-                       }\r
-               }\r
-               return statusTerms;\r
-       }\r
-       \r
-       /**\r
-        * @return\r
-        */\r
-       private NamedAreaVocabularyType getVocabType() {\r
-               int i = vocabTypeCombo.getSelectionIndex();\r
-               return vocabularyTypes.get(i);\r
-       }\r
-\r
-       /**\r
-        * @param i\r
-        * @param index\r
-        * @return\r
-        */\r
-       private NamedArea getSelectedArea(int depth, int index) {\r
-               return areas.get(depth).get(index);\r
-       }\r
-       \r
-       /**\r
-        * @return\r
-        */\r
-       private PresenceAbsenceTermBase<?> getStatusTerm() {\r
-               int i = statusCombo.getSelectionIndex();\r
-               return statusTerms.get(i);\r
-       }\r
-       \r
-       /**\r
-        * @param namedArea\r
-        * @return\r
-        */\r
-       private NamedArea getPartOf(NamedArea namedArea) {\r
-               if (namedArea instanceof TdwgArea) {\r
-                       return HibernateProxyHelper.deproxy(((NamedArea) namedArea).getPartOfWorkaround(), TdwgArea.class);\r
-               }\r
-               return null;\r
-       }\r
-       \r
-       /**\r
-        * @param i\r
-        */\r
-       private void clearArea(int i) {\r
-               for (int j = i; j < NUM_AREA_MENUS; j++) {\r
-                       // TODO add clear selectedArea\r
-                       areaCombos[j].removeAll();\r
-                       areaCombos[j].setEnabled(false);\r
-               }\r
-       }\r
-\r
-       /**\r
-        * \r
-        */\r
-       private void clearAreas() {\r
-               clearArea(0);\r
-       }\r
-}\r
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DistributionMapDetailsPage.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DistributionMapDetailsPage.java
deleted file mode 100644 (file)
index 7359920..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptiontree;\r
-\r
-import java.awt.Color;\r
-import java.util.HashSet;\r
-import java.util.Map;\r
-import java.util.Set;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.browser.Browser;\r
-import org.eclipse.swt.browser.ProgressEvent;\r
-import org.eclipse.swt.browser.ProgressListener;\r
-import org.eclipse.swt.events.ControlEvent;\r
-import org.eclipse.swt.events.ControlListener;\r
-import org.eclipse.swt.events.SelectionAdapter;\r
-import org.eclipse.swt.events.SelectionEvent;\r
-import org.eclipse.swt.graphics.Rectangle;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.widgets.Button;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.ProgressBar;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.eclipse.ui.forms.IFormPart;\r
-\r
-import eu.etaxonomy.cdm.ext.EditGeoServiceUtilities;\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.cdm.model.description.Distribution;\r
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class DistributionMapDetailsPage extends AbstractDescriptionDetailsPage {\r
-       private static final Logger logger = Logger\r
-                       .getLogger(DistributionMapDetailsPage.class);\r
-       \r
-       private Browser browser;\r
-\r
-       private TaxonDescription description;\r
-       \r
-       public DistributionMapDetailsPage() {\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptiontree.AbstractDescriptionDetailsPage#createContents(org.eclipse.swt.widgets.Composite)\r
-        */\r
-       @Override\r
-       public void createContents(final Composite parent) {\r
-               super.createContents(parent);\r
-               \r
-               section.setText("Distribution Overview"); //$NON-NLS-1$\r
-               \r
-               \r
-               browser = new Browser(client, SWT.NONE);\r
-                               \r
-               browser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
-               \r
-//             final ProgressBar progressBar = new ProgressBar(client, SWT.NONE);\r
-//             GridData data = new GridData();\r
-//             data.horizontalAlignment = GridData.END;\r
-//             progressBar.setLayoutData(data);\r
-//\r
-//             browser.addProgressListener(new ProgressListener() {\r
-//                     public void changed(ProgressEvent event) {\r
-//                                     if (event.total == 0) return;                            \r
-//                                     int ratio = event.current * 100 / event.total;\r
-//                                     progressBar.setSelection(ratio);\r
-//                     }\r
-//                     public void completed(ProgressEvent event) {\r
-//                             progressBar.setSelection(0);\r
-//                     }\r
-//             });\r
-//             \r
-//             final Text label_url = new Text(parent, SWT.NULL);\r
-//             label_url.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));\r
-//             label_url.setText("lalala");\r
-//             \r
-//             \r
-//             // Create "Refresh Map" button\r
-//             final Button refreshButton = new Button(client, SWT.PUSH);\r
-//             refreshButton.setText("Refresh Map");\r
-//             refreshButton.setLayoutData(new GridData());\r
-//             refreshButton.addSelectionListener(new SelectionAdapter() {\r
-//                     /* (non-Javadoc)\r
-//                      * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)\r
-//                      */\r
-//                     @Override\r
-//                     public void widgetSelected(SelectionEvent e) {\r
-//                             loadMap();\r
-//                             label_url.setText(url);\r
-//                             label_url.setToolTipText(url);\r
-//                             parent.layout();\r
-//                     }\r
-//             });     \r
-               \r
-               browser.addControlListener(new ControlListener(){\r
-                       public void controlMoved(ControlEvent e) {\r
-                               loadMap();\r
-                       }\r
-                       public void controlResized(ControlEvent e) {\r
-                               loadMap();\r
-                       }\r
-               });\r
-       }\r
-       \r
-       \r
-       \r
-       private void loadMap(){\r
-               if (description != null) {\r
-                       Display.getDefault().asyncExec(new Runnable() {\r
-                               public void run() {\r
-                                       browser.setUrl(getMapUrl());\r
-                               }\r
-                       });\r
-               }\r
-       }\r
-       \r
-       private String getMapUrl(){\r
-               // FIXME make these hardcoded parameters configurable via preferences\r
-               String url = "http://edit.csic.es/v1/areas.php";\r
-               Map<PresenceAbsenceTermBase<?>,Color> presenceAbsenceTermColors = null;\r
-               int width = calculateWidth();\r
-               int height = 0; \r
-               String bbox = "-180,-90,180,90"; \r
-               String backLayer = null;\r
-\r
-               String parameter = EditGeoServiceUtilities.getEditGeoServiceUrlParameterString(getDistributions(),\r
-                               presenceAbsenceTermColors, 0, 0, null, "tdwg4");\r
-               \r
-               return url + "?" + parameter + "&bbox="+bbox+"&ms="+width;\r
-       }\r
-\r
-       /**\r
-        * @return\r
-        */\r
-       private Set<Distribution> getDistributions() {\r
-               HashSet<Distribution> distributions = new HashSet<Distribution>();\r
-               for (DescriptionElementBase element : description.getElements()) {\r
-                       if (element instanceof Distribution) {\r
-                               distributions.add((Distribution) element);\r
-                       }\r
-               }\r
-               return distributions;\r
-       }\r
-\r
-       /**\r
-        * @return\r
-        */\r
-       private int calculateWidth(){\r
-               Rectangle browserDimensions = browser.getBounds();\r
-               \r
-               // FIXME due to a bug in the rest map service we have to ensure that width will always be an even number\r
-               int width = browserDimensions.width % 2 == 1 ? browserDimensions.width + 1 : browserDimensions.width;\r
-               \r
-               return width - 6;\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptiontree.AbstractDescriptionDetailsPage#selectionChanged(org.eclipse.ui.forms.IFormPart, org.eclipse.jface.viewers.ISelection)\r
-        */\r
-       @Override\r
-       public void selectionChanged(IFormPart part, ISelection selection) {\r
-               super.selectionChanged(part, selection);\r
-               description = ((TaxonDescriptionFeature) input).getDescription();\r
-               loadMap();\r
-       }\r
-}\r
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/ImageDetailsPage.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/ImageDetailsPage.java
deleted file mode 100644 (file)
index 618d4a5..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptiontree;\r
-\r
-import java.net.MalformedURLException;\r
-import java.net.URL;\r
-\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.browser.Browser;\r
-import org.eclipse.swt.events.ControlEvent;\r
-import org.eclipse.swt.events.ControlListener;\r
-import org.eclipse.swt.events.ModifyEvent;\r
-import org.eclipse.swt.events.ModifyListener;\r
-import org.eclipse.swt.events.SelectionAdapter;\r
-import org.eclipse.swt.events.SelectionEvent;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.widgets.Button;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.eclipse.ui.forms.IFormPart;\r
-\r
-import eu.etaxonomy.cdm.common.CdmUtils;\r
-import eu.etaxonomy.cdm.common.MediaMetaData;\r
-import eu.etaxonomy.cdm.common.MediaMetaData.ImageMetaData;\r
-import eu.etaxonomy.cdm.model.media.ImageFile;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class ImageDetailsPage extends AbstractDescriptionDetailsPage implements ModifyListener{\r
-       \r
-       private Text text;\r
-       private Browser browser;\r
-       private ImageMetaData imageMetaData = new ImageMetaData();\r
-       private String uriString;\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)\r
-        */\r
-       public void modifyText(ModifyEvent e) {\r
-               ((ImageFile) input).setUri(text.getText());\r
-               fireStateChanged();\r
-       }       \r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#createContents(org.eclipse.swt.widgets.Composite)\r
-        */\r
-       public void createContents(Composite parent) {\r
-               super.createContents(parent);\r
-               \r
-               client.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
-\r
-               section.setText("Image Details"); //$NON-NLS-1$\r
-\r
-//             // Create composite for moving image up and down in list\r
-//             final Composite moveComposite = new Composite(client, SWT.NONE);\r
-//             moveComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-//             final GridLayout gridLayout1 = new GridLayout();\r
-//             gridLayout1.numColumns = 3;\r
-//             moveComposite.setLayout(gridLayout1);\r
-//             \r
-//             // Create label\r
-//             Label moveLabel = toolkit.createLabel(moveComposite, "Move image in list:", SWT.NONE);\r
-//             moveLabel.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, false));              \r
-//             \r
-//             // Create "Up" button\r
-//             final Button upButton = toolkit.createButton(moveComposite, "Up", SWT.PUSH);\r
-//             upButton.setLayoutData(new GridData());\r
-//             upButton.addMouseListener(new MouseAdapter() {\r
-//                     public void mouseUp(MouseEvent e) {\r
-//                             showImage();\r
-//                     }\r
-//             });             \r
-//\r
-//             // Create "Down" button\r
-//             final Button downButton = toolkit.createButton(moveComposite, "Down", SWT.PUSH);\r
-//             downButton.setLayoutData(new GridData());\r
-//             downButton.addMouseListener(new MouseAdapter() {\r
-//                     public void mouseUp(MouseEvent e) {\r
-//                             showImage();\r
-//                     }\r
-//             });             \r
-               \r
-               // Create composite for search text, search term input, and "Search" button\r
-               final Composite urlComposite = new Composite(client, SWT.NONE);\r
-               urlComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-               final GridLayout gridLayout = new GridLayout();\r
-               gridLayout.numColumns = 3;\r
-               urlComposite.setLayout(gridLayout);\r
-               \r
-               // Create label\r
-               Label urlLabel = toolkit.createLabel(urlComposite, "Image URL:", SWT.NONE);\r
-               urlLabel.setLayoutData(new GridData());\r
-               \r
-               // Create input field for URL\r
-               text = toolkit.createText(urlComposite, "", SWT.BORDER | SWT.SINGLE);\r
-               final GridData gd_text = new GridData(SWT.FILL, SWT.CENTER, true, false);\r
-               text.setLayoutData(gd_text);\r
-               \r
-               // Create "Show" button\r
-               final Button showButton = toolkit.createButton(urlComposite, "Show", SWT.PUSH);\r
-               showButton.setLayoutData(new GridData());\r
-               showButton.addSelectionListener(new SelectionAdapter() {\r
-                       /**\r
-                        * Populate search results resultsTable after clicking button\r
-                        * \r
-                        * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)\r
-                        */\r
-                       @Override\r
-                       public void widgetSelected(SelectionEvent e) {\r
-                               loadImage();\r
-                       }\r
-               });     \r
-                                \r
-               browser = new Browser(client, SWT.NONE);\r
-               browser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
-               \r
-               browser.addControlListener(new ControlListener(){\r
-                       public void controlMoved(ControlEvent e) {\r
-                               showImage();\r
-                       }\r
-                       public void controlResized(ControlEvent e) {\r
-                               showImage();\r
-                       }\r
-               });\r
-       }\r
-       \r
-       private void loadImage(){\r
-               uriString  = ((ImageFile) input).getUri();\r
-               \r
-               if(uriString != null){\r
-                       try {\r
-                               imageMetaData.readFrom(new URL(uriString));\r
-                       } catch (MalformedURLException e) {\r
-                               e.printStackTrace();\r
-                       }\r
-                       showImage();\r
-               }\r
-       }\r
-       \r
-       /**\r
-        * \r
-        */\r
-       private void showImage() {\r
-               String html = "";\r
-               \r
-               if(uriString != null){\r
-                       html = "<HTML><HEAD><TITLE>HTML Test</TITLE></HEAD><BODY marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>";\r
-                       html += "<img width=\"" + calculateWidth() + "\" src=\"" + uriString + "\" />";\r
-                       html += "</BODY></HTML>";\r
-               }\r
-               browser.setText(html);\r
-       }\r
-\r
-       /**\r
-        * @return\r
-        */\r
-       private int calculateWidth() {          \r
-               return browser.getBounds().width;\r
-       }\r
-\r
-       private void moveImage(int direction) {\r
-               \r
-//             IUndoableOperation operation = null;\r
-//             try {\r
-//                     // TODO use undo context specific to editor\r
-//                     operation = new RemoveImageFromDescriptionElementOperation(event.getCommand().getName(), \r
-//                                     EditorUtil.getUndoContext(), taxon, image, element, (IPostOperationEnabled) editor);\r
-//                     EditorUtil.executeOperation(operation);\r
-//             } catch (NotDefinedException e) {\r
-//                     logger.warn("Command name not set");\r
-//             }\r
-               \r
-               \r
-               \r
-//             ImagesHelper.moveImage((DescriptionElementBase) input, getSelectedImage(), direction);\r
-//             imageViewer.refresh();\r
-//             fireStateChanged();\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#selectionChanged(org.eclipse.ui.forms.IFormPart, org.eclipse.jface.viewers.ISelection)\r
-        */\r
-       @Override\r
-       public void selectionChanged(IFormPart part, ISelection selection) {\r
-               super.selectionChanged(part, selection);\r
-               \r
-               text.removeModifyListener(this);\r
-               text.setText(\r
-                               CdmUtils.Nz(((ImageFile) input).getUri()));\r
-//             showImage();\r
-               text.addModifyListener(this);\r
-               \r
-               loadImage();\r
-       }\r
-}
\ No newline at end of file
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/LabelDetailsPage.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/LabelDetailsPage.java
deleted file mode 100644 (file)
index 83316e8..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptiontree;\r
-\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.ModifyEvent;\r
-import org.eclipse.swt.events.ModifyListener;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.eclipse.ui.forms.IFormPart;\r
-\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-import eu.etaxonomy.taxeditor.model.DescriptionHelper;\r
-\r
-/**\r
- * Edit the label for a TaxonDescription, or for a DescriptionElementBase whose cache is used\r
- * as a label, e.g. a DescriptionElementBase which contains an image list.\r
- * \r
- * @author p.ciardelli\r
- *\r
- */\r
-public class LabelDetailsPage extends AbstractDescriptionDetailsPage implements ModifyListener{\r
-       \r
-       private Text text;\r
-       private String sectionHeader;\r
-       private String description;\r
-       \r
-       public LabelDetailsPage(String sectionHeader, String description) {\r
-               this.sectionHeader = sectionHeader; \r
-               this.description = description;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)\r
-        */\r
-       public void modifyText(ModifyEvent e) {\r
-               saveLabel();\r
-               fireStateChanged();\r
-       }       \r
-       \r
-       /**\r
-        * \r
-        */\r
-       private void saveLabel() {\r
-               if (input instanceof TaxonDescription) {\r
-                       ((TaxonDescription) input).setTitleCache(text.getText());\r
-               }\r
-               if (input instanceof DescriptionElementBase) {\r
-                       DescriptionHelper.setCache((DescriptionElementBase) input, text.getText());\r
-               }\r
-       }\r
-       \r
-       private String getLabel() {\r
-               if (input instanceof TaxonDescription) {\r
-                       return ((TaxonDescription) input).getTitleCache();\r
-               }\r
-               if (input instanceof DescriptionElementBase) {\r
-                       return DescriptionHelper.getCache((DescriptionElementBase) input);\r
-               }\r
-               return "";\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#createContents(org.eclipse.swt.widgets.Composite)\r
-        */\r
-       public void createContents(Composite parent) {\r
-               super.createContents(parent);\r
-\r
-               section.setText(sectionHeader); //$NON-NLS-1$\r
-               Label label = toolkit.createLabel(client, description);\r
-               label.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));\r
-               \r
-               text = new Text(client, SWT.BORDER | SWT.MULTI);\r
-               \r
-               GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);     \r
-               gd.horizontalAlignment = SWT.FILL;\r
-               gd.grabExcessHorizontalSpace = true;\r
-\r
-               gd.heightHint = 100;\r
-               text.setLayoutData(gd);\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#selectionChanged(org.eclipse.ui.forms.IFormPart, org.eclipse.jface.viewers.ISelection)\r
-        */\r
-       @Override\r
-       public void selectionChanged(IFormPart part, ISelection selection) {\r
-               super.selectionChanged(part, selection);\r
-               text.removeModifyListener(this);\r
-               text.setText(getLabel());\r
-               text.addModifyListener(this);\r
-       }\r
-}
\ No newline at end of file
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/TextDataDetailsPage.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/TextDataDetailsPage.java
deleted file mode 100644 (file)
index 474c3fc..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptiontree;\r
-\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.ModifyEvent;\r
-import org.eclipse.swt.events.ModifyListener;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.eclipse.ui.forms.IFormPart;\r
-\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
-import eu.etaxonomy.taxeditor.model.DescriptionHelper;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class TextDataDetailsPage extends AbstractDescriptionDetailsPage implements ModifyListener{\r
-       \r
-       private Text text;\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)\r
-        */\r
-       public void modifyText(ModifyEvent e) {\r
-               DescriptionHelper.setCache((DescriptionElementBase) input, text.getText());\r
-               fireStateChanged();\r
-       }       \r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#createContents(org.eclipse.swt.widgets.Composite)\r
-        */\r
-       public void createContents(Composite parent) {          \r
-               \r
-               super.createContents(parent);\r
-               \r
-               toolkit.createLabel(client, "Text for this descriptive element:", SWT.WRAP);\r
-               \r
-               text = toolkit.createText(client, "", SWT.BORDER | SWT.MULTI | SWT.WRAP);\r
-               \r
-               GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);\r
-               gd.heightHint = 300;\r
-               text.setLayoutData(gd);\r
-\r
-        createCitationControls(parent);\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.descriptionnew.AbstractDescriptionDetailsPage#selectionChanged(org.eclipse.ui.forms.IFormPart, org.eclipse.jface.viewers.ISelection)\r
-        */\r
-       @Override\r
-       public void selectionChanged(IFormPart part, ISelection selection) {\r
-               super.selectionChanged(part, selection);\r
-               \r
-               Feature feature = ((DescriptionElementBase) input).getFeature();\r
-               \r
-               section.setText(feature.getLabel() + " Details"); //$NON-NLS-1$\r
-               \r
-               text.removeModifyListener(this);\r
-               text.setText(DescriptionHelper.getCache((DescriptionElementBase) input));\r
-               text.addModifyListener(this);\r
-       }\r
-}
\ No newline at end of file