taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicMarkerTypeEditingMenu.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DynamicNewObjectMenu.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/handler/AbstractAddDerivedUnitFacadeMediaHandler.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/handler/AddDerivedUnitMediaHandler.java -text
-taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitMediaOperation.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/handler/AddFieldObjectMediaHandler.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitFacadeMediaOperation.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/MergeGroupHandler.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/OpenBulkEditorHandler.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/RemoveMergeCandidateHandler.java -text
createAdditionalFolder(layout, layout.getEditorArea());
}
-
}
commandId="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addDerivedUnitMedia"\r
label="Add Derived Unit Media"\r
style="push">\r
- <visibleWhen\r
- checkEnabled="false">\r
- <test\r
- property="eu.etaxonomy.taxeditor.bulkeditor.propertyTester.isDerivedUnitEditor">\r
- </test>\r
- </visibleWhen>\r
+ </command>\r
+ <command\r
+ commandId="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addFieldObjectMedia"\r
+ label="Add Field Object Media"\r
+ style="push">\r
</command>\r
</menuContribution>\r
</extension>\r
id="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addDerivedUnitMedia"\r
name="Add Derived Unit Media">\r
</command>\r
+ <command\r
+ defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.derivedunit.handler.AddFieldObjectMediaHandler"\r
+ id="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addFieldObjectMedia"\r
+ name="Add Field Object Media">\r
+ </command>\r
</extension>\r
<extension\r
point="org.eclipse.core.expressions.propertyTesters">\r
properties="isDerivedUnitEditor"\r
type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">\r
</propertyTester>\r
- </extension>\r
- <extension\r
- point="org.eclipse.core.expressions.definitions">\r
</extension>
<!-- start set marker -->\r
\r
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* 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.bulkeditor.derivedunit.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.bulkeditor.derivedunit.operation.AddDerivedUnitFacadeMediaOperation;
+import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * @author n.hoffmann
+ * @created Feb 11, 2011
+ * @version 1.0
+ */
+public abstract class AbstractAddDerivedUnitFacadeMediaHandler extends AbstractHandler {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ IWorkbenchPart part = HandlerUtil.getActivePart(event);
+ IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null;
+
+
+ IEditorPart editor = HandlerUtil.getActiveEditor(event);
+ IEditorInput input = editor.getEditorInput();
+
+
+ if(input instanceof OccurrenceEditorInput){
+ BulkEditor bulkEditor = (BulkEditor) editor;
+ ISelection selection = bulkEditor.getSelectionProvider().getSelection();
+
+ if(selection instanceof IStructuredSelection){
+ Object element = ((IStructuredSelection) selection).getFirstElement();
+ if(element instanceof DerivedUnitBase){
+
+ try{
+ AbstractPostOperation operation = new AddDerivedUnitFacadeMediaOperation(event.getCommand().getName(), BulkEditorUtil.getUndoContext(), (DerivedUnitBase) element, getMode(), postOperationEnabled);
+ BulkEditorUtil.executeOperation(operation);
+ } catch (NotDefinedException e) {
+ BulkEditorUtil.warn(getClass(), "Command name not set.");
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @return
+ */
+ protected abstract int getMode();
+
+}
package eu.etaxonomy.taxeditor.bulkeditor.derivedunit.handler;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.taxeditor.bulkeditor.derivedunit.operation.AddDerivedUnitFacadeMediaOperation;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
-import eu.etaxonomy.cdm.model.description.TextData;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
-import eu.etaxonomy.taxeditor.bulkeditor.derivedunit.operation.AddDerivedUnitMediaOperation;
-import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
/**
* @author n.hoffmann
* @created Feb 7, 2011
* @version 1.0
*/
-public class AddDerivedUnitMediaHandler extends AbstractHandler {
+public class AddDerivedUnitMediaHandler extends AbstractAddDerivedUnitFacadeMediaHandler {
/* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ * @see eu.etaxonomy.taxeditor.bulkeditor.derivedunit.handler.AbstractAddDerivedUnitFacadeMediaHandler#getMode()
*/
@Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchPart part = HandlerUtil.getActivePart(event);
- IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null;
-
-
- IEditorPart editor = HandlerUtil.getActiveEditor(event);
- IEditorInput input = editor.getEditorInput();
-
- if(input instanceof OccurrenceEditorInput){
- BulkEditor bulkEditor = (BulkEditor) editor;
- ISelection selection = bulkEditor.getSelectionProvider().getSelection();
-
- if(selection instanceof IStructuredSelection){
- Object element = ((IStructuredSelection) selection).getFirstElement();
- if(element instanceof DerivedUnitBase){
-
- try{
- AbstractPostOperation operation = new AddDerivedUnitMediaOperation(event.getCommand().getName(), BulkEditorUtil.getUndoContext(), (DerivedUnitBase) element, postOperationEnabled);
- BulkEditorUtil.executeOperation(operation);
- } catch (NotDefinedException e) {
- BulkEditorUtil.warn(getClass(), "Command name not set.");
- }
- }
- }
- }
- return null;
+ protected int getMode() {
+ return AddDerivedUnitFacadeMediaOperation.DERIVED_UNIT_MEDIA;
}
+
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* 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.bulkeditor.derivedunit.handler;
+
+import eu.etaxonomy.taxeditor.bulkeditor.derivedunit.operation.AddDerivedUnitFacadeMediaOperation;
+
+/**
+ * @author n.hoffmann
+ * @created Feb 11, 2011
+ * @version 1.0
+ */
+public class AddFieldObjectMediaHandler extends
+ AbstractAddDerivedUnitFacadeMediaHandler {
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.bulkeditor.derivedunit.handler.AbstractAddDerivedUnitFacadeMediaHandler#getMode()
+ */
+ @Override
+ protected int getMode() {
+ return AddDerivedUnitFacadeMediaOperation.FIELD_OBJECT_MEDIA;
+ }
+
+}
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
-import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
-import eu.etaxonomy.cdm.model.description.TextData;
-import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
/**
* @author n.hoffmann
- * @created Feb 7, 2011
+ * @created Feb 11, 2011
* @version 1.0
*/
-public class AddDerivedUnitMediaOperation extends AbstractPostOperation {
+public class AddDerivedUnitFacadeMediaOperation extends
+ AbstractPostOperation {
+ public static final int DERIVED_UNIT_MEDIA = 0;
+ public static final int FIELD_OBJECT_MEDIA = 1;
+
private DerivedUnitBase derivedUnit;
-
+ private int mode;
+
/**
* @param label
* @param undoContext
* @param postOperationEnabled
*/
- public AddDerivedUnitMediaOperation(String label, IUndoContext undoContext, DerivedUnitBase derivedUnit,
- IPostOperationEnabled postOperationEnabled) {
+ public AddDerivedUnitFacadeMediaOperation(String label, IUndoContext undoContext, DerivedUnitBase derivedUnit,
+ int mode, IPostOperationEnabled postOperationEnabled) {
super(label, undoContext, postOperationEnabled);
this.derivedUnit = derivedUnit;
-
+ this.mode = mode;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
-
DerivedUnitFacade facade;
try {
facade = DerivedUnitFacade.NewInstance(derivedUnit);
- SpecimenDescription imageGallery = facade.getDerivedUnitImageGallery(true);
-
- TextData element = TextData.NewInstance(Feature.IMAGE());
-
- Media media = Media.NewInstance();
-
- element.addMedia(media);
-
- imageGallery.addElement(element);
-
+ createImageGallery(facade);
} catch (DerivedUnitFacadeNotSupportedException e) {
BulkEditorUtil.error(getClass(), e);
}
return postExecute(derivedUnit);
}
+
+
+ /**
+ * @param facade
+ * @return
+ */
+ protected void createImageGallery(DerivedUnitFacade facade){
+ if(mode == DERIVED_UNIT_MEDIA){
+ facade.getDerivedUnitImageGallery(true);
+ }
+ else if(mode == FIELD_OBJECT_MEDIA){
+ facade.getFieldObjectImageGallery(true);
+ }
+ else{
+ throw new IllegalArgumentException("Mode not supported: " + mode);
+ }
+ }
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
DESCRIPTION,
DESCRIPTION_ELEMENT,
EMPTY,
+ IMAGE_GALLERY,
MEDIA,
TEAM_OR_PERSON_BASE,
DERIVED_UNIT,
currentViewPart = VIEW_PART.TEAM_OR_PERSON_BASE;
}
}else if(getInput() instanceof DescriptionBase){
- if(currentViewPart != VIEW_PART.DESCRIPTION){
- createDescriptionSection(rootElement);
- currentViewPart = VIEW_PART.DESCRIPTION;
+ if(((DescriptionBase) getInput()).isImageGallery()){
+ if(currentViewPart != VIEW_PART.IMAGE_GALLERY){
+ createImageGallerySection(rootElement);
+ currentViewPart = VIEW_PART.IMAGE_GALLERY;
+ }
+ }else{
+ if(currentViewPart != VIEW_PART.DESCRIPTION){
+ createDescriptionSection(rootElement);
+ currentViewPart = VIEW_PART.DESCRIPTION;
+ }
}
}else if(getInput() instanceof DescriptionElementBase){
if(currentViewPart != VIEW_PART.DESCRIPTION_ELEMENT){
layout();
}
+
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.Viewer#getSelection()
*/
}
+ /**
+ * @param rootElement
+ */
+ private void createImageGallerySection(RootElement parent) {
+ destroySections();
+ DescriptionDetailSection descriptionDetailSection = (DescriptionDetailSection)
+ formFactory.createCdmDetailSection(DetailType.DESCRIPTION, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+
+ addPart(descriptionDetailSection);
+ }
+
+
private void createMediaElementSection(RootElement parent) {
destroySections();
MediaDetailsSection mediaDetailSection = (MediaDetailsSection)
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.editor.view.media.operation.AddMediaToImageGalleryOperation;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null;
+ DescriptionBase description = null;
+
IEditorPart editor = HandlerUtil.getActiveEditor(event);
if (editor instanceof FormEditor) {
editor = ((FormEditor) editor).getActiveEditor();
}
- IEditorInput input = editor.getEditorInput();
- if (input instanceof TaxonEditorInput) {
- Taxon taxon = ((TaxonEditorInput) input).getTaxon();
+
+ ISelection selection = HandlerUtil.getCurrentSelection(event);
+ if (selection instanceof TreeSelection) {
+ TreePath[] paths = ((TreeSelection) selection).getPaths();
- ISelection selection = HandlerUtil.getCurrentSelection(event);
- if (selection instanceof TreeSelection) {
- TreePath[] paths = ((TreeSelection) selection).getPaths();
-
- int count = paths[0].getSegmentCount();
- DescriptionBase description = null;
- for (int i = 0; i < count; i++ ) {
- if (paths[0].getSegment(i) instanceof DescriptionBase) {
- description = (DescriptionBase) paths[0].getSegment(i);
- break;
- }
- }
-
- AbstractPostOperation operation = null;
- try {
- // TODO use undo context specific to editor
- operation = new AddMediaToImageGalleryOperation(event.getCommand().getName(),
- EditorUtil.getUndoContext(), taxon, description, postOperationEnabled);
- EditorUtil.executeOperation(operation);
- } catch (NotDefinedException e) {
- EditorUtil.warn(getClass(), "Command name not set.");
+ int count = paths[0].getSegmentCount();
+
+ for (int i = 0; i < count; i++ ) {
+ if (paths[0].getSegment(i) instanceof DescriptionBase) {
+ description = (DescriptionBase) paths[0].getSegment(i);
+ break;
}
}
}
+
+ if(description != null){
+ AbstractPostOperation operation = null;
+ try {
+ // TODO use undo context specific to editor
+ operation = new AddMediaToImageGalleryOperation(event.getCommand().getName(),
+ EditorUtil.getUndoContext(), description, postOperationEnabled);
+ EditorUtil.executeOperation(operation);
+ } catch (NotDefinedException e) {
+ EditorUtil.warn(getClass(), "Command name not set.");
+ }
+ }
+
return null;
}
import eu.etaxonomy.cdm.api.utility.ImagesUtility;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
/**
* @param description a {@link eu.etaxonomy.cdm.model.description.DescriptionBase} object.
*/
public AddMediaToImageGalleryOperation(String label,
- IUndoContext undoContext, Taxon taxon,
- DescriptionBase description, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, taxon, postOperationEnabled);
+ IUndoContext undoContext, DescriptionBase description, IPostOperationEnabled postOperationEnabled) {
+ super(label, undoContext, postOperationEnabled);
this.description = description;
media = Media.NewInstance();
import java.util.Collection;
-import org.apache.log4j.Logger;
-
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
*/
public class DescribedSpecimenSection extends AbstractEntityCollectionSection<TaxonDescription, SpecimenOrObservationBase> {
-
- private static final Logger logger = Logger
- .getLogger(DescribedSpecimenSection.class);
-
/**
* <p>Constructor for DescribedSpecimenSection.</p>
*
detailDescription = formFactory.createMultilineTextWithLabel(this, "Label", 50, SWT.WRAP);
detailDescription.setText(entity.getTitleCache());
- selection_featureTree = (FeatureTreeSelectionElement) formFactory.createSelectionElement(SelectionType.FEATURE_TREE, getConversationHolder(), formElement, "Feature Tree", null, style);
+// selection_featureTree = (FeatureTreeSelectionElement) formFactory.createSelectionElement(SelectionType.FEATURE_TREE, getConversationHolder(), formElement, "Feature Tree", null, style);
}
/** {@inheritDoc} */