Skip to content
Snippets Groups Projects
Commit 6565bf2f authored by kaloyane's avatar kaloyane
Browse files

bugfix: do not open a global_search tab in normal view mode when the search result is empty

SVN: 19994
parent 824a003c
No related branches found
No related tags found
No related merge requests found
...@@ -21,6 +21,7 @@ import com.extjs.gxt.ui.client.widget.MessageBox; ...@@ -21,6 +21,7 @@ import com.extjs.gxt.ui.client.widget.MessageBox;
import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; 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.AbstractTabItemFactory;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction;
...@@ -34,11 +35,34 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SearchableEntity; ...@@ -34,11 +35,34 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SearchableEntity;
public class GlobalSearchTabItemFactory public class GlobalSearchTabItemFactory
{ {
public static AbstractTabItemFactory create(
/**
* opens a new tab if there are search results.
*/
public static void openTabIfEntitiesFound(
final IViewContext<ICommonClientServiceAsync> viewContext,
final SearchableEntity searchableEntity, final String queryText)
{
openTab(viewContext, searchableEntity, queryText, false);
}
/**
* always opens a new tab, regardless if there were any search entities found.
*/
public static void openTab(
final IViewContext<ICommonClientServiceAsync> viewContext, final IViewContext<ICommonClientServiceAsync> viewContext,
final SearchableEntity searchableEntity, final String queryText) final SearchableEntity searchableEntity, final String queryText)
{ {
openTab(viewContext, searchableEntity, queryText, true);
}
private static void openTab(final IViewContext<ICommonClientServiceAsync> viewContext,
final SearchableEntity searchableEntity, final String queryText,
final boolean openIfNoEntitiesFound)
{
final boolean useWildcardSearchMode = final boolean useWildcardSearchMode =
viewContext.getDisplaySettingsManager().isUseWildcardSearchMode(); viewContext.getDisplaySettingsManager().isUseWildcardSearchMode();
...@@ -56,10 +80,6 @@ public class GlobalSearchTabItemFactory ...@@ -56,10 +80,6 @@ public class GlobalSearchTabItemFactory
{ {
public void postRefresh(boolean wasSuccessful) public void postRefresh(boolean wasSuccessful)
{ {
if (wasSuccessful == false)
{
return;
}
if (matchingEntitiesGrid.getRowNumber() == 0) if (matchingEntitiesGrid.getRowNumber() == 0)
{ {
Object[] msgParameters = (useWildcardSearchMode == true) ? new String[] Object[] msgParameters = (useWildcardSearchMode == true) ? new String[]
...@@ -67,15 +87,20 @@ public class GlobalSearchTabItemFactory ...@@ -67,15 +87,20 @@ public class GlobalSearchTabItemFactory
{ queryText, "not", "on" }; { queryText, "not", "on" };
MessageBox.alert(viewContext.getMessage(Dict.MESSAGEBOX_WARNING), MessageBox.alert(viewContext.getMessage(Dict.MESSAGEBOX_WARNING),
viewContext.getMessage(Dict.NO_MATCH, msgParameters), null); viewContext.getMessage(Dict.NO_MATCH, msgParameters), null);
return;
if (openIfNoEntitiesFound == false)
{
return;
}
} }
}
});
return tabFactory; DispatcherHelper.dispatchNaviEvent(tabFactory);
}
});
} }
private static String createTabTitle(IViewContext<ICommonClientServiceAsync> viewContext, private static String createTabTitle(IViewContext<ICommonClientServiceAsync> viewContext,
String chosenEntity, String queryText) String chosenEntity, String queryText)
{ {
......
...@@ -24,8 +24,6 @@ import com.google.gwt.user.client.History; ...@@ -24,8 +24,6 @@ import com.google.gwt.user.client.History;
import ch.systemsx.cisd.common.shared.basic.utils.StringUtils; import ch.systemsx.cisd.common.shared.basic.utils.StringUtils;
import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; 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.DispatcherHelper;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.GlobalSearchLocatorResolver; import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.GlobalSearchLocatorResolver;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.ViewLocator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.ViewLocator;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.EnterKeyListener; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.EnterKeyListener;
...@@ -143,17 +141,13 @@ public final class SearchWidget extends LayoutContainer ...@@ -143,17 +141,13 @@ public final class SearchWidget extends LayoutContainer
if (viewContext.isSimpleMode()) if (viewContext.isSimpleMode())
{ {
// redirect to another URL // redirect to another URL
String entityDescription = String entityDescription = (selectedEntity != null) ? selectedEntity.getName() : null;
(selectedEntity != null) ? selectedEntity.getName() : null;
String url = createGlobalSearchLink(entityDescription, queryText); String url = createGlobalSearchLink(entityDescription, queryText);
History.newItem(url); History.newItem(url);
} else } else
{ {
GlobalSearchTabItemFactory.openTabIfEntitiesFound(viewContext, selectedEntity,
AbstractTabItemFactory tabItemFactory = queryText);
GlobalSearchTabItemFactory.create(viewContext, selectedEntity, queryText);
DispatcherHelper.dispatchNaviEvent(tabItemFactory);
} }
} }
......
...@@ -3,8 +3,6 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.locator; ...@@ -3,8 +3,6 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.locator;
import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.GlobalSearchTabItemFactory; import ch.systemsx.cisd.openbis.generic.client.web.client.application.GlobalSearchTabItemFactory;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper;
import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SearchableEntity; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SearchableEntity;
import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException; import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException;
...@@ -37,10 +35,7 @@ public class GlobalSearchLocatorResolver extends AbstractViewLocatorResolver ...@@ -37,10 +35,7 @@ public class GlobalSearchLocatorResolver extends AbstractViewLocatorResolver
// TODO KE: 2011-02-16 we should parse queries that can contain spaces // TODO KE: 2011-02-16 we should parse queries that can contain spaces
final String queryText = getMandatoryParameter(locator, QUERY_PARAMETER_KEY); final String queryText = getMandatoryParameter(locator, QUERY_PARAMETER_KEY);
AbstractTabItemFactory tabItemFactory = GlobalSearchTabItemFactory.openTab(viewContext, selectedSearchableEntity, queryText);
GlobalSearchTabItemFactory.create(viewContext, selectedSearchableEntity, queryText);
DispatcherHelper.dispatchNaviEvent(tabItemFactory);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment