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
+++ /dev/null
-/**\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
+++ /dev/null
-/**
- *
- */
-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);
- }
- }
-
-
-}
+++ /dev/null
-/**\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
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
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
}\r
return element.toString();\r
} \r
- \r
+\r
/**\r
* @param element\r
* @return\r
}\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
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
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
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
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
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
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
}\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
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
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
+++ /dev/null
-/**\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
+++ /dev/null
-/**\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
+++ /dev/null
-/**\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
+++ /dev/null
-/**\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
+++ /dev/null
-/**\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