eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif -text
eu.etaxonomy.taxeditor.application/icons/256color_48x48.ico -text
eu.etaxonomy.taxeditor.application/icons/edit_16x16.gif -text
-eu.etaxonomy.taxeditor.application/icons/specimen_derivate-16x16-32.gif -text
+eu.etaxonomy.taxeditor.application/icons/specimen_derivate-16x16-32.png -text
eu.etaxonomy.taxeditor.application/p2.inf -text
eu.etaxonomy.taxeditor.application/plugin.properties -text
eu.etaxonomy.taxeditor.application/plugin.xml -text
eu.etaxonomy.taxeditor.editor/build.properties -text
eu.etaxonomy.taxeditor.editor/icons/address-book-new.png -text
eu.etaxonomy.taxeditor.editor/icons/camera-photo.png -text
+eu.etaxonomy.taxeditor.editor/icons/derivate_view-16x16-32.png -text
eu.etaxonomy.taxeditor.editor/icons/edit_16x16.gif -text
eu.etaxonomy.taxeditor.editor/icons/emblem-photos.png -text
eu.etaxonomy.taxeditor.editor/icons/leaf_detail.png -text
eu.etaxonomy.taxeditor.store/icons/alt_window_16.gif -text
eu.etaxonomy.taxeditor.store/icons/alt_window_32.gif -text
eu.etaxonomy.taxeditor.store/icons/applications-office.png -text
-eu.etaxonomy.taxeditor.store/icons/artwork_derivate-16x16-32.gif -text
eu.etaxonomy.taxeditor.store/icons/artwork_derivate-16x16-32.png -text
eu.etaxonomy.taxeditor.store/icons/autonym_no_bg.gif -text
eu.etaxonomy.taxeditor.store/icons/back.gif -text
eu.etaxonomy.taxeditor.store/icons/debug.gif -text
eu.etaxonomy.taxeditor.store/icons/delete.gif -text
eu.etaxonomy.taxeditor.store/icons/delete_edit.gif -text
-eu.etaxonomy.taxeditor.store/icons/dna_derivate-16x16-32.gif -text
+eu.etaxonomy.taxeditor.store/icons/derivate_search_view-16x16-32.png -text
+eu.etaxonomy.taxeditor.store/icons/dna_derivate-16x16-32.png -text
eu.etaxonomy.taxeditor.store/icons/eclipse.gif -text
eu.etaxonomy.taxeditor.store/icons/edit_16x16.gif -text
eu.etaxonomy.taxeditor.store/icons/edit_16x16.ico -text
eu.etaxonomy.taxeditor.store/icons/error_co.gif -text
eu.etaxonomy.taxeditor.store/icons/expandAll.jpg -text
eu.etaxonomy.taxeditor.store/icons/export.gif -text
-eu.etaxonomy.taxeditor.store/icons/fieldunit-16x16-32.gif -text
+eu.etaxonomy.taxeditor.store/icons/fieldunit-16x16-32.png -text
eu.etaxonomy.taxeditor.store/icons/file_obj.gif -text
eu.etaxonomy.taxeditor.store/icons/filter.gif -text
eu.etaxonomy.taxeditor.store/icons/flat.gif -text
eu.etaxonomy.taxeditor.store/icons/settings.gif -text
eu.etaxonomy.taxeditor.store/icons/smartmode_co.gif -text
eu.etaxonomy.taxeditor.store/icons/sort.gif -text
-eu.etaxonomy.taxeditor.store/icons/specimen_derivate-16x16-32.gif -text
-eu.etaxonomy.taxeditor.store/icons/specimen_scan_derivate-16x16-32.gif -text
+eu.etaxonomy.taxeditor.store/icons/specimen_derivate-16x16-32.png -text
+eu.etaxonomy.taxeditor.store/icons/specimen_scan_derivate-16x16-32.png -text
eu.etaxonomy.taxeditor.store/icons/step_done.gif -text
eu.etaxonomy.taxeditor.store/icons/swap.gif -text
eu.etaxonomy.taxeditor.store/icons/swap2.gif -text
eu.etaxonomy.taxeditor.store/icons/thin_close_view.gif -text
eu.etaxonomy.taxeditor.store/icons/thin_max_view.gif -text
eu.etaxonomy.taxeditor.store/icons/thin_restore_view.GIF -text
-eu.etaxonomy.taxeditor.store/icons/tissue_sample-16x16-32.gif -text
+eu.etaxonomy.taxeditor.store/icons/tissue_sample-16x16-32.png -text
eu.etaxonomy.taxeditor.store/icons/trash.gif -text
eu.etaxonomy.taxeditor.store/icons/tree_icon_small.jpg -text
eu.etaxonomy.taxeditor.store/icons/undo.gif -text
</perspective>\r
<perspective\r
class="eu.etaxonomy.taxeditor.perspective.DerivatePerspective"\r
- icon="icons/specimen_derivate-16x16-32.gif"\r
+ icon="icons/specimen_derivate-16x16-32.png"\r
id="eu.etaxonomy.taxeditor.application.perspective.derivates"\r
name="Derivates">\r
</perspective>\r
return units;
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnits(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
+ */
+ @Override
+ public Collection<FieldUnit> getFieldUnits(DerivedUnit derivedUnit) {
+ return defaultService.getFieldUnits(derivedUnit);
+ }
+
}
<editor
class="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView"
default="false"
+ icon="icons/derivate_view-16x16-32.png"
id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView"
name="Derivate View">
</editor>
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
if(specimen.isInstanceOf(FieldUnit.class)){
return (FieldUnit) specimen;
}
- else if(specimen.isInstanceOf(DerivedUnit.class) && ((DerivedUnit) specimen).getOriginals()!=null){
+ else if(specimen instanceof DerivedUnit && ((DerivedUnit) specimen).getOriginals()!=null){
for(SpecimenOrObservationBase original:((DerivedUnit) specimen).getOriginals()){
if(original.isInstanceOf(FieldUnit.class)){
return (FieldUnit) original;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
if(currentSelection instanceof IStructuredSelection){
Object selectedElement = ((IStructuredSelection) currentSelection).getFirstElement();
if(selectedElement instanceof SpecimenOrObservationBase<?>){
- FieldUnit fieldUnit = EditorUtil.getFieldUnit((SpecimenOrObservationBase<?>) selectedElement);
- if(fieldUnit==null){
- AbstractUtility.errorDialog("Failed to open Editor", OpenDerivateViewHandler.class, "Could not open DerivateView. The derivate hierarchy is corrupted!");
- return null;
- }
- DerivateViewEditorInput input = new DerivateViewEditorInput(fieldUnit);
+
+ DerivateViewEditorInput input = new DerivateViewEditorInput((SpecimenOrObservationBase<?>) selectedElement);
try {
EditorUtil.open(input);
} catch (PartInitException e) {
@Override
public Object[] getElements(Object inputElement) {
- FieldUnit fieldUnit = null;
+ SpecimenOrObservationBase<?> specimen = null;
if(inputElement instanceof DerivateViewEditorInput){
- fieldUnit = ((DerivateViewEditorInput) inputElement).getFieldUnit();
+ inputElement = ((DerivateViewEditorInput) inputElement).getDerivate();
}
+
// return the parent FieldUnit if element is a DerivedUnit
- else if(inputElement instanceof DerivedUnit){
- fieldUnit = EditorUtil.getFieldUnit((DerivedUnit)inputElement);
+ if(inputElement instanceof DerivedUnit){
+ specimen = EditorUtil.getFieldUnit((DerivedUnit)inputElement);
}
else if(inputElement instanceof FieldUnit){
- fieldUnit = (FieldUnit) inputElement;
-// fieldUnit.getTitleCache();
+ specimen = (FieldUnit) inputElement;
}
- if(fieldUnit!=null){
- return Collections.singleton(fieldUnit).toArray();
+ if(specimen!=null){
+ return Collections.singleton(specimen).toArray();
}
else {
return Collections.EMPTY_LIST.toArray();
@Override
public Object[] getChildren(Object parentElement) {
if(parentElement instanceof DerivateViewEditorInput){
- parentElement = ((DerivateViewEditorInput) parentElement).getFieldUnit();
+ parentElement = ((DerivateViewEditorInput) parentElement).getDerivate();
}
+
if(parentElement instanceof SpecimenOrObservationBase){
return getDerivates((SpecimenOrObservationBase) parentElement).toArray();
}
@Override
public Object getParent(Object element) {
if(element instanceof DerivateViewEditorInput){
- element = ((DerivateViewEditorInput) element).getFieldUnit();
+ element = ((DerivateViewEditorInput) element).getDerivate();
}
- if(element instanceof DerivedUnit){
+
+ if(element instanceof FieldUnit){
+ return element;
+ }
+ else if(element instanceof DerivedUnit){
DerivedUnit derivedUnit = (DerivedUnit)element;
return derivedUnit.getOriginalUnit();
}
@Override
public boolean hasChildren(Object element) {
if(element instanceof DerivateViewEditorInput){
- element = ((DerivateViewEditorInput) element).getFieldUnit();
+ element = ((DerivateViewEditorInput) element).getDerivate();
}
+
if(element instanceof SpecimenOrObservationBase){
SpecimenOrObservationBase specimenOrObservation = (SpecimenOrObservationBase)element;
for(DerivationEvent event:(Set<DerivationEvent>)specimenOrObservation.getDerivationEvents()){
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
IEditorInput editorInput = getEditorInput();
viewer.setInput(editorInput);
if(editorInput instanceof DerivateViewEditorInput){
+ SpecimenOrObservationBase<?> specimen = ((DerivateViewEditorInput) editorInput).getDerivate();
FieldUnit fieldUnit = ((DerivateViewEditorInput) editorInput).getFieldUnit();
setPartName(fieldUnit.toString());
- viewer.setSelection(new StructuredSelection(fieldUnit));
+ viewer.setSelection(new StructuredSelection(specimen));
}
}
*/
package eu.etaxonomy.taxeditor.editor.view.derivate;
+import java.util.Collection;
+
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IPersistableElement;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
+ * Editor input for the {@link DerivateView} which holds the currently selected derivate for which
+ * the derivate hierarchy should be shown in the DerivateView.<br>
+ * It also holds a {@link FieldUnit} which is the root of the hierarchy. (both may be the same object)
* @author pplitzner
* @date 25.11.2013
*
*/
public class DerivateViewEditorInput implements IEditorInput {
- private final FieldUnit fieldUnit;
+ /**
+ * The selected derivate
+ */
+ private final SpecimenOrObservationBase<?> derivate;
+ /**
+ * The root of the hierarchy (may be the same object as the derivate)
+ */
+ private FieldUnit fieldUnit;
- public DerivateViewEditorInput(FieldUnit fieldUnit) {
- //TODO: add current selection to constructor to highlight it in DerivateView
+ /**
+ * Creates an editor input for the {@link DerivateView} with the currently selected derivate and the
+ * corresponding {@link FieldUnit} (both may be the same object).
+ * @param derivate the derivate for which the derivate hierarchy should be shown
+ * @param fieldUnit the root of the hierarchy
+ */
+ public DerivateViewEditorInput(SpecimenOrObservationBase<?> derivate) {
super();
- this.fieldUnit = fieldUnit;
+ this.derivate = derivate;
+ if(derivate instanceof FieldUnit){
+ this.fieldUnit = (FieldUnit) derivate;
+ }
+ else if(derivate instanceof DerivedUnit){
+ Collection<FieldUnit> fieldUnits = CdmStore.getCurrentApplicationConfiguration().getOccurrenceService().getFieldUnits((DerivedUnit) derivate);
+ if(!fieldUnits.isEmpty()){
+ // TODO think about handling multiple parent FieldUnits
+ this.fieldUnit = fieldUnits.iterator().next();
+ }
+ }
+ if(fieldUnit==null){
+ AbstractUtility.errorDialog("Failed initializing editor", DerivateViewEditorInput.class, "No FieldUnit found!");
+ }
}
/* (non-Javadoc)
*/
@Override
public String getName() {
- return fieldUnit.toString();
+ return derivate.toString();
}
/* (non-Javadoc)
*/
@Override
public String getToolTipText() {
- return fieldUnit.toString();
+ return derivate.toString();
+ }
+
+
+ /**
+ * @return the specimen
+ */
+ public SpecimenOrObservationBase<?> getDerivate() {
+ return derivate;
}
/**
</view>
<view
class="eu.etaxonomy.taxeditor.ui.campanula.derivatesearch.DerivateSearchView"
+ icon="icons/derivate_search_view-16x16-32.png"
id="eu.etaxonomy.taxeditor.ui.campanula.derivatesearch.DerivateSearchView"
name="Derivate Search"
restorable="true">
registerImage(registry, LOCK_OPEN_ICON,
"lock_open.png");
registerImage(registry, DNA_SAMPLE_DERIVATE,
- "dna_derivate-16x16-32.gif");
+ "dna_derivate-16x16-32.png");
registerImage(registry, FIELD_UNIT,
- "fieldunit-16x16-32.gif");
+ "fieldunit-16x16-32.png");
registerImage(registry, SPECIMEN_DERIVATE,
- "specimen_derivate-16x16-32.gif");
+ "specimen_derivate-16x16-32.png");
registerImage(registry, ARTWORK_DERIVATE,
"artwork_derivate-16x16-32.png");
registerImage(registry, SPECIMEN_SCAN_DERIVATE,
- "specimen_scan_derivate-16x16-32.gif");
+ "specimen_scan_derivate-16x16-32.png");
registerImage(registry, LIVING_PLANT_PHOTO_DERIVATE,
- "specimen_scan_derivate-16x16-32.gif");
+ "specimen_scan_derivate-16x16-32.png");
registerImage(registry, TISSUE_SAMPLE_DERIVATE,
- "tissue_sample-16x16-32.gif");
+ "tissue_sample-16x16-32.png");
}
private void registerImage(ImageRegistry registry, String key,