private TableViewer tableViewer;
/**
- * Constructs a new DataImportEditor with a new {@link ConversationHolder}
+ * Constructs a new DataImportEditor and registers it to listen to context changes
*/
public DataImportEditor() {
CdmStore.getContextManager().addContextListener(this);
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Iterator;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
parentNode = ((TreeNode) element).getParent();
value = ((TreeNode) element).getValue();
}
- List<Object> children = new ArrayList<Object>();
+ Set<Object> children = new LinkedHashSet<Object>();
if(value instanceof DnaSample){
DnaSample dnaSample = (DnaSample)value;
Set<Sequence> sequences = dnaSample.getSequences();
- for (Iterator iterator = sequences.iterator(); iterator.hasNext();) {
- Sequence sequence = (Sequence) iterator.next();
+ for (Sequence sequence : sequences) {
TreeNode node = new TreeNode(sequence);
node.setParent(currentnode);
children.add(node);
}
else if(value instanceof SpecimenOrObservationBase){
List<DerivedUnit> derivates = getDerivates((SpecimenOrObservationBase<?>) value);
- for (Iterator<DerivedUnit> iterator = derivates.iterator(); iterator.hasNext();) {
- DerivedUnit derivedUnit = iterator.next();
+ for (DerivedUnit derivedUnit:derivates) {
TreeNode node = new TreeNode(derivedUnit);
node.setParent(currentnode);
children.add(node);
else if(dragValue instanceof SingleRead && (targetValue instanceof Amplification || targetValue instanceof Sequence)){
SingleRead singleRead = (SingleRead) dragValue;
if(dragParentSpecimen instanceof Amplification){
- ((Amplification) dragParentSpecimen).removeSingleRead(singleRead);
+ Amplification amplification = (Amplification) dragParentSpecimen;
+ if(amplification.getSingleReads().size()<2){
+ return false;
+ }
+ else{
+ //remove dragged single read (if not the last one)
+ amplification.removeSingleRead(singleRead);
+ }
}
//drop on Sequence
if(targetValue instanceof Sequence){
// drag'n'drop for Sequence
else if(dragValue instanceof Sequence && targetValue instanceof DnaSample ){
-// SingleRead singleRead = (SingleRead) dragValue;
-// //remove dragged single read
-// if(dragParentSpecimen instanceof Sequence){
-// ((Sequence) dragParentSpecimen).removeSingleRead(singleRead);
-// }
-// else if(dragParentSpecimen instanceof Amplification){
-// ((Amplification) dragParentSpecimen).removeSingleRead(singleRead);
-// }
-// //drop on Sequence
-// if(targetValue instanceof Sequence){
-// Sequence sequence = (Sequence)targetValue;
-// sequence.addSingleRead(singleRead);
-// }
-// //drop on Amplification
-// else if(targetValue instanceof Amplification){
-// Amplification amplification = (Amplification)targetValue;
-// amplification.addSingleRead(singleRead);
-// }
+ Sequence sequence = (Sequence)dragValue;
+ //remove dragged sequence
+ if(dragParentSpecimen instanceof DnaSample){
+ ((DnaSample) dragParentSpecimen).removeSequence(sequence);
+ }
+ //drop on DnaSample
+ ((DnaSample) targetValue).addSequence(sequence);
return true;
}
return false;
public Button getButtonSearch() {
return buttonSearch;
}
+
+ @Override
+ public void setEnabled(boolean enabled){
+ if(!isDisposed()){
+ super.setEnabled(enabled);
+ searchField.setEnabled(enabled);
+ table.setEnabled(enabled);
+ // resultViewer.setEnabled(enabled);
+ comboDerivateType.setEnabled(enabled);
+ buttonSearch.setEnabled(enabled);
+ }
+ }
}
derivateSearchComposite.getResultViewer().setInput(results);
}
-
- /**
- * @return the derivateSearchComposite
- */
- public DerivateSearchComposite getDerivateSearchComposite() {
- return derivateSearchComposite;
- }
-
- private void setEnable(boolean enabled){
- derivateSearchComposite.setEnabled(enabled);
- derivateSearchComposite.getResultViewer().getTable().setEnabled(enabled);
- derivateSearchComposite.getSearchField().setEnabled(enabled);
- }
-
/* (non-Javadoc)
* @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
*/
}
}
+ public void setEnabled(boolean enabled) {
+ derivateSearchComposite.setEnabled(enabled);
+ }
+
+ public TableViewer getResultViewer() {
+ return derivateSearchComposite.getResultViewer();
+ }
+
+ public void setFocus() {
+ derivateSearchComposite.getResultViewer().getControl().setFocus();
+ }
+
}
*/
package eu.etaxonomy.taxeditor.view.derivateSearch;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IMemento;
import org.eclipse.ui.part.ViewPart;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.model.IContextListener;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* This view allows to search for and filter {@link SpecimenOrObservationBase}s and display
* the results in a list. The results can be selected and opened in an editor.
*/
-public class DerivateSearchView extends ViewPart {
+public class DerivateSearchView extends ViewPart implements IContextListener {
public static final String ID = "eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView";
private DerivateSearchCompositeController derivateSearchCompositeController;
+ /**
+ * Constructs a new DerivateSearchView and registers it to listen to context changes
+ */
public DerivateSearchView() {
+ CdmStore.getContextManager().addContextListener(this);
}
/* (non-Javadoc)
@Override
public void createPartControl(Composite parent) {
derivateSearchCompositeController = new DerivateSearchCompositeController(parent);
- getSite().setSelectionProvider(derivateSearchCompositeController.getDerivateSearchComposite().getResultViewer());
+ getSite().setSelectionProvider(derivateSearchCompositeController.getResultViewer());
+ derivateSearchCompositeController.setEnabled(CdmStore.isActive());
}
/* (non-Javadoc)
*/
@Override
public void setFocus() {
- derivateSearchCompositeController.getDerivateSearchComposite().getResultViewer().getControl().setFocus();
+ derivateSearchCompositeController.setFocus();
+ }
+
+ /* (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) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ public void contextStop(IMemento memento, IProgressMonitor monitor) {
+ derivateSearchCompositeController.setEnabled(false);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStart(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ public void contextStart(IMemento memento, IProgressMonitor monitor) {
+ derivateSearchCompositeController.setEnabled(true);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.model.IContextListener#contextRefresh(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ public void contextRefresh(IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.model.IContextListener#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+
}
}