/* * This is part of Geomajas, a GIS framework, http://www.geomajas.org/. * * Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium. * * The program is available in open source according to the GNU Affero * General Public License. All contributions in this program are covered * by the Geomajas Contributors License Agreement. For full licensing * details, see LICENSE.txt in the project root. */ package org.geomajas.widget.searchandfilter.client.action; import com.google.gwt.core.client.GWT; import com.smartgwt.client.widgets.events.ClickEvent; import org.geomajas.gwt.client.action.ConfigurableAction; import org.geomajas.gwt.client.action.ToolbarAction; import org.geomajas.widget.searchandfilter.client.SearchAndFilterMessages; import org.geomajas.widget.searchandfilter.client.util.GsfLayout; import org.geomajas.widget.searchandfilter.client.widget.configuredsearch.ConfiguredSearchCreator; import org.geomajas.widget.searchandfilter.client.widget.search.SearchWidget; import org.geomajas.widget.searchandfilter.client.widget.search.SearchWidgetRegistry; import org.geomajas.widget.searchandfilter.search.dto.ConfiguredSearch; /** * Toolbar action for {@link ConfiguredSearch}. * * @author Jan Venstermans * */ public class ConfiguredSearchAction extends ToolbarAction implements ConfigurableAction { private static final SearchAndFilterMessages MESSAGES = GWT.create(SearchAndFilterMessages.class); public static final String IDENTIFIER = ConfiguredSearchCreator.IDENTIFIER; private ConfiguredSearch searchConfig; private String layerId; /** * Default constructor. This will create an action with some default values of icon, title and tooltip. * These values should be substituted by setting the * {@link org.geomajas.widget.searchandfilter.search.dto.ConfiguredSearch} object for this action, using * {@link ConfiguredSearchAction#setSearchConfig( *org.geomajas.widget.searchandfilter.search.dto.ConfiguredSearch, String)} method. */ public ConfiguredSearchAction() { super(GsfLayout.iconSearchFree, MESSAGES.configuredSearchTitleDefault(), MESSAGES.configuredSearchTooltipDefault()); } public void setSearchConfig(ConfiguredSearch searchConfig, String layerId) { this.searchConfig = searchConfig; this.layerId = layerId; if (searchConfig.getIconUrl() != null) { super.setIcon(searchConfig.getIconUrl()); } super.setTitle(searchConfig.getTitle()); super.setTooltip(searchConfig.getDescription()); } public void configure(String key, String value) { } public void onClick(ClickEvent event) { SearchWidget searchWidget = SearchWidgetRegistry.getSearchWidgetInstance(ConfiguredSearchCreator.IDENTIFIER); if (searchWidget instanceof ConfiguredSearchCreator.DockableWindowConfiguredSearchWidget) { ConfiguredSearchCreator.DockableWindowConfiguredSearchWidget window = (ConfiguredSearchCreator.DockableWindowConfiguredSearchWidget) searchWidget; window.setSearchConfig(searchConfig, layerId); window.showForSearch(); } else { // show nothing; or show exception? } } }