From 71c40e2aac33e91dd0c69aab0a9b4264479b5db3 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Tue, 27 Sep 2016 07:18:11 +0000 Subject: [PATCH] SSDM-3897: Improve BLAST error message. Enable search button again if BLAST searching is failing. Change the order of execution of on-failure actions and finishOnFailure hook in AbstractAsyncCallback.onFailure(). SVN: 37119 --- .../openbis/dss/generic/shared/utils/BlastUtils.java | 2 +- .../web/client/application/AbstractAsyncCallback.java | 3 +-- .../web/client/application/MatchingEntitiesPanel.java | 11 +++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/BlastUtils.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/BlastUtils.java index b7e037a95ce..346f10e5807 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/BlastUtils.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/BlastUtils.java @@ -187,7 +187,7 @@ public class BlastUtils return output; } processResult.log(); - String message = "Couldn't find any results. The reason is most likely that the BLAST database has been populated"; + String message = "Couldn't find any results. The reason is most likely that the BLAST database hasn't been populated"; throw new UserFailureException(message); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java index 02f9ad7a257..5fda8cbbfce 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java @@ -22,7 +22,6 @@ import java.util.List; import com.extjs.gxt.ui.client.event.WindowEvent; import com.extjs.gxt.ui.client.event.WindowListener; import com.extjs.gxt.ui.client.widget.Dialog; -import com.extjs.gxt.ui.client.widget.MessageBox; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException; import com.google.gwt.user.client.rpc.InvocationException; @@ -244,11 +243,11 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T> { callbackListener.onFailureOf(viewContext, this, msg, caught); } - finishOnFailure(caught); for (IDelegatedAction a : failureActions) { a.execute(); } + finishOnFailure(caught); } private boolean isIncompatibleServerException(final Throwable caught) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/MatchingEntitiesPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/MatchingEntitiesPanel.java index d6b9801638b..ccada291686 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/MatchingEntitiesPanel.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/MatchingEntitiesPanel.java @@ -29,6 +29,7 @@ import java.util.List; import com.extjs.gxt.ui.client.core.XDOM; import com.extjs.gxt.ui.client.event.ButtonEvent; import com.extjs.gxt.ui.client.event.SelectionListener; +import com.extjs.gxt.ui.client.mvc.Dispatcher; import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.button.Button; @@ -38,6 +39,7 @@ import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AppEvents; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; @@ -51,6 +53,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IC import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.MultilineHTML; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.MatchingEntitiesPanelColumnIDs; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SearchableEntity; @@ -238,6 +241,14 @@ public final class MatchingEntitiesPanel extends TypedTableGrid<MatchingEntity> ShowResultSetCutInfo<TypedTableResultSet<MatchingEntity>> info = new ShowResultSetCutInfo<TypedTableResultSet<MatchingEntity>>(viewContext); callback.addOnSuccessAction(info); + callback.addOnFailureAction(new IDelegatedAction() + { + @Override + public void execute() + { + Dispatcher.get().fireEvent(AppEvents.GLOBAL_SEARCH_FINISHED_EVENT); + } + }); viewContext.getService().listMatchingEntities(searchableEntity, queryText, useWildcardSearchMode, resultSetConfig, callback); } -- GitLab