taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorViewerConfiguration.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorConstants.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortProvider.java -text
+taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/PropertyTester.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorInputTypeValues.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorPropertyTester.java -text
taxeditor-bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/DeleteObjectContributionItem.java -text
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/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/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
id="eu.etaxonomy.taxeditor.preferences.bulkeditor.general"\r
name="Bulk Editor">\r
</page>\r
+ </extension>\r
+ <extension\r
+ point="org.eclipse.ui.menus">\r
+ <menuContribution\r
+ allPopups="false"\r
+ locationURI="popup:eu.etaxonomy.taxeditor.editor.view.media">\r
+ <command\r
+ 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
+ </menuContribution>\r
+ </extension>\r
+ <extension\r
+ point="org.eclipse.ui.commands">\r
+ <command\r
+ defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.derivedunit.handler.AddDerivedUnitMediaHandler"\r
+ id="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addDerivedUnitMedia"\r
+ name="Add Derived Unit Media">\r
+ </command>\r
+ </extension>\r
+ <extension\r
+ point="org.eclipse.core.expressions.propertyTesters">\r
+ <propertyTester\r
+ class="eu.etaxonomy.taxeditor.bulkeditor.PropertyTester"\r
+ id="eu.etaxonomy.taxeditor.bulkeditor.propertyTester"\r
+ namespace="eu.etaxonomy.taxeditor.bulkeditor.propertyTester"\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
+
+package eu.etaxonomy.taxeditor.bulkeditor;
+
+import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
+
+public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
+
+ public static final String IS_DERIVED_UNIT_EDITOR = "isDerivedUnitEditor";
+
+ @Override
+ public boolean test(Object receiver, String property, Object[] args,
+ Object expectedValue) {
+
+ BulkEditor editor = (BulkEditor) receiver;
+
+ if(IS_DERIVED_UNIT_EDITOR.equals(property)){
+ return editor.getEditorInput() instanceof OccurrenceEditorInput;
+ }
+
+ return false;
+ }
+
+}
--- /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.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 {
+
+ /* (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 AddDerivedUnitMediaOperation(event.getCommand().getName(), BulkEditorUtil.getUndoContext(), (DerivedUnitBase) element, postOperationEnabled);
+ BulkEditorUtil.executeOperation(operation);
+ } catch (NotDefinedException e) {
+ BulkEditorUtil.warn(getClass(), "Command name not set.");
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+}
--- /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.operation;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+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.media.Media;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * @author n.hoffmann
+ * @created Feb 7, 2011
+ * @version 1.0
+ */
+public class AddDerivedUnitMediaOperation extends AbstractPostOperation {
+
+ private DerivedUnitBase derivedUnit;
+
+ /**
+ * @param label
+ * @param undoContext
+ * @param postOperationEnabled
+ */
+ public AddDerivedUnitMediaOperation(String label, IUndoContext undoContext, DerivedUnitBase derivedUnit,
+ IPostOperationEnabled postOperationEnabled) {
+ super(label, undoContext, postOperationEnabled);
+
+ this.derivedUnit = derivedUnit;
+
+ }
+
+ /* (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);
+
+ } catch (DerivedUnitFacadeNotSupportedException e) {
+ BulkEditorUtil.error(getClass(), e);
+ }
+
+ return postExecute(derivedUnit);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
*/
/** {@inheritDoc} */
@Override
- public void showViewer(IWorkbenchPart part, ISelection selection) {
+ public void showViewer(IWorkbenchPart part, IStructuredSelection selection) {
this.part = part;
- IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
- updateReferencingObjects((IdentifiableEntity) structuredSelection.getFirstElement());
+ updateReferencingObjects((IdentifiableEntity) selection.getFirstElement());
}
/** {@inheritDoc} */
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
import eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer;
import eu.etaxonomy.taxeditor.editor.view.detail.DetailsViewPart;
-import eu.etaxonomy.taxeditor.editor.view.detail.DetailsViewer;
import eu.etaxonomy.taxeditor.editor.view.supplementaldata.SupplementalDataViewPart;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
public static IEditorPart getActiveEditorPage(Page page){
MultiPageTaxonEditor editor = getActiveMultiPageTaxonEditor();
- return editor.getPage(page);
+ return editor != null ? editor.getPage(page) : null;
}
/**
* <p>refreshDetailsViewer</p>
*/
public static void refreshDetailsViewer(){
- ((AbstractCdmDataViewer) getDetailsView().getViewer()).refresh();
+ if(getDetailsView() != null){
+ ((AbstractCdmDataViewer) getDetailsView().getViewer()).refresh();
+ }
}
/**
* <p>reflowDetailsViewer</p>
*/
public static void reflowDetailsViewer(){
- ((DetailsViewer) getDetailsView().getViewer()).reflow();
+ if(getDetailsView() != null){
+ ((AbstractCdmDataViewer) getDetailsView().getViewer()).reflow();
+ }
}
public static SupplementalDataViewPart getSupplementalDataView(){
}
public static void reflowSupplementalViewer(){
- ((AbstractCdmDataViewer) getSupplementalDataView().getViewer()).reflow();
+ if(getSupplementalDataView() != null){
+ ((AbstractCdmDataViewer) getSupplementalDataView().getViewer()).reflow();
+ }
}
* @return
*/
private boolean hasEmptyNames(Object receiver) {
- return ((TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME)).checkForEmptyNames();
+ TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME);
+ return editor == null ? false : editor.checkForEmptyNames();
}
private boolean isRelatedConcept(Object selectedElement) {
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
- newTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym, taxon);
+ newTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym, taxon, true, true, null, null);
monitor.worked(20);
// synonym.setSec(null);
return;
}
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+
if((part instanceof IEditorPart) || (part instanceof AbstractCdmViewPart)) {
- if(((IStructuredSelection) selection).size() != 1){
+ if(structuredSelection.size() != 1){
showEmptyPage();
return;
}
// do not show details for feature nodes TODO really?
- if(((IStructuredSelection) selection).getFirstElement() instanceof FeatureNodeContainer){
+ if(structuredSelection.getFirstElement() instanceof FeatureNodeContainer){
// do show the map for distributions
Feature feature = ((FeatureNodeContainer) ((IStructuredSelection) selection).getFirstElement()).getFeature();
if(!feature.equals(Feature.DISTRIBUTION())){
}
}
- showViewer(part, selection);
+ showViewer(part, structuredSelection);
}else{
showEmptyPage();
}
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
showViewer(part, new StructuredSelection(input));
}
- if(part instanceof BulkEditor){
- showViewer(part, selection);
+ if(part instanceof BulkEditor && selection instanceof IStructuredSelection){
+ showViewer(part, (IStructuredSelection) selection);
}
}
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.forms.editor.FormEditor;
import org.eclipse.ui.handlers.HandlerUtil;
+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.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
+import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
*/
/** {@inheritDoc} */
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);
- if (editor instanceof FormEditor) {
- editor = ((FormEditor) editor).getActiveEditor();
- }
IEditorInput input = editor.getEditorInput();
if (input instanceof TaxonEditorInput) {
Taxon taxon = ((TaxonEditorInput) input).getTaxon();
}
if(((part instanceof EditorPart) || (part instanceof AbstractCdmViewPart)) && selection instanceof IStructuredSelection) {
- if(((IStructuredSelection) selection).size() != 1){
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ if(structuredSelection.size() != 1){
showEmptyPage();
return;
}
// do not show supplemental data for feature nodes
- if(((IStructuredSelection) selection).getFirstElement() instanceof FeatureNodeContainer){
+ if(structuredSelection.getFirstElement() instanceof FeatureNodeContainer){
showEmptyPage();
return;
}
- if(((IStructuredSelection) selection).getFirstElement() instanceof DerivedUnitFacade){
+ if(structuredSelection.getFirstElement() instanceof DerivedUnitFacade){
return;
}
- showViewer(part, selection);
+ showViewer(part, structuredSelection);
}else{
showEmptyPage();
}
* @param part a {@link org.eclipse.ui.IWorkbenchPart} object.
* @param selection a {@link org.eclipse.jface.viewers.ISelection} object.
*/
- public void showViewer(IWorkbenchPart part, ISelection selection){
+ public void showViewer(IWorkbenchPart part, IStructuredSelection selection){
this.part = part;
-
- IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+
+ Object element = selection.getFirstElement();
- getViewer().setInput(structuredSelection.getFirstElement());
+ getViewer().setInput(element);
showViewer();
}