import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
/**
* The selected derivate {@link UUID}s
*/
- private final Set<SpecimenOrObservationBase<?>> derivateEntities;
+ private Set<SpecimenOrObservationBase<?>> derivateEntities;
/**
* List of the {@link UUID}s of the root elements of the hierarchy (may be the same objects as the derivates)
*/
//then be used for the hashCode, equals methods
initSession();
this.conversationHolder = CdmStore.createConversation();
- this.derivateEntities = new HashSet<SpecimenOrObservationBase<?>>();
- this.rootEntities = new HashSet<SpecimenOrObservationBase<?>>();
- for (UUID uuid : derivateUuids) {
- SpecimenOrObservationBase<?> derivate = CdmStore.getService(IOccurrenceService.class).load(uuid, SPECIMEN_INIT_STRATEGY);
- derivateEntities.add(derivate);
- if(derivate instanceof FieldUnit){
- rootEntities.add(derivate);
- }
- else if(derivate instanceof DerivedUnit){
- SpecimenOrObservationBase<?> topMostDerivate = EditorUtil.getTopMostDerivate(derivate);
- if(topMostDerivate!=null){
- rootEntities.add(topMostDerivate);
- }
- }
- }
- if(rootEntities.isEmpty()){
- rootEntities = derivateEntities;
- }
+ updateRootEntities(derivateUuids);
}
return conversationHolder;
}
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
@Override
public int hashCode() {
final int prime = 31;
return result;
}
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
- */
@Override
public void merge() {
if(CdmStore.getCurrentSessionManager().isRemoting()) {
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
- */
@Override
public Map<Object, List<String>> getPropertyPathsMap() {
List<String> specimenPropertyPaths = Arrays.asList(new String[] {
return specimenPropertyPathMap;
}
+ public void updateRootEntities(Collection<UUID> derivateUuids) {
+ this.derivateEntities = new HashSet<SpecimenOrObservationBase<?>>();
+ this.rootEntities = new HashSet<SpecimenOrObservationBase<?>>();
+ for (UUID uuid : derivateUuids) {
+ SpecimenOrObservationBase<?> derivate = CdmStore.getService(IOccurrenceService.class).load(uuid, SPECIMEN_INIT_STRATEGY);
+ derivateEntities.add(derivate);
+ if(derivate instanceof FieldUnit){
+ rootEntities.add(derivate);
+ }
+ else if(derivate instanceof DerivedUnit){
+ SpecimenOrObservationBase<?> topMostDerivate = EditorUtil.getTopMostDerivate(derivate);
+ if(topMostDerivate!=null){
+ rootEntities.add(topMostDerivate);
+ }
+ }
+ }
+ if(rootEntities.isEmpty()){
+ rootEntities = derivateEntities;
+ }
+ }
}
import java.util.ArrayList;
import java.util.List;
+import java.util.UUID;
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.Widget;
-import org.eclipse.ui.forms.widgets.TableWrapData;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.SearchManager;
import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
}
occurrences = specimensWithNoDetermination;
}
- //TODO add to DerivateViewEditorInput
-// derivateSearchComposite.getResultViewer().setInput(occurrences);
+ List<UUID> derivateUuids = new ArrayList<UUID>();
+ for (SpecimenOrObservationBase specimenOrObservationBase : occurrences) {
+ derivateUuids.add(specimenOrObservationBase.getUuid());
+ }
+ //update tree
+ DerivateViewEditorInput editorInput = (DerivateViewEditorInput)derivativeEditor.getEditorInput();
+ editorInput.updateRootEntities(derivateUuids);
+ derivativeEditor.getViewer().setInput(editorInput.getRootEntities());
+ derivativeEditor.refreshTree();
}
@Override
}
}
- public void setLayoutData(TableWrapData layoutData){
+ public void setLayoutData(Object layoutData){
derivateSearchComposite.setLayoutData(layoutData);
}