*/
package eu.etaxonomy.taxeditor.editor.view.dataimport;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.widgets.Composite;
public class SpecimenProviderSelectionWizardPage extends WizardPage{
private SpecimenProviderSelectionController specimenProviderSelectionController;
+ private URI endPoint;
protected SpecimenProviderSelectionWizardPage(String pageName) {
super(pageName);
*/
@Override
public void createControl(Composite parent) {
- specimenProviderSelectionController = new SpecimenProviderSelectionController(parent);
+ specimenProviderSelectionController = SpecimenProviderSelectionController.getInstance(parent, getWizard());
setControl(specimenProviderSelectionController.getComposite());
}
}
}
+ /**
+ * @return
+ * @throws URISyntaxException
+ */
+ public URI getEndPoint() {
+ return endPoint;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.WizardPage#isPageComplete()
+ */
+ @Override
+ public boolean isPageComplete() {
+ if(specimenProviderSelectionController.getComposite().getBtnBioCaseProvider().getSelection()){
+ endPoint = null;
+ try {
+ endPoint = new URL(specimenProviderSelectionController.getComposite().getTxtAccessPoint().getText()).toURI();
+ this.setErrorMessage(null);
+ return true;
+ } catch (MalformedURLException e) {
+ setErrorMessage("A valid URL has to be entered.");
+ return false;
+ } catch (URISyntaxException e) {
+ setErrorMessage("A valid URL has to be entered.");
+ return false;
+ }
+ }
+ else if(specimenProviderSelectionController.getComposite().getBtnGbif().getSelection()){
+ this.setErrorMessage(null);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @return
+ */
+ public SpecimenProviderSelectionController getController() {
+ return specimenProviderSelectionController;
+ }
+
+
}
@Override
public boolean performFinish() {
searchPage.getController().saveLastSate();
-
+ providerSelectionPage.getController().saveLastState();
+
DataImportEditorInput<?> input = null;
query = searchPage.getQuery();
switch (providerSelectionPage.getQueryType()) {
case BIOCASE:
- input = new BioCaseEditorInput(query, null);
+ input = new BioCaseEditorInput(query, providerSelectionPage.getEndPoint());
break;
case GBIF:
input = new GbifImportEditorInput(query);
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.AbstractTreeViewer;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.jface.viewers.TreeViewer;
viewer.setContentProvider(new DerivateContentProvider());
labelProvider = new DerivateLabelProvider();
viewer.setLabelProvider(labelProvider);
- viewer.setAutoExpandLevel(2);
+ viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
// Propagate selection from viewer
getSite().setSelectionProvider(viewer);
import org.eclipse.ui.actions.CompoundContributionItem;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.cdm.model.molecular.Sequence;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
/**
* Context menu for the creation of derivates in the derivate hierarchy.
new ContributionItem() {
@Override
public void fill(Menu menu, int index) {
- DefinedTerm artworkTerm = DerivateLabelProvider.getArtworkTerm();
- DefinedTerm livingPlantPhotoTerm = DerivateLabelProvider.getLivingPlantPhotoTerm();
- DefinedTerm specimenScanTerm = DerivateLabelProvider.getSpecimenScanTerm();
MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
addItem.setText("Add...");
Menu addMenu = new Menu(menu);
new MenuItem(addMenu, SWT.SEPARATOR);
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
- createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm);
- createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
- createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
+ createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
}
//context menu for Specimen
else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
- createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm);
- createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
- createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
+ createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
}
//context menu for TissueSample
else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
return contributionItems;
}
- private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
+ private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
MenuItem menuItem = new MenuItem(menu, SWT.NONE);
menuItem.setText(menuLabel);
- menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, kindOfUnit));
- }
-
- private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
- createMenuItem(menu, menuLabel, selectedNode, childClass, specimenType, null);
+ menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType));
}
private class WidgetSelectionListener extends SelectionAdapter{
//TODO: we need a common interface for the generic like e.g. "IDerivateHierarchyNode"
private final Class<?> childClass;
private final SpecimenOrObservationType specimenType;
- private final DefinedTerm kindOfUnit;
/**
* @param selectedNode
* @param specimenType
- * @param kindOfUnit
*/
- public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
+ public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
this.selectedNode = selectedNode;
this.childClass = childClass;
this.specimenType = specimenType;
- this.kindOfUnit = kindOfUnit;
}
/* (non-Javadoc)
derivedUnit = MediaSpecimen.NewInstance(specimenType);
//a MediaSpecimen with no media attached does not make sense. Hence we add one
((MediaSpecimen)derivedUnit).setMediaSpecimen(Media.NewInstance());
- derivedUnit.setKindOfUnit(kindOfUnit);
}
else{
derivedUnit = DerivedUnit.NewInstance(specimenType);
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry exported="true" kind="lib" path="lib/bioinfweb.commons.swing.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/core-1.8.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/sequencing-1.8.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jfreechart-1.0.17/lib/jfreechart-1.0.17-swt.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/bioinfweb.commons.tic.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/LibrAlign.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/biojava3-alignment-3.0.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/bioinfweb.commons.experimental.bio.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/biojava3-core-3.0.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/bioinfweb.commons.core.jar"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry including="**/*.java" kind="src" path="src/main/java"/>
<classpathentry including="**/*.java" kind="src" path="src/test/java"/>
<classpathentry kind="src" path="src/main/resources"/>
<classpathentry including="**/*.java" kind="src" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
eu.etaxonomy.taxeditor.view.derivateSearch,
eu.etaxonomy.taxeditor.view.detail,
eu.etaxonomy.taxeditor.view.specimenSearch,
- eu.etaxonomy.taxeditor.view.supplementaldata
+ eu.etaxonomy.taxeditor.view.supplementaldata,
+ info.bioinfweb.commons,
+ info.bioinfweb.commons.appversion,
+ info.bioinfweb.commons.bio,
+ info.bioinfweb.commons.bio.alignment.pairwise,
+ info.bioinfweb.commons.bio.biojava3.alignment,
+ info.bioinfweb.commons.bio.biojava3.alignment.io,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.fasta,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.hennig86,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.mega,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.nexus,
+ info.bioinfweb.commons.bio.biojava3.alignment.io.phylip,
+ info.bioinfweb.commons.bio.biojava3.alignment.template,
+ info.bioinfweb.commons.bio.biojava3.core.sequence,
+ info.bioinfweb.commons.bio.biojava3.core.sequence.compound,
+ info.bioinfweb.commons.bio.biojava3.core.sequence.io,
+ info.bioinfweb.commons.bio.biojava3.core.sequence.template,
+ info.bioinfweb.commons.bio.biojava3.core.sequence.views,
+ info.bioinfweb.commons.bio.biojavax.bio.phylo.io.nexus,
+ info.bioinfweb.commons.changemonitor,
+ info.bioinfweb.commons.collections,
+ info.bioinfweb.commons.graphics,
+ info.bioinfweb.commons.io,
+ info.bioinfweb.commons.log,
+ info.bioinfweb.commons.progress,
+ info.bioinfweb.commons.text
Require-Bundle: org.eclipse.osgi,
org.eclipse.ui,
org.eclipse.jface.text,
xpp3-1.1.4c.jar,
xpp3_min-1.1.4c.jar,
xstream-1.4.4.jar,
- yjp-controller-api-redist-9.0.8.jar
+ yjp-controller-api-redist-9.0.8.jar,
+ lib/bioinfweb.commons.core.jar,
+ lib/biojava3-core-3.0.7.jar,
+ lib/bioinfweb.commons.experimental.bio.jar,
+ lib/biojava3-alignment-3.0.7.jar,
+ lib/LibrAlign.jar,
+ lib/bioinfweb.commons.tic.jar,
+ lib/jfreechart-1.0.17/lib/jfreechart-1.0.17-swt.jar,
+ lib/bioinfweb.commons.swing.jar,
+ lib/core-1.8.5.jar,
+ lib/sequencing-1.8.5.jar
.,\
plugin.xml,\
icons/,\
- p2.inf
+ p2.inf,\
+ lib/bioinfweb.commons.core.jar,\
+ lib/biojava3-core-3.0.7.jar,\
+ lib/bioinfweb.commons.experimental.bio.jar,\
+ lib/biojava3-alignment-3.0.7.jar,\
+ lib/LibrAlign.jar,\
+ lib/bioinfweb.commons.tic.jar,\
+ lib/jfreechart-1.0.17/lib/jfreechart-1.0.17-swt.jar,\
+ lib/bioinfweb.commons.swing.jar,\
+ lib/core-1.8.5.jar,\
+ lib/sequencing-1.8.5.jar
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.TermBase;
import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
return getFilteredTerms(TermStore.getTerms(termType, null));
}
+ /**
+ *
+ * @param clazz
+ * @return
+ */
+ public <T extends DefinedTermBase> List<T> getPreferredTerms(TermVocabulary<T> termVocabulary){
+ return getFilteredTerms(new ArrayList<T>(TermStore.getTerms(termVocabulary, null)));
+ }
+
/**
*
* @param clazz
String typeName = getTermClass(initialTerms);
Collection<UUID> hiddenTermUuids = hiddenTermsMap.get(typeName);
-
+
if(hiddenTermUuids == null){
return initialTerms;
if(! hiddenTermUuids.contains(((TaxonRelationshipTypeInverseContainer) term).getType().getUuid())){
T type = (T)((TaxonRelationshipTypeInverseContainer) term).getType();
filteredTerms.add(type);
-
+
}
}
if(! hiddenTermUuids.contains(term.getUuid())){
}
private <T extends DefinedTermBase> String getTermClass(Collection<T> initialTerms){
-
+
String result = null;
if(!initialTerms.isEmpty()){
-
+
//TODO: there should be a more generic solution!!
T entity = initialTerms.iterator().next();
if (entity instanceof TaxonRelationshipTypeInverseContainer){
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.cdm.model.description.AbsenceTerm;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
return getTermsFromService(termType, comparator);
}
+ /**
+ * Returns an alphabetically sorted list of terms (anything that extends {@link DefinedTermBase}) of the given {@link TermType})
+ * currently available in the system.
+ *
+ * @param termType the term type
+ * @return an alphabetically sorted list of terms
+ */
+ public static <TERM extends DefinedTermBase> Set<TERM> getTerms(TermVocabulary<TERM> termVocabulary, Comparator<DefinedTermBase<?>> comparator){
+ return termVocabulary.getTerms();
+ }
+
/**
* Returns a list of terms of the given type currently available in the system.
* If <code>filtered</code> is set to <code>true</code>, all terms for certain types will be
import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.store.CdmStore;
private List<T> customPreferredTerms;
- /**
- * <p>
- * Constructor for AbstractTermComboElement.
- * </p>
- *
- * @param parentElement
- * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
- * object.
- * @param style
- * a int.
- * @param formFactory
- * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
- * object.
- * @param labelString
- * a {@link java.lang.String} object.
- * @param selection
- * a T object.
- * @param visibleItems
- * a int.
- * @param <T>
- * a T object.
- */
public TermComboElement(CdmFormFactory formFactory,
ICdmFormElement parentElement, TermType termType, String labelString, T selection,
int style) {
- super(formFactory, parentElement);
-
- this.termClass = (Class<T>) DefinedTerm.class;
-
- if (labelString != null) {
- label = formFactory.createLabel(getLayoutComposite(), labelString);
- addControl(label);
- }
-
- // create combo
- combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY);
- addControl(combo);
- combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
- combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
-
- //TODO try to remove generic T and avoid classes to be used
- populateTerms((List<T>) getTermManager().getPreferredTerms(termType));
-
- combo.addSelectionListener(this);
- combo.addDisposeListener(this);
- PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
-
- if (selection != null) {
- setSelection(selection);
- }
+ this(formFactory, parentElement, null, termType, null, labelString, selection, style);
}
- /**
- * <p>
- * Constructor for AbstractTermComboElement.
- * </p>
- *
- * @param parentElement
- * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
- * object.
- * @param style
- * a int.
- * @param formFactory
- * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
- * object.
- * @param labelString
- * a {@link java.lang.String} object.
- * @param selection
- * a T object.
- * @param visibleItems
- * a int.
- * @param <T>
- * a T object.
- */
public TermComboElement(CdmFormFactory formFactory,
- ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection,
- int style) {
- super(formFactory, parentElement);
+ ICdmFormElement parentElement, TermVocabulary<?> termVocabulary, String labelString, T selection,
+ int style) {
+ this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, style);
+ }
- this.termClass = termClass;
+ public TermComboElement(CdmFormFactory formFactory,
+ ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection,
+ int style) {
+ this(formFactory, parentElement, termClass, null, null, labelString, selection, style);
+ }
- if (labelString != null) {
- label = formFactory.createLabel(getLayoutComposite(), labelString);
- addControl(label);
- }
+ private TermComboElement(CdmFormFactory formFactory,
+ ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, String labelString, T selection,
+ int style) {
+ super(formFactory, parentElement);
+
+ if(termClass!=null){
+ this.termClass = termClass;
+ }
+ else{
+ this.termClass = (Class<T>) DefinedTerm.class;
+ }
- // create combo
- combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY);
- addControl(combo);
- combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
- combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+ if (labelString != null) {
+ label = formFactory.createLabel(getLayoutComposite(), labelString);
+ addControl(label);
+ }
- populateTerms(getPreferredTerms());
+ // create combo
+ combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY | style);
+ addControl(combo);
+ combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+ combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
- combo.addSelectionListener(this);
- combo.addDisposeListener(this);
- PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+ if(termType!=null){
+ //TODO try to remove generic T and avoid classes to be used
+ populateTerms((List<T>) getTermManager().getPreferredTerms(termType));
+ }
+ else if(termVocabulary!=null){
+ populateTerms((List<T>) getTermManager().getPreferredTerms(termVocabulary));
+ }
+ else if(this.termClass!=null){
+ populateTerms(getPreferredTerms());
+ }
- if (selection != null) {
- setSelection(selection);
- }
+ combo.addSelectionListener(this);
+ combo.addDisposeListener(this);
+ PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+
+ if (selection != null) {
+ setSelection(selection);
+ }
}
/**
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.cdm.model.common.TimePeriod;
import eu.etaxonomy.cdm.model.common.User;
import eu.etaxonomy.cdm.model.common.VersionableEntity;
return element;
}
+ /**
+ * <p>
+ * createTermComboElement
+ * </p>
+ *
+ * @param termComboType
+ * a
+ * {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.TermComboType}
+ * object.
+ * @param parentElement
+ * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+ * object.
+ * @param labelString
+ * a {@link java.lang.String} object.
+ * @param selection
+ * a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase}
+ * object.
+ * @param style
+ * a int.
+ * @return a {@link eu.etaxonomy.taxeditor.ui.combo.TermComboElement}
+ * object.
+ */
+
+ public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+ TermVocabulary<?> termVocabulary,
+ ICdmFormElement parentElement,
+ String labelString,
+ T selection,
+ int style) {
+ TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termVocabulary, labelString, selection, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
/**
* <p>
* createEnumComboElement
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.joda.time.DateTime;
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
-import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.cdm.model.common.VocabularyEnum;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.occurrence.Collection;
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.media.MediaRepresentationSection;
-import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
/**
*/
public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<MediaSpecimen> {
+ private final TermVocabulary mediaSpecimenVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.MediaSpecimenKindOfUnit.getUuid());
+
private TermComboElement<DefinedTerm> comboKindOfUnit;
private LanguageStringWithLabelElement textTitleLanguageString;
private EntitySelectionElement<AgentBase> selectionArtist;
formFactory.createLabel(formElement, "No media attached to this MediaSpecimen!");
}
else{
- comboKindOfUnit = formFactory.createDefinedTermComboElement(TermType.KindOfUnit, formElement, "Kind of Media", entity.getKindOfUnit(), style);
+ comboKindOfUnit = formFactory.createDefinedTermComboElement(mediaSpecimenVocabulary, formElement, "Kind of Media", entity.getKindOfUnit(), style);
textTitleLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Motif", media.getTitle(), style);
selectionArtist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared by", media.getArtist(), EntitySelectionElement.ALL, style);
else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getSpecimenScanTerm())){
text = "Specimen Scan";
}
+ else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getDetailImageTerm())){
+ text = "Detail Image";
+ }
}
if(text!=null){
super.setText(text);
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
package eu.etaxonomy.taxeditor.view.datasource;
+import info.bioinfweb.commons.bio.biojava3.alignment.SimpleAlignment;
+import info.bioinfweb.commons.bio.biojava3.alignment.template.Alignment;
+import info.bioinfweb.commons.bio.biojava3.core.sequence.compound.AlignmentAmbiguityNucleotideCompoundSet;
+import info.bioinfweb.libralign.AlignmentArea;
+import info.bioinfweb.libralign.dataarea.implementations.ConsensusSequenceArea;
+import info.bioinfweb.libralign.pherogram.BioJavaPherogramProvider;
+import info.bioinfweb.libralign.pherogram.PherogramFormats.QualityOutputType;
+import info.bioinfweb.libralign.pherogram.PherogramHeadingView;
+import info.bioinfweb.libralign.pherogram.PherogramTraceCurveView;
+import info.bioinfweb.libralign.sequenceprovider.implementations.BioJavaSequenceDataProvider;
+import info.bioinfweb.libralign.sequenceprovider.tokenset.BioJavaTokenSet;
+
+import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
+import org.biojava.bio.chromatogram.ChromatogramFactory;
+import org.biojava.bio.chromatogram.UnsupportedChromatogramFormatException;
+import org.biojava3.core.sequence.DNASequence;
+import org.biojava3.core.sequence.compound.NucleotideCompound;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-import org.springframework.security.core.GrantedAuthority;
import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
import eu.etaxonomy.taxeditor.model.IContextListener;
import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
/**
* <p>CdmDataSourceViewPart class.</p>
* @version 1.0
*/
public class CdmDataSourceViewPart extends ViewPart{
-
+
private static final Logger logger = Logger.getLogger(CdmDataSourceViewPart.class);
-
+
private class ContextListener extends ContextListenerAdapter{
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.model.IContextListener#contextAboutToStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
@Override
public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
monitor.subTask("Refreshing Datasource View");
- viewer.refresh();
+ viewer.refresh();
}
/* (non-Javadoc)
@Override
public void contextStop(IMemento memento, IProgressMonitor monitor) {
monitor.subTask("Refreshing Datasource View");
- viewer.refresh();
+ viewer.refresh();
}
/* (non-Javadoc)
viewer.refresh();
}
}
-
+
private class DataSourceJob extends Job{
- private List<ICdmSource> cdmSources;
+ private final List<ICdmSource> cdmSources;
/**
* @param name
public IStatus run(final IProgressMonitor monitor) {
try{
logger.debug("Begin of eclipse core runtime Job to Retrieve datasources");
- monitor.beginTask("Retrieving datasources", cdmSources.size() + 1);
-
+ monitor.beginTask("Retrieving datasources", cdmSources.size() + 1);
+
final List<CdmMetaDataAwareDataSourceContainer> containers = new ArrayList<CdmMetaDataAwareDataSourceContainer>();
-
+
for(ICdmSource cdmSource : cdmSources){
containers.add(new CdmMetaDataAwareDataSourceContainer(cdmSource));
}
-
+
Display.getDefault().asyncExec(new Runnable() {
-
+
@Override
public void run() {
viewer.setInput(containers);
}
});
monitor.worked(1);
-
+
for(final CdmMetaDataAwareDataSourceContainer container : containers){
-
-
- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " : next DataSourceContainer");
+
+
+ if(logger.isDebugEnabled()) {
+ logger.debug(" #" + container.hashCode() + " : next DataSourceContainer");
+ }
container.getMetaDataFromDataSource();
- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " : metadata retrieved, creating new runnable ...");
+ if(logger.isDebugEnabled()) {
+ logger.debug(" #" + container.hashCode() + " : metadata retrieved, creating new runnable ...");
+ }
Display.getDefault().asyncExec(new Runnable() {
-
+
@Override
public void run() {
- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " starting sub thread to update ...");
+ if(logger.isDebugEnabled()) {
+ logger.debug(" #" + container.hashCode() + " starting sub thread to update ...");
+ }
viewer.update(container, null);
- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " end of sub thread to update ...");
+ if(logger.isDebugEnabled()) {
+ logger.debug(" #" + container.hashCode() + " end of sub thread to update ...");
+ }
}
});
- if(logger.isDebugEnabled()) logger.debug(" #" + container.hashCode() + " done");
+ if(logger.isDebugEnabled()) {
+ logger.debug(" #" + container.hashCode() + " done");
+ }
monitor.worked(1);
}
-
+
}finally{
monitor.done();
}
return Status.OK_STATUS;
}
}
-
+
/** Constant <code>ID="eu.etaxonomy.taxeditor.store.datasource"{trunked}</code> */
public static String ID = "eu.etaxonomy.taxeditor.view.datasource";
-
+
private TableViewer viewer;
private String partNameCache;
private IWorkbenchSiteProgressService service;
-
+
private IContextListener contextListener;
private CdmDataSourceViewerComparator comparator;
-
+
/**
* <p>Constructor for CdmDataSourceViewPart.</p>
*/
public CdmDataSourceViewPart(){
}
-
+
+ private void librAlignInit(Composite parent){
+ ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ scrolledComposite.setExpandHorizontal(true);
+ scrolledComposite.setExpandVertical(true);
+
+ Alignment<DNASequence, NucleotideCompound> alignment =
+ new SimpleAlignment<DNASequence, NucleotideCompound>();
+ alignment.add("Sequence 1", new DNASequence("ATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAGATCGTAG"));
+ alignment.add("Sequence 2", new DNASequence("AT-GTTG"));
+ alignment.add("Sequence 3", new DNASequence("AT-GTAG"));
+
+ BioJavaSequenceDataProvider<DNASequence, NucleotideCompound> sequenceProvider =
+ new BioJavaSequenceDataProvider<DNASequence, NucleotideCompound>(
+ new BioJavaTokenSet<NucleotideCompound>(
+ AlignmentAmbiguityNucleotideCompoundSet.getAlignmentAmbiguityNucleotideCompoundSet()),
+ alignment);
+
+ AlignmentArea result = new AlignmentArea();
+ result.setSequenceProvider(sequenceProvider, false);
+ result.getDataAreas().getBottomAreas().add(new ConsensusSequenceArea(result));
+
+// Composite alignmentWidget = result.createSWTWidget(scrolledComposite, SWT.NONE);
+// scrolledComposite.setContent(alignmentWidget);
+// scrolledComposite.setMinSize(alignmentWidget.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+ //+++ConsensusSequenceArea
+ ConsensusSequenceArea consensusSequenceArea = new ConsensusSequenceArea(result);
+ Composite consensusWidget = consensusSequenceArea.createSWTWidget(scrolledComposite, SWT.NONE);
+ scrolledComposite.setContent(consensusWidget);
+
+
+ //+++PherogramTraceCurveView+++
+ PherogramTraceCurveView pherogramView = new PherogramTraceCurveView();
+ // pherogramView.setProvider(new BioJavaPherogramProvider(ChromatogramFactory.create(
+ // new File("data\\pherograms\\Test_pel1PCR_Pel2Wdhg_PCR-7-A_1.ab1"))));
+ try {
+ pherogramView.setProvider(new BioJavaPherogramProvider(ChromatogramFactory.create(
+ new File("/home/pplitzner/svn/branch/taxeditor-3.4/eu.etaxonomy.taxeditor.store/lib/jfreechart-1.0.17/lib/A10001_GM106-petD_F.scf"))));
+ } catch (UnsupportedChromatogramFormatException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ pherogramView.setHorizontalScale(1);
+ pherogramView.setVerticalScale(100);
+ pherogramView.getFormats().setQualityOutputType(QualityOutputType.ALL);
+ pherogramView.getFormats().setShowProbabilityValues(true);
+
+// Composite pherogramWidget = pherogramView.createSWTWidget(scrolledComposite, SWT.NONE);
+// scrolledComposite.setContent(pherogramWidget);
+// scrolledComposite.setMinSize(pherogramWidget.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+ //+++Pherogramm Heading View+++
+ PherogramHeadingView pherogramHeadingView = new PherogramHeadingView(pherogramView);
+// Composite pherogramHeadingWidget = pherogramHeadingView.createSWTWidget(scrolledComposite, SWT.NONE);
+// scrolledComposite.setContent(pherogramHeadingWidget);
+// scrolledComposite.setMinSize(pherogramHeadingWidget.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+ }
+
/** {@inheritDoc} */
@Override
public void createPartControl(Composite parent) {
service = (IWorkbenchSiteProgressService) getSite().getAdapter(IWorkbenchSiteProgressService.class);
contextListener = new ContextListener();
CdmStore.getContextManager().addContextListener(contextListener);
-
+
// Create top composite
FillLayout fillLayout = new FillLayout();
fillLayout.marginWidth = 0;
fillLayout.marginHeight = 0;
- fillLayout.type = SWT.VERTICAL;
+ fillLayout.type = SWT.VERTICAL;
parent.setLayout(fillLayout);
-
- viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
- | SWT.V_SCROLL | SWT.FULL_SELECTION);
- getSite().setSelectionProvider(viewer);
-
- createColumns(viewer);
-
- viewer.setContentProvider(new CdmDataSourceContentProvider());
- viewer.setLabelProvider(new CdmDataSourceLabelProvider());
- comparator = new CdmDataSourceViewerComparator();
- viewer.setComparator(comparator);
-
-
- // register context menu
- MenuManager menuMgr = new MenuManager();
- menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
- getSite().registerContextMenu(menuMgr, viewer);
-
- Control control = viewer.getControl();
- Menu menu = menuMgr.createContextMenu(control);
- control.setMenu(menu);
-
- // connect on doubleclick
- viewer.addDoubleClickListener(new IDoubleClickListener() {
-
- public void doubleClick(DoubleClickEvent event) {
- if (event.getSelection() instanceof StructuredSelection) {
-
- Object element = ((StructuredSelection) event
- .getSelection()).getFirstElement();
- if (element instanceof CdmMetaDataAwareDataSourceContainer) {
- String commandId = "eu.etaxonomy.taxeditor.store.datasource.change";
-
- ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class);
-
- Command command = commandService.getCommand(commandId);
- if(command.isEnabled()) {
-
- IHandlerService handlerService = (IHandlerService) StoreUtil.getService(IHandlerService.class);
-
- try {
- handlerService.executeCommand(commandId, null);
- } catch (ExecutionException e) {
- StoreUtil.error(this.getClass(), e);
- } catch (NotDefinedException e) {
- StoreUtil.error(this.getClass(), e);
- } catch (NotEnabledException e) {
- StoreUtil.error(this.getClass(), e);
- } catch (NotHandledException e) {
- StoreUtil.error(this.getClass(), e);
- }
- }
- }
- }
- }
- });
-
- refresh();
+
+ librAlignInit(parent);
+
+
+// viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
+// | SWT.V_SCROLL | SWT.FULL_SELECTION);
+// getSite().setSelectionProvider(viewer);
+//
+// createColumns(viewer);
+//
+// viewer.setContentProvider(new CdmDataSourceContentProvider());
+// viewer.setLabelProvider(new CdmDataSourceLabelProvider());
+// comparator = new CdmDataSourceViewerComparator();
+// viewer.setComparator(comparator);
+//
+//
+// // register context menu
+// MenuManager menuMgr = new MenuManager();
+// menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+// getSite().registerContextMenu(menuMgr, viewer);
+//
+// Control control = viewer.getControl();
+// Menu menu = menuMgr.createContextMenu(control);
+// control.setMenu(menu);
+//
+// // connect on doubleclick
+// viewer.addDoubleClickListener(new IDoubleClickListener() {
+//
+// @Override
+// public void doubleClick(DoubleClickEvent event) {
+// if (event.getSelection() instanceof StructuredSelection) {
+//
+// Object element = ((StructuredSelection) event
+// .getSelection()).getFirstElement();
+// if (element instanceof CdmMetaDataAwareDataSourceContainer) {
+// String commandId = "eu.etaxonomy.taxeditor.store.datasource.change";
+//
+// ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class);
+//
+// Command command = commandService.getCommand(commandId);
+// if(command.isEnabled()) {
+//
+// IHandlerService handlerService = (IHandlerService) AbstractUtility.getService(IHandlerService.class);
+//
+// try {
+// handlerService.executeCommand(commandId, null);
+// } catch (ExecutionException e) {
+// AbstractUtility.error(this.getClass(), e);
+// } catch (NotDefinedException e) {
+// AbstractUtility.error(this.getClass(), e);
+// } catch (NotEnabledException e) {
+// AbstractUtility.error(this.getClass(), e);
+// } catch (NotHandledException e) {
+// AbstractUtility.error(this.getClass(), e);
+// }
+// }
+// }
+// }
+// }
+// });
+//
+// refresh();
}
-
+
// This will create the columns for the table
private void createColumns(TableViewer viewer) {
Table table = viewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
table.setSortDirection(SWT.UP);
-
+
}
-
+
/**
* <p>refresh</p>
*/
- public void refresh(){
+ public void refresh(){
getService().schedule(new DataSourceJob("Loading datasources", CdmDataSourceRepository.getAll()), Job.LONG);
}
/** {@inheritDoc} */
@Override
public void setFocus() {
- viewer.getControl().setFocus();
+// viewer.getControl().setFocus();
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#showBusy(boolean)
*/
public IWorkbenchSiteProgressService getService() {
return service;
}
-
+
private SelectionAdapter getSelectionAdapter(final TableColumn column,
final int index) {
SelectionAdapter selectionAdapter = new SelectionAdapter() {
private static DefinedTerm photoTerm = null;
private static DefinedTerm drawingTerm = null;
private static DefinedTerm specimenScanTerm = null;
+ private static DefinedTerm detailImageTerm = null;
private static void initializeTerms() {
List<DefinedTerm> preferredTerms = CdmStore.getTermManager().getPreferredTerms(DefinedTerm.class);
for (DefinedTerm definedTerm : preferredTerms) {
- if(definedTerm.getUuid().equals(UUID.fromString("04673952-dab1-42ff-b47a-5e847c350eaf"))){//photo
+ if(definedTerm.getUuid().equals(UUID.fromString("c5c59c42-f254-471e-96c6-09f459f7c903"))){
photoTerm = definedTerm;
}
- else if(definedTerm.getUuid().equals(UUID.fromString("76204a15-098f-4afe-9e8f-fa344ee3fdbb"))){//drawing
+ else if(definedTerm.getUuid().equals(UUID.fromString("669b0409-4aa4-4695-aae4-a95ed27bad4c"))){
drawingTerm = definedTerm;
}
- else if(definedTerm.getUuid().equals(UUID.fromString("c0b127d6-c849-48f9-bbc3-29e3337c1d03"))){//cover TODO temporary until new term is created
+ else if(definedTerm.getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){
specimenScanTerm = definedTerm;
}
+ else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){
+ detailImageTerm = definedTerm;
+ }
}
}
return specimenScanTerm;
}
+ public static DefinedTerm getDetailImageTerm(){
+ if(detailImageTerm==null){
+ initializeTerms();
+ }
+ return detailImageTerm;
+ }
+
/** {@inheritDoc} */
@Override
else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
return ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
}
- else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.StillImage){
+ else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.Media){
if(derivedUnit.getKindOfUnit()!=null){
if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){
return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
else if(derivedUnit.getKindOfUnit().equals(getSpecimenScanTerm())){
return ImageResources.getImage(ImageResources.SPECIMEN_SCAN_DERIVATE);
}
+ else if(derivedUnit.getKindOfUnit().equals(getDetailImageTerm())){
+ return ImageResources.getImage(ImageResources.DETAIL_IMAGE_DERIVATE);
+ }
}
}
}
*/
package eu.etaxonomy.taxeditor.view.specimenSearch;
+import org.eclipse.jface.wizard.IWizard;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
/**
* Controller class for handling {@link SpecimenProviderSelectionComposite}
*/
public class SpecimenProviderSelectionController implements Listener{
- private final SpecimenProviderSelectionComposite composite;
+ private SpecimenProviderSelectionComposite composite;
+ private IWizard wizard;
+ private String lastAccessPoint;
+
+ private static SpecimenProviderSelectionController instance;
+
+ public static SpecimenProviderSelectionController getInstance(Composite parent, IWizard wizard){
+ if(instance==null){
+ instance = new SpecimenProviderSelectionController(parent, wizard);
+ return instance;
+ }
+ instance.init(parent, wizard);
+ return instance;
+ }
+
/**
* Constructs a new controller which will itself construct the composite
* @param parent the parent {@link Composite} for the one handles by this controller
*/
- public SpecimenProviderSelectionController(Composite parent) {
+ private SpecimenProviderSelectionController(Composite parent, IWizard wizard) {
+ init(parent, wizard);
+ }
+
+ /**
+ * @param parent
+ * @param wizard
+ */
+ private void init(Composite parent, IWizard wizard) {
+ this.wizard = wizard;
composite = new SpecimenProviderSelectionComposite(parent, SWT.NONE);
composite.getBtnBioCaseProvider().addListener(SWT.Selection, this);
composite.getBtnGbif().addListener(SWT.Selection, this);
+ composite.getTxtAccessPoint().addListener(SWT.Modify, this);
composite.getBtnGbif().setSelection(true);
composite.getTxtAccessPoint().setEnabled(false);
composite.getLblAccessPointUrl().setEnabled(false);
+
+ loadLastState();
+ }
+
+ private void loadLastState() {
+ if(lastAccessPoint!=null){
+ Text text = composite.getTxtAccessPoint();
+ Listener[] listeners = text.getListeners(SWT.Modify);
+ for (int i = 0; i < listeners.length; i++) {
+ text.removeListener(SWT.Modify, listeners[i]);
+ }
+ text.setText(lastAccessPoint);
+ for (int i = 0; i < listeners.length; i++) {
+ text.addListener(SWT.Modify, listeners[i]);
+ }
+
+ }
}
+
/* (non-Javadoc)
* @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
*/
composite.getLblAccessPointUrl().setEnabled(false);
composite.getTxtAccessPoint().setEnabled(false);
}
+ wizard.getContainer().updateButtons();
}
/**
return composite;
}
+
+ public void saveLastState() {
+ lastAccessPoint = composite.getTxtAccessPoint().getText();
+ }
+
}
*/
package eu.etaxonomy.taxeditor.view.specimenSearch;
-import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
-import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
public class SpecimenSearchController implements Listener{
private SpecimenSearchComposite specimenSearchComposite;
- private final List<String> lastStateList = new ArrayList<String>();
private OccurenceQuery lastQuery = null;
private static SpecimenSearchController instance = null;