import fr.gouv.finances.dgfip.xemelios.web2.gwt.client.widgets.common.DisableImage;
/**
- * @author CBO
- * Widget contenant les boutons liés à la fenêtre de recherche (bouton d'ajout d'un critère, bouton de lancement de la recherche, ...)
+ * @author CBO Widget contenant les boutons liés à la fenêtre de recherche (bouton d'ajout d'un critère, bouton de lancement de la recherche, ...)
* @TODO : Corriger bug : quand on clique deux fois rapidement il semble qu'il y a trois evenements déclenchés...
*/
public class ButtonsBarWidget extends Composite {
- private static final transient String SEARCH="Search";
- private static final transient String ADD_CRITERIA="AddSearchCriteria";
- private static final transient String RESET_CRITERIA="ResetSearchCriteria";
- private static final transient String OPEN_SEARCH="OpenSearch";
- private static final transient String SAVE_SEARCH="SaveSearch";
- private static final transient String SORT="Sort";
- private static final transient String REPOSITORY="Preferences";
- private static final transient String REPOSITORY_DEACTIVATED = "Preferences-deactivated";
- private static final transient String EXPORT = "export";
-
- private DisableImage addCritereButton;
- private DisableImage searchButton;
- private DisableImage resetCriteresButton;
- private DisableImage openSearchButton;
- private DisableImage saveRequestButton;
- private DisableImage repositoryButton;
- private DisableImage searchParamsButton;
- private DisableImage exportButton;
-
- private SearchWidget.AddCriteriaClickListener addCriteriaClickListener;
-
- public ButtonsBarWidget() {
-
- searchButton = createAnchor(SearchResources.INSTANCE.getSearchIcon(), SearchResources.INSTANCE.getSearchDisabledIcon(),SEARCH,new HTML("Chercher").getHTML());
- addCritereButton = createAnchor(SearchResources.INSTANCE.getAddCriteriaIcon(), SearchResources.INSTANCE.getAddCriteriaDisabledIcon(), ADD_CRITERIA,new HTML("Ajouter un ctritère").getHTML());
- resetCriteresButton = createAnchor(SearchResources.INSTANCE.getCleanCriteriasIcon(), SearchResources.INSTANCE.getCleanCriteriasDisabledIcon(), RESET_CRITERIA,new HTML("Supprimer tous les critères").getHTML());
- openSearchButton = createAnchor(SearchResources.INSTANCE.getOpenSearchIcon(), SearchResources.INSTANCE.getSaveSearchDisabledIcon(), OPEN_SEARCH,new HTML("Ouvrir une recherche pré-enregistrée").getHTML());
- saveRequestButton = createAnchor(SearchResources.INSTANCE.getSaveSearchIcon(), SearchResources.INSTANCE.getSaveSearchDisabledIcon(), SAVE_SEARCH,new HTML("Enregistrer les critères de recherche").getHTML());
- searchParamsButton = createAnchor(SearchResources.INSTANCE.getParamsIcon(), SearchResources.INSTANCE.getParamsDisabledIcon(), SORT,new HTML("Champs et tris").getHTML());
- repositoryButton = createAnchor(SearchResources.INSTANCE.getRepositoryIcon(), SearchResources.INSTANCE.getRepositoryDisabledIcon(), REPOSITORY, new HTML("Nomenclature").getHTML());
- exportButton = createAnchor(SearchResources.INSTANCE.getExportIcon(), SearchResources.INSTANCE.getExportDisabledIcon(), EXPORT, new HTML("Exporter le résultat de recherche").getHTML());
-
- HorizontalPanel mainPanel = new HorizontalPanel();
- mainPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
- mainPanel.getElement().setId("SearchTools");
- mainPanel.setStyleName("ToolBar");
- mainPanel.addStyleName("Main");
- HorizontalPanel toolGroups = new HorizontalPanel();
- toolGroups.setStyleName("ToolGroups");
- toolGroups.add(new Image(SearchResources.INSTANCE.getToolbarLeftStrong()));
-
- HorizontalPanel hpSearch = new HorizontalPanel();
- hpSearch.setStyleName("ToolGroup Strong");
- hpSearch.add(searchButton);
- toolGroups.add(hpSearch);
-
- HorizontalPanel hpCriterias = new HorizontalPanel();
- hpCriterias.setStyleName("ToolGroup Norm hasBackground");
- hpCriterias.add(addCritereButton);
- hpCriterias.add(resetCriteresButton);
-
- hpCriterias.add(openSearchButton);
- hpCriterias.add(saveRequestButton);
- hpCriterias.add(repositoryButton);
- hpCriterias.add(searchParamsButton);
- hpCriterias.add(exportButton);
- toolGroups.add(hpCriterias);
-
- toolGroups.add(new Image(SearchResources.INSTANCE.getToolbarRight()));
-
- mainPanel.add(toolGroups);
-
- initWidget(mainPanel);
-
-}
- public void disableRepositoryButton() {
- repositoryButton.setEnabled(false);
- repositoryButton.removeStyleName(REPOSITORY);
- repositoryButton.addStyleName(REPOSITORY_DEACTIVATED);
- repositoryButton.setTitle(null);
- }
-
- public void addClickListener(ClickListenerType clickListenerType, ClickHandler ch) {
- if (clickListenerType.equals(ClickListenerType.ADD_CRITERE)) {
- addCriteriaClickListener = (SearchWidget.AddCriteriaClickListener) ch;
- this.addCritereButton.addClickHandler(ch);
- } else if (clickListenerType.equals(ClickListenerType.SEARCH)) {
- this.searchButton.addClickHandler(ch);
- } else if (clickListenerType.equals(ClickListenerType.RESET_CRITERES)) {
- this.resetCriteresButton.addClickHandler(ch);
- } else if (clickListenerType.equals(ClickListenerType.OPEN_SEARCH)) {
- this.openSearchButton.addClickHandler(ch);
- } else if (clickListenerType.equals(ClickListenerType.SAVE_REQUEST)) {
- this.saveRequestButton.addClickHandler(ch);
- } else if (clickListenerType.equals(ClickListenerType.SEARCH_PARAMS)) {
- this.searchParamsButton.addClickHandler(ch);
- } else if (clickListenerType.equals(ClickListenerType.REPOSITORY)) {
- this.repositoryButton.addClickHandler(ch);
- } else if(clickListenerType.equals(ClickListenerType.EXPORT)) {
- this.exportButton.addClickHandler(ch);
- }
- }
-
- public void setAddCritereEnable(boolean enable) {
- addCriteriaClickListener.setEnabled(enable);
- }
-
- public void enableSearchPossibilities(boolean enable) {
- setAddCritereEnable(enable);
- searchButton.setEnabled(enable);
- resetCriteresButton.setEnabled(enable);
- openSearchButton.setEnabled(enable);
- saveRequestButton.setEnabled(enable);
- searchParamsButton.setEnabled(enable);
- }
- public void setEnableExport(boolean enable) {
- exportButton.setEnabled(enable);
- }
-
- static public enum ClickListenerType {
-
- ADD_CRITERE,
- SEARCH,
- RESET_CRITERES,
- OPEN_SEARCH,
- SAVE_REQUEST,
- SEARCH_PARAMS,
- REPOSITORY,
- EXPORT
- }
-
- private static DisableImage createAnchor(ImageResource res, ImageResource dis, String id, String title) {
- DisableImage anch = new DisableImage(res, dis, title);
- Style style = anch.getElement().getStyle();
- style.setMarginTop(8.0, Unit.PX);
- style.setWidth(28.0, Unit.PX);
- style.setMarginLeft(2.0, Unit.PX);
- return anch;
- }
+ private static final transient String SEARCH = "Search";
+ private static final transient String ADD_CRITERIA = "AddSearchCriteria";
+ private static final transient String RESET_CRITERIA = "ResetSearchCriteria";
+ private static final transient String OPEN_SEARCH = "OpenSearch";
+ private static final transient String SAVE_SEARCH = "SaveSearch";
+ private static final transient String SORT = "Sort";
+ private static final transient String REPOSITORY = "Preferences";
+ private static final transient String REPOSITORY_DEACTIVATED = "Preferences-deactivated";
+ private static final transient String EXPORT = "export";
+
+ private DisableImage addCritereButton;
+ private DisableImage searchButton;
+ private DisableImage resetCriteresButton;
+ private DisableImage openSearchButton;
+ private DisableImage saveRequestButton;
+ private DisableImage repositoryButton;
+ private DisableImage searchParamsButton;
+ private DisableImage exportButton;
+
+ public ButtonsBarWidget() {
+
+ searchButton = createAnchor(SearchResources.INSTANCE.getSearchIcon(), SearchResources.INSTANCE.getSearchDisabledIcon(), SEARCH, new HTML("Chercher").getHTML());
+ addCritereButton = createAnchor(SearchResources.INSTANCE.getAddCriteriaIcon(), SearchResources.INSTANCE.getAddCriteriaDisabledIcon(), ADD_CRITERIA, new HTML("Ajouter un ctritère").getHTML());
+ resetCriteresButton = createAnchor(SearchResources.INSTANCE.getCleanCriteriasIcon(), SearchResources.INSTANCE.getCleanCriteriasDisabledIcon(), RESET_CRITERIA, new HTML("Supprimer tous les critères").getHTML());
+ openSearchButton = createAnchor(SearchResources.INSTANCE.getOpenSearchIcon(), SearchResources.INSTANCE.getOpenSearchDisabledIcon(), OPEN_SEARCH, new HTML("Ouvrir une recherche pré-enregistrée").getHTML());
+ saveRequestButton = createAnchor(SearchResources.INSTANCE.getSaveSearchIcon(), SearchResources.INSTANCE.getSaveSearchDisabledIcon(), SAVE_SEARCH, new HTML("Enregistrer les critères de recherche").getHTML());
+ searchParamsButton = createAnchor(SearchResources.INSTANCE.getParamsIcon(), SearchResources.INSTANCE.getParamsDisabledIcon(), SORT, new HTML("Champs et tris").getHTML());
+ repositoryButton = createAnchor(SearchResources.INSTANCE.getRepositoryIcon(), SearchResources.INSTANCE.getRepositoryDisabledIcon(), REPOSITORY, new HTML("Nomenclature").getHTML());
+ exportButton = createAnchor(SearchResources.INSTANCE.getExportIcon(), SearchResources.INSTANCE.getExportDisabledIcon(), EXPORT, new HTML("Exporter le résultat de recherche").getHTML());
+
+ HorizontalPanel mainPanel = new HorizontalPanel();
+ mainPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
+ mainPanel.getElement().setId("SearchTools");
+ mainPanel.setStyleName("ToolBar");
+ mainPanel.addStyleName("Main");
+ HorizontalPanel toolGroups = new HorizontalPanel();
+ toolGroups.setStyleName("ToolGroups");
+ toolGroups.add(new Image(SearchResources.INSTANCE.getToolbarLeftStrong()));
+
+ HorizontalPanel hpSearch = new HorizontalPanel();
+ hpSearch.setStyleName("ToolGroup Strong");
+ hpSearch.add(searchButton);
+ toolGroups.add(hpSearch);
+
+ HorizontalPanel hpCriterias = new HorizontalPanel();
+ hpCriterias.setStyleName("ToolGroup Norm hasBackground");
+ hpCriterias.add(addCritereButton);
+ hpCriterias.add(resetCriteresButton);
+
+ hpCriterias.add(openSearchButton);
+ hpCriterias.add(saveRequestButton);
+ hpCriterias.add(repositoryButton);
+ hpCriterias.add(searchParamsButton);
+ hpCriterias.add(exportButton);
+ toolGroups.add(hpCriterias);
+
+ toolGroups.add(new Image(SearchResources.INSTANCE.getToolbarRight()));
+
+ mainPanel.add(toolGroups);
+
+ initWidget(mainPanel);
+
+ }
+
+ public void disableRepositoryButton() {
+ repositoryButton.setEnabled(false);
+ repositoryButton.removeStyleName(REPOSITORY);
+ repositoryButton.addStyleName(REPOSITORY_DEACTIVATED);
+ repositoryButton.setTitle(null);
+ }
+
+ public void addClickListener(ClickListenerType clickListenerType, ClickHandler ch) {
+ if (clickListenerType.equals(ClickListenerType.ADD_CRITERE)) {
+ this.addCritereButton.addClickHandler(ch);
+ } else if (clickListenerType.equals(ClickListenerType.SEARCH)) {
+ this.searchButton.addClickHandler(ch);
+ } else if (clickListenerType.equals(ClickListenerType.RESET_CRITERES)) {
+ this.resetCriteresButton.addClickHandler(ch);
+ } else if (clickListenerType.equals(ClickListenerType.OPEN_SEARCH)) {
+ this.openSearchButton.addClickHandler(ch);
+ } else if (clickListenerType.equals(ClickListenerType.SAVE_REQUEST)) {
+ this.saveRequestButton.addClickHandler(ch);
+ } else if (clickListenerType.equals(ClickListenerType.SEARCH_PARAMS)) {
+ this.searchParamsButton.addClickHandler(ch);
+ } else if (clickListenerType.equals(ClickListenerType.REPOSITORY)) {
+ this.repositoryButton.addClickHandler(ch);
+ } else if (clickListenerType.equals(ClickListenerType.EXPORT)) {
+ this.exportButton.addClickHandler(ch);
+ }
+ }
+
+ public void disableSearchPossibilities() {
+ addCritereButton.setEnabled(false);
+ searchButton.setEnabled(false);
+ resetCriteresButton.setEnabled(false);
+ openSearchButton.setEnabled(false);
+ saveRequestButton.setEnabled(false);
+ searchParamsButton.setEnabled(false);
+ }
+
+ public void enableSearchPossibilities() {
+ addCritereButton.setEnabled(true);
+ searchButton.setEnabled(true);
+ resetCriteresButton.setEnabled(true);
+ openSearchButton.setEnabled(true);
+ saveRequestButton.setEnabled(true);
+ searchParamsButton.setEnabled(true);
+ }
+
+ public void enableExport() {
+ exportButton.setEnabled(true);
+ }
+
+ public void disableExport() {
+ exportButton.setEnabled(false);
+ }
+
+ static public enum ClickListenerType {
+
+ ADD_CRITERE, SEARCH, RESET_CRITERES, OPEN_SEARCH, SAVE_REQUEST, SEARCH_PARAMS, REPOSITORY, EXPORT
+ }
+
+ private static DisableImage createAnchor(ImageResource res, ImageResource dis, String id, String title) {
+ DisableImage anch = new DisableImage(res, dis, title);
+ Style style = anch.getElement().getStyle();
+ style.setMarginTop(8.0, Unit.PX);
+ style.setWidth(28.0, Unit.PX);
+ style.setMarginLeft(2.0, Unit.PX);
+ return anch;
+ }
}