/** * 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; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.openkm.frontend.client.Main; import com.openkm.frontend.client.bean.GWTTaskInstance; import com.openkm.frontend.client.bean.form.GWTButton; import com.openkm.frontend.client.contants.ui.UIDesktopConstants; import com.openkm.frontend.client.contants.ui.UIDockPanelConstants; import com.openkm.frontend.client.widget.form.FormManager.ValidationButton; import com.openkm.frontend.client.widget.form.HasWorkflow; import eu.maydu.gwt.validation.client.ValidationProcessor; /** * Confirm panel * * @author jllort * */ public class ConfirmPopup extends DialogBox { public static final int NO_ACTION = 0; public static final int CONFIRM_DELETE_FOLDER = 1; public static final int CONFIRM_DELETE_DOCUMENT = 2; public static final int CONFIRM_EMPTY_TRASH = 3; public static final int CONFIRM_PURGE_FOLDER = 4; public static final int CONFIRM_PURGE_DOCUMENT = 5; public static final int CONFIRM_DELETE_PROPERTY_GROUP = 6; public static final int CONFIRM_PURGE_VERSION_HISTORY_DOCUMENT = 7; public static final int CONFIRM_RESTORE_HISTORY_DOCUMENT = 8; public static final int CONFIRM_SET_DEFAULT_HOME = 9; public static final int CONFIRM_DELETE_SAVED_SEARCH = 10; public static final int CONFIRM_DELETE_USER_NEWS = 11; public static final int CONFIRM_DELETE_MAIL = 12; public static final int CONFIRM_PURGE_MAIL = 13; public static final int CONFIRM_GET_POOLED_WORKFLOW_TASK = 14; public static final int CONFIRM_FORCE_UNLOCK = 15; public static final int CONFIRM_FORCE_CANCEL_CHECKOUT = 16; public static final int CONFIRM_WORKFLOW_ACTION = 17; //added by vissu on feb25 for zohoapi public static final int CONFIRM_CLOSE_ZOHO = 18; private VerticalPanel vPanel; private HorizontalPanel hPanel; private HTML text; private Button cancelButton; private Button acceptButton; private int action = 0; private Object object; /** * Confirm popup */ public ConfirmPopup() { // Establishes auto-close when click outside super(false,true); vPanel = new VerticalPanel(); hPanel = new HorizontalPanel(); text = new HTML(); text.setStyleName("okm-NoWrap"); cancelButton = new Button(Main.i18n("button.cancel"), new ClickHandler() { @Override public void onClick(ClickEvent event) { hide(); } }); acceptButton = new Button(Main.i18n("button.accept"), new ClickHandler() { @Override public void onClick(ClickEvent event) { execute(); hide(); } }); vPanel.setWidth("300px"); vPanel.setHeight("100px"); cancelButton.setStyleName("okm-Button"); acceptButton.setStyleName("okm-Button"); text.setHTML(""); hPanel.add(cancelButton); hPanel.add(new HTML("  ")); hPanel.add(acceptButton); vPanel.add(new HTML("<br>")); vPanel.add(text); vPanel.add(new HTML("<br>")); vPanel.add(hPanel); vPanel.add(new HTML("<br>")); vPanel.setCellHorizontalAlignment(text, VerticalPanel.ALIGN_CENTER); vPanel.setCellHorizontalAlignment(hPanel, VerticalPanel.ALIGN_CENTER); super.hide(); setWidget(vPanel); } /** * Execute the confirmed action */ private void execute() { switch (action) { case CONFIRM_DELETE_FOLDER : if (Main.get().mainPanel.desktop.browser.fileBrowser.isPanelSelected()) { Main.get().mainPanel.desktop.browser.fileBrowser.delete(); } else if (Main.get().activeFolderTree.isPanelSelected()) { Main.get().activeFolderTree.delete(); } break; case CONFIRM_DELETE_DOCUMENT : if (Main.get().mainPanel.desktop.browser.fileBrowser.isPanelSelected()) { Main.get().mainPanel.desktop.browser.fileBrowser.delete(); } break; //added by vissu on feb25 for zohoapi case CONFIRM_CLOSE_ZOHO: if (Main.get().mainPanel.desktop.browser.fileBrowser.isPanelSelected()) { //Main.get().mainPanel.desktop.browser.fileBrowser.zoho(); Main.get().zohoPopup.executeClose(); } break; case CONFIRM_EMPTY_TRASH : // Ensures DESKTOP view is enabled if (Main.get().mainPanel.topPanel.tabWorkspace.getSelectedWorkspace()!=UIDockPanelConstants.DESKTOP){ Main.get().mainPanel.topPanel.tabWorkspace.changeSelectedTab(UIDockPanelConstants.DESKTOP); } //Ensures that trash view is enabled if (Main.get().mainPanel.desktop.navigator.getStackIndex() != UIDesktopConstants.NAVIGATOR_TRASH) { Main.get().mainPanel.desktop.navigator.stackPanel.showStack(UIDesktopConstants.NAVIGATOR_TRASH, false); } Main.get().activeFolderTree.purgeTrash(); break; case CONFIRM_PURGE_FOLDER: if (Main.get().mainPanel.desktop.browser.fileBrowser.isPanelSelected()) { Main.get().mainPanel.desktop.browser.fileBrowser.purge(); } else if (Main.get().activeFolderTree.isPanelSelected()) { Main.get().activeFolderTree.purge(); } break; case CONFIRM_PURGE_DOCUMENT: if (Main.get().mainPanel.desktop.browser.fileBrowser.isPanelSelected()) { Main.get().mainPanel.desktop.browser.fileBrowser.purge(); } break; case CONFIRM_DELETE_PROPERTY_GROUP: if (Main.get().mainPanel.topPanel.toolBar.isNodeDocument()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.removePropertyGroup(); } else if (Main.get().mainPanel.topPanel.toolBar.isNodeFolder()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.removePropertyGroup(); } else if (Main.get().mainPanel.topPanel.toolBar.isNodeMail()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.removePropertyGroup(); } // Always if a property group is deleted add property button on tool bar must be enabled, we execute to ensure this Main.get().mainPanel.topPanel.toolBar.enableAddPropertyGroup(); break; case CONFIRM_PURGE_VERSION_HISTORY_DOCUMENT: Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.version.purgeVersionHistory(); break; case CONFIRM_RESTORE_HISTORY_DOCUMENT: if (object!=null && object instanceof String ) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.version.restoreVersion((String) object); } break; case CONFIRM_SET_DEFAULT_HOME: Main.get().mainPanel.topPanel.mainMenu.bookmark.setUserHome(); break; case CONFIRM_DELETE_SAVED_SEARCH: Main.get().mainPanel.search.historySearch.searchSaved.deleteSearch(); break; case CONFIRM_DELETE_USER_NEWS: Main.get().mainPanel.search.historySearch.userNews.deleteSearch(); break; case CONFIRM_DELETE_MAIL : if (Main.get().mainPanel.desktop.browser.fileBrowser.isPanelSelected()) { Main.get().mainPanel.desktop.browser.fileBrowser.delete(); } break; case CONFIRM_PURGE_MAIL: if (Main.get().mainPanel.desktop.browser.fileBrowser.isPanelSelected()) { Main.get().mainPanel.desktop.browser.fileBrowser.purge(); } break; case CONFIRM_GET_POOLED_WORKFLOW_TASK: Main.get().mainPanel.dashboard.workflowDashboard.setTaskInstanceActorId(); break; case CONFIRM_FORCE_UNLOCK : Main.get().mainPanel.desktop.browser.fileBrowser.forceUnlock(); break; case CONFIRM_FORCE_CANCEL_CHECKOUT: Main.get().mainPanel.desktop.browser.fileBrowser.forceCancelCheckout(); break; case CONFIRM_WORKFLOW_ACTION: if (object!=null && object instanceof ValidationButton ) { ValidationButton validationButton = (ValidationButton) object; GWTButton gWTButton = validationButton.getButton(); ValidationProcessor validationProcessor = validationButton.getValidationProcessor(); HasWorkflow workflow = validationButton.getWorkflow(); GWTTaskInstance taskInstance = validationButton.getTaskInstance(); if (validationProcessor.validate()) { if (gWTButton.getTransition().equals("")) { workflow.setTaskInstanceValues(taskInstance.getId(), null); } else { workflow.setTaskInstanceValues(taskInstance.getId(), gWTButton.getTransition()); } validationButton.disableAllButtonList(); } } break; } action = NO_ACTION; // Resets action value } /** * Sets the action to be confirmed * * @param action The action to be confirmed */ public void setConfirm(int action) { this.action = action; switch (action) { case CONFIRM_DELETE_FOLDER : text.setHTML(Main.i18n("confirm.delete.folder")); break; case CONFIRM_DELETE_DOCUMENT : text.setHTML(Main.i18n("confirm.delete.document")); break; //added by vissu on feb25 for zohoapi case CONFIRM_CLOSE_ZOHO : text.setHTML(Main.i18n("confirm.close.zoho")); break; case CONFIRM_EMPTY_TRASH : text.setHTML(Main.i18n("confirm.delete.trash")); break; case CONFIRM_PURGE_FOLDER: text.setHTML(Main.i18n("confirm.purge.folder")); break; case CONFIRM_PURGE_DOCUMENT: text.setHTML(Main.i18n("confirm.purge.document")); break; case CONFIRM_DELETE_PROPERTY_GROUP: text.setHTML(Main.i18n("confirm.delete.propety.group")); break; case CONFIRM_PURGE_VERSION_HISTORY_DOCUMENT: text.setHTML(Main.i18n("confirm.purge.version.history.document")); break; case CONFIRM_RESTORE_HISTORY_DOCUMENT: text.setHTML(Main.i18n("confirm.purge.restore.document")); break; case CONFIRM_SET_DEFAULT_HOME: text.setHTML(Main.i18n("confirm.set.default.home")); break; case CONFIRM_DELETE_SAVED_SEARCH: text.setHTML(Main.i18n("confirm.delete.saved.search")); break; case CONFIRM_DELETE_USER_NEWS: text.setHTML(Main.i18n("confirm.delete.user.news")); break; case CONFIRM_DELETE_MAIL: text.setHTML(Main.i18n("confirm.delete.mail")); break; case CONFIRM_GET_POOLED_WORKFLOW_TASK: text.setHTML(Main.i18n("confirm.get.pooled.workflow.task")); break; case CONFIRM_FORCE_UNLOCK : text.setHTML(Main.i18n("confirm.force.unlock")); break; case CONFIRM_FORCE_CANCEL_CHECKOUT: text.setHTML(Main.i18n("confirm.force.cancel.checkout")); break; case CONFIRM_WORKFLOW_ACTION: break; } } /** * setConfirmationText * * @param text */ public void setConfirmationText(String text) { this.text.setHTML(text); } /** * Language refresh */ public void langRefresh() { setText(Main.i18n("confirm.label")); cancelButton.setText(Main.i18n("button.cancel")); acceptButton.setText(Main.i18n("button.accept")); } /** * Sets the value to object * * @param object The object to set */ public void setValue(Object object) { this.object = object; } /** * Get the object value * * @return The object */ public Object getValue() { return this.object; } /** * Shows de popup */ public void show(){ setText(Main.i18n("confirm.label")); int left = (Window.getClientWidth()-300)/2; int top = (Window.getClientHeight()-125)/2; setPopupPosition(left,top); super.show(); } }