taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/TaxonDescriptionEditor.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/handler/CreateDescriptionElementHandler.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/handler/DeleteDescriptionElementHandler.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/AbstractDescriptionDetailsPage.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/CommonNameDetailsPage.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/DescriptionContentProvider.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/DescriptionLabelProvider.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/DescriptionMasterDetailsBlock.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/DescriptiveInformationProvider.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/DistributionDetailsPage.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/IDescriptiveInformationProvider.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/ImageDetailsPage.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/TaxonDescriptionDetailsPage.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/TaxonDescriptionFeature.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/TaxonDescriptionTreeEditor.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptionnew/TextDataDetailsPage.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/CommonNameDetailsPage.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiontree/DescriptionContentProvider.java -text
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\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.TableWrapData;\r
-import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-abstract public class AbstractDescriptionDetailsPage implements IDetailsPage {\r
-\r
- protected IManagedForm mform;\r
- protected Object input;\r
- protected Section section;\r
- protected Composite client;\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
- TableWrapLayout layout = new TableWrapLayout();\r
- layout.topMargin = 5;\r
- layout.leftMargin = 5;\r
- layout.rightMargin = 2;\r
- layout.bottomMargin = 2;\r
- parent.setLayout(layout);\r
- TableWrapData td2 = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);\r
- td2.grabHorizontal = true;\r
- parent.setLayoutData(td2);\r
- \r
- \r
- FormToolkit toolkit = mform.getToolkit();\r
- section = toolkit.createSection(parent, Section.DESCRIPTION|Section.TITLE_BAR);\r
- section.marginWidth = 10;\r
- TableWrapData td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);\r
- td.grabHorizontal = true;\r
- section.setLayoutData(td);\r
- \r
- client = toolkit.createComposite(section);\r
- GridLayout glayout = new GridLayout();\r
- glayout.marginWidth = glayout.marginHeight = 0;\r
-// glayout.numColumns = 2;\r
- client.setLayout(glayout);\r
- \r
- section.setClient(client);\r
-\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.IFormPart#commit(boolean)\r
- */\r
- public void commit(boolean onSave) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.IFormPart#dispose()\r
- */\r
- public void dispose() {\r
- // TODO Auto-generated method stub\r
-\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.mform = form;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.IFormPart#isDirty()\r
- */\r
- public boolean isDirty() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.IFormPart#isStale()\r
- */\r
- public boolean isStale() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.IFormPart#refresh()\r
- */\r
- public void refresh() {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.IFormPart#setFocus()\r
- */\r
- public void setFocus() {\r
- // TODO Auto-generated method stub\r
-\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
- }\r
- else\r
- input = null;\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
-// data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);\r
- label.setLayoutData(data);\r
- label.setFont(parent.getFont());\r
- return label;\r
- }\r
-}\r
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\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.custom.CCombo;\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.events.SelectionListener;\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.common.Language;\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.store.VocabularyStore;\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 {\r
- private static final Logger logger = Logger.getLogger(CommonNameDetailsPage.class);\r
- \r
- private Text text;\r
-\r
- private CCombo combo;\r
- \r
- private static final int VISIBLE_ITEMS = 20;\r
- \r
- private Language language;\r
- protected Language languageTemp;\r
- private List<Language> languages; \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
- mform.dirtyStateChanged();\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
- createLabel("Language:", client, parent);\r
- \r
- // create combo\r
- combo = new CCombo(client, SWT.BORDER);\r
- combo.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL\r
- | GridData.HORIZONTAL_ALIGN_FILL));\r
- combo.setVisibleItemCount(VISIBLE_ITEMS);\r
- combo.addSelectionListener(new SelectionAdapter() {\r
- @Override\r
- public void widgetSelected(SelectionEvent e) {\r
- int i = combo.getSelectionIndex();\r
- languageTemp = languages.get(i);\r
- }\r
- });\r
- \r
- createLabel("Common name:", client, parent);\r
- \r
- text = new Text(client, SWT.BORDER | SWT.MULTI);\r
- \r
- GridData gd = new GridData(); \r
- gd.horizontalAlignment = SWT.FILL;\r
- gd.grabExcessHorizontalSpace = true;\r
- text.setLayoutData(gd);\r
- \r
- populateLanguages();\r
-\r
-// applyDialogFont(composite);\r
- \r
-\r
- }\r
- \r
- private void populateLanguages() {\r
- languages = new ArrayList<Language>();\r
- int i = 0; \r
- int index = 0;\r
- for (Language language : VocabularyStore.getLanguages()) {\r
- \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
- combo.add(description);\r
- languages.add(language);\r
- \r
- if (this.language != null && this.language.equals(language)) {\r
- index = i; \r
- }\r
- i++;\r
- }\r
- combo.select(index);\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
- combo.removeModifyListener(this);\r
- text.removeModifyListener(this);\r
- text.setText(((CommonTaxonName) input).getName());\r
- combo.addModifyListener(this);\r
- text.addModifyListener(this);\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\r
-import java.util.SortedSet;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.viewers.ITreeContentProvider;\r
-import org.eclipse.jface.viewers.Viewer;\r
-\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;\r
-import eu.etaxonomy.taxeditor.model.ImagesHelper;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class DescriptionContentProvider implements ITreeContentProvider {\r
- private static final Logger logger = Logger\r
- .getLogger(DescriptionContentProvider.class);\r
-\r
- private static final Object[] NO_CHILDREN = new Object[0];\r
-\r
- private IDescriptiveInformationProvider infoProvider;\r
-\r
- public DescriptionContentProvider(IDescriptiveInformationProvider infoProvider) {\r
- this.infoProvider = infoProvider;\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)\r
- */\r
- public Object[] getChildren(Object parentElement) {\r
- if (parentElement instanceof TaxonEditorInput) {\r
- Taxon taxon = ((TaxonEditorInput) parentElement).getTaxon();\r
- return taxon.getDescriptions().toArray();\r
- }\r
- if (parentElement instanceof TaxonDescription) {\r
- return infoProvider.getDescriptionFeatures((TaxonDescription) parentElement).toArray();\r
- }\r
- if (parentElement instanceof TaxonDescriptionFeature){\r
- TaxonDescriptionFeature taxonDescriptionFeature = (TaxonDescriptionFeature) parentElement;\r
- Feature feature = taxonDescriptionFeature.getFeature();\r
- TaxonDescription description = taxonDescriptionFeature.getDescription();\r
- if (feature.equals(Feature.IMAGE())) {\r
- return ImagesHelper.getImages(description).toArray();\r
- } else {\r
- return infoProvider.getDescriptionElements(description, feature).toArray();\r
- }\r
- }\r
-// if (parentElement instanceof DescriptionElementBase) {\r
-// return infoProvider.getDescriptionFeatures((TaxonDescription) parentElement).toArray();\r
-// }\r
- return NO_CHILDREN;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)\r
- */\r
- public Object getParent(Object element) {\r
-// if (element instanceof DescriptionElementBase) {\r
-// ((DescriptionElementBase) element).get\r
-// }\r
- return null;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)\r
- */\r
- public boolean hasChildren(Object element) {\r
- return (getChildren(element).length > 0);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)\r
- */\r
- public Object[] getElements(Object inputElement) {\r
- return getChildren(inputElement);\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.viewers.IContentProvider#dispose()\r
- */\r
- public void dispose() {}\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)\r
- */\r
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}\r
-}\r
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.viewers.LabelProvider;\r
-import org.eclipse.jface.viewers.StyledString;\r
-import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;\r
-\r
-import eu.etaxonomy.cdm.model.common.Language;\r
-import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-import eu.etaxonomy.cdm.model.media.ImageFile;\r
-import eu.etaxonomy.taxeditor.model.DescriptionHelper;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class DescriptionLabelProvider extends LabelProvider implements IStyledLabelProvider {\r
-//public class DescriptionLabelProvider extends StyledCellLabelProvider { \r
- private static final Logger logger = Logger\r
- .getLogger(DescriptionLabelProvider.class);\r
-\r
- public String getText(Object element) {\r
- if (element instanceof TaxonDescription) {\r
- return getTaxonDescriptionText((TaxonDescription) element);\r
- }\r
- if (element instanceof TaxonDescriptionFeature) {\r
- return getFeatureText((TaxonDescriptionFeature) element);\r
- }\r
- if (element instanceof CommonTaxonName) {\r
- return getCommonNameText((CommonTaxonName) element); \r
- }\r
- if (element instanceof DescriptionElementBase) {\r
- return getElementText((DescriptionElementBase) element);\r
- }\r
- if (element instanceof ImageFile) {\r
- return getImageText((ImageFile) element);\r
- }\r
- return element.toString();\r
- } \r
- \r
- /**\r
- * @param element\r
- * @return\r
- */\r
- private String getImageText(ImageFile imageFile) {\r
- String uri = imageFile.getUri();\r
- if (uri == null || uri.length() == 0) {\r
- uri = "No URL provided.";\r
- }\r
- return uri;\r
- }\r
-\r
- /**\r
- * @param element\r
- * @return\r
- */\r
- private String getElementText(DescriptionElementBase element) {\r
- String text = DescriptionHelper.getCache(element);\r
- if (text == null || text.length() == 0) {\r
- text = "No text provided";\r
- }\r
- return text;\r
- }\r
-\r
- /**\r
- * @param element\r
- * @return\r
- */\r
- private String getCommonNameText(CommonTaxonName commonName) {\r
- String name = commonName.getName();\r
- if (name == null || name.length() == 0) {\r
- name = "No name provided";\r
- }\r
- Language language = commonName.getLanguage();\r
- if (language == null) {\r
- name += " (No language provided)";\r
- } else {\r
- name += " (" + language.getDescription() + ")";\r
- }\r
- return name;\r
- }\r
-\r
- /**\r
- * @param element\r
- * @return\r
- */\r
- private String getFeatureText(TaxonDescriptionFeature descriptionFeature) {\r
- return descriptionFeature.getFeature().getLabel();\r
- }\r
-\r
- /**\r
- * @param element\r
- * @return\r
- */\r
- private String getTaxonDescriptionText(TaxonDescription description) {\r
- String text = description.getTitleCache();\r
- if (text == null || text.length() == 0) {\r
- text = "No label provided";\r
- }\r
- return "Description: " + text;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)\r
- */\r
- public StyledString getStyledText(Object element) {\r
- return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);\r
- }\r
-}\r
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.action.MenuManager;\r
-import org.eclipse.jface.viewers.ISelectionChangedListener;\r
-import org.eclipse.jface.viewers.SelectionChangedEvent;\r
-import org.eclipse.jface.viewers.TreePath;\r
-import org.eclipse.jface.viewers.TreeSelection;\r
-import org.eclipse.jface.viewers.TreeViewer;\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.Menu;\r
-import org.eclipse.swt.widgets.Tree;\r
-import org.eclipse.ui.forms.DetailsPart;\r
-import org.eclipse.ui.forms.IDetailsPage;\r
-import org.eclipse.ui.forms.IDetailsPageProvider;\r
-import org.eclipse.ui.forms.IManagedForm;\r
-import org.eclipse.ui.forms.MasterDetailsBlock;\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.Section;\r
-import org.eclipse.ui.navigator.CommonViewer;\r
-\r
-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.TaxonDescription;\r
-import eu.etaxonomy.cdm.model.description.TextData;\r
-import eu.etaxonomy.cdm.model.media.ImageFile;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class DescriptionMasterDetailsBlock extends MasterDetailsBlock {\r
- private static final Logger logger = Logger\r
- .getLogger(DescriptionMasterDetailsBlock.class);\r
-\r
- private FormPage page;\r
-\r
- private TreeViewer descriptionViewer;\r
- \r
- public DescriptionMasterDetailsBlock(FormPage page) {\r
- this.page = page;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.MasterDetailsBlock#createMasterPart(org.eclipse.ui.forms.IManagedForm, org.eclipse.swt.widgets.Composite)\r
- */\r
- protected void createMasterPart(final IManagedForm managedForm,\r
- Composite parent) {\r
- FormToolkit toolkit = managedForm.getToolkit();\r
- Section section = toolkit.createSection(parent, Section.NO_TITLE);\r
- section.marginWidth = 10;\r
- section.marginHeight = 5;\r
- Composite client = toolkit.createComposite(section, SWT.WRAP);\r
- GridLayout layout = new GridLayout();\r
- layout.numColumns = 2;\r
- layout.marginWidth = 2;\r
- layout.marginHeight = 2;\r
- client.setLayout(layout);\r
- Tree tree = toolkit.createTree(client, SWT.NULL);\r
- GridData gd = new GridData(GridData.FILL_BOTH);\r
- gd.heightHint = 20;\r
- gd.widthHint = 100;\r
- tree.setLayoutData(gd);\r
- toolkit.paintBordersFor(client);\r
- section.setClient(client);\r
- final SectionPart spart = new SectionPart(section);\r
- managedForm.addPart(spart);\r
- \r
- descriptionViewer = new TreeViewer(tree);\r
- \r
- descriptionViewer.addSelectionChangedListener(new ISelectionChangedListener() {\r
- public void selectionChanged(SelectionChangedEvent event) {\r
- managedForm.fireSelectionChanged(spart, event.getSelection());\r
- }\r
- });\r
-\r
- descriptionViewer.setAutoExpandLevel(2);\r
- descriptionViewer.setContentProvider(new DescriptionContentProvider(new DescriptiveInformationProvider()));\r
- descriptionViewer.setLabelProvider(new DescriptionLabelProvider());\r
- descriptionViewer.setInput(page.getEditor().getEditorInput());\r
- \r
- // Set tree as page's selection provider\r
- page.getSite().setSelectionProvider(descriptionViewer);\r
- \r
- // Add context menu to tree\r
- MenuManager menuMgr = new MenuManager();\r
- page.getSite().registerContextMenu(page.getId(), menuMgr, descriptionViewer);\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
- protected void createToolBarActions(IManagedForm managedForm) {\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.MasterDetailsBlock#registerPages(org.eclipse.ui.forms.DetailsPart)\r
- */\r
- protected void registerPages(DetailsPart detailsPart) {\r
- detailsPart.registerPage(TaxonDescription.class, new TaxonDescriptionDetailsPage());\r
- detailsPart.registerPage(CommonTaxonName.class, new CommonNameDetailsPage());\r
- detailsPart.registerPage(Distribution.class, new DistributionDetailsPage());\r
- detailsPart.registerPage(TextData.class, new TextDataDetailsPage());\r
- detailsPart.registerPage(ImageFile.class, new ImageDetailsPage());\r
-// detailsPart.setPageProvider(new PageProvider());\r
- }\r
-\r
- /**\r
- * @param objectAffectedByOperation \r
- * \r
- */\r
- public void refreshTree(Object revealObject) {\r
- // TODO replace all this crap w CNF\r
- descriptionViewer.setInput(page.getEditor().getEditorInput());\r
- if (revealObject instanceof DescriptionElementBase) {\r
- DescriptionElementBase element = (DescriptionElementBase) revealObject;\r
- Object[] segments = new Object[3];\r
- segments[0] = element.getInDescription();\r
- segments[1] = element.getFeature();\r
- segments[2] = element;\r
- TreePath treePath = new TreePath(segments);\r
- descriptionViewer.setSelection(new TreeSelection(treePath), true);\r
- }\r
- }\r
- \r
- class PageProvider implements IDetailsPageProvider {\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.IDetailsPageProvider#getPage(java.lang.Object)\r
- */\r
- public IDetailsPage getPage(Object key) {\r
- if (key.equals(ImageFile.class)) {\r
- return new ImageDetailsPage();\r
- }\r
- if (key.equals(TextData.class)) {\r
- return new TextDataDetailsPage();\r
- }\r
- return null;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.IDetailsPageProvider#getPageKey(java.lang.Object)\r
- */\r
- public Object getPageKey(Object object) {\r
- if (object instanceof TextData) {\r
- TextData textData = (TextData) object;\r
- if (textData.getFeature().equals(Feature.IMAGE())) {\r
- return ImageFile.class;\r
- } else {\r
- return TextData.class;\r
- }\r
- }\r
- return null;\r
- }\r
- }\r
-}\r
-
\ No newline at end of file
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\r
-import java.util.ArrayList;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class DescriptiveInformationProvider implements\r
- IDescriptiveInformationProvider {\r
- \r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.taxeditor.editor.descriptionnew.IDescriptiveInformationProvider#getDescriptionElements(eu.etaxonomy.cdm.model.description.TaxonDescription, eu.etaxonomy.cdm.model.description.Feature)\r
- */\r
- public List<DescriptionElementBase> getDescriptionElements(\r
- TaxonDescription description, Feature feature) {\r
- List<DescriptionElementBase> featureElements = new ArrayList<DescriptionElementBase>();\r
- \r
- Set<DescriptionElementBase> elements = description.getElements();\r
- if (elements != null) {\r
- for (DescriptionElementBase element : elements) {\r
- if (element.getFeature().equals(feature)) {\r
- featureElements.add(element);\r
- }\r
- }\r
- }\r
- return featureElements;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.taxeditor.editor.descriptionnew.IDescriptiveInformationProvider#getDescriptionFeatures(eu.etaxonomy.cdm.model.description.TaxonDescription)\r
- */\r
- public List<TaxonDescriptionFeature> getDescriptionFeatures(TaxonDescription description) {\r
- \r
- List<TaxonDescriptionFeature> features = new ArrayList<TaxonDescriptionFeature>();\r
- \r
- Set<DescriptionElementBase> elements = description.getElements();\r
- if (elements != null) {\r
- for (DescriptionElementBase element : elements) {\r
- TaxonDescriptionFeature taxonDescriptionFeature = new TaxonDescriptionFeature(description, element.getFeature());\r
-// Feature feature = HibernateProxyHelper.deproxy(element.getFeature(), Feature.class);\r
- if (!features.contains(taxonDescriptionFeature)) {\r
- features.add(taxonDescriptionFeature);\r
- }\r
- }\r
- }\r
- return features;\r
- }\r
-}\r
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\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.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
-import org.eclipse.ui.forms.widgets.FormToolkit;\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.description.Distribution;\r
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
-import eu.etaxonomy.cdm.model.location.NamedArea;\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(DistributionDetailsPage.class);\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
-// selectedArea = HibernateProxyHelper.deproxy(((Distribution) input).getArea(), NamedArea.class);\r
-// populateAreas();\r
-// text.addModifyListener(this);\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
- FormToolkit toolkit = mform.getToolkit();\r
- \r
- section.setText("Distribution Details"); //$NON-NLS-1$\r
- \r
- \r
- locationService = CdmStore.getLocationService();\r
- \r
- if (message != null) {\r
- createLabel(message, section, parent);\r
- }\r
- createLabel("Select an area vocabulary:", client, parent);\r
- // create vocab type\r
- vocabTypeCombo = createCombo(client);\r
- vocabTypeCombo.addSelectionListener(new SelectionAdapter() {\r
- @Override\r
- public void widgetSelected(SelectionEvent e) {\r
- selectVocabType();\r
- }\r
- });\r
- // create areas\r
- createLabel("Select an area:", client, parent);\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
- }\r
- // create presence / absence\r
- createLabel("Select status:", client, parent);\r
- statusCombo = new Combo(client, SWT.BORDER);\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
- selectStatusTerm();\r
- }\r
- });\r
- // create reference\r
- referenceComposite = new ReferenceSelectComposite(client);\r
-\r
- populateVocabTypes();\r
- populateAreas();\r
- \r
- populatePresenceAbsenceTerms();\r
- populateReference();\r
- \r
-// applyDialogFont(section);\r
-// \r
-// return composite;\r
- }\r
- \r
- private ILocationService locationService;\r
-\r
- private String title;\r
- private String message;\r
- \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 Distribution distribution;\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<?>> presenceAbsenceTerms;\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<?> lastPresenceAbsence;\r
- private static NamedAreaVocabularyType lastVocabType;\r
- private static NamedArea lastNamedArea;\r
-\r
- /**\r
- * @param shell\r
- * @param dialogTitle\r
- * @param dialogMessage\r
- */\r
-// public DistributionDialog(Shell shell, String dialogTitle,\r
-// String dialogMessage) {\r
-// super(shell);\r
-// \r
-// title = dialogTitle;\r
-// message = dialogMessage;\r
-//\r
-// locationService = CdmStore.getLocationService();\r
-// \r
-// recallPreviousSelections();\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 (lastPresenceAbsence != null) {\r
- selectedStatus = lastPresenceAbsence; \r
- }\r
- if (lastReference != null) {\r
- selectedReference = lastReference;\r
- }\r
- }\r
-\r
- /**\r
- * @param dialogTitle \r
- * @param dialogMessage \r
- * @return\r
- */\r
-// public static Distribution getDistribution(String dialogTitle,\r
-// String dialogMessage) {\r
-// DistributionDialog dialog = new DistributionDialog(EditorUtil.getShell(), \r
-// dialogTitle, \r
-// dialogMessage);\r
-// if (dialog.open() == Window.CANCEL) {\r
-// return null;\r
-// }\r
-// return dialog.getDistribution();\r
-// }\r
-\r
- /**\r
- * @return\r
- */\r
- private Distribution getDistribution() {\r
- return distribution;\r
- }\r
- \r
- /*\r
- * (non-Javadoc)\r
- * \r
- * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)\r
- */\r
-// protected void configureShell(Shell shell) {\r
-// super.configureShell(shell);\r
-// if (title != null) {\r
-// shell.setText(title);\r
-// }\r
-// }\r
- \r
-// protected Control createDialogArea(Composite parent) {\r
-// // create composite\r
-// Composite composite = (Composite) super.createDialogArea(parent);\r
-// // create message\r
-// if (message != null) {\r
-// createLabel(message, composite, parent);\r
-// }\r
-// createLabel("Select an area vocabulary:", composite, parent);\r
-// // create vocab type\r
-// vocabTypeCombo = createCombo(composite);\r
-// vocabTypeCombo.addSelectionListener(new SelectionAdapter() {\r
-// @Override\r
-// public void widgetSelected(SelectionEvent e) {\r
-// selectVocabType();\r
-// }\r
-// });\r
-// // create areas\r
-// createLabel("Select an area:", composite, parent);\r
-// for (int i = 0; i < NUM_AREA_MENUS; i++) {\r
-// areaCombos[i] = createCombo(composite); \r
-// areaCombos[i].addSelectionListener(new AreaComboListener(i));\r
-// areaCombos[i].setEnabled(false);\r
-// }\r
-// // create presence / absence\r
-// createLabel("Select status:", composite, parent);\r
-// statusCombo = new Combo(composite, SWT.BORDER);\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
-// selectStatusTerm();\r
-// }\r
-// });\r
-// // create reference\r
-// referenceComposite = new ReferenceSelectComposite(composite);\r
-//\r
-// populateVocabTypes();\r
-// populateAreas();\r
-// \r
-// populatePresenceAbsenceTerms();\r
-// populateReference();\r
-// \r
-// applyDialogFont(composite);\r
-// \r
-// return composite;\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
- selectArea(i);\r
- }\r
- }\r
- \r
- /**\r
- * @return\r
- */\r
- private Combo createCombo(Composite composite) {\r
- Combo combo = new Combo(composite, SWT.BORDER);\r
- combo.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL\r
- | GridData.HORIZONTAL_ALIGN_FILL));\r
- return combo;\r
- }\r
- \r
- /**\r
- * \r
- */\r
- private void populateVocabTypes() {\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
- * @param namedArea\r
- * @return\r
- */\r
- private List<NamedArea> getNamedAreas(NamedArea namedArea, int depth) {\r
- List<NamedArea> terms = new ArrayList<NamedArea>();\r
-// Set<NamedArea> terms = namedArea.getIncludes();\r
- terms.addAll(namedArea.getIncludes());\r
- \r
-// // FIXME fixme how?!\r
-// List<NamedArea> termList = new ArrayList<NamedArea>();\r
-// for (NamedArea area : terms){\r
-// termList.add(area);\r
-// }\r
- \r
- areas.add(depth, terms);\r
- \r
- return terms;\r
- }\r
-\r
- /**\r
- * @param selectedVocabType\r
- * @return\r
- */\r
- private List<NamedArea> getNamedAreas(NamedAreaVocabularyType vocabularyType) { \r
- List<NamedArea> topLevelTerms = locationService.getTopLevelNamedAreasByVocabularyType(vocabularyType);\r
- \r
-// OrderedTermVocabulary<NamedArea> vocabulary = locationService.getNamedAreaVocabulary(vocabularyType);\r
-//\r
-// List<NamedArea> topLevelTerms = new ArrayList<NamedArea>();\r
-// Iterator<NamedArea> it = vocabulary.iterator();\r
-// while(it.hasNext()){\r
-// \r
-// NamedArea area = HibernateProxyHelper.deproxy(it.next(), NamedArea.class);\r
-//// try{\r
-//// area3 =\r
-//// }catch(Exception e){\r
-//// logger.warn("Nope");\r
-//// }\r
-//// NamedArea area2 = area3.getPartOf();\r
-//// \r
-//// if(!(area2 instanceof NamedArea)){\r
-//// area2 = CdmBase.deproxy(area2, NamedArea.class);\r
-//// }\r
-// \r
-// if(area.getPartOf() == null){\r
-// topLevelTerms.add(area);\r
-// }\r
-//\r
-// }\r
- // TODO is this the right order?\r
- Collections.reverse(topLevelTerms);\r
- \r
- areas.add(0, topLevelTerms);\r
- return topLevelTerms;\r
- }\r
-// for(NamedArea area : vocabulary){ \r
-// NamedArea area2 = area.getPartOf();\r
-// \r
-// if(!(area.getPartOf() instanceof NamedArea)){\r
-// area2 = CdmBase.deproxy(area.getPartOf(), NamedArea.class);\r
-// }\r
-// \r
-// if(area2 == null){\r
-// topLevelTerms.add(area);\r
-// }\r
-\r
-\r
- /**\r
- * \r
- */\r
- private void populatePresenceAbsenceTerms() {\r
- int selectedIndex = -1;\r
- int i = 0;\r
- for (PresenceAbsenceTermBase<?> term : getPresenceAbsenceTerms()) {\r
- if (term == null) {\r
- } else {\r
- statusCombo.add(term.getLabel(CdmStore.getDefaultLanguage())); \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
- private void populateReference() {\r
- if (selectedReference != null) {\r
- referenceComposite.setReference(selectedReference);\r
- }\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
- * @return\r
- */\r
- private List<PresenceAbsenceTermBase<PresenceAbsenceTermBase<?>>> getPresenceAbsenceTerms() {\r
- return PreferencesUtil.getPreferredPresenceAbsenceTerms();\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
-// updateButtons();\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
- * \r
- */\r
- protected void selectVocabType() {\r
- int i = vocabTypeCombo.getSelectionIndex();\r
- selectedVocabType = getVocabularyTypes().get(i);\r
- \r
- clearAreas();\r
- \r
- populateAreas(0);\r
- }\r
-\r
- /**\r
- * \r
- */\r
- private void populateAreas() {\r
- if (selectedArea == null) {\r
- return;\r
- }\r
- List<NamedArea> areasTmp = new ArrayList<NamedArea>();\r
- NamedArea namedAreaTmp = selectedArea;\r
- NamedArea parentArea = null;\r
- do {\r
- areasTmp.add(namedAreaTmp);\r
- parentArea = HibernateProxyHelper.deproxy(namedAreaTmp.getPartOf(), NamedArea.class);\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 i\r
- */\r
- private void populateAreas(int depth) {\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(NamedArea areaTmp : areasTmp){\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
- protected void selectStatusTerm() {\r
- int i = statusCombo.getSelectionIndex();\r
- selectedStatus = presenceAbsenceTerms.get(i);\r
- \r
-// updateButtons();\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
-// protected void createButtonsForButtonBar(Composite parent) {\r
-// createButton(parent, IDialogConstants.OK_ID,\r
-// IDialogConstants.OK_LABEL, true);\r
-// createButton(parent, IDialogConstants.CANCEL_ID,\r
-// IDialogConstants.CANCEL_LABEL, false);\r
-// \r
-// updateButtons(); \r
-// }\r
- \r
-// protected void buttonPressed(int buttonId) {\r
-// if (IDialogConstants.OK_ID == buttonId) {\r
-// okPressed();\r
-// } else if (IDialogConstants.CANCEL_ID == buttonId) {\r
-// cancelPressed();\r
-// }\r
-// }\r
-\r
-// protected void okPressed() {\r
-// createDistribution();\r
-// setStaticFields();\r
-// super.okPressed();\r
-// }\r
- \r
- /**\r
- * \r
- */\r
- private void setStaticFields() {\r
- lastPresenceAbsence = getPresenceAbsenceTerm();\r
- lastNamedArea = selectedArea;\r
- lastReference = getReference(); \r
- lastVocabType = getVocabType();\r
- }\r
-\r
- /**\r
- * @return\r
- */\r
- private NamedAreaVocabularyType getVocabType() {\r
- int i = vocabTypeCombo.getSelectionIndex();\r
- return vocabularyTypes.get(i);\r
- }\r
-\r
- /**\r
- * @return\r
- */\r
- private ReferenceBase<?> getReference() {\r
- return referenceComposite.getReference();\r
- }\r
-\r
- /**\r
- * @return\r
- */\r
- private String getMicroReference() {\r
- return referenceComposite.getMicroReference();\r
- }\r
- \r
- /**\r
- * @return\r
- */\r
- private PresenceAbsenceTermBase<?> getPresenceAbsenceTerm() {\r
- int i = statusCombo.getSelectionIndex();\r
- return presenceAbsenceTerms.get(i);\r
- }\r
- \r
- /**\r
- * \r
- */\r
- private void createDistribution() {\r
- distribution = Distribution.NewInstance(selectedArea, selectedStatus);\r
- if (referenceComposite.getReference() != null) {\r
- selectedReference = getReference();\r
- distribution.setCitation(selectedReference);\r
- }\r
- if (referenceComposite.getMicroReference() != "") {\r
- distribution.setCitationMicroReference(\r
- getMicroReference());\r
- }\r
- }\r
-\r
-// private void updateButtons() {\r
-// setOkEnabled(isDialogComplete());\r
-// }\r
-// \r
- private boolean isDialogComplete() {\r
- return\r
- (selectedArea != null && selectedStatus != null);\r
- }\r
- \r
-// private void setOkEnabled(boolean enabled) {\r
-// getButton(IDialogConstants.OK_ID).setEnabled(enabled);\r
-// }\r
-}\r
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\r
-import java.util.List;\r
-\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public interface IDescriptiveInformationProvider {\r
-\r
- List<TaxonDescriptionFeature> getDescriptionFeatures(TaxonDescription description);\r
- \r
- List<DescriptionElementBase> getDescriptionElements(TaxonDescription description, Feature feature);\r
- \r
-}\r
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\r
-import java.net.URI;\r
-import java.net.URISyntaxException;\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.events.MouseAdapter;\r
-import org.eclipse.swt.events.MouseEvent;\r
-import org.eclipse.swt.events.PaintEvent;\r
-import org.eclipse.swt.events.PaintListener;\r
-import org.eclipse.swt.graphics.Image;\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.Canvas;\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.common.CdmUtils;\r
-import eu.etaxonomy.cdm.model.media.ImageFile;\r
-import eu.etaxonomy.taxeditor.model.ImageResources;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class ImageDetailsPage extends AbstractDescriptionDetailsPage implements ModifyListener{\r
- \r
- private Text text;\r
- private Canvas canvas;\r
- private Image image;\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
- mform.dirtyStateChanged();\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
- createLabel("Image URL:", client, parent);\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 = 2;\r
- urlComposite.setLayout(gridLayout);\r
- \r
- // Create input field for search term\r
- text = new Text(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 "Search" button\r
- final Button showButton = mform.getToolkit().createButton(urlComposite, "Show", SWT.PUSH);\r
-// final Button showButton = new Button(urlComposite, SWT.NONE);\r
- showButton.setLayoutData(new GridData());\r
-// showButton.setText("Show");\r
- showButton.addMouseListener(new MouseAdapter() {\r
- \r
- // Populate search results resultsTable after clicking button\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 imageComposite = new Composite(client, SWT.BORDER);\r
- imageComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
- imageComposite.setLayout(new GridLayout());\r
- \r
-// canvas = new Canvas(this, SWT.NO_REDRAW_RESIZE);\r
- canvas = new Canvas(imageComposite, SWT.NONE);\r
- \r
- canvas.addPaintListener (new PaintListener () {\r
- public void paintControl (PaintEvent e) {\r
- if (image != null) {\r
-// canvas.setBounds(image.getBounds());\r
-// e.gc.drawImage (image, canvas.getLocation().x, canvas.getLocation().y);\r
- e.gc.drawImage (image, 0, 0);\r
- }\r
- }\r
- });\r
- }\r
- \r
- /**\r
- * \r
- */\r
- private void showImage() {\r
- String uriString = ((ImageFile) input).getUri();\r
- if (uriString == null || uriString.length() == 0) {\r
- // TODO draw empty image\r
- return;\r
- }\r
- try {\r
- URI uri = new URI (uriString);\r
- image = ImageResources.getImage(uri);\r
- canvas.setBounds(image.getBounds()); \r
- } catch (URISyntaxException e) {\r
- // TODO Auto-generated catch block\r
- e.printStackTrace();\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
- text.removeModifyListener(this);\r
- text.setText(\r
- CdmUtils.Nz(((ImageFile) input).getUri()));\r
- text.addModifyListener(this);\r
- \r
- showImage();\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\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.TaxonDescription;\r
-import eu.etaxonomy.taxeditor.model.DescriptionHelper;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class TaxonDescriptionDetailsPage 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
- ((TaxonDescription) input).setTitleCache(text.getText());\r
- mform.dirtyStateChanged();\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("Description Details"); //$NON-NLS-1$\r
- \r
- createLabel("Edit description's label:", client, parent);\r
- \r
- text = new Text(client, SWT.BORDER | SWT.MULTI);\r
- \r
-// GridData gd = new GridData(GridData.GRAB_HORIZONTAL\r
-// | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL\r
-// | GridData.VERTICAL_ALIGN_CENTER);\r
- GridData gd = new GridData(); \r
- gd.horizontalAlignment = SWT.FILL;\r
- gd.grabExcessHorizontalSpace = true;\r
-\r
- gd.heightHint = 100;\r
- text.setLayoutData(gd);\r
- \r
-// text.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL\r
-// | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL\r
-// | GridData.VERTICAL_ALIGN_CENTER));\r
- \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
- text.removeModifyListener(this);\r
- text.setText(((TaxonDescription) input).getTitleCache());\r
- text.addModifyListener(this);\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-\r
-/**\r
- * Helper class used to group a description's elements by feature.\r
- * \r
- * @author p.ciardelli\r
- *\r
- */\r
-public class TaxonDescriptionFeature {\r
- private TaxonDescription description;\r
- private Feature feature;\r
-\r
- public TaxonDescriptionFeature(TaxonDescription description, Feature feature) {\r
- this.description = description;\r
- this.feature = feature;\r
- }\r
- \r
- /**\r
- * @return the description\r
- */\r
- public TaxonDescription getDescription() {\r
- return description;\r
- }\r
-\r
- /**\r
- * @return the feature\r
- */\r
- public Feature getFeature() {\r
- return feature;\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see java.lang.Object#equals(java.lang.Object)\r
- */\r
- @Override\r
- public boolean equals(Object obj) {\r
- if (obj == null || !(obj instanceof TaxonDescriptionFeature)) {\r
- return false;\r
- }\r
- TaxonDescriptionFeature tdf = (TaxonDescriptionFeature) obj;\r
- if (feature.equals(tdf.getFeature()) && description.equals(tdf.getDescription())) {\r
- return true;\r
- }\r
- return super.equals(obj);\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\r
-\r
-import org.eclipse.jface.viewers.ISelectionProvider;\r
-import org.eclipse.ui.IEditorInput;\r
-import org.eclipse.ui.IEditorSite;\r
-import org.eclipse.ui.forms.IManagedForm;\r
-import org.eclipse.ui.forms.editor.FormEditor;\r
-import org.eclipse.ui.forms.editor.FormPage;\r
-import org.eclipse.ui.forms.widgets.ScrolledForm;\r
-\r
-import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;\r
-\r
-/**\r
- * @author p.ciardelli\r
- *\r
- */\r
-public class TaxonDescriptionTreeEditor extends FormPage implements IPostOperationEnabled {\r
-\r
- private static final String ID = "eu.etaxonomy.taxeditor.descriptiontreeeditor";\r
- \r
- private DescriptionMasterDetailsBlock block;\r
-\r
- /**\r
- * @param editor\r
- */\r
- public TaxonDescriptionTreeEditor(FormEditor editor) {\r
- super(editor, "id","title");\r
- block = new DescriptionMasterDetailsBlock(this);\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.editor.FormPage#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)\r
- */\r
- @Override\r
- public void init(IEditorSite site, IEditorInput input) {\r
- ISelectionProvider selectionProvider = null;\r
- if (getSite() != null && getSite().getSelectionProvider() != null) {\r
- selectionProvider = getSite().getSelectionProvider();\r
- site.setSelectionProvider(selectionProvider);\r
- }\r
- super.init(site, input);\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm)\r
- */\r
- protected void createFormContent(final IManagedForm managedForm) {\r
- final ScrolledForm form = managedForm.getForm();\r
- block.createContent(managedForm);\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.editor.FormPage#getId()\r
- */\r
- @Override\r
- public String getId() {\r
- return ID;\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.forms.editor.FormPage#isEditor()\r
- */\r
- @Override\r
- public boolean isEditor() {\r
- return true;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)\r
- */\r
- public boolean postOperation(CdmBase objectAffectedByOperation) {\r
- block.refreshTree(objectAffectedByOperation);\r
- return true;\r
- }\r
-}\r
+++ /dev/null
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.editor.descriptionnew;\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.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
- mform.dirtyStateChanged();\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("Descriptive Element Details"); //$NON-NLS-1$\r
- \r
- createLabel("Text for this descriptive element:", client, parent);\r
- \r
- text = new Text(client, SWT.BORDER | SWT.MULTI);\r
- \r
-// GridData gd = new GridData(GridData.GRAB_HORIZONTAL\r
-// | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL\r
-// | GridData.VERTICAL_ALIGN_CENTER);\r
- GridData gd = new GridData(); \r
- gd.horizontalAlignment = SWT.FILL;\r
- gd.grabExcessHorizontalSpace = true;\r
-\r
- gd.heightHint = 500;\r
- text.setLayoutData(gd);\r
- \r
-// text.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL\r
-// | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL\r
-// | GridData.VERTICAL_ALIGN_CENTER));\r
- \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
- text.removeModifyListener(this);\r
- text.setText(DescriptionHelper.getCache((DescriptionElementBase) input));\r
- text.addModifyListener(this);\r
- }\r
-}
\ No newline at end of file