Bundle-ManifestVersion: 2
Bundle-Name: Application
Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/plugin
activity.description = Disable unwanted eclipse UI\r
activity.name = Disable\r
product.name.0 = EDIT Taxonomic Editor\r
-command.label.25 = Import Preferences
\ No newline at end of file
+command.label.25 = Import Preferences\r
+command.label.23 = Server-sided Preferences
\ No newline at end of file
command.label.20 = \u00dcber die EDIT Platform
command.label.21 = Neu
command.label.22 = Speichern
-command.label.23 = Datenbank Präferenzen
+command.label.23 = Serverseitige Präferenzen
command.label.24 = Datenbank Reparatur Funktionalität
command.label.25 = Import Präferenzen
product.name = EDIT Taxonomischer Editor
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
+++ /dev/null
-/**
-* 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;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Now handled entirely by native save action.
- *
- * @author p.ciardelli
- * @created 04.09.2009
- * @version 1.0
- * @see ApplicationActionBarAdvisor
- */
-public class SaveAllHandler extends AbstractHandler {
- private static final Logger logger = Logger.getLogger(SaveAllHandler.class);
-
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
- /** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
- HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().saveAllEditors(false);
- return null;
- }
-}
+++ /dev/null
-/**
-* 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;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Now handled entirely by native save action.
- *
- * @author p.ciardelli
- * @created 04.09.2009
- * @version 1.0
- * @see ApplicationActionBarAdvisor
- */
-public class SaveHandler extends AbstractHandler {
- private static final Logger logger = Logger.getLogger(SaveHandler.class);
-
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
- /** {@inheritDoc} */
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IEditorPart editor = HandlerUtil.getActiveEditor(event);
- if (editor != null) {
- HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().saveEditor(editor, false);
- }
- return null;
- }
-}
Bundle-ManifestVersion: 2
Bundle-Name: Bulkeditor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
eu.etaxonomy.taxeditor.store,
eu.etaxonomy.taxeditor.cdmlib,
org.eclipse.e4.ui.model.workbench;bundle-version="1.2.0.v20160229-1459",
- org.eclipse.e4.ui.workbench
+ org.eclipse.e4.ui.workbench,
+ org.eclipse.e4.core.di.annotations;bundle-version="1.5.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: eu.etaxonomy.taxeditor.editor,
org.eclipse.core.runtime,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
}
if (annotation.isMarkedAsMerged()) {
persistenceService.merge(annotation.getEntity(), annotation.getMergeTarget()); // merge
- } if (annotation.isMarkedAsDeleted()) {
+ }
+ if (annotation.isMarkedAsDeleted()) {
try {
persistenceService.delete(annotation.getEntity(), annotation.getDeleteConfigurator());
} catch (ReferencedObjectUndeletableException e) {
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
*/
import java.util.Map;
-import eu.etaxonomy.cdm.model.common.ICdmBase;
-
/**
* <p>IEntityCreator interface.</p>
* @version 1.0
*/
public interface IEntityCreator<T> {
-
+
/**
* <p>createEntity</p>
*
* @return a T object.
*/
T createEntity(String text);
-
+
/**
* <p>createEntity</p>
*
* @return a T object.
*/
T createEntity(Object key, String text);
-
+
/**
* Get a map of keys for all objects that can be created by this entity creator
* along with their string representations.
*
* @return a {@link java.util.Map} object.
*/
- Map<Object, String> getKeyLabelPairs();
-
+ Map<? extends Object, String> getKeyLabelPairs();
+
/**
* Return a flag indicating whether this creator also saves the entities
*
* @return true or false
*/
boolean savesEntity();
-
+
}
private boolean isDirty;
private IUndoContext undoContext;
-
+
public BulkEditor() {
super(CdmStore.createConversation());
undoContext = new UndoContext();
isDirty = true;
firePropertyChange(PROP_DIRTY);
}
-
-
+
+
@Override
public void doSave(IProgressMonitor progressMonitor) {
isDirty = false;
super.doSave(progressMonitor);
+ this.searchBar.updateEditorInput();
selectFirstItem();
getSourceViewer().getTextWidget().setFocus();
getEditorInput().dispose();
getEditorInput().bind();
getEditorInput().performSearch(query);
-
+
refresh();
selectFirstItem();
return undoContext;
}
-
+
}
*/
private void registerAtFocusService() {
IFocusService focusService =
- (IFocusService) PlatformUI.getWorkbench().getService(IFocusService.class);
+ PlatformUI.getWorkbench().getService(IFocusService.class);
if (focusService != null) {
focusService.addFocusTracker(text, "bulkeditor.textControlId");
}
/**
* Shows the results of the search.
*/
- private void updateEditorInput() {
+ public void updateEditorInput() {
String searchString = getSearchString().trim();
return BulkEditorInputType.getByType(((UuidAndTitleCache) selectedElement).getType())!=null;
}
else if(selectedElement instanceof TreeNode){
- System.out.println(BulkEditorInputType.getByType(((TreeNode) selectedElement).getValue().getClass())!=null);
return BulkEditorInputType.getByType(((TreeNode) selectedElement).getValue().getClass())!=null;
}
return BulkEditorInputType.getByType(selectedElement.getClass())!=null;
.getLogger(DynamicNewObjectMenu.class);
private final IHandlerService handlerService = (IHandlerService) BulkEditorUtil.getService(IHandlerService.class);
- private Map<Object, String> classLabelPairs;
+ private Map<? extends Object, String> classLabelPairs;
/** {@inheritDoc} */
@Override
* Get class label pairs from Annotated Line Editor's entity creator.
* @return
*/
- private Map<Object, String> getClassLabelPairs() {
+ private Map<? extends Object, String> getClassLabelPairs() {
IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (editor != null){
IEditorInput input = editor.getEditorInput();
package eu.etaxonomy.taxeditor.bulkeditor.handler;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.text.source.Annotation;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
+import eu.etaxonomy.taxeditor.bulkeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
controller = CdmStore.getCurrentApplicationConfiguration();
if (object instanceof SpecimenOrObservationBase){
IOccurrenceService service = controller.getOccurrenceService();
+ config = new SpecimenDeleteConfigurator();
+
+ DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), CONFIRM_DELETION, null, Messages.BulkEditor_DeleteHandler_reallyDeleteSpecimen, MessageDialog.WARNING, new String[] { DELETE, SKIP }, 0, true);
+ int result_dialog= dialog.open();
+ if (result_dialog != Status.OK){
+ return null;
+ }
if (object != null){
- result = service.isDeletable(((SpecimenOrObservationBase) object).getUuid(), null);
+ result = service.isDeletable(((SpecimenOrObservationBase) object).getUuid(), config);
errorMessage = "The specimen or observation ";
}
MessagingUtils.messageDialog("Delete not possible", getClass(), "The object could not be deleted. An exception occured.", null);
}
}else if (model != null) {
- Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
+ int offset = selection.getOffset();
+ if (offset == 0){
+ offset = 1;
+ }
+ Iterator iter = model.getAnnotationIterator(offset, selection.getLength(), true, true);
+ // Iterator<Annotation> iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
while (iter.hasNext()) {
Object next = iter.next();
if (next instanceof LineAnnotation) {
--- /dev/null
+package eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler;
+
+import java.util.UUID;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class OpenBulkEditorForIdentifiableEntityE4 {
+
+ @Execute
+ public void execute(MHandledMenuItem menuItem) {
+ String commandId = menuItem.getCommand().getElementId();
+ UUID uuid = (UUID) menuItem.getTransientData().get(commandId+".uuid");
+ IdentifiableEntity entity = CdmStore.getCommonService().find(IdentifiableEntity.class, uuid);
+ try {
+ BulkEditorUtil.openEditor(entity);
+ } catch (PartInitException e) {
+ MessagingUtils.error(this.getClass(), "Bulk Editor could not be opened for "+entity, e);
+ }
+ }
+
+}
import java.util.List;
import java.util.UUID;
+import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.OccurrenceCreator;
* @throws ReferencedObjectUndeletableException */
@Override
public boolean delete(SpecimenOrObservationBase entity, DeleteConfiguratorBase config ) throws ReferencedObjectUndeletableException {
- return CdmStore.getService(IOccurrenceService.class).delete(entity) != null;
+ DeleteResult deleteResult;
+ SpecimenDeleteConfigurator specimenConfig;
+ if (config instanceof SpecimenDeleteConfigurator){
+ specimenConfig = (SpecimenDeleteConfigurator)config;
+ }else{
+ specimenConfig = new SpecimenDeleteConfigurator();
+ }
+ deleteResult = CdmStore.getService(IOccurrenceService.class).delete(entity.getUuid(), specimenConfig);
+
+ return deleteResult.isOk();
}
/** {@inheritDoc} */
@Override
public SpecimenOrObservationBase<?> save(SpecimenOrObservationBase entity) {
return CdmStore.getService(IOccurrenceService.class).merge(entity, true).getMergedEntity();
-
+
}
@Override
package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;
-import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
* @return a {@link java.util.Map} object.
*/
@Override
- public Map<Object, String> getKeyLabelPairs() {
- Map<Object, String> result = new TreeMap<Object, String>();
+ public Map<Rank, String> getKeyLabelPairs() {
+ Map<Rank, String> result = new TreeMap<Rank, String>(
+ (Comparator<Rank>) (o1, o2) -> o2.compareTo(o1)
+ );
List<Rank> ranks = CdmStore.getTermManager().getPreferredTerms(Rank.class);
- Collections.reverse(ranks);
+ //Collections.reverse(ranks);
for (Rank rank : ranks) {
result.put(rank, rank.getLabel());
}
public class Messages extends NLS {
private static final String BUNDLE_NAME = "src/main/java/eu.etaxonomy.taxeditor.bulkeditor.l10n.messages"; //$NON-NLS-1$
public static String ReferencingObjectsLabelProvider_No_description_available;
+ public static String ConvertPerson2TeamHandler_warning;
+ public static String ConvertPerson2TeamHandler_lable;
+ public static String BulkEditor_DeleteHandler_reallyDeleteSpecimen;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
ReferencingObjectsLabelProvider_No_description_available=No description available
+ConvertPerson2TeamHandler_warning=While reloading the data an exception occured
+ConvertPerson2TeamHandler_lable=Convert Person to Team
+BulkEditor_DeleteHandler_reallyDeleteSpecimen=Do you really want to delete the specimen/field unit? This is irreversible.
\ No newline at end of file
-ReferencingObjectsLabelProvider_No_description_available=Keine Beschreibung verfügbar
\ No newline at end of file
+ReferencingObjectsLabelProvider_No_description_available=Keine Beschreibung verfügbar
+ConvertPerson2TeamHandler_warning=Beim Neuladen der Daten ist ein Fehler aufgetreten
+ConvertPerson2TeamHandler_lable=Wandle Person in Team um
+BulkEditor_DeleteHandler_reallyDeleteSpecimen=Möchten Sie das Specimen/die FieldUnit wirklich löschen, dieser Vorgang kann nicht rückgängig gemacht werden.
\ No newline at end of file
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.model.DescriptionHelper;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
private String referencedObjectTitleCache;
private ConversationHolder conversation;
- private final ICdmEntitySession cdmEntitySession;
+ //private final ICdmEntitySession cdmEntitySession;
private UUID actualUuid;
List<CdmBase> referencingObjects = null;
Set<CdmBase> referencingObjectsSet = null;
private Job currentJob = null;
public ReferencingObjectsView() {
- cdmEntitySession = CdmStore.getCurrentSessionManager().bindNullSession();
+ // cdmEntitySession = CdmStore.getCurrentSessionManager().getNullSession();
+
+ //cdmEntitySession = CdmStore.getCurrentSessionManager().bindNullSession();
}
/** {@inheritDoc} */
createColumns(viewer);
viewer.setContentProvider(new ReferencingObjectsContentProvider());
viewer.setLabelProvider(new ReferencingObjectsLabelProvider());
+
viewer.setCellModifier(new ICellModifier() {
@Override
public void modify(Object element, String property, Object value) {
getSite().registerContextMenu(menuManager, viewer);
Control control = viewer.getControl();
Menu menu = menuManager.createContextMenu(control);
+ menuManager.setRemoveAllWhenShown(true);
control.setMenu(menu);
// Propagate selection from viewer
@Override
public void setFocus() {
- cdmEntitySession.bind();
+ // cdmEntitySession.bind();
}
public void updateReferencingObjects(final UUID entityUUID, final Class objectClass) {
if (actualUuid == entityUUID){
return ;
}
- showEmptyPage();
+
if(actualMonitor!=null && !actualMonitor.isCanceled()){
// boolean success = false;
// //wait for cancel to be done
}
}
- currentJob = new Job("Update Referencing Objects " + entityUUID) {
+ showEmptyPage();
+ currentJob = new Job("Update Referencing Objects") {
@Override
- protected IStatus run(IProgressMonitor monitor) {
+ protected IStatus run(final IProgressMonitor monitor) {
monitor.beginTask("Calculating referencing objects", 100);
actualUuid = entityUUID;
}
actualMonitor = monitor;
if (entityUUID != null){
- ICdmEntitySession previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
- cdmEntitySession.bind();
+// ICdmEntitySession previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
+// cdmEntitySession.bind();
referencingObjectsSet = getReferencingObjects(entityUUID, objectClass);
if(monitor.isCanceled()) {
}
if(monitor.isCanceled()) {
- if(previousCdmEntitySession != null) {
- previousCdmEntitySession.bind();
- }
+// if(previousCdmEntitySession != null) {
+// previousCdmEntitySession.bind();
+// }
return Status.CANCEL_STATUS;
}
monitor.worked(80);
- updateView();
- if(previousCdmEntitySession != null) {
- previousCdmEntitySession.bind();
- }
+ updateView();
+// if(previousCdmEntitySession != null) {
+// previousCdmEntitySession.bind();
+// }else{
+// CdmStore.getCurrentSessionManager().bind(null);
+// }
// actualUuid = entityUUID;
}
monitor.done();
-
+ actualMonitor = null;
return Status.OK_STATUS;
currentJob.setUser(true);
currentJob.schedule();
-// final IJobChangeListener listener;
-// listener = new JobChangeAdapter() {
-// @Override
-// public void done(IJobChangeEvent event) {
-// System.err.println("Job is done" + entityUUID);
-// //event.getJob().cancel();
-// }
-//
-// };
-// currentJob.addJobChangeListener(listener);
-
-
-
-
}
private Set<CdmBase> getReferencingObjects(UUID entity, Class objectClass) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
+
if (viewer != null && !viewer.getControl().isDisposed()){
try{
viewer.setInput(referencingObjects);
//enable/disable table
viewer.getControl().setEnabled(referencingObjects!=null);
-
}catch(Exception e){
e.printStackTrace();
logger.debug(e.getStackTrace());
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
- if (referencedObjectTitleCache != null){
+ if (referencedObjectTitleCache != null){
setContentDescription(description);
} else {
setContentDescription(description);
}
+
}
});
/** {@inheritDoc} */
@Override
- public void showViewer(IWorkbenchPart part, IStructuredSelection selection) {
+ public void showViewer(Object part, IStructuredSelection selection) {
// this.part = part;
Object firstElement = selection.getFirstElement();
conversation.close();
selectionService.removePostSelectionListener(this);
selectionService.removeSelectionListener(this);
- cdmEntitySession.dispose();
+ //cdmEntitySession.dispose();
super.dispose();
}
<classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.8.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/aspectjweaver-1.8.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-4.7.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.7.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.7.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.7.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.7.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.7.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.7.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.7.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.7.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-4.8.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.8.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.8.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.8.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.8.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.8.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.8.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.8.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.8.0-SNAPSHOT.jar"/>
<classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar"/>
Bundle-ManifestVersion: 2
Bundle-Name: CDM Library Dependencies Plugin
Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Eclipse-BundleShape: dir
Export-Package: com.google.api,
com.google.api.detect,
eu.etaxonomy.cdm.io.outputmodel,
eu.etaxonomy.cdm.io.pilotOutputHtml,
eu.etaxonomy.cdm.io.reference.endnote.in,
+ eu.etaxonomy.cdm.io.reference.ris.in,
eu.etaxonomy.cdm.io.sdd,
eu.etaxonomy.cdm.io.sdd.ikeyplus,
eu.etaxonomy.cdm.io.sdd.in,
lib/aspectjrt-1.8.8.jar,
lib/aspectjweaver-1.8.8.jar,
lib/batik-xml-1.7.jar,
- lib/cdmlib-commons-4.7.0-SNAPSHOT.jar,
- lib/cdmlib-ext-4.7.0-SNAPSHOT.jar,
- lib/cdmlib-io-4.7.0-SNAPSHOT.jar,
- lib/cdmlib-model-4.7.0-SNAPSHOT.jar,
- lib/cdmlib-persistence-4.7.0-SNAPSHOT.jar,
- lib/cdmlib-print-4.7.0-SNAPSHOT.jar,
- lib/cdmlib-remote-4.7.0-SNAPSHOT.jar,
- lib/cdmlib-services-4.7.0-SNAPSHOT.jar,
- lib/cdmlib-test-4.7.0-SNAPSHOT.jar,
+ lib/cdmlib-commons-4.8.0-SNAPSHOT.jar,
+ lib/cdmlib-ext-4.8.0-SNAPSHOT.jar,
+ lib/cdmlib-io-4.8.0-SNAPSHOT.jar,
+ lib/cdmlib-model-4.8.0-SNAPSHOT.jar,
+ lib/cdmlib-persistence-4.8.0-SNAPSHOT.jar,
+ lib/cdmlib-print-4.8.0-SNAPSHOT.jar,
+ lib/cdmlib-remote-4.8.0-SNAPSHOT.jar,
+ lib/cdmlib-services-4.8.0-SNAPSHOT.jar,
+ lib/cdmlib-test-4.8.0-SNAPSHOT.jar,
lib/com.springsource.org.aopalliance-1.0.0.jar,
lib/com.springsource.org.apache.commons.logging-1.1.1.jar,
lib/commons-beanutils-1.9.2.jar,
lib/aspectjrt-1.8.8.jar,\
lib/aspectjweaver-1.8.8.jar,\
lib/batik-xml-1.7.jar,\
- lib/cdmlib-commons-4.7.0-SNAPSHOT.jar,\
- lib/cdmlib-ext-4.7.0-SNAPSHOT.jar,\
- lib/cdmlib-io-4.7.0-SNAPSHOT.jar,\
- lib/cdmlib-model-4.7.0-SNAPSHOT.jar,\
- lib/cdmlib-persistence-4.7.0-SNAPSHOT.jar,\
- lib/cdmlib-print-4.7.0-SNAPSHOT.jar,\
- lib/cdmlib-remote-4.7.0-SNAPSHOT.jar,\
- lib/cdmlib-services-4.7.0-SNAPSHOT.jar,\
- lib/cdmlib-test-4.7.0-SNAPSHOT.jar,\
+ lib/cdmlib-commons-4.8.0-SNAPSHOT.jar,\
+ lib/cdmlib-ext-4.8.0-SNAPSHOT.jar,\
+ lib/cdmlib-io-4.8.0-SNAPSHOT.jar,\
+ lib/cdmlib-model-4.8.0-SNAPSHOT.jar,\
+ lib/cdmlib-persistence-4.8.0-SNAPSHOT.jar,\
+ lib/cdmlib-print-4.8.0-SNAPSHOT.jar,\
+ lib/cdmlib-remote-4.8.0-SNAPSHOT.jar,\
+ lib/cdmlib-services-4.8.0-SNAPSHOT.jar,\
+ lib/cdmlib-test-4.8.0-SNAPSHOT.jar,\
lib/com.springsource.org.aopalliance-1.0.0.jar,\
lib/com.springsource.org.apache.commons.logging-1.1.1.jar,\
lib/commons-beanutils-1.9.2.jar,\
<parent>\r
<groupId>eu.etaxonomy</groupId>\r
<artifactId>taxeditor-parent</artifactId>\r
- <version>4.7.0-SNAPSHOT</version>\r
+ <version>4.8.0-SNAPSHOT</version>\r
</parent>\r
<modelVersion>4.0.0</modelVersion>\r
<artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
Bundle-ManifestVersion: 2
Bundle-Name: Editor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: OSGI-INF/l10n/plugin
org.eclipse.zest.core,
org.eclipse.zest.layouts,
eu.etaxonomy.taxeditor.cdmlib,
- org.eclipse.ui.ide
+ org.eclipse.ui.ide,
+ org.eclipse.e4.ui.workbench,
+ org.eclipse.e4.core.di,
+ org.eclipse.e4.ui.model.workbench,
+ org.eclipse.e4.ui.di
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.core.databinding.beans,
+Import-Package: javax.inject;version="1.0.0",
+ org.eclipse.core.databinding.beans,
org.eclipse.core.databinding.observable.list,
org.eclipse.core.databinding.observable.map,
org.eclipse.core.resources,
org.eclipse.core.runtime,
+ org.eclipse.e4.core.di.annotations,
+ org.eclipse.e4.ui.di,
+ org.eclipse.e4.ui.model.application,
+ org.eclipse.e4.ui.model.application.ui,
+ org.eclipse.e4.ui.model.application.ui.basic,
+ org.eclipse.e4.ui.model.application.ui.menu,
+ org.eclipse.e4.ui.services,
org.eclipse.equinox.app,
org.eclipse.jface.databinding.viewers,
org.eclipse.jface.text,
viewCommandMapping.viewerName.NAME_EDITOR = Name Editor\r
viewCommandMapping.viewerName.SPECIMEN_EDITOR = Specimen Editor\r
viewCommandMapping.viewerName.CHECKLIST_EDITOR = Distribution Editor\r
-command.name.OPEN_EDITOR_FOR_TYPE_SPECIMEN = Open specimen editor for type specimen
\ No newline at end of file
+command.name.OPEN_EDITOR_FOR_TYPE_SPECIMEN = Open specimen editor for type specimen
+menu.label.5 = Add...
+handledmenuitem.label.1 = Specimen
+handledmenuitem.label.2 = Tissue Sample
+handledmenuitem.label.3 = DNA Sample
+handledmenuitem.label.4 = Consensus Sequence
+menu.label.6 = Media
+handledmenuitem.label.5 = Media Specimen
+handledmenuitem.label.6 = Existing Media
+handledmenuitem.label.7 = Single Read
+handledmenuitem.label.8 = Create Field Unit For ...
+handledmenuitem.label.9 = Create Field Unit
+command.commandname.1 = Create Field Unit
+command.commandname.2 = Add Specimen
+command.commandname.3 = Add Tissue Sample
+command.commandname.4 = Add DNA Sample
+command.commandname.5 = Add Existing Media
+command.commandname.6 = Add Media Specimen
+command.commandname.7 = Add Consensus Sequence
+command.commandname.8 = Add Single Read
--- /dev/null
+<?xml version="1.0" encoding="ASCII"?>
+<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/descriptor/basic" xmlns:commands="http://www.eclipse.org/ui/2010/UIModel/application/commands" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmlns:ui="http://www.eclipse.org/ui/2010/UIModel/application/ui" xmi:id="_OhwnQCTfEeeiN5lBIuqN3g">
+ <imports xsi:type="commands:Command" xmi:id="_WPjpoDSnEeek0dKsFNy--Q" elementId="eu.etaxonomy.taxeditor.command.openPart"/>
+ <imports xsi:type="commands:Command" xmi:id="_Qz6EMD62EeekvPZafWEv7w" elementId="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity"/>
+ <imports xsi:type="commands:Command" xmi:id="_majwMEaQEeeXMc6kSYO7Xg" elementId="org.eclipse.ui.file.save"/>
+ <fragments xsi:type="fragment:StringModelFragment" xmi:id="_gSpRsDQDEeeTNOFVGI4q2w" featurename="descriptors" parentElementId="xpath:/">
+ <elements xsi:type="basic:PartDescriptor" xmi:id="_gSpRsTQDEeeTNOFVGI4q2w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView" label="%command.label.DERIVATIVE_EDITOR" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/derivate_view-16x16-32.png" tooltip="%command.label.DERIVATIVE_EDITOR" allowMultiple="true" category="Sample Category" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
+ <tags>View</tags>
+ <tags>categoryTag:Sample Category</tags>
+ <handlers xmi:id="_E5l4wDVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" command="_BjF3ADVqEee_b7RlBzTDRw"/>
+ <handlers xmi:id="_ha1I4DmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler" command="_qqMbcDmBEeeOos_QXKSXcA"/>
+ <handlers xmi:id="_FOiO0DocEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler" command="_I2LD4DocEeecLdI14WMq7w"/>
+ <handlers xmi:id="_mrTfkDonEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddDnaSampleHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddDnaSampleHandler" command="_jsbToDonEeecLdI14WMq7w"/>
+ <handlers xmi:id="_B5hkYDooEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddMediaSpecimenHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddMediaSpecimenHandler" command="_pKdiQDoqEeecLdI14WMq7w"/>
+ <handlers xmi:id="_3RPaQDorEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddExistingMediaHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddExistingMediaHandler" command="_-haZEDonEeecLdI14WMq7w"/>
+ <handlers xmi:id="_OOIwoDooEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddConsensusSequenceHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddConsensusSequenceHandler" command="_IdPwEDooEeecLdI14WMq7w"/>
+ <handlers xmi:id="_Vf1coDooEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSingleReadHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSingleReadHandler" command="_LTuN8DooEeecLdI14WMq7w"/>
+ <handlers xmi:id="_Y1cLkDueEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler" command="_UwK_UDueEeeOtqC_3qh40A"/>
+ <handlers xmi:id="_sGhWgDulEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler" command="_fKT-wDulEeeOtqC_3qh40A"/>
+ <handlers xmi:id="_QNvcUDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.copySingleRead" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadCopyToClipboardHandler" command="_N0wLsDumEeeOtqC_3qh40A"/>
+ <handlers xmi:id="_bAGysDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.reuseSingleRead" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadReuseHandler" command="_HmerkDumEeeOtqC_3qh40A"/>
+ <handlers xmi:id="_ed9ZoDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.removeSingleRead" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadRemoveHandler" command="_K4DxEDumEeeOtqC_3qh40A"/>
+ <handlers xmi:id="_CQjyIDvaEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler" command="_YPp1wDvREeeOtqC_3qh40A"/>
+ <handlers xmi:id="_OJK8QD62EeekvPZafWEv7w" elementId="eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler.OpenBulkEditorForIdentifiableEntityE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler.OpenBulkEditorForIdentifiableEntityE4" command="_Qz6EMD62EeekvPZafWEv7w"/>
+ <handlers xmi:id="_BWBGgEaQEeeXMc6kSYO7Xg" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SaveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_majwMEaQEeeXMc6kSYO7Xg"/>
+ <menus xsi:type="menu:PopupMenu" xmi:id="_CYXZ0DQEEeeTNOFVGI4q2w" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.specimeneditor">
+ <children xsi:type="menu:Menu" xmi:id="_cdjzEDmAEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.menu.add" label="%menu.label.5">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_ASKmMDpCEeecM-jyCkToYw" coreExpressionId="isAddDerivateAllowed"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_R27WIDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.specimen" label="%handledmenuitem.label.1" command="_qqMbcDmBEeeOos_QXKSXcA"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_ueupgDowEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.0"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_TKz_4DmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.tissuesample" label="%handledmenuitem.label.2" command="_I2LD4DocEeecLdI14WMq7w"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_UukRoDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.dnasample" label="%handledmenuitem.label.3" command="_jsbToDonEeecLdI14WMq7w"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_YYSxYDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.consensussequence" label="%handledmenuitem.label.4" command="_IdPwEDooEeecLdI14WMq7w"/>
+ <children xsi:type="menu:Menu" xmi:id="_C4qJUDosEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.menu.specimen_editor.media" label="%menu.label.6">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_8zj4sDo-EeecM-jyCkToYw" coreExpressionId="isAddMediaAllowed"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_WwK9ADmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.mediaspecimen" label="%handledmenuitem.label.5" command="_pKdiQDoqEeecLdI14WMq7w"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_MecX0DosEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.existingmedia" label="%handledmenuitem.label.6" command="_-haZEDonEeecLdI14WMq7w"/>
+ </children>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_Z-LKEDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.singleread" label="%handledmenuitem.label.7" command="_LTuN8DooEeecLdI14WMq7w"/>
+ </children>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_O4ujcDuhEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.1"/>
+ <children xsi:type="menu:DynamicMenuContribution" xmi:id="_yz9M4DxrEeeqBMqdgjGMrQ" elementId="eu.etaxonomy.taxeditor.editor.specimeneditor.dynamicmenucontribution.cdmViewer" label="Open in..." contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_sp6BoDy8EeeqBMqdgjGMrQ" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.5"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_um1oYDVpEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.create_field_unit_for_taxon" label="%handledmenuitem.label.8" command="_BjF3ADVqEee_b7RlBzTDRw"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_5GMRcDWQEeeNfoZ3nN0K8Q" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createfieldunit" label="%handledmenuitem.label.9" command="_BjF3ADVqEee_b7RlBzTDRw"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_QoiUMDuhEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.2"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_eElJ8DueEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabellink_with_taxon_selection" label="%command.label.LINK_WITH_TAXON_SELECTION" command="_UwK_UDueEeeOtqC_3qh40A"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_9nI4IDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.4"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_h4pX0DumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandnamereuse_single_read" label="%command.label.REUSE_SINGLE_READ_HERE" command="_HmerkDumEeeOtqC_3qh40A"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_oQXH0DumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabelreuse_single_read_for_other_sequence" label="%command.label.REUSE_SINGLE_READ_FOR_OTHER_SEQUENCE" command="_N0wLsDumEeeOtqC_3qh40A"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_1apX0DumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabelremove_single_read_from_this_sequence" label="%command.label.REMOVE_SINGLE_READ_FROM_THIS_SEQUENCE" command="_K4DxEDumEeeOtqC_3qh40A"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_c0f98DulEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.3"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_XWW6QDulEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel52" label="%command.label.52" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_YPp1wDvREeeOtqC_3qh40A"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_wg0-oDulEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel54" label="%command.label.54" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/deep-delete-16x16-32.png" command="_fKT-wDulEeeOtqC_3qh40A"/>
+ </menus>
+ </elements>
+ </fragments>
+ <fragments xsi:type="fragment:StringModelFragment" xmi:id="__mwtMDVpEee_b7RlBzTDRw" featurename="commands" parentElementId="xpath:/">
+ <elements xsi:type="commands:Command" xmi:id="_BjF3ADVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.command.specimeneditor.create_field_unit" commandName="%command.commandname.1"/>
+ <elements xsi:type="commands:Command" xmi:id="_qqMbcDmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_specimen" commandName="%command.commandname.2"/>
+ <elements xsi:type="commands:Command" xmi:id="_I2LD4DocEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_tissue_sample" commandName="%command.commandname.3"/>
+ <elements xsi:type="commands:Command" xmi:id="_jsbToDonEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_dna_sample" commandName="%command.commandname.4"/>
+ <elements xsi:type="commands:Command" xmi:id="_-haZEDonEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_existing_media_specimen" commandName="%command.commandname.5"/>
+ <elements xsi:type="commands:Command" xmi:id="_pKdiQDoqEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_media_specimen" commandName="%command.commandname.6"/>
+ <elements xsi:type="commands:Command" xmi:id="_IdPwEDooEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_consensus_sequence" commandName="%command.commandname.7"/>
+ <elements xsi:type="commands:Command" xmi:id="_LTuN8DooEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_single_read" commandName="%command.commandname.8"/>
+ <elements xsi:type="commands:Command" xmi:id="_UwK_UDueEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection" commandName="%command.label.LINK_WITH_TAXON_SELECTION"/>
+ <elements xsi:type="commands:Command" xmi:id="_fKT-wDulEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivate.deepDelete" commandName="%command.label.54"/>
+ <elements xsi:type="commands:Command" xmi:id="_HmerkDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivative.reuseSingleRead" commandName="%command.name.REUSE_SINGLE_READ"/>
+ <elements xsi:type="commands:Command" xmi:id="_K4DxEDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivative.removeSingleReadFromSequence" commandName="%command.name.REMOVE_SINGLE_READ"/>
+ <elements xsi:type="commands:Command" xmi:id="_N0wLsDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard" commandName="%command.name.COPY_SINGLE_READ_TO_CLIPBOARD"/>
+ <elements xsi:type="commands:Command" xmi:id="_YPp1wDvREeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivate.delete" commandName="Delete"/>
+ </fragments>
+</fragment:ModelFragments>
id="eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor"
name="%editor.name.8">
</editor>
- <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="%editor.name.DERIVATIVE_EDITOR">
- </editor>
</extension>
<extension
point="org.eclipse.ui.views">
name="eu.etaxonomy.taxeditor.editor.separator1">
</separator>
</menuContribution>
- <menuContribution
- locationURI="popup:eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
- <separator
- name="eu.etaxonomy.taxeditor.editor.separator4"
- visible="true">
- </separator>
- <dynamic
- class="eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu.DerivateViewContextMenu"
- id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateContextMenu">
- </dynamic>
- <dynamic
- class="eu.etaxonomy.taxeditor.view.CdmViewerContextMenu"
- id="eu.etaxonomy.taxeditor.editor.derivativeEditor.CdmViewerContextMenu">
- </dynamic>
- <separator
- name="eu.etaxonomy.taxeditor.editor.separator1"
- visible="true">
- </separator>
- <command
- commandId="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
- label="%command.label.LINK_WITH_TAXON_SELECTION"
- style="push">
- <visibleWhen
- checkEnabled="true">
- <not>
- <reference
- definitionId="isDerivativeEditorLinkedToTaxonSelection">
- </reference>
- </not>
- </visibleWhen>
- </command>
- <command
- commandId="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
- label="%command.label.UNLINK_FROM_TAXON_SELECTION"
- style="push">
- <visibleWhen
- checkEnabled="true">
- <reference
- definitionId="isDerivativeEditorLinkedToTaxonSelection">
- </reference>
- </visibleWhen>
- </command>
- <separator
- name="eu.etaxonomy.taxeditor.editor.separator3"
- visible="true">
- </separator>
- <command
- commandId="eu.etaxonomy.taxeditor.editor.derivative.reuseSingleRead"
- id="eu.etaxonomy.taxeditor.editor.derivative.reuseSingleReadMenuItem"
- label="%command.label.REUSE_SINGLE_READ_HERE"
- style="push">
- <visibleWhen
- checkEnabled="true">
- <reference
- definitionId="isSingleReadReusableHere">
- </reference>
- </visibleWhen>
- </command>
- <command
- commandId="eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard"
- label="%command.label.REUSE_SINGLE_READ_FOR_OTHER_SEQUENCE"
- style="push">
- <visibleWhen
- checkEnabled="true">
- <reference
- definitionId="isSingleRead">
- </reference>
- </visibleWhen>
- </command>
- <command
- commandId="eu.etaxonomy.taxeditor.editor.derivative.removeSingleReadFromSequence"
- label="%command.label.REMOVE_SINGLE_READ_FROM_THIS_SEQUENCE"
- style="push">
- <visibleWhen
- checkEnabled="true">
- <reference
- definitionId="isSingleReadReused">
- </reference>
- </visibleWhen>
- </command>
- <separator
- name="eu.etaxonomy.taxeditor.editor.separator7"
- visible="true">
- </separator>
- <command
- commandId="org.eclipse.ui.edit.delete"
- label="%command.label.52"
- style="push">
- </command>
- <command
- commandId="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
- icon="icons/deep-delete-16x16-32.png"
- label="%command.label.54"
- style="push">
- </command>
- </menuContribution>
<menuContribution
locationURI="popup:eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor">
<dynamic
</dynamic>
</menuContribution>
-
-
-
<menuContribution
locationURI="popup:eu.etaxonomy.taxeditor.editor.view.uses">
<command
</with>
</activeWhen>
</handler>
- <handler
- class="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
- commandId="org.eclipse.ui.edit.delete">
- <activeWhen>
- <with
- variable="activePartId">
- <equals
- value="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
- </equals>
- </with>
- </activeWhen>
- </handler>
<handler
class="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.ToggleShowOnlyIndividualAssociationsHandler"
commandId="eu.etaxonomy.taxeditor.editor.handler.showOnlyIndividualAssociations">
typeId="eu.etaxonomy.taxeditor.uuidParameterType">
</commandParameter>
</command>
- <command
- defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
- id="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
- name="%command.name.44">
- </command>
<command
categoryId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.category"
defaultHandler="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.MoveDescriptionToOtherTaxonHandler"
id="eu.etaxonomy.taxeditor.editor.openSpecimenEditorFromMenu"
name="%command.name.OPEN_DERIVATIVE_EDITOR">
</command>
- <command
- defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.ListenToSelectionChangeHandler"
- id="eu.etaxonomy.taxeditor.editor.derivative.listenToSelectionChange"
- name="%command.name.LINK_WITH_TAXON_SELECTION">
- </command>
- <command
- defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler"
- id="eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard"
- name="%command.name.COPY_SINGLE_READ_TO_CLIPBOARD">
- </command>
- <command
- defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler"
- id="eu.etaxonomy.taxeditor.editor.derivative.reuseSingleRead"
- name="%command.name.REUSE_SINGLE_READ">
- </command>
- <command
- defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler"
- id="eu.etaxonomy.taxeditor.editor.derivative.removeSingleReadFromSequence"
- name="%command.name.REMOVE_SINGLE_READ">
- </command>
- <command
- defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler"
- id="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
- name="%command.name.TOGGLE_LINK_WITH_TAXON_SELECTION">
- </command>
<command
defaultHandler="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenSpecimenEditorForTypeSpecimenHandler"
id="eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen"
</with>
</definition>
<definition
- id="isSingleReadReusableHere">
+ id="isSpecimenOrObservationBase">
<with
variable="selection">
<test
- property="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester.isSingleReadReusableHere">
+ property="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester.isSpecimenOrObservationBase">
+ </test>
+ </with>
+ </definition>
+ <definition
+ id="isDerivativeEditorLinkedToTaxonSelection">
+ <with
+ variable="activeEditor">
+ <test
+ property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester.isLinkedWithTaxonSelection">
</test>
</with>
</definition>
<definition
- id="isSingleReadReused">
+ id="isOrphanedTaxon">
<with
variable="selection">
<test
- property="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester.isSingleReadReused">
+ forcePluginActivation="true"
+ property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isOrphaned">
</test>
</with>
</definition>
<definition
- id="isDerivativeEditorLinkedToTaxonSelection">
+ id="isAddDerivateAllowed">
<with
- variable="activeEditor">
+ variable="selection">
<test
- property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester.isLinkedWithTaxonSelection">
+ property="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester.isAddDerivateAllowed">
</test>
</with>
</definition>
<definition
- id="isOrphanedTaxon">
+ id="isAddMediaAllowed">
<with
variable="selection">
<test
- forcePluginActivation="true"
- property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isOrphaned">
+ property="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester.isAddMediaAllowed">
</test>
</with>
</definition>
class="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
id="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
namespace="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
- properties="isSequence,isSingleRead,isSingleReadReusableHere,isSingleReadReused"
+ properties="isSequence,isSingleRead,isSpecimenOrObservationBase,isAddDerivateAllowed,isAddMediaAllowed"
type="org.eclipse.jface.viewers.IStructuredSelection">
</propertyTester>
<propertyTester
viewerName="Specimen Editor">
</viewCommandMapping>
</extension>
+ <extension
+ id="id1"
+ point="org.eclipse.e4.workbench.model">
+ <fragment
+ apply="initial"
+ uri="fragment.e4xmi">
+ </fragment>
+ </extension>
</plugin>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput;
-//import eu.etaxonomy.taxeditor.store.view.dataimport.BioCaseEditorInput;
-//import eu.etaxonomy.taxeditor.view.dataimport.DataImportEditor;
-//import eu.etaxonomy.taxeditor.view.dataimport.DataImportEditorInput;
-//import eu.etaxonomy.taxeditor.view.dataimport.GbifImportEditor;
-//import eu.etaxonomy.taxeditor.view.dataimport.GbifImportEditorInput;
-//import eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportEditor;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
open(input, CdmAuthorityEditor.ID);
}
- /**
- * Opens a new DerivateView for the given input
- * @param input a {@link DerivateViewEditorInput} representing the selected derivate
- * @throws PartInitException
- */
- public static void open(DerivateViewEditorInput input)
- throws PartInitException {
- open(input, DerivateView.ID);
- }
-
-
/**
* Opens a new ChecklistView for the given input
* @param input a {@link ChecklistEditorInput} representing the selected checklist
* @return the taxon editor that has focus
*/
public static MultiPageTaxonEditor getActiveMultiPageTaxonEditor() {
- IEditorPart editorPart = getActiveEditor();
+ Object editorPart = getActiveE4Editor();
if (editorPart != null && editorPart instanceof MultiPageTaxonEditor) {
MultiPageTaxonEditor editor = (MultiPageTaxonEditor) editorPart;
editor.getConversationHolder().bind();
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- BulkEditor editor = (BulkEditor) EditorUtil.getActiveEditor();
+ BulkEditor editor = (BulkEditor) EditorUtil.getActiveE4Editor();
ISelection selection = editor.getSite().getSelectionProvider().getSelection();
if(selection instanceof LineSelection){
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.PartInitException;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.AppModelId;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
public class OpenDerivateViewHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- try {
- EditorUtil.open(new DerivateViewEditorInput());
- } catch (PartInitException e) {
- MessagingUtils.error(OpenDerivateViewHandler.class, Messages.OpenDerivateViewHandler_COULD_NOT_OPEN, e);
- }
+ MPart part = TaxeditorStorePlugin.getDefault().getWorkbench().getService(EPartService.class).showPart(
+ AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW, PartState.ACTIVATE);
+ DerivateView derivateView = (DerivateView) part.getObject();
+ derivateView.init(new DerivateViewEditorInput());
return null;
}
import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
import eu.etaxonomy.cdm.model.molecular.Sequence;
-import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
*/
public class SpecimenPropertyTester extends PropertyTester {
private static final String SEQUENCE = "isSequence"; //$NON-NLS-1$
- private static final String SINGLE_READ = "isSingleRead"; //$NON-NLS-1$
- private static final String IS_SINGLEREAD_REUSABLE_HERE = "isSingleReadReusableHere"; //$NON-NLS-1$
- private static final String IS_SINGLEREAD_REUSED = "isSingleReadReused"; //$NON-NLS-1$
+ private static final String IS_SPECIMEN_OR_OBSERVATION_BASE = "isSpecimenOrObservationBase"; //$NON-NLS-1$
+ private static final String IS_ADD_DERIVATE_ALLOWED = "isAddDerivateAllowed"; //$NON-NLS-1$
+ private static final String IS_ADD_MEDIA_ALLOWED = "isAddMediaAllowed"; //$NON-NLS-1$
public SpecimenPropertyTester() {}
if (SEQUENCE.equals(property)) {
return isSequence(treeNodeOfSelection.getValue());
}
- else if (SINGLE_READ.equals(property)) {
- return isSingleReadAlignment(treeNodeOfSelection.getValue());
+ else if (IS_SPECIMEN_OR_OBSERVATION_BASE.equals(property)) {
+ return isSpecimenOrObservationBase(treeNodeOfSelection.getValue());
}
- else if (IS_SINGLEREAD_REUSABLE_HERE.equals(property)) {
- return isSingleReadReusableHere(treeNodeOfSelection.getValue());
+ else if (IS_ADD_DERIVATE_ALLOWED.equals(property)) {
+ return isAddDerivateAllowed(treeNodeOfSelection.getValue());
}
- else if (IS_SINGLEREAD_REUSED.equals(property)) {
- return isSingleReadReused(treeNodeOfSelection.getValue());
+ else if (IS_ADD_MEDIA_ALLOWED.equals(property)) {
+ return isAddMediaAllowed(treeNodeOfSelection.getValue());
}
}
}
return false;
}
- private boolean isSingleReadReused(Object value) {
- final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- final IEditorPart activeEditor = window.getActivePage().getActiveEditor();
- if(value instanceof SingleRead){
- if(activeEditor instanceof DerivateView
- && ((DerivateView) activeEditor).getMultiLinkSingleReads().contains(value)){
- return true;
- }
- }
- return false;
+
+ private boolean isSpecimenOrObservationBase(Object object) {
+ return (object instanceof SpecimenOrObservationBase);
+ }
+
+ private boolean isAddDerivateAllowed(Object object) {
+ return (object instanceof SpecimenOrObservationBase || object instanceof Sequence)
+ && !(object instanceof MediaSpecimen);
}
- private boolean isSingleReadReusableHere(Object value) {
- TreeNode clipboardNode = EditorUtil.getTreeNodeOfSelection(LocalSelectionTransfer.getTransfer().getSelection());
- if(value instanceof Sequence && clipboardNode!=null && clipboardNode.getValue() instanceof SingleRead
- && !((Sequence) value).getSingleReads().contains(clipboardNode.getValue())){
- return true;
- }
- return false;
+ private boolean isAddMediaAllowed(Object object) {
+ return object instanceof SpecimenOrObservationBase
+ && !(object instanceof MediaSpecimen);
}
private boolean isSequence(Object object) {
- return (object instanceof Sequence);
- }
-
- private boolean isSingleReadAlignment(Object object) {
- return (object instanceof SingleRead);
+ return (object instanceof Sequence);
}
+
}
import java.util.UUID;
import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.ui.PartInitException;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.AppModelId;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
public class DefaultOpenSpecimenEditorForTypeSpecimenHandler extends
@Override
protected void open(ExecutionEvent event, SpecimenTypeDesignation entity) {
- try {
- EditorUtil.open(new DerivateViewEditorInput(entity.getUuid()));
- } catch (PartInitException e) {
- MessagingUtils.error(DefaultOpenSpecimenEditorForTypeSpecimenHandler.class, Messages.DefaultOpenSpecimenEditorForTypeSpecimenHandler_COULD_NOT_OPEN, e);
- }
+ DerivateViewEditorInput input = new DerivateViewEditorInput(entity.getUuid());
+ MPart part = TaxeditorStorePlugin.getDefault().getWorkbench().getService(EPartService.class).showPart(
+ AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW, PartState.ACTIVATE);
+ DerivateView derivateView = (DerivateView) part.getObject();
+ derivateView.init(input);
}
}
*/
package eu.etaxonomy.taxeditor.editor.key.polytomous;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
UUID polytomousKeyUuid) {
super(conversation);
this.keyUuid = polytomousKeyUuid;
- this.key = CdmStore.getService(IPolytomousKeyService.class).load(polytomousKeyUuid, null);
+ List<String> propertyPath = new ArrayList<>();
+ propertyPath.add("root");
+ propertyPath.add("root.*");
+ this.key = CdmStore.getService(IPolytomousKeyService.class).load(polytomousKeyUuid, propertyPath);
this.name = key.getTitleCache();
}
public static String ConceptContainer_SEC_REQUIRED;
public static String ConceptGraphView_VIEWER_NAME;
public static String ConceptViewPart_VIEWER_NAME;
- public static String CreateDerivateContextMenu_ADD;
- public static String CreateDerivateContextMenu_DNA_SAMPLE;
- public static String CreateDerivateContextMenu_MEDIA;
- public static String CreateDerivateContextMenu_MEDIA_EXISTING;
- public static String CreateDerivateContextMenu_MEDIA_SPECIMEN;
- public static String CreateDerivateContextMenu_NO_CHILD_DERIVATE;
- public static String CreateDerivateContextMenu_SEQUENCE;
- public static String CreateDerivateContextMenu_SINGLE_READ;
- public static String CreateDerivateContextMenu_SPECIMEN;
- public static String CreateDerivateContextMenu_TISSUE_SAMPLE;
public static String CreateFieldUnitContextMenu_CREATE_FIELD_UNIT;
public static String CreateFieldUnitContextMenu_CREATE_FIELD_UNIT_FOR;
public static String DefaultOpenSpecimenEditorForTypeSpecimenHandler_COULD_NOT_OPEN;
public static String KeyEditor_GRAPH;
public static String KeyEditor_LIST;
public static String KeyEditor_SAVING;
- public static String ListenToSelectionChangeContextMenu_LINK;
- public static String ListenToSelectionChangeContextMenu_UNLINK;
public static String MediaViewPart_MEDIA;
public static String MisapplicationContainer_SEC_REF_REQUIRED;
public static String MoveDerivateOperation_MOVE_NOT_POSSIBLE;
-CreateDerivateContextMenu_ADD=Add...
-CreateDerivateContextMenu_DNA_SAMPLE=DNA Sample
-CreateDerivateContextMenu_MEDIA=Media...
-CreateDerivateContextMenu_MEDIA_EXISTING=Use existing media item
-CreateDerivateContextMenu_MEDIA_SPECIMEN=Media item
-CreateDerivateContextMenu_NO_CHILD_DERIVATE=No child derivatives
-CreateDerivateContextMenu_SEQUENCE=Consensus Sequence
-CreateDerivateContextMenu_SINGLE_READ=Single Read
-CreateDerivateContextMenu_SPECIMEN=Specimen
-CreateDerivateContextMenu_TISSUE_SAMPLE=Tissue Sample
CreateFieldUnitContextMenu_CREATE_FIELD_UNIT=Create new field unit
CreateFieldUnitContextMenu_CREATE_FIELD_UNIT_FOR=Create new field unit for %s
SingleReadSequenceContextMenu_REMOVE_FROM_SEQUENCE=Remove from this Sequence
ChecklistEditor_UNKNOWN=unknown
OpenRelatedConceptHandler_COULD_NOT_OPEN=Could not open taxon
OpenRelatedConceptHandler_COULD_NOT_OPEN_MESSAGE=Could not open the taxon: %s
-ListenToSelectionChangeContextMenu_LINK=Link with taxon selection
-ListenToSelectionChangeContextMenu_UNLINK=Unlink from taxon selection
DeleteDerivateHandler_INVALID_SELECTION=Selection is not valid for this delete handler
DeleteDerivateHandler_LABEL=Delete of derivates
DeleteDerivateHandler_SUCCESSFULL_BUT_EXCEPTIONS=Delete was successfull, but with exceptions
-CreateDerivateContextMenu_ADD=Hinzufügen...
-CreateDerivateContextMenu_DNA_SAMPLE=DNA Probe
-CreateDerivateContextMenu_MEDIA=Media...
-CreateDerivateContextMenu_MEDIA_EXISTING=Vorhandendes Medienobjekt verwenden
-CreateDerivateContextMenu_MEDIA_SPECIMEN=Medienobjekt
-CreateDerivateContextMenu_NO_CHILD_DERIVATE=Keine Kind-Derivate
-CreateDerivateContextMenu_SEQUENCE=Konsensussequenz
-CreateDerivateContextMenu_SINGLE_READ=Single Read
-CreateDerivateContextMenu_SPECIMEN=Beleg
-CreateDerivateContextMenu_TISSUE_SAMPLE=Gewebeprobe
CreateFieldUnitContextMenu_CREATE_FIELD_UNIT=Erzeuge neue Field Unit
CreateFieldUnitContextMenu_CREATE_FIELD_UNIT_FOR=Erzeuge neue Field Unit für %s
SingleReadSequenceContextMenu_REMOVE_FROM_SEQUENCE=Von Sequenz entfernen
ChecklistEditor_UNKNOWN=unbekannt
OpenRelatedConceptHandler_COULD_NOT_OPEN=Konnte Taxon nicht öffnen
OpenRelatedConceptHandler_COULD_NOT_OPEN_MESSAGE=Konnte Taxon nicht öffnen: %s
-ListenToSelectionChangeContextMenu_LINK=Verknüpfe mit Taxonauswahl
-ListenToSelectionChangeContextMenu_UNLINK=Verknüpfung mit Taxonauswahl aufheben
DeleteDerivateHandler_INVALID_SELECTION=Auswahl ungültig
DeleteDerivateHandler_LABEL=Löschen von Derivaten
DeleteDerivateHandler_SUCCESSFULL_BUT_EXCEPTIONS=Löschen war erfolgreich, aber es gab Exceptions
DeleteHandler_INVALID_SELECTION=Auswahl ungültig für den DeleteHandler
DeleteHandler_SKIP=Überspringen
DeleteMediaHandler_CONFIRM=Löschen bestätigen
-DeleteMediaHandler_CONFIRM_MESSAGE=Wollen sie wirklich das Medienobjekt löschen?
+DeleteMediaHandler_CONFIRM_MESSAGE=Wollen sie wirklich den Mediendatensatz löschen?
DeleteMediaHandler_DELETE=Löschen
DeleteMediaHandler_SKIP=Überspringen
DerivateSearchComposite_ALL=Alle
* @return a boolean.
*/
public boolean isActive() {
- IWorkbenchPart activePart = AbstractUtility.getActivePart();
- return editor.equals(activePart);
+ return editor.equals(AbstractUtility.getActiveE4Part());
}
/**
AbstractUtility.executeOperation(operation);
DeleteResult result = ((DeleteTaxonBaseOperation)operation).getResult();
- if (result.isError()){
- DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteDerivateOperation_DELETE_FAILED, TaxeditorEditorPlugin.PLUGIN_ID);
- } else if (selectedElement instanceof Synonym){
- this.editor.redraw();
- if (!result.getExceptions().isEmpty()){
- DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
- }
- } else if (selectedElement instanceof Taxon && !result.getExceptions().isEmpty()){
- this.editor.redraw();
- DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
+ if (result != null){
+ if (result.isError()){
+ DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteDerivateOperation_DELETE_FAILED, TaxeditorEditorPlugin.PLUGIN_ID);
+ } else if (selectedElement instanceof Synonym){
+ this.editor.redraw();
+ if (!result.getExceptions().isEmpty()){
+ DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
+ }
+ } else if (selectedElement instanceof Taxon && !result.getExceptions().isEmpty()){
+ this.editor.redraw();
+ DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
+ }
}
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
+
+ UpdateResult result;
try {
- newNode = (TaxonNode) CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym.getUuid(),
+ result = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym.getUuid(),
element.getUuid(),
parentNode.getUuid(),
- true).getCdmEntity();
+ true);
+ if (result.isAbort()){
+
+ MessagingUtils.warningDialog(Messages.ChangeSynonymToAcceptedTaxonOperation_INCONSISTENT_DATA, getClass(), result.toString());
+ return postExecute(null);
+ }
+ newNode = (TaxonNode) result.getCdmEntity();
} catch (HomotypicalGroupChangeException e) {
- MessagingUtils.warningDialog(Messages.ChangeSynonymToAcceptedTaxonOperation_INCONSISTENT_DATA, getClass(), e.getMessage());
- return postExecute(null);
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
+
+
monitor.worked(20);
//newTaxon = (Taxon) CdmStore.getService(ITaxonService.class).merge(newTaxon);
//element.removeSynonym(synonym);
import org.eclipse.core.runtime.IStatus;
import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
// fromTaxon.addTaxonRelation(taxon, taxonRelationshipType, null, null);
monitor.worked(20);
- Taxon fromTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToRelatedTaxon(synonym, element, taxonRelationshipType, null, null);
+ UpdateResult result = CdmStore.getService(ITaxonService.class).changeSynonymToRelatedTaxon(synonym, element, taxonRelationshipType, null, null);
+ Taxon fromTaxon = (Taxon)result.getCdmEntity();
monitor.worked(40);
// TaxonRelationshipType.
public Object execute(ExecutionEvent event) throws ExecutionException {
ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
- ChecklistEditor editor = (ChecklistEditor) EditorUtil.getActiveEditor();
+ ChecklistEditor editor = (ChecklistEditor) EditorUtil.getActiveE4Editor();
if (currentSelection instanceof IStructuredSelection) {
* @created Jan 24, 2011
* @version 1.0
*/
-public class ConceptViewPart extends AbstractCdmEditorViewPart
+public class ConceptViewPart extends AbstractCdmEditorViewPart
implements IPartContentHasDetails, IPartContentHasSupplementalData{
public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept"; //$NON-NLS-1$
if(part == this){
return;
}
- if(AbstractUtility.getActiveEditor() == null){
+ if(AbstractUtility.getActiveE4Editor() == null){
showEmptyPage();
return;
}
-
+
if (part instanceof DetailsViewPart || part instanceof SupplementalDataViewPart) {
// do not show empty page as these views are also used to edit the
// description selected in this view
}
}
-
+
@Override
protected String createPartTitle(Object selectedObject) {
if(selectedObject instanceof TaxonEditorInput){
Control control = viewer.getControl();
Menu menu = menuManager.createContextMenu(control);
+ menuManager.setRemoveAllWhenShown(true);
control.setMenu(menu);
}
public ConceptRelationViewer(Composite parent) {
super(parent);
- }
-
+ }
+
@Override
public ISelection getSelection() {
ISelection selection = super.getSelection();
Object firstElement = ((IStructuredSelection) selection).getFirstElement();
TaxonRelationship taxonRelationship = ((Entry<TaxonRelationship, Taxon>)firstElement).getKey();
return new StructuredSelection(taxonRelationship);
-
+
}
return selection;
}
-
+
@Override
public void setSelection(ISelection selection) {
super.setSelection(selection);
// return;
// }
- if(EditorUtil.getActiveEditor() == null){
+ if(EditorUtil.getActiveE4Editor() == null){
showEmptyPage();
return;
}
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.HandlerUtil;
IUndoContext undoContext = null;
ConversationHolder conversationHolder = null;
Taxon taxon = null;
- IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ Object activeEditor = AbstractUtility.getActiveE4Editor();
if(activeEditor instanceof MultiPageTaxonEditor){
MultiPageTaxonEditor taxonEditor = (MultiPageTaxonEditor)activeEditor;
taxon = taxonEditor.getTaxon();
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
Object selectedElement = structuredSelection.getFirstElement();
if(selectedElement instanceof TaxonRelationship){
- IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ Object activeEditor = AbstractUtility.getActiveE4Editor();
if(activeEditor instanceof MultiPageTaxonEditor){
relatedTaxon = getRelatedTaxon((TaxonRelationship) selectedElement, ((MultiPageTaxonEditor) activeEditor).getTaxon());
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Named;
+
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.MenuManager;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.di.Persist;
+import org.eclipse.e4.ui.model.application.ui.MDirtyable;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.services.EMenuService;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.AbstractTreeViewer;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
* Displays the derivate hierarchy of the specimen specified in the editor input.
*
*/
-public class DerivateView extends EditorPart implements IPartContentHasFactualData, IConversationEnabled,
+public class DerivateView implements IPartContentHasFactualData, IConversationEnabled,
ICdmEntitySessionEnabled, IDirtyMarkable, IPostOperationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, IPartContentHasMedia,
- IContextListener, ISelectionListener {
+ IContextListener {
+
private static final String SPECIMEN_EDITOR = Messages.DerivateView_SPECIMEN_EDITOR;
public static final String ID = "eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView"; //$NON-NLS-1$
+ public static final String INPUT_ID = ID+".editorInput"; //$NON-NLS-1$
public static final String YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION = Messages.DerivateView_YOU_NEED_TO_SAVE;
public static final String VIEW_HAS_UNSAVED_CHANGES = Messages.DerivateView_UNSAVED_CHANGES;
private static final int WARN_THRESHOLD = 200;
- private DelaySelection delaySelection = null;
- /**
- * This is the monitor for the DelaySelection runnable.
- * If it is <code>true</code> then it is currently delaying a selection.
- */
- private boolean isInDelay;
-
-
- /**
- * This class invokes internal_selectionChanged() in a separate thread.
- * This allows an asynchronous and/or delayed handling of selection changes
- */
- private class DelaySelection implements Runnable{
- private IWorkbenchPart part;
- private ISelection selection;
-
- public DelaySelection(IWorkbenchPart part, ISelection selection) {
- super();
- this.part = part;
- this.selection = selection;
- }
-
- @Override
- public void run() {
- try{
- selectionChanged_internal(part, selection);
- }
- finally{
- isInDelay = false;
- }
- }
-
- public synchronized void setSelection(ISelection selection) {
- this.selection = selection;
- }
-
- public synchronized void setPart(IWorkbenchPart part) {
- this.part = part;
- }
-
- }
private ConversationHolder conversation;
private TreeViewer viewer;
- private boolean isDirty;
-
private final int dndOperations = DND.DROP_MOVE;
private DerivateLabelProvider labelProvider;
private Taxon selectedTaxon;
- private ISelectionService selectionService;
+ @Inject
+ private ESelectionService selService;
+
+ @Inject
+ private MDirtyable dirty;
+
+ @Inject
+ private EPartService partService;
+
+ private ISelectionChangedListener selectionChangedListener;
/**
* Default constructor
*/
+ @Inject
public DerivateView() {
}
-
/**
* {@inheritDoc}
*/
- @Override
- public void init(IEditorSite site, IEditorInput input) throws PartInitException {
- this.setSite(site);
- this.setInput(input);
+ public void init(DerivateViewEditorInput editorInput){
this.derivateToRootEntityMap = new HashMap<SpecimenOrObservationBase<?>, SpecimenOrObservationBase<?>>();
this.rootElements = new HashSet<SpecimenOrObservationBase<?>>();
+ //init tree
+ Collection<UUID> derivativeUuids = editorInput.getDerivativeUuids();
+ checkWarnThreshold(derivativeUuids);
+ updateRootEntities(derivativeUuids);
+ //set taxon filter
+ derivateSearchCompositeController.setTaxonFilter(editorInput.getTaxonUuid());
+ //reset status bar
+ //TODO e4
+// getEditorSite().getActionBars().getStatusLineManager().setMessage(""); //$NON-NLS-1$
+ }
+
+ @PostConstruct
+ public void createPartControl(Composite parent, EMenuService menuService) {
if (CdmStore.isActive() && conversation == null) {
conversation = CdmStore.createConversation();
}
}
//listen to context changes
CdmStore.getContextManager().addContextListener(this);
- }
-
- @Override
- public void createPartControl(Composite parent) {
parent.setLayout(new GridLayout());
viewer.setLabelProvider(labelProvider);
viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
viewer.getTree().setEnabled(CdmStore.isActive());
- // Propagate selection from viewer
- getSite().setSelectionProvider(viewer);
- //listen to selection changes
- selectionService = getSite().getWorkbenchWindow().getSelectionService();
- selectionService.addSelectionListener(this);
+ selectionChangedListener = new ISelectionChangedListener() {
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ IStructuredSelection isel = (IStructuredSelection) event.getSelection();
+ selService.setSelection((isel.size() == 1 ? isel.getFirstElement() : isel.toArray()));
+ }
+ };
+ viewer.addSelectionChangedListener(selectionChangedListener);
//create context menu
- MenuManager menuManager = new MenuManager();
- menuManager.setRemoveAllWhenShown(true);
- getSite().registerContextMenu(menuManager, viewer);
- Control control = viewer.getControl();
- Menu menu = menuManager.createContextMenu(control);
- control.setMenu(menu);
-
- //init tree
- Collection<UUID> derivativeUuids = ((DerivateViewEditorInput)getEditorInput()).getDerivativeUuids();
- checkWarnThreshold(derivativeUuids);
- updateRootEntities(derivativeUuids);
- //set taxon filter
- derivateSearchCompositeController.setTaxonFilter(((DerivateViewEditorInput) getEditorInput()).getTaxonUuid());
- //reset status bar
- getEditorSite().getActionBars().getStatusLineManager().setMessage(""); //$NON-NLS-1$
+ menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.editor.popupmenu.specimeneditor");
//add drag'n'drop support
Transfer[] transfers = new Transfer[] {LocalSelectionTransfer.getTransfer(),};
public void updateRootEntities(List<SpecimenOrObservationBase> derivates) {
- if(derivates!=null){
- this.derivateToRootEntityMap = new HashMap<SpecimenOrObservationBase<?>, SpecimenOrObservationBase<?>>();
- this.rootElements = new HashSet<SpecimenOrObservationBase<?>>();
- for (SpecimenOrObservationBase derivate : derivates) {
+ if(derivates!=null){
+ this.derivateToRootEntityMap = new HashMap<SpecimenOrObservationBase<?>, SpecimenOrObservationBase<?>>();
+ this.rootElements = new HashSet<SpecimenOrObservationBase<?>>();
+ for (SpecimenOrObservationBase derivate : derivates) {
- if(derivate instanceof FieldUnit){
- derivateToRootEntityMap.put(derivate, derivate);
+ if(derivate instanceof FieldUnit){
+ derivateToRootEntityMap.put(derivate, derivate);
+ }
+ else {
+ SpecimenOrObservationBase<?> topMostDerivate = EditorUtil.getTopMostDerivate(derivate);
+ if(topMostDerivate!=null){
+ derivateToRootEntityMap.put(derivate, topMostDerivate);
}
- else {
- SpecimenOrObservationBase<?> topMostDerivate = EditorUtil.getTopMostDerivate(derivate);
- if(topMostDerivate!=null){
- derivateToRootEntityMap.put(derivate, topMostDerivate);
- }
- else{
- derivateToRootEntityMap.put(derivate, derivate);
- }
+ else{
+ derivateToRootEntityMap.put(derivate, derivate);
}
}
- for (SpecimenOrObservationBase<?> specimen : derivateToRootEntityMap.values()) {
- rootElements.add(specimen);
- }
}
- labelProvider.updateLabelCache(rootElements);
- viewer.setInput(rootElements);
+ for (SpecimenOrObservationBase<?> specimen : derivateToRootEntityMap.values()) {
+ rootElements.add(specimen);
+ }
+ }
+ labelProvider.updateLabelCache(rootElements);
+ viewer.setInput(rootElements);
- getEditorSite().getActionBars().getStatusLineManager().setMessage(String.format(Messages.DerivateView_CNT_DERIVATIVES_FOUND, rootElements.size()));
+ //TODO e4
+ // getEditorSite().getActionBars().getStatusLineManager().setMessage(String.format(Messages.DerivateView_CNT_DERIVATIVES_FOUND, rootElements.size()));
- //set selection to derivatives if the filter criteria
- //taxon assignment or derivative type are set
- if(derivates!=null && !derivateSearchCompositeController.isDefaultSearch()){
- List<TreeNode> nodesToSelect = new ArrayList<TreeNode>();
- for (SpecimenOrObservationBase specimenOrObservationBase : derivates) {
- nodesToSelect.add(new TreeNode(specimenOrObservationBase));
- }
- viewer.setSelection(new StructuredSelection(nodesToSelect));
- }
- else{
- viewer.setSelection(null);
+ //set selection to derivatives if the filter criteria
+ //taxon assignment or derivative type are set
+ if(derivates!=null && !derivateSearchCompositeController.isDefaultSearch()){
+ List<TreeNode> nodesToSelect = new ArrayList<TreeNode>();
+ for (SpecimenOrObservationBase specimenOrObservationBase : derivates) {
+ nodesToSelect.add(new TreeNode(specimenOrObservationBase));
}
+ setSelection(new StructuredSelection(nodesToSelect));
+ }
+ else{
+ setSelection(null);
+ }
+ }
+ private void setSelection(StructuredSelection selection){
+ viewer.removeSelectionChangedListener(selectionChangedListener);
+ viewer.setSelection(selection);
+ viewer.addSelectionChangedListener(selectionChangedListener);
}
public void updateLabelCache(){
labelProvider.updateLabelCache(rootElements);
}
- @Override
+ @Persist
public void doSave(IProgressMonitor monitor) {
String taskName = Messages.DerivateView_SAVING_HIERARCHY;
monitor.beginTask(taskName, 3);
this.setDirty(false);
monitor.worked(1);
monitor.done();
- firePropertyChange(PROP_DIRTY);
+ dirty.setDirty(false);
refreshTree();
}
- @Override
- public void doSaveAs() {
- }
-
- @Override
- public String getTitleToolTip() {
- return Messages.DerivateView_DERIVATIVE_EDITOR;
- }
-
- @Override
- public boolean isDirty() {
- return isDirty;
- }
-
/**
* @param isDirty the isDirty to set
*/
public void setDirty(boolean isDirty) {
- this.isDirty = isDirty;
- }
-
- @Override
- public boolean isSaveAsAllowed() {
- return false;
+ dirty.setDirty(isDirty);
}
- @Override
+ @Focus
public void setFocus() {
//make sure to bind again if maybe in another view the conversation was unbound
if(conversation!=null && !conversation.isBound()){
@Override
public void changed(Object element) {
setDirty(true);
- firePropertyChange(IEditorPart.PROP_DIRTY);
+// firePropertyChange(IEditorPart.PROP_DIRTY);
viewer.update(new TreeNode(element), null);
}
return cdmEntitySession;
}
- @Override
+ @PreDestroy
public void dispose() {
- super.dispose();
if(conversation!=null){
conversation.close();
}
cdmEntitySession.dispose();
}
}
- public void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
- if(part == this){
+
+
+ @Inject
+ @Optional
+ public void selectionChanged(@Optional @Named(IServiceConstants.ACTIVE_SELECTION) ISelection selection,
+ @Named(IServiceConstants.ACTIVE_PART) MPart activePart, MPart thisPart)
+ {
+ if(activePart == this || viewer==null){
return;
}
if(viewer.getTree().isDisposed()){
return;
}
if(listenToSelectionChange){
- if(part instanceof MultiPageTaxonEditor){
- selectedTaxon = ((MultiPageTaxonEditor) part).getTaxon();
+ selectedTaxon = null;
+ if(activePart instanceof MultiPageTaxonEditor){
+ selectedTaxon = ((MultiPageTaxonEditor) activePart).getTaxon();
}
else if(selection instanceof IStructuredSelection){
Object selectedElement = ((IStructuredSelection) selection).getFirstElement();
}
checkWarnThreshold(uuids);
updateRootEntities(uuids);
- setPartName(SPECIMEN_EDITOR+": " + selectedTaxon.getName()); //$NON-NLS-1$
- }
- }
- }
- @Override
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- if(delaySelection==null){
- delaySelection = new DelaySelection(part, selection);
- }
- delaySelection.setPart(part);
- delaySelection.setSelection(selection);
- if(!isInDelay){
- isInDelay = true;
- Display.getCurrent().asyncExec(delaySelection);
+ thisPart.setLabel(SPECIMEN_EDITOR+": " + selectedTaxon.getName()); //$NON-NLS-1$
+ }
+ else{
+ updateRootEntities((Collection<UUID>)Collections.EMPTY_LIST);
+ }
}
}
-
private void checkWarnThreshold(Collection<UUID> uuids) {
if(uuids!=null && uuids.size()>WARN_THRESHOLD){
MessagingUtils.warningDialog(Messages.DerivateView_PERF_WARNING, this.getClass(), String.format(Messages.DerivateView_PERF_WARNING_MESSAGE, uuids.size()));
return new ArrayList<SpecimenOrObservationBase<?>>(rootElements);
}
- public void toggleListenToSelectionChange() {
+ public void toggleListenToSelectionChange(MPart part) {
listenToSelectionChange = !listenToSelectionChange;
derivateSearchCompositeController.setEnabled(!listenToSelectionChange);
if(!listenToSelectionChange){
selectedTaxon = null;
- setPartName(SPECIMEN_EDITOR);
+ part.setLabel(SPECIMEN_EDITOR);
}
else if(selectedTaxon==null){
- setPartName(SPECIMEN_EDITOR+Messages.DerivateView_NO_TAXON_SELECTED);
+ part.setLabel(SPECIMEN_EDITOR+Messages.DerivateView_NO_TAXON_SELECTED);
}
}
public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
}
+
+ public boolean isDirty() {
+ return dirty.isDirty();
+ }
+
}
+++ /dev/null
-package eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-
-import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.molecular.DnaSample;
-import eu.etaxonomy.cdm.model.molecular.Sequence;
-import eu.etaxonomy.cdm.model.molecular.SingleRead;
-import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
-import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
-import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
-
-/**
- * Context menu for the creation of derivates in the derivate hierarchy.
- *
- */
-public class CreateDerivateContextMenu extends CompoundContributionItem {
-
- private static final String SINGLE_READ = Messages.CreateDerivateContextMenu_SINGLE_READ;
- private static final String CONSENSUS_SEQUENCE = Messages.CreateDerivateContextMenu_SEQUENCE;
- private static final String MEDIA_SPECIMEN = Messages.CreateDerivateContextMenu_MEDIA_SPECIMEN;
- private static final String DNA_SAMPLE = Messages.CreateDerivateContextMenu_DNA_SAMPLE;
- private static final String TISSUE_SAMPLE = Messages.CreateDerivateContextMenu_TISSUE_SAMPLE;
- private static final String SPECIMEN = Messages.CreateDerivateContextMenu_SPECIMEN;
-
- @Override
- protected IContributionItem[] getContributionItems() {
- IContributionItem[] contributionItems = new IContributionItem[] {
- new ContributionItem() {
- @Override
- public void fill(Menu menu, int index) {
- MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
- addItem.setText(Messages.CreateDerivateContextMenu_ADD);
- Menu addMenu = new Menu(menu);
- addItem.setMenu(addMenu);
- final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- final ISelection selection = window.getActivePage().getSelection();
- TreeNode selectedTreeNode = EditorUtil.getTreeNodeOfSelection(selection);
- if(selectedTreeNode!=null){
- //context menu for FieldUnit
- if(selectedTreeNode.getValue() instanceof FieldUnit){
- createMenuItem(addMenu, SPECIMEN, selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.PreservedSpecimen, DerivationEventType.GATHERING_IN_SITU());
- new MenuItem(addMenu, SWT.SEPARATOR);
- createMenuItem(addMenu, TISSUE_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
- createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
- return;
- }
- //context menu for Specimen
- else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
-
- createMenuItem(addMenu, TISSUE_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
- createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
- return;
- }
- //context menu for TissueSample
- else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
- createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
- return;
- }
- //context menu for DnaSample
- else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.DnaSample){
- createMenuItem(addMenu, CONSENSUS_SEQUENCE, selectedTreeNode, Sequence.class, null, null);
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
- return;
- }
- //context menu for Sequence
- else if(selectedTreeNode.getValue() instanceof Sequence){
- createMenuItem(addMenu, SINGLE_READ, selectedTreeNode, SingleRead.class, null, null);
- return;
- }
- }
- MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
- menuItem.setText(Messages.CreateDerivateContextMenu_NO_CHILD_DERIVATE);
- menuItem.setEnabled(false);
- }
-
-
- }
- };
- return contributionItems;
- }
-
- private void createMenuItem(Menu menu, String menuLabel, final TreeNode selectedNode, Class<?> childClass, final SpecimenOrObservationType specimenType, final DerivationEventType derivationEventType) {
- if(specimenType!=null && specimenType.equals(SpecimenOrObservationType.StillImage)){
- //media submenu
- MenuItem mediaItem = new MenuItem(menu, SWT.CASCADE);
- mediaItem.setText(Messages.CreateDerivateContextMenu_MEDIA);
- Menu mediaMenu = new Menu(menu);
- mediaItem.setMenu(mediaMenu);
-
- //media specimen menu
- MenuItem menuItem = new MenuItem(mediaMenu, SWT.NONE);
- menuItem.setText(menuLabel);
- menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, derivationEventType));
-
- //existing media menu
- MenuItem existingMediaItem = new MenuItem(mediaMenu, SWT.NONE);
- existingMediaItem.setText(Messages.CreateDerivateContextMenu_MEDIA_EXISTING);
- existingMediaItem.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- //select media
- Media media = MediaSelectionDialog.select(AbstractUtility.getShell(), null, null);
- if(media!=null){
- //create MediaSpecimen
- MediaSpecimen mediaSpecimen = MediaSpecimen.NewInstance(specimenType);
- mediaSpecimen.setMediaSpecimen(media);
-
- //attach to parent
- if(selectedNode.getValue() instanceof SpecimenOrObservationBase){
- SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedNode.getValue();
-
- specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, mediaSpecimen, derivationEventType));
- mediaSpecimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
- mediaSpecimen.getTitleCache(); //update title cache
- CdmStore.getService(IOccurrenceService.class).merge(specimenOrObservationBase, true);
-
- }
-
- //refresh view
- DerivateView derivateView = null;
- if(AbstractUtility.getActivePart() instanceof DerivateView){
- derivateView = (DerivateView) AbstractUtility.getActivePart();
- }
- if(derivateView!=null){
-
- derivateView.getConversationHolder().commit();
- derivateView.refreshTree(mediaSpecimen);
- }
- }
- }
- });
- }
- else{
- MenuItem menuItem = new MenuItem(menu, SWT.NONE);
- menuItem.setText(menuLabel);
- menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, derivationEventType));
- }
- }
-
- private class WidgetSelectionListener extends SelectionAdapter{
-
- private final TreeNode selectedNode;
- //TODO: we need a common interface for the generic like e.g. "IDerivateHierarchyNode"
- private final Class<?> childClass;
- private final SpecimenOrObservationType specimenType;
- private final DerivationEventType derivationEventType;
-
- /**
- * @param selectedNode
- * @param specimenType
- */
- public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DerivationEventType derivationEventType) {
- this.selectedNode = selectedNode;
- this.childClass = childClass;
- this.specimenType = specimenType;
- this.derivationEventType = derivationEventType;
- }
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- DerivateView derivateView = null;
- if(AbstractUtility.getActivePart() instanceof DerivateView){
- derivateView = (DerivateView) AbstractUtility.getActivePart();
- }
- if(derivateView!=null){
- if(derivateView.isDirty()){
- e.doit = false;
- MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
- return;
- }
- }
-
- Object createdElement = null;
- Object selectedDerivate = selectedNode.getValue();
- if(selectedDerivate instanceof DnaSample && ((DnaSample) selectedDerivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
- DnaSample dnaSample = (DnaSample)selectedDerivate;
- if(childClass.equals(Sequence.class)){
- Sequence newInstance = Sequence.NewInstance(dnaSample, "", 0); //$NON-NLS-1$
- createdElement = newInstance;
- }
- CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
- } else if(selectedDerivate instanceof Sequence){
- SingleRead newInstance = SingleRead.NewInstance();
- ((Sequence) selectedDerivate).addSingleRead(newInstance);
- createdElement = newInstance;
- CdmApplicationState.getCurrentAppConfig().getSequenceService().merge((Sequence)selectedDerivate, true);
-
- }
- if(selectedDerivate instanceof SpecimenOrObservationBase && DerivedUnit.class.isAssignableFrom(childClass)){
- SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedDerivate;
- DerivedUnit derivedUnit;
- if(childClass.equals(DnaSample.class)){
- derivedUnit = DnaSample.NewInstance();
- if(specimenType==SpecimenOrObservationType.DnaSample){
- derivedUnit.setRecordBasis(SpecimenOrObservationType.DnaSample);
- }
- else if(specimenType==SpecimenOrObservationType.TissueSample){
- derivedUnit.setRecordBasis(SpecimenOrObservationType.TissueSample);
- }
- }
- else if(childClass.equals(MediaSpecimen.class)){
- derivedUnit = MediaSpecimen.NewInstance(specimenType);
- //a MediaSpecimen with no media attached does not make sense. Hence we add one
- ((MediaSpecimen)derivedUnit).setMediaSpecimen(Media.NewInstance());
- }
- else{
- derivedUnit = DerivedUnit.NewInstance(specimenType);
- }
- specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, derivedUnit, derivationEventType));
- derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
- derivedUnit.getTitleCache(); //update title cache
- createdElement = derivedUnit;
- CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
-
- }
-
- //refresh view
- if(derivateView!=null){
- derivateView.getConversationHolder().commit();
- derivateView.refreshTree(createdElement);
- }
- }
- }
-
-}
+++ /dev/null
-package eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * Context menu for the SingleReads in the derivate hierarchy.
- *
- */
-public class CreateFieldUnitContextMenu extends CompoundContributionItem {
-
- private enum CommandType {
- COPY_TO_CLIPBOARD, REMOVE_FROM_SEQUENCE, ADD_TO_SEQUENCE
- }
-
- @Override
- protected IContributionItem[] getContributionItems() {
- IContributionItem[] contributionItems = new IContributionItem[] {
- new ContributionItem() {
- @Override
- public void fill(Menu menu, int index) {
- final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- IWorkbenchPart activePart = window.getActivePage().getActivePart();
- if(activePart instanceof DerivateView){
- final DerivateView derivateView = (DerivateView) activePart;
- if(derivateView.isListenToSelectionChange()){
- Object selectionInput = derivateView.getSelectionInput();
- if(selectionInput instanceof CdmBase && ((CdmBase) selectionInput).isInstanceOf(Taxon.class)){
- final Taxon taxon = HibernateProxyHelper.deproxy(CdmStore.getService(ITaxonService.class).load(((CdmBase)selectionInput).getUuid()), Taxon.class);
- MenuItem item = new MenuItem(menu, SWT.NONE);
- item.setText(String.format(Messages.CreateFieldUnitContextMenu_CREATE_FIELD_UNIT_FOR, taxon.getName()));
- item.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if(derivateView.isDirty()){
- MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
- return;
- }
-
- FieldUnit fieldUnit = FieldUnit.NewInstance();
- fieldUnit = CdmBase.deproxy(CdmStore.getService(IOccurrenceService.class).save(fieldUnit), FieldUnit.class);
- IndividualsAssociation association = IndividualsAssociation.NewInstance(fieldUnit);
- TaxonDescription description;
- if(!taxon.getDescriptions().isEmpty()){
- description = taxon.getDescriptions().iterator().next();
- }
- else{
- description = TaxonDescription.NewInstance(taxon);
- }
- description.addElement(association);
- CdmStore.getService(ITaxonService.class).merge(taxon);
-
-
- derivateView.getConversationHolder().commit();
- derivateView.addFieldUnit(fieldUnit);
- derivateView.refreshTree(fieldUnit);
- }
- });
- }
- }
- else{
- MenuItem item = new MenuItem(menu, SWT.NONE);
- item.setText(Messages.CreateFieldUnitContextMenu_CREATE_FIELD_UNIT);
- item.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if(derivateView.isDirty()){
- MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
- return;
- }
- FieldUnit fieldUnit = FieldUnit.NewInstance();
- fieldUnit = CdmBase.deproxy(CdmStore.getService(IOccurrenceService.class).save(fieldUnit), FieldUnit.class);
- derivateView.getConversationHolder().commit();
- derivateView.addFieldUnit(fieldUnit);
- derivateView.updateRootEntities();
- derivateView.refreshTree(fieldUnit);
- }
- });
- }
- }
- }
- }
- };
- return contributionItems;
- }
-}
-
+++ /dev/null
-package eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.ui.actions.CompoundContributionItem;
-
-public class DerivateViewContextMenu extends CompoundContributionItem {
-
- @Override
- protected IContributionItem[] getContributionItems() {
- IContributionItem[] contributionItems = new IContributionItem[] {
- new CreateFieldUnitContextMenu(),
- new CreateDerivateContextMenu(),
- new Separator(),
-// new ListenToSelectionChangeContextMenu(),
- };
- return contributionItems;
- }
-
-}
+++ /dev/null
-package eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-import eu.etaxonomy.taxeditor.model.ImageResources;
-
-/**
- * Context menu for the SingleReads in the derivate hierarchy.
- *
- */
-public class ListenToSelectionChangeContextMenu extends CompoundContributionItem {
-
- @Override
- protected IContributionItem[] getContributionItems() {
- IContributionItem[] contributionItems = new IContributionItem[] {
- new ContributionItem() {
- @Override
- public void fill(Menu menu, int index) {
- final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- IWorkbenchPart activePart = window.getActivePage().getActivePart();
- if(activePart instanceof DerivateView){
- final DerivateView derivateView = (DerivateView) activePart;
- MenuItem item = new MenuItem(menu, SWT.NONE);
- if(derivateView.isListenToSelectionChange()){
- item.setText(Messages.ListenToSelectionChangeContextMenu_UNLINK);
- }
- else{
- item.setText(Messages.ListenToSelectionChangeContextMenu_LINK);
- }
- item.setImage(ImageResources.getImage(ImageResources.SYNCED));
- item.addSelectionListener(new SelectionAdapterExtension(derivateView));
- }
- }
- }
- };
- return contributionItems;
- }
-
- private final class SelectionAdapterExtension extends SelectionAdapter {
-
- private final DerivateView derivateView;
-
- private SelectionAdapterExtension(DerivateView derivateView) {
- this.derivateView = derivateView;
- }
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- derivateView.toggleListenToSelectionChange();
- }
- }
-}
-
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.TreeNode;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public abstract class AbstractAddDerivativeHandler {
+
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) TreeNode node, @Named(IServiceConstants.ACTIVE_PART) MPart part) {
+ DerivateView derivateView = (DerivateView) part.getObject();
+
+ checkDirtyState(derivateView);
+
+ Object selectedDerivative = node.getValue();
+ if(isAllowed(selectedDerivative)){
+ Object createdElement = addElement(selectedDerivative);
+ refreshView(derivateView, createdElement);
+ }
+ }
+
+ @CanExecute
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION) TreeNode node, MHandledMenuItem item) {
+ boolean canExecute = false;
+
+ Object derivate = node.getValue();
+ canExecute = isAllowed(derivate);
+ item.setVisible(canExecute);
+ return canExecute;
+ }
+
+ private void refreshView(DerivateView derivateView, Object createdElement) {
+ if(derivateView!=null){
+ derivateView.getConversationHolder().commit();
+ derivateView.refreshTree(createdElement);
+ }
+ }
+
+ private void checkDirtyState(DerivateView derivateView){
+ if(derivateView!=null){
+ if(derivateView.isDirty()){
+ MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
+ return;
+ }
+ }
+ }
+
+ protected Object addElement(Object selectedDerivative){
+ Object createdElement = null;
+ SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>) selectedDerivative;
+ DerivedUnit derivedUnit = createDerivative();
+ specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, derivedUnit, getDerivationeType()));
+ derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
+ derivedUnit.getTitleCache(); //update title cache
+ createdElement = derivedUnit;
+ CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase<?>) selectedDerivative, true);
+ return createdElement;
+ }
+
+ protected abstract DerivedUnit createDerivative();
+
+ protected abstract DerivationEventType getDerivationeType();
+
+ protected abstract boolean isAllowed(Object derivative);
+
+}
\ No newline at end of file
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class AddConsensusSequenceHandler extends AbstractAddDerivativeHandler{
+
+ @Override
+ protected boolean isAllowed(Object derivative) {
+ if(derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.DnaSample){
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Object addElement(Object selectedDerivative) {
+ Sequence newInstance = Sequence.NewInstance((DnaSample) selectedDerivative, "", 0); //$NON-NLS-1$
+ CdmStore.getService(IOccurrenceService.class).merge((DnaSample) selectedDerivative, true);
+ return newInstance;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivedUnit createDerivative() {
+ //not used here
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivationEventType getDerivationeType() {
+ //not used here
+ return null;
+ }
+
+}
\ No newline at end of file
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+
+public class AddDnaSampleHandler extends AbstractAddDerivativeHandler{
+
+ @Override
+ protected boolean isAllowed(Object derivative) {
+ if(derivative instanceof FieldUnit || (derivative instanceof DerivedUnit
+ && ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.PreservedSpecimen))
+ || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.TissueSample)){
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivedUnit createDerivative() {
+ DnaSample dnaSample = DnaSample.NewInstance();
+ dnaSample.setRecordBasis(SpecimenOrObservationType.DnaSample);
+ return dnaSample;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivationEventType getDerivationeType() {
+ return DerivationEventType.DNA_EXTRACTION();
+ }
+
+}
\ No newline at end of file
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
+
+public class AddExistingMediaHandler extends AbstractAddDerivativeHandler{
+
+ @Override
+ protected boolean isAllowed(Object derivative) {
+ if(derivative instanceof FieldUnit
+ || (derivative instanceof DerivedUnit && ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.PreservedSpecimen))
+ || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.TissueSample)
+ || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.DnaSample)){
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivedUnit createDerivative() {
+ MediaSpecimen mediaSpecimen = null;
+ //select media
+ Media media = MediaSelectionDialog.select(AbstractUtility.getShell(), null, null);
+ if(media!=null){
+ //create MediaSpecimen
+ mediaSpecimen = MediaSpecimen.NewInstance(SpecimenOrObservationType.StillImage);
+ mediaSpecimen.setMediaSpecimen(media);
+ }
+ return mediaSpecimen;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivationEventType getDerivationeType() {
+ return DerivationEventType.ACCESSIONING();
+ }
+
+}
\ No newline at end of file
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import javax.inject.Inject;
+
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+
+public class AddMediaSpecimenHandler extends AbstractAddDerivativeHandler{
+
+ @Inject
+ private EModelService modelService;
+
+ @Override
+ protected boolean isAllowed(Object derivative) {
+ if(derivative instanceof FieldUnit
+ || (derivative instanceof DerivedUnit && ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.PreservedSpecimen))
+ || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.TissueSample)
+ || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.DnaSample)){
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivedUnit createDerivative() {
+ return MediaSpecimen.NewInstance(SpecimenOrObservationType.StillImage);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivationEventType getDerivationeType() {
+ return DerivationEventType.ACCESSIONING();
+ }
+
+}
\ No newline at end of file
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+
+public class AddSingleReadHandler extends AbstractAddDerivativeHandler{
+
+ @Override
+ protected boolean isAllowed(Object derivative) {
+ if(derivative instanceof Sequence){
+ return true;
+ }
+ return false;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Object addElement(Object selectedDerivative) {
+ SingleRead newInstance = SingleRead.NewInstance();
+ ((Sequence) selectedDerivative).addSingleRead(newInstance);
+ CdmApplicationState.getCurrentAppConfig().getSequenceService().merge((Sequence)selectedDerivative, true);
+ return newInstance;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivedUnit createDerivative() {
+ //not used here
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivationEventType getDerivationeType() {
+ //not used here
+ return null;
+ }
+
+}
\ No newline at end of file
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+
+public class AddSpecimenHandler extends AbstractAddDerivativeHandler{
+
+ @Override
+ protected boolean isAllowed(Object derivative) {
+ if(derivative instanceof FieldUnit){
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivedUnit createDerivative() {
+ return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivationEventType getDerivationeType() {
+ return DerivationEventType.GATHERING_IN_SITU();
+ }
+
+}
\ No newline at end of file
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+
+public class AddTissueSampleHandler extends AbstractAddDerivativeHandler{
+
+ @Override
+ protected boolean isAllowed(Object derivative) {
+ if (derivative instanceof FieldUnit || (derivative instanceof DerivedUnit
+ && ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.PreservedSpecimen))) {
+ return true;
+ }
+ return false;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivedUnit createDerivative() {
+ DnaSample dnaSample = DnaSample.NewInstance();
+ dnaSample.setRecordBasis(SpecimenOrObservationType.TissueSample);
+ return dnaSample;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected DerivationEventType getDerivationeType() {
+ return DerivationEventType.PREPARATION();
+ }
+
+}
\ No newline at end of file
--- /dev/null
+
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.editor.AppModelId;
+import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class CreateFieldUnitHandler {
+
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, MHandledMenuItem item) {
+ DerivateView derivateView = (DerivateView) part.getObject();
+ if(item.getElementId().equals(AppModelId.HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATE_FIELD_UNIT_FOR_TAXON)){
+ Object selectionInput = derivateView.getSelectionInput();
+ if(selectionInput instanceof CdmBase && ((CdmBase) selectionInput).isInstanceOf(Taxon.class)){
+ final Taxon taxon = HibernateProxyHelper.deproxy(CdmStore.getService(ITaxonService.class).load(((CdmBase)selectionInput).getUuid()), Taxon.class);
+ if(derivateView.isDirty()){
+ MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
+ return;
+ }
+
+ FieldUnit fieldUnit = FieldUnit.NewInstance();
+ fieldUnit = CdmBase.deproxy(CdmStore.getService(IOccurrenceService.class).save(fieldUnit), FieldUnit.class);
+ IndividualsAssociation association = IndividualsAssociation.NewInstance(fieldUnit);
+ TaxonDescription description;
+ if(!taxon.getDescriptions().isEmpty()){
+ description = taxon.getDescriptions().iterator().next();
+ }
+ else{
+ description = TaxonDescription.NewInstance(taxon);
+ }
+ description.addElement(association);
+ CdmStore.getService(ITaxonService.class).merge(taxon);
+
+
+ derivateView.getConversationHolder().commit();
+ derivateView.addFieldUnit(fieldUnit);
+ derivateView.refreshTree(fieldUnit);
+ }
+ }
+ else{
+ if(derivateView.isDirty()){
+ MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
+ return;
+ }
+ FieldUnit fieldUnit = FieldUnit.NewInstance();
+ fieldUnit = CdmBase.deproxy(CdmStore.getService(IOccurrenceService.class).save(fieldUnit), FieldUnit.class);
+ derivateView.getConversationHolder().commit();
+ derivateView.addFieldUnit(fieldUnit);
+ derivateView.updateRootEntities();
+ derivateView.refreshTree(fieldUnit);
+ }
+ }
+
+
+ @CanExecute
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart part, MHandledMenuItem item) {
+ DerivateView derivateView = (DerivateView) part.getObject();
+ boolean listenToSelectionChange = derivateView.isListenToSelectionChange();
+ setItemVisibility(item, listenToSelectionChange);
+ if(listenToSelectionChange &&
+ item.getElementId().equals(AppModelId.HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATE_FIELD_UNIT_FOR_TAXON)){
+ Object selectionInput = derivateView.getSelectionInput();
+ if(selectionInput instanceof CdmBase && ((CdmBase) selectionInput).isInstanceOf(Taxon.class)){
+ final Taxon taxon = HibernateProxyHelper.deproxy(CdmStore.getService(ITaxonService.class).load(((CdmBase)selectionInput).getUuid()), Taxon.class);
+ item.setLabel(String.format(Messages.CreateFieldUnitContextMenu_CREATE_FIELD_UNIT_FOR, taxon.getName()));
+ }
+ }
+ return true;
+ }
+
+
+ private void setItemVisibility(MHandledMenuItem item, boolean isListeningToSelectionChange) {
+ if(item.getElementId().equals(AppModelId.HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATEFIELDUNIT)){
+ item.setVisible(!isListeningToSelectionChange);
+ }
+ else{
+ item.setVisible(isListeningToSelectionChange);
+ }
+ }
+
+}
\ No newline at end of file
package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.commands.operations.IUndoContext;
+import javax.inject.Named;
+
+import org.eclipse.core.commands.ParameterizedCommand;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
import eu.etaxonomy.cdm.model.molecular.Sequence;
import eu.etaxonomy.cdm.model.molecular.SingleRead;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.AppModelId;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-import eu.etaxonomy.taxeditor.editor.view.derivate.operation.DeleteDerivateOperation;
import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
-import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
/**
*
* @date Oct 21, 2014
*
*/
-public class DeleteDerivateHandler extends RemotingCdmHandler {
+public class DeleteDerivateHandler {
- SpecimenDeleteConfigurator deleteConfigurator;
- IEditorPart editor;
- TreeNode node;
- /**
- * @param label
- */
- public DeleteDerivateHandler(String label) {
- super(label);
+ private SpecimenDeleteConfigurator deleteConfigurator;
- }
+ @Execute
+ public Object execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, @Named(IServiceConstants.ACTIVE_SELECTION) TreeNode treeNode, ParameterizedCommand command) {
+ deleteConfigurator = new SpecimenDeleteConfigurator();
+ if(command.getId().equals(AppModelId.COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATE_DEEPDELETE)){
+ deleteConfigurator.setDeleteChildren(true);
+ }
- /**
- * @param label
- */
- public DeleteDerivateHandler() {
- super(Messages.DeleteDerivateHandler_LABEL);
+ DerivateView derivateView = (DerivateView) part.getObject();
+ Object value = treeNode.getValue();
+ IStatus allowStatus = allowOperations(derivateView, treeNode);
+ if(allowStatus.isOK()) {
+ DeleteResult deleteResult;
+ if(value instanceof SingleRead
+ && treeNode.getParent()!=null
+ && treeNode.getParent().getValue() instanceof Sequence){
+ deleteResult = CdmStore.getService(ISequenceService.class).deleteSingleRead(((SingleRead)value).getUuid(),
+ ((Sequence) treeNode.getParent().getValue()).getUuid());
+ } else if(value instanceof Sequence){
+ deleteResult = CdmStore.getService(ISequenceService.class).delete(((Sequence) value).getUuid());
+ } else {
+ deleteResult = CdmStore.getService(IOccurrenceService.class).delete(((CdmBase) value).getUuid(), deleteConfigurator);
+ }
- }
+ if (!deleteResult.isOk()) {
+ MessagingUtils.warningDialog(Messages.DeleteDerivateOperation_DELETE_FAILED, this, deleteResult.toString());
-// /** {@inheritDoc} */
-// @Override
-// public Object execute(ExecutionEvent event) throws ExecutionException {
-// IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getActiveSite(event).getSelectionProvider().getSelection();
-//
-// IWorkbenchPart part = HandlerUtil.getActivePart(event);
-// IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null;
-//
-// try {
-// String label = event.getCommand().getName();
-//
-// IUndoContext undoContext = EditorUtil.getUndoContext();
-//
-// if(selection.size()>0){
-// Object object = selection.iterator().next();
-//
-// if(object instanceof TreeNode){
-// Object value = ((TreeNode) object).getValue();
-// if(value instanceof SpecimenOrObservationBase<?> || value instanceof Sequence || value instanceof SingleRead){
-// if(postOperationEnabled instanceof IConversationEnabled){
-// ConversationHolder conversationHolder = ((IConversationEnabled) postOperationEnabled).getConversationHolder();
-// label += " "+DerivateLabelProvider.getDerivateText(value, conversationHolder); //$NON-NLS-1$
-// }
-// SpecimenDeleteConfigurator config = new SpecimenDeleteConfigurator();
-// boolean deepDelete = event.getCommand().getId().equals("eu.etaxonomy.taxeditor.editor.derivate.deepDelete"); //$NON-NLS-1$
-// config.setDeleteChildren(deepDelete);
-// config.setDeleteMolecularData(deepDelete);
-// DeleteDerivateOperation deleteDerivateOperation = new DeleteDerivateOperation(label, undoContext, (CdmBase) value, (TreeNode) object, postOperationEnabled, config);
-// IStatus status = AbstractUtility.executeOperation(deleteDerivateOperation);
-// DerivateView derivateView = (DerivateView)postOperationEnabled;
-// if(derivateView.postOperation(null)){
-// derivateView.remove(object);
-//
-// // derivateView.updateRootEntities();
-// //update DerivateView
-//
-//
-// }
-// }
-// }
-// else{
-// MessagingUtils.error(getClass(), Messages.DeleteDerivateHandler_INVALID_SELECTION, null);
-// }
-// }
-//
-// } catch (NotDefinedException e) {
-// MessagingUtils.warn(getClass(), "Command name not set"); //$NON-NLS-1$
-// }
-// return null;
-// }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public IStatus allowOperations(ExecutionEvent event) {
- //check whether object can be deleted
- editor = HandlerUtil.getActiveEditor(event);
- IStructuredSelection selection = (IStructuredSelection) HandlerUtil
- .getCurrentSelection(event);
- AbstractPostOperation operation;
- deleteConfigurator = new SpecimenDeleteConfigurator();
+ return Status.CANCEL_STATUS;
+ }
+ if(derivateView.postOperation(null)){
+ derivateView.remove(treeNode);
+ }
+ return Status.OK_STATUS;
+ }
+ return null;
+ }
+
+ public IStatus allowOperations(DerivateView derivateView, TreeNode treeNode) {
String confirmationQuestion = Messages.DeleteDerivateOperation_REALLY_DELETE;
if(deleteConfigurator.isDeleteChildren()){
confirmationQuestion += Messages.DeleteDerivateOperation_AND_CHILDREN;
}
- if(editor.isDirty()){
+ if(derivateView.isDirty()){
MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
return Status.CANCEL_STATUS;
}
-
confirmationQuestion += "?"; //$NON-NLS-1$
if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfigurator, null, Messages.DeleteDerivateOperation_CONFIRM, confirmationQuestion)){
return Status.CANCEL_STATUS;
}
- Object object = selection.iterator().next();
DeleteResult deleteResult;
- if(object instanceof TreeNode){
- Object value = ((TreeNode) object).getValue();
- if(value instanceof SpecimenOrObservationBase<?> || value instanceof Sequence || value instanceof SingleRead){
- if (value instanceof Sequence || value instanceof SingleRead){
- deleteResult = CdmStore.getService(ISequenceService.class).isDeletable(((CdmBase)value).getUuid(), deleteConfigurator);
- } else{
- deleteResult = CdmStore.getService(IOccurrenceService.class).isDeletable(((CdmBase)value).getUuid(), deleteConfigurator);
- }
- if (deleteResult.isOk() || deleteResult.getExceptions().isEmpty()){ return Status.OK_STATUS;}
- else{
- if (!deleteResult.isOk()){
- DeleteResultMessagingUtils.messageDialogWithDetails(deleteResult, Messages.DeleteDerivateOperation_DELETE_FAILED, TaxeditorEditorPlugin.PLUGIN_ID);
- } else {
- if (!deleteResult.getExceptions().isEmpty()){
- DeleteResultMessagingUtils.messageDialogWithDetails(deleteResult, Messages.DeleteDerivateHandler_SUCCESSFULL_BUT_EXCEPTIONS, TaxeditorEditorPlugin.PLUGIN_ID);
- }
+ Object value = treeNode.getValue();
+ if(value instanceof SpecimenOrObservationBase<?> || value instanceof Sequence || value instanceof SingleRead){
+ if (value instanceof Sequence || value instanceof SingleRead){
+ deleteResult = CdmStore.getService(ISequenceService.class).isDeletable(((CdmBase)value).getUuid(), deleteConfigurator);
+ } else{
+ deleteResult = CdmStore.getService(IOccurrenceService.class).isDeletable(((CdmBase)value).getUuid(), deleteConfigurator);
+ }
+ if (deleteResult.isOk() || deleteResult.getExceptions().isEmpty()){ return Status.OK_STATUS;}
+ else{
+ if (!deleteResult.isOk()){
+ DeleteResultMessagingUtils.messageDialogWithDetails(deleteResult, Messages.DeleteDerivateOperation_DELETE_FAILED, TaxeditorEditorPlugin.PLUGIN_ID);
+ } else {
+ if (!deleteResult.getExceptions().isEmpty()){
+ DeleteResultMessagingUtils.messageDialogWithDetails(deleteResult, Messages.DeleteDerivateHandler_SUCCESSFULL_BUT_EXCEPTIONS, TaxeditorEditorPlugin.PLUGIN_ID);
}
+ }
- return Status.CANCEL_STATUS;
- }
+ return Status.CANCEL_STATUS;
}
-
}
-
return Status.CANCEL_STATUS;
-
}
- /**
- * {@inheritDoc}
- */
- @Override
- public AbstractOperation prepareOperation(ExecutionEvent event) {
- IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getActiveSite(event).getSelectionProvider().getSelection();
-
- IWorkbenchPart part = HandlerUtil.getActivePart(event);
- IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null;
-
- try {
- String label = event.getCommand().getName();
-
- IUndoContext undoContext = EditorUtil.getUndoContext();
-
- if(selection.size()>0){
- Object object = selection.iterator().next();
-
- if(object instanceof TreeNode){
- node = (TreeNode)object;
- Object value = ((TreeNode) object).getValue();
- if(value instanceof SpecimenOrObservationBase<?> || value instanceof Sequence || value instanceof SingleRead){
- if(postOperationEnabled instanceof IConversationEnabled){
- ConversationHolder conversationHolder = ((IConversationEnabled) postOperationEnabled).getConversationHolder();
- label += " "+DerivateLabelProvider.getDerivateText(value, conversationHolder); //$NON-NLS-1$
- }
-
-
- DeleteDerivateOperation deleteDerivateOperation = new DeleteDerivateOperation(label, undoContext, (CdmBase) value, (TreeNode) object, postOperationEnabled, this.deleteConfigurator);
- return deleteDerivateOperation;
- }
- }
- }
- } catch (NotDefinedException e) {
- MessagingUtils.warn(getClass(), "Command name not set"); //$NON-NLS-1$
- }
- return null;
-
+ @CanExecute
+ public boolean canExecute(@Optional @Named(IServiceConstants.ACTIVE_SELECTION) TreeNode node,
+ MHandledMenuItem menuItem){
+ boolean canExecute = node !=null;
+ menuItem.setVisible(canExecute);
+ return canExecute;
}
- /**
- * {@inheritDoc}
- */
- @Override
- public void onComplete() {
-
- IPostOperationEnabled postOperationEnabled = (editor instanceof IPostOperationEnabled) ? (IPostOperationEnabled) editor : null;
- if (postOperationEnabled != null){
- DerivateView derivateView = (DerivateView)postOperationEnabled;
- if(derivateView.postOperation(null)){
- derivateView.remove(node);
-
- }
- }
- }
}
+++ /dev/null
-package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-
-public class ListenToSelectionChangeHandler extends AbstractHandler {
-
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
- if(activePart instanceof DerivateView){
- DerivateView derivativeEditor = (DerivateView)activePart;
- derivativeEditor.toggleListenToSelectionChange();
- }
- return null;
- }
-
-}
import java.util.UUID;
import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.ui.PartInitException;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler;
+import eu.etaxonomy.taxeditor.editor.AppModelId;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
public class OpenDerivativeEditorForDescriptionElement extends DefaultOpenHandlerBase<IndividualsAssociation> {
SpecimenOrObservationBase associatedSpecimenOrObservation = entity.getAssociatedSpecimenOrObservation();
if(associatedSpecimenOrObservation!=null){
UUID specimenUuid = associatedSpecimenOrObservation.getUuid();
- try {
- EditorUtil.open(new DerivateViewEditorInput(Collections.singletonList(specimenUuid)));
- } catch (PartInitException e) {
- MessagingUtils.error(OpenDerivateViewHandler.class, OpenDerivativeEditorForTaxonNode.OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN, e);
- }
+ DerivateViewEditorInput input = new DerivateViewEditorInput(Collections.singletonList(specimenUuid));
+ MPart part = TaxeditorStorePlugin.getDefault().getWorkbench().getService(EPartService.class).showPart(
+ AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW, PartState.ACTIVATE);
+ DerivateView derivateView = (DerivateView) part.getObject();
+ derivateView.init(input);
}
}
import java.util.UUID;
import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.ui.PartInitException;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler;
+import eu.etaxonomy.taxeditor.editor.AppModelId;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
public class OpenDerivativeEditorForSpecimenOrOBservationBase extends DefaultOpenHandlerBase<SpecimenOrObservationBase<?>>{
@Override
protected void open(ExecutionEvent event, SpecimenOrObservationBase<?> entity) {
- try {
- EditorUtil.open(new DerivateViewEditorInput(entity.getUuid()));
- } catch (PartInitException e) {
- MessagingUtils.error(OpenDerivateViewHandler.class, OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN, e);
- }
-
+ DerivateViewEditorInput input = new DerivateViewEditorInput(entity.getUuid());
+ MPart part = TaxeditorStorePlugin.getDefault().getWorkbench().getService(EPartService.class).showPart(
+ AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW, PartState.ACTIVATE);
+ DerivateView derivateView = (DerivateView) part.getObject();
+ derivateView.init(input);
}
-
-
}
import java.util.UUID;
import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.ui.PartInitException;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler;
+import eu.etaxonomy.taxeditor.editor.AppModelId;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
public class OpenDerivativeEditorForTaxonNode extends DefaultOpenHandlerBase<TaxonNode> {
for (SpecimenOrObservationBase specimenOrObservationBase : specimens) {
specimenUuids.add(specimenOrObservationBase.getUuid());
}
- try {
- EditorUtil.open(new DerivateViewEditorInput(specimenUuids, taxonUuid));
- } catch (PartInitException e) {
- MessagingUtils.error(OpenDerivateViewHandler.class, OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN, e);
- }
-
+ DerivateViewEditorInput input = new DerivateViewEditorInput(specimenUuids, taxonUuid);
+ MPart part = TaxeditorStorePlugin.getDefault().getWorkbench().getService(EPartService.class).showPart(
+ AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW, PartState.ACTIVATE);
+ DerivateView derivateView = (DerivateView) part.getObject();
+ derivateView.init(input);
}
}
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeNode;
+
+import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+
+public class SingleReadCopyToClipboardHandler {
+
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, @Named(IServiceConstants.ACTIVE_SELECTION) TreeNode selectedTreeNode){
+ DerivateView derivateView = (DerivateView)part.getObject();
+ LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(selectedTreeNode));
+ derivateView.updateLabelCache();
+ derivateView.refreshTree();
+ }
+
+ @CanExecute
+ public boolean canExecute(@Optional @Named(IServiceConstants.ACTIVE_SELECTION) TreeNode selectedTreeNode, MHandledMenuItem menuItem) {
+ boolean canExecute = false;
+ if(selectedTreeNode!=null){
+ Object object = selectedTreeNode.getValue();
+ canExecute = (object instanceof SingleRead);
+ }
+ menuItem.setVisible(canExecute);
+ return canExecute;
+ }
+}
+++ /dev/null
-package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-
-import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
-import eu.etaxonomy.cdm.model.molecular.Sequence;
-import eu.etaxonomy.cdm.model.molecular.SingleRead;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-public class SingleReadHandler extends AbstractHandler {
-
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
- ISelection clipBoardSelection = LocalSelectionTransfer.getTransfer().getSelection();
- final ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getSelection();
- TreeNode clipBoardTreeNode = EditorUtil.getTreeNodeOfSelection(clipBoardSelection);
- TreeNode selectedTreeNode = EditorUtil.getTreeNodeOfSelection(selection);
- if(activeEditor instanceof DerivateView) {
- DerivateView derivateView = (DerivateView)activeEditor;
- if(event.getCommand().getId().equals("eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard")){ //$NON-NLS-1$
- LocalSelectionTransfer.getTransfer().setSelection(selection);
- }
- else if(event.getCommand().getId().equals("eu.etaxonomy.taxeditor.editor.derivative.reuseSingleRead")){ //$NON-NLS-1$
- if(activeEditor.isDirty()){
- MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
- return null;
- }
- if(clipBoardTreeNode!=null && clipBoardTreeNode.getValue() instanceof SingleRead
- && selectedTreeNode!=null && selectedTreeNode.getValue() instanceof Sequence){
- SingleRead singleRead = (SingleRead)clipBoardTreeNode.getValue();
- Sequence sequence = (Sequence)selectedTreeNode.getValue();
- sequence.addSingleRead(singleRead);
- CdmStore.getService(ISequenceService.class).merge(sequence);
-
- if(activeEditor instanceof DerivateView) {
- derivateView.getConversationHolder().commit();
- derivateView.refreshTree();
- LocalSelectionTransfer.getTransfer().setSelection(null);
- }
- }
- }
- else if(event.getCommand().getId().equals("eu.etaxonomy.taxeditor.editor.derivative.removeSingleReadFromSequence")){ //$NON-NLS-1$
- if(activeEditor.isDirty()){
- MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
- return null;
- }
- if(selectedTreeNode!=null && selectedTreeNode.getParent()!=null &&
- selectedTreeNode.getValue() instanceof SingleRead && selectedTreeNode.getParent().getValue() instanceof Sequence) {
- Sequence sequence = (Sequence) selectedTreeNode.getParent().getValue();
- sequence.removeSingleRead((SingleRead) selectedTreeNode.getValue());
- CdmStore.getService(ISequenceService.class).merge(sequence);
-
- if(activeEditor instanceof DerivateView) {
- derivateView.getConversationHolder().commit();
- derivateView.refreshTree();
- }
- }
- }
- derivateView.updateLabelCache();
- derivateView.refreshTree();
- }
- return null;
- }
-
-}
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.TreeNode;
+
+import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class SingleReadRemoveHandler {
+
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, @Named(IServiceConstants.ACTIVE_SELECTION) TreeNode selectedTreeNode){
+ DerivateView derivateView = (DerivateView)part.getObject();
+ if(derivateView.isDirty()){
+ MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
+ return;
+ }
+ if(selectedTreeNode!=null && selectedTreeNode.getParent()!=null &&
+ selectedTreeNode.getValue() instanceof SingleRead && selectedTreeNode.getParent().getValue() instanceof Sequence) {
+ Sequence sequence = (Sequence) selectedTreeNode.getParent().getValue();
+ sequence.removeSingleRead((SingleRead) selectedTreeNode.getValue());
+ CdmStore.getService(ISequenceService.class).merge(sequence);
+
+ derivateView.getConversationHolder().commit();
+ derivateView.refreshTree();
+ }
+ derivateView.updateLabelCache();
+ derivateView.refreshTree();
+ }
+
+ @CanExecute
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart part,
+ @Optional @Named(IServiceConstants.ACTIVE_SELECTION) TreeNode selectedTreeNode,
+ MHandledMenuItem menuItem) {
+ boolean canExecute = false;
+ if(selectedTreeNode!=null){
+ Object value = selectedTreeNode.getValue();
+ canExecute = value instanceof SingleRead && ((DerivateView) part.getObject()).getMultiLinkSingleReads().contains(value);
+ }
+ menuItem.setVisible(canExecute);
+ return canExecute;
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreeNode;
+
+import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class SingleReadReuseHandler {
+
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, @Named(IServiceConstants.ACTIVE_SELECTION) TreeNode selectedTreeNode){
+ ISelection clipBoardSelection = LocalSelectionTransfer.getTransfer().getSelection();
+ TreeNode clipBoardTreeNode = EditorUtil.getTreeNodeOfSelection(clipBoardSelection);
+ DerivateView derivateView = (DerivateView)part.getObject();
+ if(derivateView.isDirty()){
+ MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION);
+ return;
+ }
+ if(clipBoardTreeNode!=null && clipBoardTreeNode.getValue() instanceof SingleRead
+ && selectedTreeNode!=null && selectedTreeNode.getValue() instanceof Sequence){
+ SingleRead singleRead = (SingleRead)clipBoardTreeNode.getValue();
+ Sequence sequence = (Sequence)selectedTreeNode.getValue();
+ sequence.addSingleRead(singleRead);
+ CdmStore.getService(ISequenceService.class).merge(sequence);
+
+ derivateView.getConversationHolder().commit();
+ derivateView.refreshTree();
+ LocalSelectionTransfer.getTransfer().setSelection(null);
+ }
+ derivateView.updateLabelCache();
+ derivateView.refreshTree();
+ }
+
+ @CanExecute
+ public boolean canExecute(@Optional @Named(IServiceConstants.ACTIVE_SELECTION) TreeNode selectedTreeNode, MHandledMenuItem menuItem) {
+ boolean canExecute = false;
+ if(selectedTreeNode!=null){
+ Object value = selectedTreeNode.getValue();
+ TreeNode clipboardNode = EditorUtil.getTreeNodeOfSelection(LocalSelectionTransfer.getTransfer().getSelection());
+ if(value instanceof Sequence && clipboardNode!=null && clipboardNode.getValue() instanceof SingleRead
+ && !((Sequence) value).getSingleReads().contains(clipboardNode.getValue())){
+ canExecute = true;
+ }
+ }
+ menuItem.setVisible(canExecute);
+ return canExecute;
+ }
+
+}
package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.handlers.HandlerUtil;
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-public class ToggleLinkWithTaxonSelectionHandler extends AbstractHandler {
+public class ToggleLinkWithTaxonSelectionHandler {
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- DerivateView derivateView = (DerivateView) HandlerUtil.getActiveEditor(event);
- derivateView.toggleListenToSelectionChange();
- return null;
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part){
+ DerivateView derivateView = (DerivateView) part.getObject();
+ derivateView.toggleListenToSelectionChange(part);
}
+ @CanExecute
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart part, MHandledMenuItem item){
+ DerivateView derivateView = (DerivateView) part.getObject();
+ if(derivateView.isListenToSelectionChange()){
+ item.setLabel("Unlink from taxon selection");
+ }
+ else{
+ item.setLabel("Link with taxon selection");
+ }
+ return true;
+ }
}
default:
break;
}
- derivativeEditor.dispose();
+ derivativeEditor.getCdmEntitySession().dispose();
derivativeEditor.getCdmEntitySession().bind();
SearchManager searchManager = new SearchManager();
/** {@inheritDoc} */
@Override
protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
- if(AbstractUtility.getActiveEditor() == null){
+ if(AbstractUtility.getActiveE4Editor() == null){
showEmptyPage();
return;
}
}
private boolean isTaxonEditor() {
- if(AbstractUtility.getActiveEditor() instanceof MultiPageTaxonEditor){
+ if(AbstractUtility.getActiveE4Editor() instanceof MultiPageTaxonEditor){
return true;
}
return false;
}
private boolean isBulkEditor() {
- if(AbstractUtility.getActiveEditor() instanceof BulkEditor){
+ if(AbstractUtility.getActiveE4Editor() instanceof BulkEditor){
return true;
}
return false;
}
private boolean isDerivateEditor() {
- if(AbstractUtility.getActiveEditor() instanceof DerivateView){
+ if(AbstractUtility.getActiveE4Editor() instanceof DerivateView){
return true;
}
return false;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.FeatureNode;
import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
*/
public class DynamicFeatureMenu extends CompoundContributionItem {
- private final ISelectionService selectionService = EditorUtil.getActivePart()
- .getSite().getWorkbenchWindow().getSelectionService();
- private final IHandlerService handlerService = (IHandlerService) EditorUtil
- .getService(IHandlerService.class);
+ private final ISelectionService selectionService = TaxeditorEditorPlugin.getDefault().getWorkbench().getService(ISelectionService.class);
+ private final IHandlerService handlerService = TaxeditorEditorPlugin.getDefault().getWorkbench().getService(IHandlerService.class);
/*
* (non-Javadoc)
private void createMenuItem(Menu menu, final Feature feature) {
MenuItem menuItem = new MenuItem(menu, -1);
final Feature deproxiedFeature = HibernateProxyHelper.deproxy(feature, Feature.class);
-
+
String label = deproxiedFeature.getLabel(PreferencesUtil.getGlobalLanguage());
if (label == null){
menuItem.setText(deproxiedFeature.getLabel());
Control control = viewer.getControl();
Menu menu = menuMgr.createContextMenu(control);
+ menuMgr.setRemoveAllWhenShown(true);
control.setMenu(menu);
}
if(part==this){
return;
}
- if(AbstractUtility.getActiveEditor() == null){
+ if(AbstractUtility.getActiveE4Editor() == null){
showEmptyPage();
return;
}
((BulkEditor) part).forceDirty();
IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
((BulkEditor) part).changed(selection.getFirstElement());
-
+
}
super.changed(object);
}
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
- ImagesUtility.removeMediaFromGallery(description, media);
+ // ImagesUtility.removeMediaFromGallery(description, media);
monitor.worked(20);
CdmStore.getService(IMediaService.class).delete(media.getUuid(), config);
<feature
id="eu.etaxonomy.taxeditor.feature.platform"
label="Taxeditor Dependencies"
- version="4.7.0.qualifier"
+ version="4.8.0.qualifier"
os="linux,macosx,win32"
ws="cocoa,gtk,win32"
arch="x86,x86_64">
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
<feature
id="eu.etaxonomy.taxeditor.feature"
label="Taxonomic Editor"
- version="4.7.0.qualifier"
+ version="4.8.0.qualifier"
provider-name="EDIT"
plugin="eu.etaxonomy.taxeditor.application"
os="linux,macosx,win32"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
Bundle-ManifestVersion: 2
Bundle-Name: Help
Bundle-SymbolicName: eu.etaxonomy.taxeditor.help; singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
Bundle-Vendor: EDIT
Require-Bundle: org.eclipse.ui,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.molecular.lib
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular.lib;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-ClassPath: .,
lib/owlapi-xmlutils-4.1.4.jar,
lib/commons-collections4-4.1.jar,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<build>
Bundle-ManifestVersion: 2
Bundle-Name: Molecular Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IEditorPart;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor;
*/
public abstract class AbstractAlignmentEditorHandler extends AbstractHandler {
public static AlignmentEditor getActiveAlignmentEditor() {
- IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ Object activeEditor = AbstractUtility.getActiveE4Editor();
if (activeEditor instanceof AlignmentEditor) {
return (AlignmentEditor)activeEditor;
}
return null;
}
}
-
-
+
+
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
AlignmentEditor editor = getActiveAlignmentEditor();
package eu.etaxonomy.taxeditor.molecular.handler;
-import info.bioinfweb.libralign.alignmentarea.AlignmentArea;
-import info.bioinfweb.libralign.dataarea.implementations.pherogram.PherogramArea;
-import info.bioinfweb.libralign.pherogram.PherogramComponent;
-
import java.util.Iterator;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchPart;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor;
import eu.etaxonomy.taxeditor.molecular.editor.PherogramViewPart;
+import info.bioinfweb.libralign.alignmentarea.AlignmentArea;
+import info.bioinfweb.libralign.dataarea.implementations.pherogram.PherogramArea;
+import info.bioinfweb.libralign.pherogram.PherogramComponent;
public abstract class AbstractPherogramComponentHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchPart activePart = AbstractUtility.getActivePart();
+ Object activePart = AbstractUtility.getActiveE4Part();
if (activePart instanceof AlignmentEditor) {
AlignmentEditor editor = (AlignmentEditor)activePart;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.ui.IEditorPart;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
public class LoadPherogramHandler extends AbstractHandler {
//TODO Change so that also URIs which do not point to files can be specified.
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ Object activeEditor = AbstractUtility.getActiveE4Editor();
if (activeEditor instanceof AlignmentEditor) {
AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.ICommandService;
import org.eclipse.ui.commands.IElementUpdater;
@Override
public void updateElement(UIElement element, @SuppressWarnings("rawtypes") Map parameters) {
- IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ Object activeEditor = AbstractUtility.getActiveE4Editor();
if (activeEditor instanceof AlignmentEditor) {
if (((AlignmentEditor)activeEditor).isInsertMode()) {
element.setIcon(INSERT_DESCRIPTOR);
element.setText("OVR"); //$NON-NLS-1$
element.setTooltip(Messages.ToggleInsertOverwriteHandler_SWITCH_INSERTION);
}
- ((ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class)).refreshElements(
+ PlatformUI.getWorkbench().getService(ICommandService.class).refreshElements(
ToggleLeftRightInsertionHandler.COMMAND_ID, null);
}
}
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.commands.IElementUpdater;
import org.eclipse.ui.menus.UIElement;
@Override
public void updateElement(UIElement element, @SuppressWarnings("rawtypes") Map parameters) {
- IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ Object activeEditor = AbstractUtility.getActiveE4Editor();
if (activeEditor instanceof AlignmentEditor) {
setBaseEnabled(((AlignmentEditor)activeEditor).isInsertMode());
if (((AlignmentEditor)activeEditor).isInsertLeftInPherogram()) {
Bundle-ManifestVersion: 2
Bundle-Name: Navigation Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.cdm,
<?xml version="1.0" encoding="ASCII"?>
<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_OhwnQCTfEeeiN5lBIuqN3g">
- <fragments xsi:type="fragment:StringModelFragment" xmi:id="_oDvMsCTfEeeiN5lBIuqN3g" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.toolbar.0">
+ <fragments xsi:type="fragment:StringModelFragment" xmi:id="_oDvMsCTfEeeiN5lBIuqN3g" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.trimcontribution.mainToolbar">
<elements xsi:type="menu:ToolControl" xmi:id="_7kZI4CTfEeeiN5lBIuqN3g" elementId="eu.etaxonomy.taxeditor.navigation.toolcontrol.search_bar" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.search.SearchBar"/>
</fragments>
</fragment:ModelFragments>
<reference
definitionId="isCdmStoreConnected">
</reference>
- <reference
- definitionId="isTaxonNode">
- </reference>
</and>
</visibleWhen>
</command>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
public static String SearchResultView_STATUS;
public static String SetSecundumForSubtreeOperation_CHANGE_SEC_OP;
public static String SetSecundumForSubtreeOperation_SET_SEC_TASK;
+ public static String SetSecundumForSubtreeHandler_CONFIG_DIALOG_TITLE;
public static String TaxonLinkHelper_CREATE_FAIL;
public static String TaxonNavigator_LOAD_DATASOURCE;
public static String TreeNodeDropAdapter_UNSAVED_PARENT;
public static String TreeNodeDropAdapter_UNSAVED_PARENT_MESSAGE;
+
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
SearchResultView_STATUS=Status:
SetSecundumForSubtreeOperation_CHANGE_SEC_OP=Change secundum reference for all children
SetSecundumForSubtreeOperation_SET_SEC_TASK=Set secundum reference for subtree
+SetSecundumForSubtreeHandler_CONFIG_DIALOG_TITLE=Set secundum reference for subtree
TaxonLinkHelper_CREATE_FAIL=Could not create Taxon
TaxonNavigator_LOAD_DATASOURCE=Loading datasources
TaxonNavigator_RESTORE=Restoring Taxon Navigator
SearchResultView_STATUS=Status:
SetSecundumForSubtreeOperation_CHANGE_SEC_OP=Secundum Referenz für alle Kinder ändern
SetSecundumForSubtreeOperation_SET_SEC_TASK=Secundum Referenz für Teilbaum setzen
+SetSecundumForSubtreeHandler_CONFIG_DIALOG_TITLE=Setze Secundum Referenz für Teilbaum
TaxonLinkHelper_CREATE_FAIL=Konnte Taxon nicht erstellen
TaxonNavigator_LOAD_DATASOURCE=Lade Datenquellen
TaxonNavigator_RESTORE=Taxonnavigator wiederherstellen
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
- IWorkbenchPart activePart = AbstractUtility.getActivePart();
+ Object activePart = AbstractUtility.getActiveE4Part();
TaxonNavigator navigator = null;
if(activePart instanceof TaxonNavigator){
navigator = (TaxonNavigator)activePart;
@Override
public void contextStart(IMemento memento, IProgressMonitor monitor) {
- text_search.setEnabled(true);
- toolBar.setEnabled(true);
+ if(!text_search.isDisposed()){
+ text_search.setEnabled(true);
+ }
+ if(!toolBar.isDisposed()){
+ toolBar.setEnabled(true);
+ }
}
@Override
private static Object[] EMPTY = new Object[0];
private class ContextListener extends ContextListenerAdapter{
- /* (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) {
monitor.subTask(Messages.SearchResultView_REMOVE_SEARCH_RESULTS);
private IContextListener contextListener;
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
- */
/** {@inheritDoc} */
@Override
public void createPartControl(Composite parent) {
- conversation = CdmStore.createConversation();
+ conversation = getConversation_internal();
contextListener = new ContextListener();
CdmStore.getContextManager().addContextListener(contextListener);
}
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
- */
/** {@inheritDoc} */
@Override
public void setFocus() {
//logger.warn("Setting focus to search result viewer");
- conversation.bind();
+ ConversationHolder conversation_internal = getConversation_internal();
+ if(conversation_internal!=null){
+ conversation_internal.bind();
+ }
// pass focus to resultViewer
resultViewer.getControl().setFocus();
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
- */
/**
* <p>getConversationHolder</p>
*
return this.conversation;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
- */
/** {@inheritDoc} */
@Override
public void update(CdmDataChangeMap changeEvents) {
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.WorkbenchPart#dispose()
- */
/** {@inheritDoc} */
@Override
public void dispose() {
super.dispose();
- conversation.close();
+ if(conversation!=null){
+ conversation.close();
+ }
if(searchJob != null) {
searchJob.cancel();
}
CdmStore.getContextManager().removeContextListener(contextListener);
}
+ private ConversationHolder getConversation_internal(){
+ if(conversation==null && CdmStore.isActive()){
+ try {
+ conversation = CdmStore.createConversation();
+ } catch (Exception e) {
+ //nothing
+ }
+ }
+ return conversation;
+ }
+
/**
*
* @author n.hoffmann
this.configurator = configurator;
}
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
- */
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("", 100); //$NON-NLS-1$
Bundle-ManifestVersion: 2
Bundle-Name: Printpublisher Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Require-Bundle: org.eclipse.osgi,
org.eclipse.ui,
eu.etaxonomy.taxeditor.cdmlib,
<parent>
<artifactId>taxeditor-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: DataStore Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/bundle
org.eclipse.core.databinding.observable,
org.eclipse.core.databinding.property,
org.eclipse.jface.databinding,
- org.eclipse.jdt.annotation;bundle-version="1.1.100",
+
eu.etaxonomy.taxeditor.workbench,
org.eclipse.e4.core.di.annotations;bundle-version="1.5.0",
org.eclipse.e4.ui.di;bundle-version="1.1.100",
viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Classification Wizard\r
viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxon node Wizard\r
command.label.CHANGE_PASSWORD = Change password\r
-wizard.name.22 = Output Model\r
+wizard.name.22 = CDM light (csv)\r
wizard.name.23 = Excel Distribution Data Update\r
+wizard.name.24 = RIS Reference\r
command.label.25 = Import Preferences
\ No newline at end of file
viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Klassifikations-Wizard
viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxonknoten-Wizard
command.label.CHANGE_PASSWORD = Kennwort ändern
-wizard.name.22 = Output Model
+wizard.name.22 = CDM light (csv)
wizard.name.23 = Excel Verbreitungsdaten Update
+wizard.name.24 = RIS Referenzen
command.label.25 = Import Präferenzen
\ No newline at end of file
<?xml version="1.0" encoding="ASCII"?>
<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/descriptor/basic" xmlns:commands="http://www.eclipse.org/ui/2010/UIModel/application/commands" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmlns:ui="http://www.eclipse.org/ui/2010/UIModel/application/ui" xmi:id="_OhwnQCTfEeeiN5lBIuqN3g">
<imports xsi:type="commands:Command" xmi:id="_bnVKsCZxEeeQLpuomSmVoQ" elementId="eu.etaxonomy.taxeditor.command.openPart"/>
- <fragments xsi:type="fragment:StringModelFragment" xmi:id="_xVa1wCXXEeex9MwMOgUeWw" featurename="descriptors" parentElementId="org.eclipse.e4.legacy.ide.application">
+ <fragments xsi:type="fragment:StringModelFragment" xmi:id="_xVa1wCXXEeex9MwMOgUeWw" featurename="descriptors" parentElementId="xpath:/">
<elements xsi:type="basic:PartDescriptor" xmi:id="_2xmxoCXXEeex9MwMOgUeWw" elementId="eu.etaxonomy.taxeditor.store.partdescriptor.sessionsView" label="%view.name.SESSIONS" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.sessions.SessionsViewPart"/>
</fragments>
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_3rW8wCXaEeex9MwMOgUeWw" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="after:bulkeditor.menus.openmenu">
<elements xsi:type="menu:HandledMenuItem" xmi:id="_1riRcCaHEeeTEd_pKXBflg" elementId="eu.etaxonomy.taxeditor.store.showViewMenu.logView" toBeRendered="false" visible="false" label="%command.label.3" command="_bnVKsCZxEeeQLpuomSmVoQ">
<parameters xmi:id="_9VpA8CaIEeeTEd_pKXBflg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.sessionView" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="org.eclipse.pde.runtime.LogView"/>
</elements>
- <elements xsi:type="menu:HandledMenuItem" xmi:id="_3DcfkCaHEeeTEd_pKXBflg" elementId="eu.etaxonomy.taxeditor.store.showViewMenu.reporting" label="%command.label.4" command="_bnVKsCZxEeeQLpuomSmVoQ">
- <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_UrBzACaJEeeTEd_pKXBflg" coreExpressionId="isCdmStoreConnected"/>
- <parameters xmi:id="_-z-nMCaIEeeTEd_pKXBflg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.sessionView" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.reporting.viewPart"/>
- </elements>
<elements xsi:type="menu:HandledMenuItem" xmi:id="_jFskQCZyEeeQLpuomSmVoQ" elementId="eu.etaxonomy.taxeditor.store.showViewMenu.sessions" label="%view.name.SESSIONS" command="_bnVKsCZxEeeQLpuomSmVoQ">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_W-C-gCaJEeeTEd_pKXBflg" coreExpressionId="isCdmStoreConnected"/>
<parameters xmi:id="_BylIUCZzEeeQLpuomSmVoQ" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.sessionView" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.store.partdescriptor.sessionsView"/>
class="eu.etaxonomy.taxeditor.io.wizard.ExcelDistributionUpdateWizard"
id="eu.etaxonomy.taxeditor.io.import.excelDistribution"
name="%wizard.name.23">
+ <enabledWhen>
+ <reference
+ definitionId="isShowExperimentalFeatures">
+ </reference></enabledWhen>
+ </wizard>
+ <wizard
+ category="eu.etaxonomy.taxeditor.import.category.cdm"
+ class="eu.etaxonomy.taxeditor.io.wizard.RISImportWizard"
+ id="eu.etaxonomy.taxeditor.io.import.risImport"
+ name="%wizard.name.24">
+
</wizard>
<wizard
category="eu.etaxonomy.taxeditor.import.category.cdm"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
--- /dev/null
+package eu.etaxonomy.taxeditor.editor;
+
+public class AppModelId {
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_COMMAND_OPENPART = "eu.etaxonomy.taxeditor.command.openPart";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_CONSENSUS_SEQUENCE = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_consensus_sequence";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_DNA_SAMPLE = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_dna_sample";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_EXISTING_MEDIA_SPECIMEN = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_existing_media_specimen";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_MEDIA_SPECIMEN = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_media_specimen";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_SINGLE_READ = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_single_read";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_SPECIMEN = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_specimen";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_TISSUE_SAMPLE = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_tissue_sample";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_SPECIMENEDITOR_CREATE_FIELD_UNIT = "eu.etaxonomy.taxeditor.editor.command.specimeneditor.create_field_unit";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATE_DEEPDELETE = "eu.etaxonomy.taxeditor.editor.derivate.deepDelete";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATE_DELETE = "eu.etaxonomy.taxeditor.editor.derivate.delete";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATIVE_COPYSINGLEREADTOCLIPBOARD = "eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATIVE_REMOVESINGLEREADFROMSEQUENCE = "eu.etaxonomy.taxeditor.editor.derivative.removeSingleReadFromSequence";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATIVE_REUSESINGLEREAD = "eu.etaxonomy.taxeditor.editor.derivative.reuseSingleRead";
+ public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATIVE_TOGGLELINKWITHTAXONSELECTION = "eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection";
+ public static final String COMMAND_ORG_ECLIPSE_UI_EDIT_DELETE = "org.eclipse.ui.edit.delete";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL52 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel52";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL54 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel54";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABELDERIVATIVE_EDITOR = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabelderivative_editor";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABELLINK_WITH_TAXON_SELECTION = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabellink_with_taxon_selection";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABELREMOVE_SINGLE_READ_FROM_THIS_SEQUENCE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabelremove_single_read_from_this_sequence";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABELREUSE_SINGLE_READ_FOR_OTHER_SEQUENCE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabelreuse_single_read_for_other_sequence";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDNAMEREUSE_SINGLE_READ = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandnamereuse_single_read";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CONSENSUSSEQUENCE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.consensussequence";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATEFIELDUNIT = "eu.etaxonomy.taxeditor.editor.handledmenuitem.createfieldunit";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATE_FIELD_UNIT_FOR_TAXON = "eu.etaxonomy.taxeditor.editor.handledmenuitem.create_field_unit_for_taxon";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_DNASAMPLE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.dnasample";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_EXISTINGMEDIA = "eu.etaxonomy.taxeditor.editor.handledmenuitem.existingmedia";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_MEDIASPECIMEN = "eu.etaxonomy.taxeditor.editor.handledmenuitem.mediaspecimen";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_SINGLEREAD = "eu.etaxonomy.taxeditor.editor.handledmenuitem.singleread";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_SPECIMEN = "eu.etaxonomy.taxeditor.editor.handledmenuitem.specimen";
+ public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_TISSUESAMPLE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.tissuesample";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDSPECIMENHANDLER = "eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDCONSENSUSSEQUENCEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddConsensusSequenceHandler";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDDNASAMPLEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddDnaSampleHandler";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDEXISTINGMEDIAHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddExistingMediaHandler";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDMEDIASPECIMENHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddMediaSpecimenHandler";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDSINGLEREADHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSingleReadHandler";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDTISSUESAMPLEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_CREATEFIELDUNITHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_DELETEDERIVATEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_SINGLEREADHANDLER_COPYSINGLEREAD = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.copySingleRead";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_SINGLEREADHANDLER_REMOVESINGLEREAD = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.removeSingleRead";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_SINGLEREADHANDLER_REUSESINGLEREAD = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.reuseSingleRead";
+ public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_TOGGLELINKWITHTAXONSELECTIONHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler";
+ public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_0 = "eu.etaxonomy.taxeditor.editor.menuseparator.0";
+ public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_1 = "eu.etaxonomy.taxeditor.editor.menuseparator.1";
+ public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_2 = "eu.etaxonomy.taxeditor.editor.menuseparator.2";
+ public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_3 = "eu.etaxonomy.taxeditor.editor.menuseparator.3";
+ public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_4 = "eu.etaxonomy.taxeditor.editor.menuseparator.4";
+ public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_ADD = "eu.etaxonomy.taxeditor.editor.menu.add";
+ public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_SPECIMEN_EDITOR_MEDIA = "eu.etaxonomy.taxeditor.editor.menu.specimen_editor.media";
+ public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_OPENPART_PARAMETER_SPECIMENEDITOR = "eu.etaxonomy.taxeditor.editor.openPart.parameter.specimenEditor";
+ public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW = "eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView";
+ public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_SPECIMENEDITOR = "eu.etaxonomy.taxeditor.editor.popupmenu.specimeneditor";
+}
\ No newline at end of file
\r
Control control = viewer.getControl();\r
Menu menu = menuManager.createContextMenu(control);\r
+ menuManager.setRemoveAllWhenShown(true);\r
control.setMenu(menu);\r
}\r
\r
if(vocabularies != null) {
vocabularies.clear();
}
- List<TermVocabulary<DefinedTermBase>> vocs = CdmStore.getService(IVocabularyService.class).findByTermType(termType);
+ List<TermVocabulary<DefinedTermBase>> vocs = CdmStore.getService(IVocabularyService.class).findByTermType(termType, null);
vocabularies.addAll(vocs);
}
protected ICdmRepository applicationConfiguration;
public static enum TYPE {
- Jaxb, Tcs, Excel_Taxa, Endnote, Sdd, Abcd, SpecimenCdmExcel, Excel_Name, SpecimenSearch, Gbif, Excel_Distribution
+ Jaxb, Tcs, Excel_Taxa, Endnote, Sdd, Abcd, SpecimenCdmExcel, Excel_Name, SpecimenSearch, Gbif, Excel_Distribution, Ris
}
/**
import eu.etaxonomy.cdm.io.common.IExportConfigurator;
import eu.etaxonomy.cdm.io.common.IIoConfigurator;
import eu.etaxonomy.cdm.io.common.IoResultBase;
+import eu.etaxonomy.cdm.io.common.IoResultBase.IoInfo;
import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
import eu.etaxonomy.cdm.io.outputmodel.OutputModelConfigurator;
import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
}
final StringBuilder reportText = new StringBuilder();
if(result!=null){
- List<IoResultBase.Error> reports = result.getErrors();
+ List<IoInfo> reports = result.getErrors();
reportText.append("Errors:\\r");
- for (IoResultBase.Error bs : reports) {
+ for (IoInfo bs : reports) {
reportText.append(bs.getMessage() + " - " +bs.getException().getStackTrace());
}
- List<String> warnings = result.getWarnings();
+ List<IoResultBase.IoInfo> warnings = result.getWarnings();
reportText.append("Warnings:\\r");
- for (String bs : warnings) {
+ for (IoResultBase.IoInfo bs : warnings) {
reportText.append(bs);
}
- List<IoResultBase.Error> exceptions = result.getExceptions();
+ List<IoInfo> exceptions = result.getExceptions();
reportText.append("Exceptions:\\r");
- for (IoResultBase.Error bs : exceptions) {
+ for (IoInfo bs : exceptions) {
reportText.append(bs.getMessage() + " - " +bs.getException().getStackTrace());
}
import java.util.UUID;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
monitor.beginTask("Importing data", IProgressMonitor.UNKNOWN);
IIOService ioService = CdmApplicationState.getIOService();
- ioService.importData(configurator, data, type);
+ ImportResult result = ioService.importData(configurator, data, type);
monitor.done();
CdmStore.getContextManager().notifyContextRefresh();
}
});
-
+ showResult(configurator.getClass().getSimpleName(), display, result);
return Status.OK_STATUS;
}
};
Path path = Paths.get(importFile.toURI());
try {
runMoniteredOperation(configurator, Files.readAllBytes(path), type);
+
} catch (Exception e) {
MessagingUtils.errorDialog("Error importing input stream",
this,
return DwcaImportConfigurator.NewInstance(null, null);
case Excel_Distribution:
return ExcelDistributionUpdateConfigurator.NewInstance(null, null, null);
+
default:
MessagingUtils.notImplementedMessage(this);
throw new IllegalArgumentException("Import not supported yet");
// CdmStore.getContextManager().notifyContextRefresh();
// }
// });
-
+ showResult("Gbif Import", display, result);
return Status.OK_STATUS;
}
};
CdmStore.getContextManager().notifyContextRefresh();
}
});
-
+ showResult("Abcd Import", display, result);
return Status.OK_STATUS;
}
};
final List<Abcd206ImportConfigurator> abcdConfigurators) {
Assert.isNotNull(abcdConfigurators, "Configuration may not be null");
final Display display = Display.getDefault();
- Job job = new Job("Import: " + " Dwca") {
+ Job job = new Job("Import: " + " Abcd") {
@Override
protected IStatus run(IProgressMonitor monitor) {
CdmStore.getContextManager().notifyContextRefresh();
}
});
+ showResult("Abcd Import", display, result);
+
+
return Status.OK_STATUS;
}
public Job createIOServiceJob(final ImportConfiguratorBase configurator) {
Assert.isNotNull(configurator, "Configuration may not be null");
final Display display = Display.getDefault();
+
Job job = new Job("Update: " + configurator.getClass().getSimpleName()) {
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("Updating data", IProgressMonitor.UNKNOWN);
IIOService ioService = CdmApplicationState.getIOService();
+ ImportResult importResult = null;
if (configurator instanceof SortIndexUpdaterConfigurator){
SortIndexUpdaterConfigurator config = (SortIndexUpdaterConfigurator)configurator;
- ioService.updateSortIndex(config);
+ importResult =ioService.updateSortIndex(config);
} else if (configurator instanceof CacheUpdaterConfigurator){
CacheUpdaterConfigurator config = (CacheUpdaterConfigurator) configurator;
- ioService.updateCaches(config);
+ importResult = ioService.updateCaches(config);
} else if (configurator instanceof ExcelDistributionUpdateConfigurator){
ExcelDistributionUpdateConfigurator config = (ExcelDistributionUpdateConfigurator) configurator;
- ioService.updateDistributionData(config);
+ importResult =ioService.updateDistributionData(config);
}
monitor.done();
+// display.asyncExec(new Runnable() {
+//
+// @Override
+// public void run() {
+// CdmStore.getContextManager().notifyContextRefresh();
+// }
+// });
+ showResult(configurator.getClass().getSimpleName(), display, importResult);
- display.asyncExec(new Runnable() {
-
- @Override
- public void run() {
- CdmStore.getContextManager().notifyContextRefresh();
- }
- });
return Status.OK_STATUS;
}
+
+
};
return job;
+ /**
+ * @param configurator
+ * @param display
+ * @param importResult
+ */
+ private void showResult(String importName, final Display display,
+ ImportResult importResult) {
+ StringBuffer reportTextTemp = importResult.createReport();
+ final StringBuffer reportText;
+ if (StringUtils.isBlank(reportTextTemp.toString())){
+ reportTextTemp.append("No update result available");
+ //TODO: this is a workaround because the abcd import writes the report in the report part...
+ if (!importResult.getReports().isEmpty() && importResult.getReports().get(0) != null){
+ reportTextTemp = new StringBuffer();
+ if(importResult!=null){
+ List<byte[]> reports = importResult.getReports();
+ for (byte[] bs : reports) {
+ if (bs != null){ reportTextTemp.append(new String(bs));}
+ }
+ }
+ }
+ }
+ reportText = reportTextTemp;
+ display.asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ // display reports with possibility to save
+ ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
+ dialog.setTitle(importName+" Report");
+ dialog.setReportText(reportText.toString());
+ dialog.open();
+ CdmStore.getContextManager().notifyContextRefresh();
+ }
+ });
+ }
+
}
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
*/
* @version 1.0
*/
public abstract class AbstractExportWizard<CONFIG extends IIoConfigurator> extends Wizard implements IExportWizard{
-
- protected final String CONFIGURATION_PAGE = "CONFIGURATION_PAGE";
-
+
+ protected final String CONFIGURATION_PAGE = "CONFIGURATION_PAGE";
+
private GenericConfiguratorWizardPage pageConfiguration;
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.wizard.Wizard#addPages()
*/
@Override
public void addPages() {
super.addPages();
-
- pageConfiguration = GenericConfiguratorWizardPage.Export(CONFIGURATION_PAGE, getConfigurator());
+
+ pageConfiguration = GenericConfiguratorWizardPage.Export(CONFIGURATION_PAGE, getConfigurator(), null);
this.addPage(pageConfiguration);
}
-
+
/**
* <p>getConfigurator</p>
*
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
import eu.etaxonomy.cdm.io.common.IIoConfigurator;
+import eu.etaxonomy.taxeditor.l10n.Messages;
/**
* @author n.hoffmann
protected final String CONFIGURATION_PAGE = "CONFIGURATION_PAGE";
- private GenericConfiguratorWizardPage pageConfiguration;
+ protected GenericConfiguratorWizardPage pageConfiguration;
private NomenclaturalCodeWizardPage pageNomenclaturalCode;
private IWorkbench workbench;
@Override
public void addPages() {
super.addPages();
-
+
addConfiguratorPage();
pageNomenclaturalCode = new NomenclaturalCodeWizardPage((IImportConfigurator)getConfigurator());
this.addPage(pageNomenclaturalCode);
}
-
+
protected void addConfiguratorPage(){
- pageConfiguration = GenericConfiguratorWizardPage.Import(CONFIGURATION_PAGE, getConfigurator());
+ pageConfiguration = GenericConfiguratorWizardPage.Import(CONFIGURATION_PAGE, getConfigurator(), null, Messages.AbstractImportWizard_ConfigurationLabel);
this.addPage(pageConfiguration);
}
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
import java.util.UUID;
import org.apache.commons.io.IOUtils;
import eu.etaxonomy.cdm.database.DbSchemaValidation;
import eu.etaxonomy.cdm.io.distribution.excelupdate.ExcelDistributionUpdateConfigurator;
+import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
/** {@inheritDoc} */
@Override
public void addPages() {
- super.addPages();
+ addConfiguratorPage();
+ addDataSourcePage();
- dataSourcePage = new ImportFromFileAndChooseVocIdWizardOage("Choose NormalExplicit",
- "Please choose an xls file in the NormalExplicit format.", new String[]{"*.xlsx", "*.xls", "*.*"});
+
+ }
+ @Override
+ protected void addConfiguratorPage(){
+ List<String> ignoreMethods = new ArrayList<>();
+ ignoreMethods.add("setIgnoreNull");
+ ignoreMethods.add("setInteractWithUser");
+ ignoreMethods.add("setUseClassification");
+ pageConfiguration = GenericConfiguratorWizardPage.Import(CONFIGURATION_PAGE, getConfigurator(), ignoreMethods, Messages.ExcelDistributionUpdateWizard_ConfiguratorWizard_label);
+ addPage(pageConfiguration);
+ }
+
+ private void addDataSourcePage(){
+ dataSourcePage = new ImportFromFileAndChooseVocIdWizardOage("Choose Excel File",
+ "Please choose an xls file in the Distribution Update format.", new String[]{"*.xlsx", "*.xls", "*.*"});
addPage(dataSourcePage);
}
+
+
}
private final IIoConfigurator configurator;
private final ResourceBundle resourceBundle;
+ private final List<String> ignoreMethods;
/**
* @param pageName
* @param configurator
*/
private GenericConfiguratorWizardPage(String pageName,
- IIoConfigurator configurator, String title, String description) {
+ IIoConfigurator configurator, String title, String description, List<String> ignoreMethods) {
super(pageName);
this.setTitle(title);
this.setDescription(description);
this.configurator = configurator;
+ this.ignoreMethods = ignoreMethods;
resourceBundle = getResourceBundle(configurator);
private ResourceBundle getResourceBundle(IIoConfigurator configurator){
try{
- return ResourceBundle.getBundle(configurator.getClass().getName());
+ if (configurator != null){
+ return ResourceBundle.getBundle(configurator.getClass().getName());
+ }else{
+ return ResourceBundle.getBundle("Configuration");
+ }
}catch(MissingResourceException e){
return null;
}
* object.
*/
public static GenericConfiguratorWizardPage Import(String pageName,
- IIoConfigurator configurator) {
+ IIoConfigurator configurator, List<String> ignoreMethods, String label) {
return new GenericConfiguratorWizardPage(pageName, configurator,
- "Import Configuration", "Configure the import mechanism.");
+ "Import Configuration", label, ignoreMethods);
}
/**
* object.
*/
public static GenericConfiguratorWizardPage Export(String pageName,
- IIoConfigurator configurator) {
+ IIoConfigurator configurator, List<String> ignoreMethods) {
return new GenericConfiguratorWizardPage(pageName, configurator,
- "Export Configuration", "Configure the export mechanism.");
+ "Export Configuration", "Configure the export mechanism.", ignoreMethods);
}
/*
});
for (Method method : methods) {
- createCheckbox(composite, method, configurator);
+ if (!ignoreMethods.contains( method.getName())) {
+ createCheckbox(composite, method, configurator);
+ }
}
// scrolledComposite.setContent(composite);
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
import eu.etaxonomy.cdm.api.service.IVocabularyService;
import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
super.createControl(parent);
Composite composite = (Composite)getControl();
// final Composite composite = new Composite(parent, SWT.NULL);
-
+ GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
+ composite.setLayoutData(gridData);
+ Label label = new Label(composite, SWT.NONE);
+ label.setText(Messages.ImportFromFileAndChooseVocIdWizardPage_AreaVoc);
+ label.setToolTipText(Messages.ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip);
vocabularyCombo = new Combo(composite, SWT.DROP_DOWN);
- List<TermVocabulary<DefinedTermBase>> vocs = CdmStore.getService(IVocabularyService.class).findByTermType(TermType.NamedArea);
+ List<TermVocabulary<DefinedTermBase>> vocs = CdmStore.getService(IVocabularyService.class).findByTermType(TermType.NamedArea, null);
for(TermVocabulary voc: vocs){
vocabularyCombo.add(voc.getLabel());
}
--- /dev/null
+/**
+* Copyright (C) 2017 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.io.wizard;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbench;
+
+import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
+import eu.etaxonomy.cdm.io.reference.ris.in.RisReferenceImportConfigurator;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @date 12.05.2017
+ *
+ */
+public class RISImportWizard extends AbstractImportWizard<RisReferenceImportConfigurator>{
+ private RisReferenceImportConfigurator configurator;
+
+ private ImportFromFileDataSourceWizardPage dataSourcePage;
+
+ private static final Logger logger = Logger.getLogger(ExcelDistributionUpdateWizard.class);
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
+ */
+ /** {@inheritDoc} */
+ @Override
+ public RisReferenceImportConfigurator getConfigurator() {
+ return configurator;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#performFinish()
+ */
+ /** {@inheritDoc} */
+ @Override
+ public boolean performFinish() {
+ URI source = dataSourcePage.getUri();
+ // configurator.setSource(source);
+// try {
+// configurator = RisReferenceImportConfigurator.NewInstance(source, null);
+// } catch (MalformedURLException e1) {
+// // TODO Auto-generated catch block
+// e1.printStackTrace();
+// } catch (IOException e1) {
+// // TODO Auto-generated catch block
+// e1.printStackTrace();
+// }
+ configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
+ File file = new File(source);
+ FileInputStream fis;
+
+ try {
+ fis = new FileInputStream(file);
+ byte[] data;
+ data = IOUtils.toByteArray(fis);
+ configurator.setStream(data);
+//TODO: workaround, needs to be changed to source as byte array
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, data, SOURCE_TYPE.INPUTSTREAM);
+ CdmStore.getImportManager().run(job);
+ } catch (FileNotFoundException e) {
+ logger.error("Error while reading file" + source.toString());
+ } catch (IOException e){
+
+ }
+
+ //CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
+
+
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ super.init(workbench, selection);
+ configurator = RisReferenceImportConfigurator.NewInstance();
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#addPages()
+ */
+ /** {@inheritDoc} */
+ @Override
+ public void addPages() {
+ //addConfiguratorPage();
+ addDataSourcePage();
+
+
+ }
+ @Override
+ protected void addConfiguratorPage(){
+ List<String> ignoreMethods = new ArrayList<>();
+ ignoreMethods.add("setIgnoreNull");
+ ignoreMethods.add("setInteractWithUser");
+ ignoreMethods.add("setUseClassification");
+ pageConfiguration = GenericConfiguratorWizardPage.Import(CONFIGURATION_PAGE, getConfigurator(), ignoreMethods, "Ris Import");
+ addPage(pageConfiguration);
+ }
+
+ private void addDataSourcePage(){
+ dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose Ris File",
+ "Please choose an xls file in the Distribution Update format.", new String[]{"*.txt"});
+ addPage(dataSourcePage);
+ }
+
+}
public static String SetSecundumConfiguration_IncludeSharedtaxa;
public static String SetSecundumConfiguration_NewSecundum_Label;
public static String SetSecundumConfiguration_Description;
+ public static String SetSecundumConfiguration_Description_Configurator;
public static String DatabasePreferncesPage_Is_redList;
public static String DatabasePreferncesPage_Determination_only_for_field_unnits;
public static String DatabasePreferencesPage_UseLocalPreferences;
public static String DatabasePreferencesPage_Specimen_Or_Observation;
+ public static String ImportFromFileAndChooseVocIdWizardPage_AreaVoc;
+
+ public static String ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip;
+
+
+ public static String ExcelDistributionUpdateWizard_ConfiguratorWizard_label;
+
+
+ public static String AbstractImportWizard_ConfigurationLabel;
+
+
+
+
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
SetSecundumConfiguration_OverwriteExistingSynonyms=overwrite existing references for synonyms
SetSecundumConfiguration_EmptySecundumDetail=empty existing details
SetSecundumConfiguration_IncludeSharedtaxa=include shared taxa
-SetSecundumConfiguration_NewSecundum_Label=new secundum reference
+SetSecundumConfiguration_NewSecundum_Label=New secundum reference
SetSecundumConfiguration_Description=If no reference is chosen existing secundum references are deleted
+SetSecundumConfiguration_Description_Configurator=Configure how to perform the set secundum reference operation
DatabasePreferncesPage_Is_redList=Red List 2020
DatabasePreferncesPage_Determination_only_for_field_unnits=Determinations only for field units
DatabasePreferencesPage_Define_Default_NomenclaturalCode=Define default nomenclatural code
DatabasePreferencesPage_UseLocalPreferences=Allow to use local preference
DatabasePreferencesPage_Specimen_Or_Observation=Specimen or observation configuration
+
+ImportFromFileAndChooseVocIdWizardPage_AreaVoc=Area Vocabulary
+ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip=Please choose a vocabulary for the used areas.
+ExcelDistributionUpdateWizard_ConfiguratorWizard_label=Configure Excel distribution update
+AbstractImportWizard_ConfigurationLabel=Configure the Import
SetSecundumConfiguration_OverwriteExistingSynonyms=bestehende Secundum Referenzen bei Synonymen überschreiben
SetSecundumConfiguration_EmptySecundumDetail=bestehende Details von Secundum Referenzen löschen
SetSecundumConfiguration_IncludeSharedtaxa=auch mehrfach verwendete Taxa mit einbeziehen
-SetSecundumConfiguration_NewSecundum_Label=neue Secundum Referenz
+SetSecundumConfiguration_NewSecundum_Label=Neue Secundum Referenz
SetSecundumConfiguration_Description=Wenn keine Referenz ausgewählt wird, werden die bestehenden Secundum Referenzen gelöscht
+SetSecundumConfiguration_Description_Configurator=Konfigurieren Sie, wie das Ersetzen der Secundum Referenz durchgeführt werden soll.
DatabasePreferncesPage_Is_redList=Rote Liste 2020
DatabasePreferncesPage_Determination_only_for_field_unnits=Determinations nur für Field Units
DatabasePreferencesPage_Define_Default_NomenclaturalCode=Festlegen des default Nomenklatorischen Codes
DatabasePreferencesPage_UseLocalPreferences=Erlaube das lokale Überschreiben
DatabasePreferencesPage_Specimen_Or_Observation=Konfiguration von Specimen und Observationen
+
+ImportFromFileAndChooseVocIdWizardPage_AreaVoc=Area Vokabular
+ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip=Bitte wählen Sie ein Vokabular für die genutzten Areas aus.
+ExcelDistributionUpdateWizard_ConfiguratorWizard_label=Konfiguration des Excel Distribution Updates
+AbstractImportWizard_ConfigurationLabel=Konfiguration des Imports
package eu.etaxonomy.taxeditor.model;
+import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.resource.ColorRegistry;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
+import org.eclipse.ui.internal.E4PartWrapper;
import org.eclipse.ui.part.EditorPart;
import org.eclipse.ui.progress.IProgressConstants;
import org.eclipse.ui.progress.IProgressService;
import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
/**
- * <p>
- * Abstract AbstractUtility class.
- * </p>
*
* @author n.hoffmann
* @created 11.05.2009
protected static IStatusLineManager statusLineManager;
- /**
- * <p>
- * closeAll
- * </p>
- *
- * @return a boolean.
- */
public static boolean closeAll() {
if(getActivePage()!=null){
return getActivePage().closeAllEditors(true);
* @return <tt>true</tt> on success
*/
public static boolean close(EditorPart editor) {
- return getActivePage().closeEditor(editor, true);
+ return getActivePage() != null ? getActivePage().closeEditor(editor, true):false;
}
- /**
- * <p>
- * getShell
- * </p>
- *
- * @return a {@link org.eclipse.swt.widgets.Shell} object.
- */
public static Shell getShell() {
return TaxeditorStorePlugin.getDefault().getWorkbench()
.getActiveWorkbenchWindow().getShell();
}
- /**
- * <p>
- * getActivePage
- * </p>
- *
- * @return a {@link org.eclipse.ui.IWorkbenchPage} object.
- */
public static IWorkbenchPage getActivePage() {
+ try{
+ return TaxeditorStorePlugin.getDefault().getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage();
+ } catch(NullPointerException npe){
+ return null;
+ }
+ }
- return TaxeditorStorePlugin.getDefault().getWorkbench()
- .getActiveWorkbenchWindow().getActivePage();
+ public static IWorkbenchPart getActiveWorkbenchPart() {
+ IWorkbenchPage activePage = getActivePage();
+ if(activePage!=null){
+ IWorkbenchPart activePart = activePage.getActivePart();
+ if(activePart!=null){
+ return activePart;
+ }
+ }
+ return null;
}
- /**
- * <p>
- * getActivePart
- * </p>
- *
- * @return a {@link org.eclipse.ui.IWorkbenchPart} object.
- */
- public static IWorkbenchPart getActivePart() {
- return getActivePage() != null ? getActivePage().getActivePart() : null;
+ public static Object getActiveE4Part() {
+ IWorkbenchPage activePage = getActivePage();
+ if(activePage!=null){
+ IWorkbenchPart activePart = activePage.getActivePart();
+ Object e4WrappedPart = getE4WrappedPart(activePart);
+ return e4WrappedPart!=null?e4WrappedPart:activePart;
+ }
+ return null;
+ }
+
+ public static Object getE4WrappedPart(Object activePart){
+ if(activePart instanceof E4PartWrapper){
+ //FIXME can be removed when E4 migration is complete
+ try {
+ Field field = activePart.getClass().getDeclaredField("wrappedPart");
+ field.setAccessible(true);
+ Object object = field.get(activePart);
+ if(object instanceof MPart){
+ return ((MPart) object).getObject();
+ }
+ } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ return null;
}
public static IWorkbench getWorkbench() {
return TaxeditorStorePlugin.getDefault().getWorkbench();
}
- /**
- * <p>
- * getWorkbenchWindow
- * </p>
- *
- * @return a {@link org.eclipse.jface.window.ApplicationWindow} object.
- */
public static IWorkbenchWindow getWorkbenchWindow() {
if (getWorkbench().getWorkbenchWindowCount() > 1) {
throw new IllegalStateException("More than one workbench window");
return getWorkbench().getWorkbenchWindows()[0];
}
- /**
- * <p>
- * showView
- * </p>
- *
- * @param id
- * a {@link java.lang.String} object.
- * @return a {@link org.eclipse.ui.IViewPart} object.
- */
public static IViewPart showView(String id) {
try {
return PlatformUI.getWorkbench().getActiveWorkbenchWindow()
}
}
- /**
- * <p>
- * hideView
- * </p>
- *
- * @param view
- * a {@link org.eclipse.ui.IViewPart} object.
- */
public static void hideView(IViewPart view) {
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
.hideView(view);
}
- /**
- * <p>
- * getView
- * </p>
- *
- * @param id
- * a {@link java.lang.String} object.
- * @param restore
- * a boolean.
- * @return a {@link org.eclipse.ui.IViewPart} object.
- */
public static IViewPart getView(String id, boolean restore) {
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow();
return null;
}
- /**
- * <p>
- * getService
- * </p>
- *
- * @param api
- * a {@link java.lang.Class} object.
- * @return a {@link java.lang.Object} object.
- */
public static Object getService(Class api) {
return TaxeditorStorePlugin.getDefault().getWorkbench().getService(api);
}
- /**
- * <p>
- * getCurrentTheme
- * </p>
- *
- * @return a {@link org.eclipse.ui.themes.ITheme} object.
- */
public static ITheme getCurrentTheme() {
IThemeManager themeManager = TaxeditorStorePlugin.getDefault()
.getWorkbench().getThemeManager();
return getCurrentTheme().getFontRegistry();
}
- /**
- * <p>
- * getFont
- * </p>
- *
- * @param symbolicName
- * a {@link java.lang.String} object.
- * @return a {@link org.eclipse.swt.graphics.Font} object.
- */
public static Font getFont(String symbolicName) {
return getFontRegistry().get(symbolicName);
}
return getCurrentTheme().getColorRegistry();
}
- /**
- * <p>
- * getColor
- * </p>
- *
- * @param symbolicName
- * a {@link java.lang.String} object.
- * @return a {@link org.eclipse.swt.graphics.Color} object.
- */
public static Color getColor(String symbolicName) {
return getColorRegistry().get(symbolicName);
}
- /**
- * <p>
- * executeOperation
- * </p>
- *
- * @param operation
- * a
- * {@link eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation}
- * object.
- * @return a {@link org.eclipse.core.runtime.IStatus} object.
- */
public static IStatus executeOperation(final AbstractPostOperation operation) {
if (getOperationHistory() == null) {
throw new IllegalArgumentException(
return Status.OK_STATUS;
}
-
- /**
- * <p>
- * getOperationHistory
- * </p>
- *
- * @return a {@link org.eclipse.core.commands.operations.IOperationHistory}
- * object.
- */
public static IOperationHistory getOperationHistory() {
return getWorkbench().getOperationSupport().getOperationHistory();
}
- /**
- * <p>
- * setStatusLine
- * </p>
- *
- * @param message
- * a {@link java.lang.String} object.
- */
public static void setStatusLine(final String message) {
Display.getDefault().asyncExec(new Runnable() {
}
- /**
- * <p>
- * getMonitor
- * </p>
- *
- * @return a {@link org.eclipse.core.runtime.IProgressMonitor} object.
- */
public static IProgressMonitor getMonitor() {
statusLineManager.setCancelEnabled(false);
return statusLineManager.getProgressMonitor();
getProgressService().busyCursorWhile(runnable);
}
- /**
- * <p>
- * runInUI
- * </p>
- *
- * @see {@link IProgressService#runInUI(org.eclipse.jface.operation.IRunnableContext, IRunnableWithProgress, ISchedulingRule)}
- * @param runnable
- * a {@link org.eclipse.jface.operation.IRunnableWithProgress}
- * object.
- * @param rule
- * a {@link org.eclipse.core.runtime.jobs.ISchedulingRule}
- * object.
- * @throws java.lang.reflect.InvocationTargetException
- * if any.
- * @throws java.lang.InterruptedException
- * if any.
- */
public static void runInUI(IRunnableWithProgress runnable,
ISchedulingRule rule) throws InvocationTargetException,
InterruptedException {
getProgressService().runInUI(getWorkbenchWindow(), runnable, rule);
}
- /**
- * <p>
- * run
- * </p>
- *
- * @param fork
- * a boolean.
- * @param cancelable
- * a boolean.
- * @param runnable
- * a {@link org.eclipse.jface.operation.IRunnableWithProgress}
- * object.
- * @throws java.lang.reflect.InvocationTargetException
- * if any.
- * @throws java.lang.InterruptedException
- * if any.
- */
public static void run(boolean fork, boolean cancelable,
IRunnableWithProgress runnable) throws InvocationTargetException,
InterruptedException {
getProgressService().run(fork, cancelable, runnable);
}
- /**
- * <p>
- * getProgressService
- * </p>
- *
- * @return a {@link org.eclipse.ui.progress.IProgressService} object.
- */
public static IProgressService getProgressService() {
IWorkbench workbench = PlatformUI.getWorkbench();
return workbench.getProgressService();
}
- /**
- * <p>
- * getProgressService2
- * </p>
- *
- * @return a {@link org.eclipse.ui.progress.IWorkbenchSiteProgressService}
- * object.
- */
public static IWorkbenchSiteProgressService getProgressService2() {
return (IWorkbenchSiteProgressService) getService(IWorkbenchSiteProgressService.class);
}
- /**
- * <p>
- * getPluginId
- * </p>
- *
- * @return a {@link java.lang.String} object.
- */
public static String getPluginId() {
return "eu.taxeditor";
}
- /**
- * <p>
- * getActiveEditor
- * </p>
- *
- * @return a {@link org.eclipse.ui.IEditorPart} object.
- */
public static IEditorPart getActiveEditor() {
return getActivePage() != null ? getActivePage().getActiveEditor()
: null;
}
- /**
- * <p>
- * getDetailsView
- * </p>
- *
- * @return a {@link eu.etaxonomy.taxeditor.view.detail.DetailsViewPart}
- * object.
- */
+ public static Object getActiveE4Editor() {
+ if(getActivePage()!=null){
+ IEditorPart activeEditor = getActivePage().getActiveEditor();
+ Object wrappedPart = getE4WrappedPart(getActivePage().getActivePart());
+ return wrappedPart!=null?wrappedPart:activeEditor;
+ }
+ return null;
+ }
+
public static DetailsViewPart getDetailsView() {
return (DetailsViewPart) getView(DetailsViewPart.ID, false);
}
- /**
- * <p>
- * refreshDetailsViewer
- * </p>
- */
public static void refreshDetailsViewer() {
if (getDetailsView() != null) {
((AbstractCdmDataViewer) getDetailsView().getViewer()).refresh();
}
}
- /**
- * <p>
- * reflowDetailsViewer
- * </p>
- */
public static void reflowDetailsViewer() {
if (getDetailsView() != null) {
((AbstractCdmDataViewer) getDetailsView().getViewer()).reflow();
private final T term;
private final TreeSet<TermNode<T>> children;
- /**
- * @param term
- * @param children
- */
public TermNode(T term) {
super();
this.term = term;
this.children.add(child);
}
- /**
- * @return the children
- */
public TreeSet<TermNode<T>> getChildren() {
return children;
}
- /**
- * @return the term
- */
public T getTerm() {
return term;
}
- /* (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 java.lang.Comparable#compareTo(java.lang.Object)
- */
@Override
public int compareTo(TermNode<T> that) {
return this.term.getMessage().compareTo(that.term.getMessage());
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
*/
import java.util.List;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
/**
* <p>NomenclaturalCodeHelper class.</p>
* @version 1.0
*/
public class NomenclaturalCodeHelper {
-
+
/**
* <p>getAllCodes</p>
*
List<NomenclaturalCode> supportedCodes = new ArrayList<NomenclaturalCode>();
for (NomenclaturalCode code : getAllCodes()) {
if (isSupported(code)) {
- supportedCodes.add(code);
+ if (PreferencesUtil.getPreferredNomenclaturalCode().equals(code)){
+ supportedCodes.add(0, code);
+ }else{
+ supportedCodes.add(code);
+ }
}
}
return supportedCodes;
}
-
+
/**
* @param code
* @return
}
if (code.equals(NomenclaturalCode.ICZN)) {
return "International Code of Zoological Nomenclature (ICZN)";
- }
+ }
if (code.equals(NomenclaturalCode.ICVCN)) {
return "International Code for Virus Classification and Nomenclature (ICVCN)";
- }
+ }
return code.name();
}
-
+
/**
* <p>getDefaultCode</p>
*
vocabularies.clear();
}
List<TermVocabulary<DefinedTermBase>> vocs = CdmStore.getService(IVocabularyService.class).findByTermType(
- TermType.NamedArea);
+ TermType.NamedArea, null);
return vocs;
}
// }
// }
// }
-
+
/**
*
* @param path
}
protected List<VOC> getVocabularies(){
- List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termType);
+ List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termType, null);
return (List<VOC>) list;
}
private final SetSecundumForSubtreeConfigurator configurator;
private Button btnBrowseReference = null;
+
private Text textReference = null;
private Button btnClear = null;
private EntitySelectionElement<Reference> selectReference;
public SetSecundumConfiguratorWizardPage(SetSecundumForSubtreeConfigurator configurator, Wizard parent, int style ) {
super("Set Secundum Reference Configuration");
this.configurator = configurator;
- this.setDescription(Messages.SetSecundumConfiguration_Description);
+ this.setDescription(Messages.SetSecundumConfiguration_Description_Configurator);
// addDisposeListener(new DisposeListener() {
// @Override
compositeRef.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
Label label = new Label(compositeRef, SWT.NONE);
label.setText(Messages.SetSecundumConfiguration_NewSecundum_Label);
- label.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+ label.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
textReference = new Text(compositeRef, SWT.BORDER);
textReference.setEditable(false);
btnBrowseReference = new Button(compositeRef, SWT.NONE);
btnBrowseReference.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/open.gif"));
btnBrowseReference.addListener(SWT.Selection, this);
+
btnClear = new Button(compositeRef, SWT.NONE);
btnClear.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
btnClear.addListener(SWT.Selection, this);
-
+ Label labelDescription = new Label(compositeRef, SWT.NONE);
+ labelDescription.setText(Messages.SetSecundumConfiguration_Description);
+ GridData gd_labelDescription = new GridData(SWT.FILL, SWT.LEFT, true, false);
+ gd_labelDescription.horizontalSpan = 4;
+ labelDescription.setLayoutData(gd_labelDescription);
+ new Label(compositeRef, SWT.NONE);
+ new Label(compositeRef, SWT.NONE);
+ new Label(compositeRef, SWT.NONE);
+
// selectReference = toolkit.createSelectionElement(Rights.class, getConversationHolder(), composite, "Rights", null, EntitySelectionElement.SELECTABLE);
final Composite control = new Composite(composite, SWT.NULL);
GridLayout gridLayoutControl = new GridLayout();
- gridLayoutControl.numColumns = 1;
control.setLayout(gridLayoutControl);
control.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
});
btnOverwriteExistingAccepted = new Button(control, SWT.CHECK);
+ GridData gd_btnOverwriteExistingAccepted = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_btnOverwriteExistingAccepted.horizontalIndent = 10;
+ btnOverwriteExistingAccepted.setLayoutData(gd_btnOverwriteExistingAccepted);
btnOverwriteExistingAccepted.setText(Messages.SetSecundumConfiguration_OverwriteExistingAccepted);
+
+ btnIncludeSharedTaxa = new Button(control, SWT.CHECK);
+ GridData gd_btnIncludeSharedTaxa = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_btnIncludeSharedTaxa.horizontalIndent = 10;
+ btnIncludeSharedTaxa.setLayoutData(gd_btnIncludeSharedTaxa);
+ btnIncludeSharedTaxa.setText(Messages.SetSecundumConfiguration_IncludeSharedtaxa);
+ btnIncludeSharedTaxa.setSelection(configurator.isIncludeSharedTaxa());
btnIncludeSynonyms = new Button(control, SWT.CHECK);
btnIncludeSynonyms.setText(Messages.SetSecundumConfiguration_IncludeSynonyms);
btnOverwriteExistingAccepted.setSelection(configurator.isOverwriteExistingAccepted());
btnOverwriteExistingSynonyms = new Button(control, SWT.CHECK);
+ GridData gd_btnOverwriteExistingSynonyms = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_btnOverwriteExistingSynonyms.horizontalIndent = 10;
+ btnOverwriteExistingSynonyms.setLayoutData(gd_btnOverwriteExistingSynonyms);
btnOverwriteExistingSynonyms.setText(Messages.SetSecundumConfiguration_OverwriteExistingSynonyms);
btnOverwriteExistingSynonyms.setSelection(configurator.isOverwriteExistingSynonyms());
btnEmptySecundumDetail = new Button(control, SWT.CHECK);
btnEmptySecundumDetail.setText(Messages.SetSecundumConfiguration_EmptySecundumDetail);
btnEmptySecundumDetail.setSelection(configurator.isEmptySecundumDetail());
- btnIncludeSharedTaxa = new Button(control, SWT.CHECK);
- btnIncludeSharedTaxa.setText(Messages.SetSecundumConfiguration_IncludeSharedtaxa);
- btnIncludeSharedTaxa.setSelection(configurator.isIncludeSharedTaxa());
-
m_bindingContext = initDataBindings();
setControl(composite);
}
private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
private final MediaDeletionConfigurator configurator;
- private final Button btnDeleteIfUsedInTaxonDescription;
- private final Button btnDeleteIfUsedInSpecimenDescription;
+ private Button btnDelete;
+ private Button btnDeleteIfUsedInTaxonDescription;
+ private Button btnDeleteIfUsedInSpecimenDescription;
private Button btnRemoveFromImageGallery;
+
+ private boolean inBulkEditor;
public DeleteMediaConfiguratorComposite(MediaDeletionConfigurator configurator, Composite parent, int style, boolean inBulkEditor) {
super(parent, style);
+ this.inBulkEditor = inBulkEditor;
this.configurator = configurator;
addDisposeListener(new DisposeListener() {
@Override
toolkit.paintBordersFor(this);
setLayout(new RowLayout(SWT.VERTICAL));
setBackground(getBackground());
-
+
+
if (inBulkEditor){
btnDeleteIfUsedInTaxonDescription = new Button(this, SWT.CHECK);
btnDeleteIfUsedInTaxonDescription.setText(Messages.DeleteConfiguration_media_deleteIfUsedInTaxonDescription);
+ btnDeleteIfUsedInTaxonDescription.setEnabled(true);
+ btnDeleteIfUsedInTaxonDescription.setSelection(configurator.isDeleteIfUsedInTaxonDescription());
+ btnDeleteIfUsedInSpecimenDescription = new Button(this, SWT.CHECK);
+ btnDeleteIfUsedInSpecimenDescription.setText(Messages.DeleteConfiguration_media_deleteIfUsedInSpecimenDescription);
+ btnDeleteIfUsedInSpecimenDescription.setEnabled(true);
+ btnDeleteIfUsedInSpecimenDescription.setSelection(configurator.isDeleteIfUsedInSpecimenDescription());
}
else {
- btnDeleteIfUsedInTaxonDescription = new Button(this, SWT.RADIO);
- btnDeleteIfUsedInTaxonDescription.setText(Messages.DeleteConfiguration_media_delete);
-
+
+ btnDelete = new Button(this, SWT.RADIO);
+ btnDelete.setText(Messages.DeleteConfiguration_media_delete);
+
+// btnDeleteIfUsedInSpecimenDescription = new Button(this, SWT.CHECK);
+// btnDeleteIfUsedInSpecimenDescription.setText(Messages.DeleteConfiguration_media_deleteIfUsedInSpecimenDescription);
+// btnDeleteIfUsedInTaxonDescription = new Button(this, SWT.CHECK);
+// btnDeleteIfUsedInTaxonDescription.setText(Messages.DeleteConfiguration_media_deleteIfUsedInTaxonDescription);
+// btnDelete.addListener(SWT.Selection, (Event e) -> {
+// Button b = (Button) e.widget;
+// btnDeleteIfUsedInSpecimenDescription.setEnabled(b.getSelection());
+// btnDeleteIfUsedInTaxonDescription.setEnabled(b.getSelection());
+// });
btnRemoveFromImageGallery = new Button(this, SWT.RADIO);
btnRemoveFromImageGallery.setText(Messages.DeleteConfiguration_media_removeFromGallery);
+ btnDelete.setSelection(!configurator.isOnlyRemoveFromGallery());
+ btnRemoveFromImageGallery.setSelection(configurator.isOnlyRemoveFromGallery());
}
- btnDeleteIfUsedInSpecimenDescription = new Button(this, SWT.CHECK);
- btnDeleteIfUsedInSpecimenDescription.setText(Messages.DeleteConfiguration_media_deleteIfUsedInSpecimenDescription);
-
- if(inBulkEditor){
- btnDeleteIfUsedInSpecimenDescription.setEnabled(true);
- }
- else{
- btnDeleteIfUsedInSpecimenDescription.setEnabled(false);
-
- btnDeleteIfUsedInTaxonDescription.addListener(SWT.Selection, (Event e) -> {
- Button b = (Button) e.widget;
- btnDeleteIfUsedInSpecimenDescription.setEnabled(b.getSelection());
-
- });
- }
- btnDeleteIfUsedInTaxonDescription.setSelection(true);
-
m_bindingContext = initDataBindings();
}
protected DataBindingContext initDataBindings() {
DataBindingContext bindingContext = new DataBindingContext();
//
- IObservableValue observeSelectionBtnDeleteIfUsedInTaxonDescription = WidgetProperties.selection().observe(btnDeleteIfUsedInTaxonDescription);
- IObservableValue deleteIfUsedInTaxonDescriptionConfiguratorObserveValue = PojoProperties.value("deleteIfUsedInTaxonDescription").observe(configurator);
- bindingContext.bindValue(observeSelectionBtnDeleteIfUsedInTaxonDescription, deleteIfUsedInTaxonDescriptionConfiguratorObserveValue, null, null);
-
- if(btnRemoveFromImageGallery!=null){
+ if (inBulkEditor){
+ IObservableValue observeSelectionBtnDeleteIfUsedInTaxonDescription = WidgetProperties.selection().observe(btnDeleteIfUsedInTaxonDescription);
+ IObservableValue deleteIfUsedInTaxonDescriptionConfiguratorObserveValue = PojoProperties.value("deleteIfUsedInTaxonDescription").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDeleteIfUsedInTaxonDescription, deleteIfUsedInTaxonDescriptionConfiguratorObserveValue, null, null);
+
+ IObservableValue observeSelectionBtnDeleteIfUsedInSpecimenDescription = WidgetProperties.selection().observe(btnDeleteIfUsedInSpecimenDescription);
+ IObservableValue deleteIfUsedInSpecimenDescriptionConfiguratorObserveValue = PojoProperties.value("deleteIfUsedInSpecimenDescription").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDeleteIfUsedInSpecimenDescription, deleteIfUsedInSpecimenDescriptionConfiguratorObserveValue, null, null);
+ } else{
+
+ IObservableValue observeSelectionBtnDelete = WidgetProperties.selection().observe(btnDelete);
+ IObservableValue deleteConfiguratorObserveValue = PojoProperties.value("deleteIfUsedInTaxonDescription").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnDelete, deleteConfiguratorObserveValue, null, null);
+
IObservableValue observeSelectionBtnRemoveFromImageGallery = WidgetProperties.selection().observe(btnRemoveFromImageGallery);
IObservableValue removeFromImageGalleryConfiguratorObserveValue = PojoProperties.value("onlyRemoveFromGallery").observe(configurator);
bindingContext.bindValue(observeSelectionBtnRemoveFromImageGallery, removeFromImageGalleryConfiguratorObserveValue, null, null);
}
- IObservableValue observeSelectionBtnDeleteIfUsedInSpecimenDescription = WidgetProperties.selection().observe(btnDeleteIfUsedInSpecimenDescription);
- IObservableValue deleteIfUsedInSpecimenDescriptionConfiguratorObserveValue = PojoProperties.value("deleteIfUsedInSpecimenDescription").observe(configurator);
- bindingContext.bindValue(observeSelectionBtnDeleteIfUsedInSpecimenDescription, deleteIfUsedInSpecimenDescriptionConfiguratorObserveValue, null, null);
+
return bindingContext;
}
}else{
model = CdmStore.getService(IReferenceService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern);
}
- System.out.println("2");
}
/**
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.TypedListener;
import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.forms.events.ExpansionEvent;
import org.eclipse.ui.forms.events.IExpansionListener;
import org.eclipse.ui.forms.widgets.Section;
*/
@Override
public ConversationHolder getConversationHolder() {
- if(AbstractUtility.getActivePart() instanceof IConversationEnabled){
- return ((IConversationEnabled) AbstractUtility.getActivePart()).getConversationHolder();
+ if(AbstractUtility.getActiveE4Part() instanceof IConversationEnabled){
+ return ((IConversationEnabled) AbstractUtility.getActiveE4Part()).getConversationHolder();
}
if(getParentElement() instanceof RootElement || getParentElement() == null){
- IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ Object activeEditor = AbstractUtility.getActiveE4Editor();
if(activeEditor instanceof IConversationEnabled){
- ConversationHolder conversation = ((IConversationEnabled) AbstractUtility.getActiveEditor()).getConversationHolder();
+ ConversationHolder conversation = ((IConversationEnabled) AbstractUtility.getActiveE4Editor()).getConversationHolder();
return conversation;
}
}else if(getParentElement() instanceof IConversationEnabled){
public void update(CdmDataChangeMap changeEvents) {
}
-
+
private class ExpandListener implements IExpansionListener{
@Override
public void expansionStateChanging(ExpansionEvent e) {
private void addExpandListener() {
PreferencesUtil.getPreferenceStore().setDefault(getPrefKey(), isExpanded());
setExpanded(PreferencesUtil.getPreferenceStore().getBoolean(getPrefKey()));
- addExpansionListener(new ExpandListener());
+ addExpansionListener(new ExpandListener());
}
private String getPrefKey() {
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.LoginManager;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
* A Button which executes a <code>IHandler</code> managed through a
* <code>org.eclipse.ui.handlers</code> extension point
- *
+ *
* see http://wiki.eclipse.org/Platform_Command_Framework#Commands
- *
+ *
* @author a.kohlbecker
- *
+ *
*/
public class CommandHandlerButton extends Composite implements Observer {
-
+
String commandId;
Button button;
public CommandHandlerButton(Composite parent, int style, String commandId) {
super(parent, SWT.NONE);
this.commandId = commandId;
-
+
setLayout(new GridLayout());
setLayoutData(new GridData());
-
+
button = new Button(this, style);
button.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent se) {
// you can execute a command directly ... but to get the proper environment it's better to execute it through the IHandlerService:
- IHandlerService handlerService = (IHandlerService) StoreUtil.getActivePart().getSite().getService(IHandlerService.class);
+ IHandlerService handlerService = TaxeditorStorePlugin.getDefault().getWorkbench().getService(IHandlerService.class);
try {
handlerService.executeCommand(CommandHandlerButton.this.commandId, null);
} catch (ExecutionException e) {
e.printStackTrace();
}
}
-
+
});
updateButtonEnabledState();
-
+
CdmStore.getLoginManager().addObserver(this);
addDisposeListener(new DisposeListener() {
@Override
if(o instanceof LoginManager){
updateButtonEnabledState();
}
-
+
}
private void updateButtonEnabledState() {
- ICommandService commandService = (ICommandService) StoreUtil.getActivePart().getSite().getService(ICommandService.class);
+ ICommandService commandService = TaxeditorStorePlugin.getDefault().getWorkbench().getService(ICommandService.class);
Command command = commandService.getCommand(commandId);
if(!button.isDisposed()){
- button.setEnabled(command != null && command.isEnabled());
+ button.setEnabled(command != null && command.isEnabled());
}
}
(getEntity().getRepresentations().size() == 1
&& getEntity().getRepresentations().iterator().next().getParts().size() > 1))) {
MessagingUtils.informationDialog("Toggling not possible",
- "Media has consists of multiple representations or representatio parts");
+ "Media consists of multiple representations or representatio parts");
// toggling is only possible if there are no more than one
// MediaRepresentation resp. MediaRepresentationParts
return;
package eu.etaxonomy.taxeditor.ui.section.occurrence.association;
-import java.util.List;
import java.util.Set;
import org.eclipse.swt.events.SelectionListener;
/**
* @author n.hoffmann
* @created May 17, 2010
- * @version 1.0
*/
public class DerivedUnitTypeDesignationElement extends AbstractTypeDesignationElement<SpecimenTypeDesignation> {
private TermComboElement<SpecimenTypeDesignationStatus> combo_typeStatus;
- private List<EntitySelectionElement<TaxonNameBase>> selectionTaxonNames;
+// private List<EntitySelectionElement<TaxonNameBase>> selectionTaxonNames;
private ICdmFormElement parentFormElement;
private int style;
formFactory.createLabel(getLayoutComposite(), "!!!!!!!!");
}
- SpecimenTypeDesignationStatus typeStatus = (SpecimenTypeDesignationStatus) HibernateProxyHelper
- .deproxy(entity.getTypeStatus());
+ SpecimenTypeDesignationStatus typeStatus = HibernateProxyHelper
+ .deproxy(entity.getTypeStatus());
combo_typeStatus.setSelection(typeStatus);
checkbox_notDesignated.setSelection(entity.isNotDesignated());
IService<CdmBase> service = CdmStore.getService(rootElement);
if(rootElement.getId()!=0){
service.merge(rootElement, true);
+
+ }else{
+ rootElement = service.save(rootElement);
}
if(previousCdmEntitySession!=null){
- selectionElement.setEntity(previousCdmEntitySession.load(rootElement, true));
- }
+ selectionElement.setEntity(previousCdmEntitySession.load(rootElement, true));
+ }
+
return true;
}
Display.getCurrent().asyncExec(delaySelection);
}
}
-
-
+
+
/** {@inheritDoc} */
@Override
/** {@inheritDoc} */
@Override
public void changed(Object object) {
- if (part instanceof AbstractCdmViewPart) {
- ((AbstractCdmViewPart) part).changed(object);
- } else {
+ if(part instanceof IDirtyMarkable){
+ ((IDirtyMarkable) part).changed(object);
+ }
+ else {
IEditorPart editor = getEditor();
if (editor != null && editor instanceof IDirtyMarkable) {
((IDirtyMarkable) editor).changed(object);
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.part.PageBook;
import org.eclipse.ui.part.ViewPart;
public static IStructuredSelection EMPTY_SELECTION = new StructuredSelection();
- protected IWorkbenchPart part;
+ protected Object part;
private PageBook pageBook;
setInitialSelection();
}
- /**
- *
- */
private void setInitialSelection() {
- selectionChanged(AbstractUtility.getActivePart(), getInitialSelection());
+ selectionChanged(AbstractUtility.getActiveWorkbenchPart(), getInitialSelection());
}
/**
* @param part a {@link org.eclipse.ui.IWorkbenchPart} object.
* @param selection a {@link org.eclipse.jface.viewers.ISelection} object.
*/
- public void showViewer(IWorkbenchPart part, IStructuredSelection selection){
+ public void showViewer(Object part, IStructuredSelection selection){
this.part = part;
Object element = selection.getFirstElement();
// TODO Auto-generated method stub
return null;
}
-
+
protected String createPartTitle(Object selectedObject){
if(selectedObject!=null){
return getViewName()+": "+selectedObject; //$NON-NLS-1$
}
return getViewName();
}
-
+
protected abstract String getViewName();
}
--- /dev/null
+package eu.etaxonomy.taxeditor.view;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.UUID;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.e4.core.commands.ECommandService;
+import org.eclipse.e4.core.commands.EHandlerService;
+import org.eclipse.e4.ui.di.AboutToShow;
+import org.eclipse.e4.ui.model.application.commands.MCommand;
+import org.eclipse.e4.ui.model.application.commands.MCommandsFactory;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.model.application.ui.menu.MMenu;
+import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
+import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeNode;
+
+import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+
+/**
+ * Generic context menu for opening elements in the taxeditor.
+ *
+ */
+public class CdmViewerContextMenuE4 {
+
+ @Inject
+ private EHandlerService handlerService;
+
+ @Inject
+ private ECommandService commandService;
+
+ @AboutToShow
+ public void aboutToShow(List<MMenuElement> items, @Named(IServiceConstants.ACTIVE_SELECTION) Object selectedObject) {
+ if(selectedObject instanceof IStructuredSelection){
+ selectedObject = ((IStructuredSelection) selectedObject).getFirstElement();
+ }
+ if(selectedObject instanceof TreeNode){
+ selectedObject = ((TreeNode) selectedObject).getValue();
+ }
+ Map<Command, String> enabledCommands = CdmViewerUtilE4.getAvailableViewers(selectedObject, commandService, handlerService);
+
+ //get UUID
+ UUID uuid = null;
+ //for generic UuidAndTitleCache objects try to load the object
+ if (selectedObject instanceof UuidAndTitleCache){
+ uuid = ((UuidAndTitleCache)selectedObject).getUuid();
+ }
+ if(selectedObject instanceof ICdmBase){
+ uuid = ((ICdmBase) selectedObject).getUuid();
+ }
+
+ //check if only one or multiple viewers/commands are available
+ if(enabledCommands.size()==1){
+ Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
+ final Command command = entry.getKey();
+ String viewerName = entry.getValue();
+ addCommand(uuid, command, String.format(Messages.CdmViewerContextMenu_OPEN, viewerName), items);
+ }
+ else if(enabledCommands.size()>1){
+ MMenu menu = MMenuFactory.INSTANCE.createMenu();
+ menu.setLabel(Messages.CdmViewerContextMenu_OPEN_IN);
+ items.add(menu);
+ for(Entry<Command, String> entry:enabledCommands.entrySet()){
+ String viewerName = entry.getValue();
+ Command command = entry.getKey();
+ menu.getChildren().add(addCommand(uuid, command, viewerName, items));
+ }
+ }
+ }
+
+ public MHandledMenuItem addCommand(UUID uuid, Command command, String commandLabel, List<MMenuElement> items) {
+ MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
+ menuItem.setLabel(commandLabel);
+ MCommand mCommand = MCommandsFactory.INSTANCE.createCommand();
+ mCommand.setElementId(command.getId());
+ mCommand.setCommandName(commandLabel);
+ try {
+ mCommand.setCommandName(command.getName());
+ } catch (NotDefinedException e) {
+ e.printStackTrace();
+ }
+ //set params
+ menuItem.getTransientData().put(command.getId()+".uuid", uuid);
+// MParameter parameter = MCommandsFactory.INSTANCE.createParameter();
+// parameter.setElementId(command.getId()+".uuid");
+// parameter.setValue(uuid.toString());
+// menuItem.getParameters().add(parameter);
+
+ menuItem.setCommand(mCommand);
+ return menuItem;
+ }
+
+}
String viewerName = configElement.getAttribute("viewerName"); //$NON-NLS-1$
Class<?> selectionClass = Class.forName(configElement.getAttribute("selection")); //$NON-NLS-1$
if(selectionClass.isAssignableFrom(input.getClass())){
- ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
+ ICommandService commandService = PlatformUI.getWorkbench().getService(ICommandService.class);
Command command = commandService.getCommand(commandId);
if(command.isEnabled()){
commandViewerNameMap.put(command, viewerName);
--- /dev/null
+/**
+* Copyright (C) 2015 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.view;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.e4.core.commands.ECommandService;
+import org.eclipse.e4.core.commands.EHandlerService;
+import org.eclipse.jface.viewers.TreeNode;
+
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * Scans eu.etaxonomy.taxeditor.store.cdmViewer extension point.
+ * @author pplitzner
+ * @date Jul 7, 2015
+ *
+ */
+public class CdmViewerUtilE4 {
+
+ /**
+ * Returns a map of available commands to open the given input. Keys are the
+ * command IDs and values are their string representations.
+ *
+ * @param input
+ * the object which should be handled by the available commands
+ * @return a key-value map of available commands and their string
+ * representation
+ */
+ public static Map<Command, String> getAvailableViewers(Object input, ECommandService commandService,
+ EHandlerService handlerService){
+ Map<Command, String> commandViewerNameMap = new HashMap<>();
+
+ if(input!=null){
+ //for generic UuidAndTitleCache objects try to load the object
+ if (input instanceof UuidAndTitleCache){
+ UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache)input;
+ input = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
+ }
+ //for tree nodes get the value resp. the object of the node
+ else if (input instanceof TreeNode){
+ TreeNode treeNode = (TreeNode)input;
+ input = treeNode.getValue();
+ }
+
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] extensions = reg
+ .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.cdmViewer"); //$NON-NLS-1$
+ for (IConfigurationElement configElement : extensions) {
+ try {
+ if(configElement.getName().equals("viewCommandMapping")){ //$NON-NLS-1$
+ String commandId = configElement.getAttribute("commandId"); //$NON-NLS-1$
+ String viewerName = configElement.getAttribute("viewerName"); //$NON-NLS-1$
+ Class<?> selectionClass = Class.forName(configElement.getAttribute("selection")); //$NON-NLS-1$
+ if(selectionClass.isAssignableFrom(input.getClass())){
+ Command command = commandService.getCommand(commandId);
+ commandViewerNameMap.put(command, viewerName);
+ }
+ }
+ } catch (ClassNotFoundException e) {
+ MessagingUtils.error(CdmViewerChooser.class, "Could not initalize selection class element of cdmViewer extension", e); //$NON-NLS-1$
+ }
+ }
+ }
+ return commandViewerNameMap;
+ }
+
+}
import org.apache.http.client.ClientProtocolException;
import org.apache.log4j.Logger;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.action.ContributionItem;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.CompoundContributionItem;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
import eu.etaxonomy.cdm.ext.occurrence.gbif.DataSetResponse;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifDataSetProtocol;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper;
@Override
public void fill(Menu menu, int index) {
final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- final IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ final Object activeEditor = AbstractUtility.getActiveE4Editor();
final ISelection selection = window.getActivePage().getSelection();
if(selection instanceof StructuredSelection){
final StructuredSelection structuredSelection = (StructuredSelection)selection;
package eu.etaxonomy.taxeditor.view.detail;
+import java.util.Collection;
+
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.internal.e4.compatibility.CompatibilityPart;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.taxeditor.model.IContextListener;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
/**
private DetailsViewer viewer;
+ //FIXME E4: this can be removed when working with E4 event system
+ private Object selectionProvidingPart;
+
/** {@inheritDoc} */
@Override
public void createViewer(Composite parent) {
}
@Override
- protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection){
- if(AbstractUtility.getActiveEditor() == null && !(AbstractUtility.getActivePart() instanceof IConversationEnabled)){
+ protected void selectionChanged_internal(IWorkbenchPart workbenchPart, ISelection selection){
+ Object part = workbenchPart;
+ Object wrappedPart = AbstractUtility.getE4WrappedPart(part);
+ if(wrappedPart!=null){
+ part = wrappedPart;
+ }
+ if(AbstractUtility.getActiveE4Editor() == null && !(AbstractUtility.getActiveE4Part() instanceof IConversationEnabled)){
showEmptyPage();
return;
}
- if(AbstractUtility.getActiveEditor() == null &&
- selection instanceof IStructuredSelection && ((IStructuredSelection) selection).getFirstElement() !=null){
- //special case where the details view still open with details about the closed object #5495
- showEmptyPage();
+ //special case where the details view still open with details about the closed object #5495
+ try{
+ boolean isSelectionProvidingPartStillActive = false;
+ if(selectionProvidingPart!=null){
+ EPartService partService = TaxeditorStorePlugin.getDefault().getWorkbench().getService(EPartService.class);
+ Collection<MPart> parts = partService.getParts();
+ for (MPart mPart : parts) {
+ Object object = mPart.getObject();
+ if(object instanceof CompatibilityPart){
+ object = ((CompatibilityPart) object).getPart();
+ }
+ if(selectionProvidingPart.equals(object)){
+ isSelectionProvidingPartStillActive = true;
+ break;
+ }
+ }
+ if(!isSelectionProvidingPartStillActive &&
+ selection instanceof IStructuredSelection && ((IStructuredSelection) selection).getFirstElement() !=null){
+ showEmptyPage();
+ return;
+ }
+ }
+ }catch(IllegalStateException e){
+ //nothing
+ }
+
+ if(part == this){
return;
}
- if(part == this){
- return;
- }
if(!(selection instanceof IStructuredSelection)){
return;
return;
}
}
+ selectionProvidingPart = part;
showViewer(part, structuredSelection);
}else{
showEmptyPage();
@Override
public void showEmptyPage() {
+ selectionProvidingPart = null;
viewer.setSelection(null);
super.showEmptyPage();
}
DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
//TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
- if(!(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart)){
+ if(!(AbstractUtility.getActiveE4Part() instanceof IDerivedUnitFacadePart)){
derivedUnitGeneralDetailSection.setShowOnlyDerivedUnitData(true);
}
addPart(derivedUnitGeneralDetailSection);
addPart(derivedUnitBaseDetailSection);
//for editors working with facades
- if(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart){
+ if(AbstractUtility.getActiveE4Part() instanceof IDerivedUnitFacadePart){
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE);
addPart(gatheringEventDetailSection);
/** {@inheritDoc} */
@Override
protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
- if(AbstractUtility.getActiveEditor() == null){
+ if(AbstractUtility.getActiveE4Editor() == null){
showEmptyPage();
return;
}
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.test
Bundle-SymbolicName: eu.etaxonomy.taxeditor.test;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-ActivationPolicy: lazy
Bundle-Vendor: EDIT
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<artifactId>eu.etaxonomy.taxeditor.test</artifactId>
<packaging>eclipse-test-plugin</packaging>
import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.common.Annotation;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
operation.execute(monitor, info);
taxonNodeService.merge(taxonNode);
+
+
+ Assert.assertEquals(taxon.getHomotypicGroup().getTypifiedNames().size(), 2);
+
+ Set<Synonym> synonyms = taxon.getSynonyms();
+
+ for(Synonym synonym : synonyms) {
+ taxonService.deleteSynonym(synonym.getUuid(), null);
+ }
+
+ taxonNodeService.merge(taxonNode);
+
+ newSynonymName = TaxonNameFactory.NewBotanicalInstance(null);
+ newSynonymName.setTitleCache("Another New Synonym", true);
+ operation = new CreateSynonymInExistingHomotypicalGroupOperation("Create Synonym In Existing Homotypical Group",
+ undoContext, taxon, group, newSynonymName, postOperation);
+
+ operation.execute(monitor, info);
+ taxonNodeService.merge(taxonNode);
+ }
+
+ @Test
+ public void addDeleteAddHomotypicSynonymWithAnnotations() throws ExecutionException {
+ UUID taxonNodeUuid = UUID.fromString("ce54c396-3694-47f2-abb0-1d7b7e057985");
+
+ TaxonNode taxonNode = taxonNodeService.load(taxonNodeUuid);
+ Taxon taxon = taxonNode.getTaxon();
+ HomotypicalGroup group = taxon.getHomotypicGroup();
+ BotanicalName newSynonymName = TaxonNameFactory.NewBotanicalInstance(null);
+ newSynonymName.setTitleCache("New Synonym", true);
+ operation = new CreateSynonymInExistingHomotypicalGroupOperation("Create Synonym In Existing Homotypical Group",
+ undoContext, taxon, group, newSynonymName, postOperation);
+
+ operation.execute(monitor, info);
+ taxonNodeService.merge(taxonNode);
+
+
+ Synonym syn = taxonService.findBestMatchingSynonym("New Synonym");
+
+ if (syn != null){
+ syn.addAnnotation(Annotation.NewDefaultLanguageInstance("TEst"));
+ taxonService.merge(syn);
+ }
+
+
Assert.assertEquals(taxon.getHomotypicGroup().getTypifiedNames().size(), 2);
Set<Synonym> synonyms = taxon.getSynonyms();
+
for(Synonym synonym : synonyms) {
+ Assert.assertEquals(syn.getUuid(), synonym.getUuid());
taxonService.deleteSynonym(synonym.getUuid(), null);
}
taxonNodeService.merge(taxonNode);
}
+
@Test
public void swapSynonymWithAcceptedTaxon() throws ExecutionException {
List<TaxonNode> rootEntities = new ArrayList<TaxonNode>();
null,
null);
try {
- List<TermVocabulary<DefinedTermBase>> vocabularies = vocabularyService.findByTermType(TermType.Feature);
+ List<TermVocabulary<DefinedTermBase>> vocabularies = vocabularyService.findByTermType(TermType.Feature, null);
for(TermVocabulary vocab : vocabularies) {
vocab.getTermsOrderedByLabels(Language.ENGLISH());
Bundle-ManifestVersion: 2
Bundle-Name: Webapp
Bundle-SymbolicName: eu.etaxonomy.taxeditor.webapp;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Require-Bundle: org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.webapp</artifactId>
Bundle-ManifestVersion: 2
Bundle-Name: Workbench Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.workbench;singleton:=true
-Bundle-Version: 4.7.0.qualifier
+Bundle-Version: 4.8.0.qualifier
Bundle-Activator: eu.etaxonomy.taxeditor.workbench.Activator
+Bundle-Vendor: EDIT
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.e4.ui.workbench,
org.apache.log4j;bundle-version="1.2.15",
org.eclipse.equinox.p2.ui,
org.eclipse.equinox.p2.metadata;bundle-version="2.3.100",
- org.eclipse.equinox.p2.operations;bundle-version="2.4.200"
+ org.eclipse.equinox.p2.operations;bundle-version="2.4.200",
+ org.eclipse.e4.core.di,
+ org.eclipse.e4.ui.services
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: javax.inject;version="1.0.0"
Bundle-ActivationPolicy: lazy
-Bundle-Vendor: EDIT
command.label.20 = About the EDIT Platform
command.label.21 = New
command.label.22 = Save
-command.label.23 = Database Preferences
+command.label.23 = Server-sided Preferences
command.label.24 = Database Repair Functionality
command.label.25 = Import Preferences
command.name = Parser Help
command.label.20 = \u00dcber die EDIT Platform
command.label.21 = Neu
command.label.22 = Speichern
-command.label.23 = Datenbank Präferenzen
+command.label.23 = Serverseitige Präferenzen
command.label.24 = Datenbank Reparatur Funktionalität
command.label.25 = Import Präferenzen
command.name = Parser Hilfe
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
--- /dev/null
+
+package eu.etaxonomy.taxeditor.workbench;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+
+public class SaveHandler {
+
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart, EPartService partService) {
+ partService.savePart(activePart, false);
+ }
+
+
+ @CanExecute
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
+ return activePart.isDirty();
+ }
+
+}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="4.7.0.qualifier" useFeatures="true" includeLaunchers="true">
-
- <aboutInfo>
- <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
- <text>
+<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="4.8.0.qualifier">
+ <aboutInfo>
+ <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
+ <text>
%productBlurb
</text>
- </aboutInfo>
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>-data @user.home/.cdmLibrary -Dserver_port=58080
+ </aboutInfo>
+ <configIni use="default"></configIni>
+ <launcherArgs>
+ <programArgs>-data @user.home/.cdmLibrary -Dserver_port=58080
</programArgs>
- <vmArgs>-Xmx512M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow
+ <vmArgs>-Xmx512M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow
</vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
</vmArgsMac>
- </launcherArgs>
-
- <windowImages i16="/eu.etaxonomy.taxeditor.application/icons/256color_16x16.gif" i32="/eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif" i48="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
-
- <splash
- location="eu.etaxonomy.taxeditor.application"
- startupProgressRect="5,447,366,15"
- startupMessageRect="7,432,360,20"
- startupForegroundColor="000000" />
- <launcher name="TaxonomicEditor">
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- </plugins>
-
- <features>
- <feature id="eu.etaxonomy.taxeditor.feature"/>
- </features>
-
- <configurations>
- <plugin id="eu.etaxonomy.taxeditor.application" autoStart="true" startLevel="5" />
- <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.equinox.p2.transport.ecf" autoStart="true" startLevel="4" />
- <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
- </configurations>
-
+ </launcherArgs>
+ <windowImages i16="/eu.etaxonomy.taxeditor.application/icons/256color_16x16.gif" i32="/eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif" i48="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
+ <splash location="eu.etaxonomy.taxeditor.application" startupForegroundColor="000000" startupMessageRect="7,432,360,20" startupProgressRect="5,447,366,15"/>
+ <launcher name="TaxonomicEditor">
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+ <vm></vm>
+ <plugins></plugins>
+ <features>
+ <feature id="eu.etaxonomy.taxeditor.feature"/>
+ </features>
+ <configurations>
+ <plugin autoStart="true" id="eu.etaxonomy.taxeditor.application" startLevel="5"/>
+ <plugin autoStart="true" id="org.eclipse.core.runtime" startLevel="4"/>
+ <plugin autoStart="true" id="org.eclipse.equinox.common" startLevel="2"/>
+ <plugin autoStart="true" id="org.eclipse.equinox.ds" startLevel="2"/>
+ <plugin autoStart="true" id="org.eclipse.equinox.p2.transport.ecf" startLevel="4"/>
+ <plugin autoStart="true" id="org.eclipse.equinox.simpleconfigurator" startLevel="1"/>
+ </configurations>
</product>
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
-<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="4.7.0.qualifier" useFeatures="true" includeLaunchers="true">
+<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="4.8.0.qualifier" useFeatures="true" includeLaunchers="true">
<aboutInfo>
<image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target includeMode="feature" name="Eclipse Indigo Target" sequenceNumber="36">
+<?pde version="3.8"?><target includeMode="feature" name="Eclipse Indigo Target" sequenceNumber="37">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.201703081533"/>
<unit id="org.eclipse.emf.feature.group" version="2.12.0.v20160526-0356"/>
<repository location="http://download.eclipse.org/releases/neon"/>
</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.e4.tools.event.spy.feature.source.feature.group" version="0.15.0.v20170110-2157"/>
+<unit id="org.eclipse.e4.tools.preference.spy.feature.feature.group" version="0.1.0.v20170110-2157"/>
+<unit id="org.eclipse.e4.tools.spies.feature.feature.group" version="0.17.0.v20170110-2157"/>
+<unit id="org.eclipse.e4.tools.css.spy.feature.feature.group" version="0.14.0.v20170110-2157"/>
+<unit id="org.eclipse.e4.tools.model.spy.feature.feature.group" version="0.1.0.v20170110-2157"/>
+<unit id="org.eclipse.e4.tools.event.spy.feature.feature.group" version="0.15.0.v20170110-2157"/>
+<unit id="org.eclipse.e4.tools.bundle.spy.feature.feature.group" version="0.1.0.v20170110-2157"/>
+<unit id="org.eclipse.e4.tools.context.spy.feature.feature.group" version="0.17.0.v20170110-2157"/>
+<unit id="org.eclipse.e4.tools.css.spy.feature.source.feature.group" version="0.14.0.v20170110-2157"/>
+<repository location="http://download.eclipse.org/e4/snapshots/org.eclipse.e4.tools/latest"/>
+</location>
</locations>
</target>
</prerequisites>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.7.0-SNAPSHOT</version>
+ <version>4.8.0-SNAPSHOT</version>
<name>EDIT Taxonomic Editor</name>
<description>The Taxonomic Editor for EDIT's platform for
cybertaxonomy
<properties>
<java.codelevel>1.8</java.codelevel>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cdmlib.version>4.7.0-SNAPSHOT</cdmlib.version>
+ <cdmlib.version>4.8.0-SNAPSHOT</cdmlib.version>
<!-- TODO can we use project.version ????? -->
<!-- Increasing tycho above 0.22.0 will fail for the macosx build because
for higher version numbers tycho needs to be build against Eclipse Mars or
higher -->
<tycho.version>1.0.0</tycho.version>
- <taxeditor.version>4.7.0-SNAPSHOT</taxeditor.version>
+ <taxeditor.version>4.8.0-SNAPSHOT</taxeditor.version>
<update.dir>snapshot</update.dir>
<unitils.version>3.4.2</unitils.version>
<log4j.version>1.2.17</log4j.version>
</repositories>
<pluginRepositories>
<pluginRepository>
- <!-- required for the plugin dependency cdmlib-db of the jetty-maven-plugin -->
+ <!-- required for the plugin dependency cdmlib-db of the jetty-maven-plugin -->
<id>EditRepository</id>
<url>http://cybertaxonomy.eu/mavenrepo/</url>
</pluginRepository>
<target>${java.codelevel}</target>
</configuration>
</plugin>
- <plugin>
+ <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
- <configuration>
+ <configuration>
<url>scpexe://cybertaxonomy.eu</url>
<serverId>cybertaxonomy.eu</serverId>
</configuration>
</distributionManagement>
<dependencyManagement>
<dependencies>
- <dependency>
- <groupId>com.itextpdf</groupId>
- <artifactId>itextpdf</artifactId>
- <version>5.5.8</version>
- </dependency>
+ <dependency>
+ <groupId>com.itextpdf</groupId>
+ <artifactId>itextpdf</artifactId>
+ <version>5.5.8</version>
+ </dependency>
</dependencies>
- </dependencyManagement>
+ </dependencyManagement>
</project>