/** * OpenKM, Open Document Management System (http://www.openkm.com) * Copyright (c) 2006-2011 Paco Avila & Josep Llort * * No bytes were intentionally harmed during the development of this application. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package com.openkm.frontend.client.widget.dashboard; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlexTable; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.VerticalPanel; import com.openkm.frontend.client.Main; /** * ControlSearchIn * * @author jllort * */ public class ControlSearchIn extends Composite { private VerticalPanel controlPanel; private HTML textResults; private Image previous; private Image next; private FlexTable table; private int offset = 0; private int limit = 10; private boolean previousEnabled = false; // Indicates if button is enabled private boolean nextEnabled = false; // Indicates if button is enabled private long total = 0; public ControlSearchIn(){ controlPanel = new VerticalPanel(); table = new FlexTable(); textResults = new HTML(Main.i18n("search.results")); previous = new Image("img/icon/search/resultset_previous.gif"); next = new Image("img/icon/search/resultset_next.gif"); previous.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (previousEnabled) { offset -= limit; Main.get().mainPanel.dashboard.keyMapDashboard.findPaginated(offset, limit); } } }); next.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (nextEnabled) { offset += limit; Main.get().mainPanel.dashboard.keyMapDashboard.findPaginated(offset, limit); } } }); table.setWidget(0,0, textResults); table.setHTML(0,1, "   "); table.setWidget(0,2, previous); table.setHTML(0,3, ""); table.setWidget(0,4, next); controlPanel.add(table); controlPanel.setVisible(false); // Initially not shows only when search has been executed controlPanel.setStyleName("okm-DisableSelect"); next.setStyleName("okm-KeyMap-ImageHover"); previous.setStyleName("okm-KeyMap-ImageHover"); initWidget(controlPanel); } /** * Executes the search */ public void executeSearch(int limit) { this.limit = limit; offset = 0; Main.get().mainPanel.dashboard.keyMapDashboard.findPaginated(offset, limit); } /** * Refresh control values * * @param total */ public void refreshControl(long total){ this.total = total; textResults.setHTML(Main.i18n("search.results") + " : " + total); if (total == 0) { previousEnabled = false; nextEnabled = false; table.setHTML(0,3, ""); setVisible(false); } else { if (offset == 0) { previousEnabled = false; } else { previousEnabled = true; } if ((offset + limit) >= total) { nextEnabled = false; table.setHTML(0,3, (offset+1) + " " + Main.i18n("search.to") + " " + total); } else { nextEnabled = true; table.setHTML(0,3, (offset+1) + " " + Main.i18n("search.to") + " " + (offset+limit)); } setVisible(true); } evaluateIcons(); // Evaluates back / forward icons } /** * Refreshing language */ public void langRefresh() { refreshControl(total); } /** * Evaluate icons image */ public void evaluateIcons(){ if (previousEnabled) { previous.setUrl("img/icon/search/resultset_previous.gif"); } else { previous.setUrl("img/icon/search/resultset_previous_disabled.gif"); } if (nextEnabled) { next.setUrl("img/icon/search/resultset_next.gif"); } else { next.setUrl("img/icon/search/resultset_next_disabled.gif"); } } }