import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.name.TaxonName;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
-import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
/**
* <p>TaxonNavigatorDataChangeBehavior class.</p>
public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements
IDataChangeBehavior {
- private final TaxonNavigator source;
+ private static final String UPDATING_TAXON_NAVIGATOR = Messages.TaxonNavigatorDataChangeBehavior_UPDATE_NAVIGATOR;
+
+ private final TaxonNavigator source;
private Set<CdmBase> staleObjects;
Set<CdmBase> affectedObjects = event.getAffectedObjects();
if(affectedObjects != null) {
for(CdmBase cb : affectedObjects) {
- staleObjects.add((CdmBase)HibernateProxyHelper.deproxy(cb));
+ staleObjects.add(HibernateProxyHelper.deproxy(cb));
}
}
return true;
}
- // name updates of the accepted taxon of open editors are relevant
- if(eventType == EventType.UPDATE && event.getEntity() instanceof TaxonNameBase){
- TaxonNameBase name = null;
- if(eventEntity instanceof TaxonNameBase){
- name = (TaxonNameBase) eventEntity;
- }else if(eventEntity instanceof Taxon){
- name = ((Taxon) eventEntity).getName();
- }else{
- continue;
- }
-
- Set<IEditorPart> openEditors = NavigationUtil.getOpenEditors();
- /*for(IEditorPart editor : openEditors){
-
- if(name.equals(((TaxonEditorInput) editor.getEditorInput()).getTaxon().getName())){
- return true;
- }
- }*/
- }
if (eventType == EventType.DELETE){
return true;
}
if(eventType == EventType.UPDATE && event.getEntity() instanceof Taxon){
- TaxonNameBase name = null;
+ TaxonName name = null;
if(eventEntity instanceof Taxon){
name = ((Taxon) eventEntity).getName();
}else{
// }
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
- */
/** {@inheritDoc} */
@Override
public void reactOnDataChange(CdmDataChangeMap events) {
if(isRelevant(events)){
final Display display = Display.getCurrent();
- Job job = new Job("Updating Taxon Navigator") {
+ Job job = new Job(UPDATING_TAXON_NAVIGATOR) {
@Override
protected IStatus run(IProgressMonitor monitor) {
- monitor.beginTask("Updating Taxon Navigator", 3);
+ monitor.beginTask(UPDATING_TAXON_NAVIGATOR, 3);
monitor.worked(1);
// clear the session completely
- monitor.subTask("Clearing Taxon Navigators session");
+ monitor.subTask(Messages.TaxonNavigatorDataChangeBehavior_CLEAR_SESSION);
display.asyncExec(new Runnable() {
@Override
public void run() {
// seems to improve the situation but not sure if final solution
monitor.worked(1);
- monitor.subTask("Refreshing viewer");
+ monitor.subTask(Messages.TaxonNavigatorDataChangeBehavior_REFRESH_VIEWER);
display.asyncExec(new Runnable() {
@Override