/**
* 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.mainmenu;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.MenuBar;
import com.google.gwt.user.client.ui.MenuItem;
import com.openkm.frontend.client.Main;
import com.openkm.frontend.client.bean.GWTAvailableOption;
import com.openkm.frontend.client.bean.GWTLanguage;
import com.openkm.frontend.client.bean.GWTReport;
import com.openkm.frontend.client.bean.GWTWorkspace;
import com.openkm.frontend.client.bean.ToolBarOption;
import com.openkm.frontend.client.contants.ui.UIMenuConstants;
import com.openkm.frontend.client.extension.widget.menu.MenuItemExtension;
import com.openkm.frontend.client.util.Util;
import com.openkm.frontend.client.widget.ConfirmPopup;
import com.openkm.frontend.client.widget.notify.NotifyPopup;
/**
* Main menu
*
* @author jllort
*
*/
public class MainMenu extends Composite {
private static final int OUTPUT_PDF = 2;
private static final int OUTPUT_RTF = 3;
private static final int OUTPUT_CSV = 4;
// URI CONSTANTS
public static final String URI_HELP = "http://www.openkm.com";
public static final String URI_BUG_REPORT = "http://issues.openkm.com";
public static final String URI_SUPPORT_REQUEST = "http://www.openkm.com/Contact/";
public static final String URI_PUBLIC_FORUM = "http://forum.openkm.com";
public static final String URI_PROJECT_WEB = "http://www.openkm.com";
public static final String URI_DOCUMENTATION = "http://wiki.openkm.com";
public static final String URI_VERSION_CHANGES = "http://wiki.openkm.com/index.php/Changelog";
private ToolBarOption mainMenuOption;
public Bookmark bookmark;
public BookmarkPopup bookmarkPopup;
public ManageBookmarkPopup manageBookmarkPopup;
public int reportOutput = OUTPUT_PDF;
private MenuBar MainMenu;
private MenuItem menuFile;
private MenuBar subMenuFile;
private MenuItem createDirectory;
private MenuItem addDocument;
private MenuItem download;
private MenuItem downloadPdf;
private MenuItem sendDocumentLink;
private MenuItem sendDocumentAttachment;
private MenuItem export;
private MenuItem horizontalLineFile1;
private MenuItem scanner;
private MenuItem uploader;
private MenuItem horizontalLineFile2;
private MenuItem purgeTrash;
private MenuItem horizontalLineFile3;
private MenuItem exit;
private MenuItem menuEdit;
private MenuBar subMenuEdit;
private MenuItem lock;
private MenuItem unlock;
private MenuItem checkout;
private MenuItem checkin;
private MenuItem cancelCheckout;
private MenuItem delete;
private MenuItem copy;
private MenuItem move;
private MenuItem rename;
private MenuItem zoho; //added by vissu on feb19 for zohoapi
private MenuItem menuTools;
private MenuBar subMenuTools;
private MenuItem language;
private MenuBar subMenuLanguage;
private MenuBar subMenuSkin;
private MenuItem skinDefault;
private MenuItem skinTest;
private MenuItem skinMediumFont;
private MenuItem skinBigFont;
private MenuItem skin;
private MenuItem debugConsole;
public MenuItem administration;
//commented by vissu on oct'11th
/*private MenuItem preferences;
private MenuBar subMenuPreferences;*/
private MenuItem userPreferences;
private MenuItem menuBookmark;
public MenuBar subMenuBookmark;
private MenuItem home;
private MenuItem defaultHome;
private MenuItem manageBookmark;
private MenuItem horizontalLineBookmark1;
private MenuItem menuReports;
private MenuItem reportFormat;
private MenuBar subMenuReportFormat;
private MenuItem reportFormatPdf;
private MenuItem reportFormatRtf;
private MenuItem reportFormatCsv;
private MenuBar subMenuReports;
private MenuItem menuHelp;
private MenuBar subMenuHelp;
private MenuItem help;
private MenuItem documentation;
private MenuItem bugReport;
private MenuItem supportRequest;
private MenuItem publicForum;
private MenuItem versionChanges;
private MenuItem projectWeb;
private MenuItem about;
public MainMenu() {
// The bookmark
bookmark = new Bookmark();
bookmarkPopup = new BookmarkPopup();
bookmarkPopup.setWidth("310px");
bookmarkPopup.setHeight("100px");
bookmarkPopup.setStyleName("okm-Popup");
// The bookmark management
manageBookmarkPopup = new ManageBookmarkPopup();
manageBookmarkPopup.setWidth("400px");
manageBookmarkPopup.setHeight("230px");
manageBookmarkPopup.setStyleName("okm-Popup");
// General menu
MainMenu = new MenuBar(false);
MainMenu.setStyleName("okm-TopMenuBar");
// File menu
// First we must create menus and submenus on inverse order
createDirectory = new MenuItem(Util.menuHTML("img/icon/actions/add_folder.gif", Main.i18n("general.menu.file.create.directory")), true, createDirectoryOKM);
createDirectory.addStyleName("okm-MainMenuItem");
addDocument = new MenuItem(Util.menuHTML("img/icon/actions/add_document.gif", Main.i18n("general.menu.file.add.document")), true, addDocumentOKM);
addDocument.addStyleName("okm-MainMenuItem");
download = new MenuItem(Util.menuHTML("img/icon/actions/download.gif", Main.i18n("general.menu.file.download.document")), true, downloadOKM);
download.addStyleName("okm-MainMenuItem");
downloadPdf = new MenuItem(Util.menuHTML("img/icon/actions/download_pdf.gif", Main.i18n("general.menu.file.download.document.pdf")), true, downloadPdfOKM);
downloadPdf.addStyleName("okm-MainMenuItem");
sendDocumentLink = new MenuItem(Util.menuHTML("img/icon/actions/send_document_link.gif", Main.i18n("general.menu.file.send.link")), true, sendDocumentLinkOKM);
sendDocumentLink.addStyleName("okm-MainMenuItem");
sendDocumentAttachment = new MenuItem(Util.menuHTML("img/icon/actions/send_document_attachment.gif", Main.i18n("general.menu.file.send.attachment")), true, sendDocumentAttachmentOKM);
sendDocumentAttachment.addStyleName("okm-MainMenuItem");
export = new MenuItem(Util.menuHTML("img/icon/actions/export.gif", Main.i18n("filebrowser.menu.export")), true, exportToFile);
export.addStyleName("okm-MainMenuItem");
horizontalLineFile1 = new MenuItem("", true, nullExecute);
horizontalLineFile1.setStyleName("okm-MainMenuItem");
horizontalLineFile1.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator");
horizontalLineFile1.setHeight("2");
scanner = new MenuItem(Util.menuHTML("img/icon/actions/scanner.gif", Main.i18n("general.menu.file.scanner")), true, scanFile);
scanner.addStyleName("okm-MainMenuItem");
uploader = new MenuItem(Util.menuHTML("img/icon/actions/upload.gif", Main.i18n("general.menu.file.uploader")), true, uploadFile);
uploader.addStyleName("okm-MainMenuItem");
horizontalLineFile2 = new MenuItem("", true, nullExecute);
horizontalLineFile2.setStyleName("okm-MainMenuItem");
horizontalLineFile2.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator");
horizontalLineFile2.setHeight("2");
purgeTrash = new MenuItem(Util.menuHTML("img/icon/actions/purge_trash.gif", Main.i18n("general.menu.file.purge.trash")), true, purgeTrashOKM);
purgeTrash.addStyleName("okm-MainMenuItem");
horizontalLineFile3 = new MenuItem("", true, nullExecute);
horizontalLineFile3.setStyleName("okm-MainMenuItem");
horizontalLineFile3.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator");
horizontalLineFile3.setHeight("2");
exit = new MenuItem(Util.menuHTML("img/icon/menu/exit.gif", Main.i18n("general.menu.file.exit")), true, exitOKM);
exit.addStyleName("okm-MainMenuItem");
subMenuFile = new MenuBar(true);
subMenuFile.setStyleName("okm-SubMenuBar");
subMenuFile.setAutoOpen(true);
subMenuFile.addItem(createDirectory);
subMenuFile.addItem(addDocument);
subMenuFile.addItem(download);
subMenuFile.addItem(downloadPdf);
subMenuFile.addItem(sendDocumentLink);
subMenuFile.addItem(sendDocumentAttachment);
subMenuFile.addItem(export);
subMenuFile.addItem(horizontalLineFile1);
subMenuFile.addItem(scanner);
subMenuFile.addItem(uploader);
subMenuFile.addItem(horizontalLineFile2);
subMenuFile.addItem(purgeTrash);
subMenuFile.addItem(horizontalLineFile3);
subMenuFile.addItem(exit);
menuFile = new MenuItem(Main.i18n("general.menu.file"), subMenuFile);
menuFile.addStyleName("okm-MainMenuBar");
// Edit menu
// First we must create menus and submenus on inverse order
lock = new MenuItem(Util.menuHTML("img/icon/actions/lock.gif", Main.i18n("general.menu.file.lock")), true, lockOKM);
lock.addStyleName("okm-MainMenuItem");
unlock = new MenuItem(Util.menuHTML("img/icon/actions/unlock.gif", Main.i18n("general.menu.file.unlock")), true, unlockOKM);
unlock.addStyleName("okm-MainMenuItem");
checkout = new MenuItem(Util.menuHTML("img/icon/actions/checkout.gif", Main.i18n("general.menu.file.checkout")), true, checkoutOKM);
checkout.addStyleName("okm-MainMenuItem");
checkin = new MenuItem(Util.menuHTML("img/icon/actions/checkin.gif", Main.i18n("general.menu.file.checkin")), true, checkinOKM);
checkin.addStyleName("okm-MainMenuItem");
cancelCheckout = new MenuItem(Util.menuHTML("img/icon/actions/cancel_checkout.gif", Main.i18n("general.menu.file.cancel.checkout")), true, cancelCheckoutOKM);
cancelCheckout.addStyleName("okm-MainMenuItem");
delete = new MenuItem(Util.menuHTML("img/icon/actions/delete.gif", Main.i18n("general.menu.file.delete")), true, deleteOKM);
delete.addStyleName("okm-MainMenuItem");
copy = new MenuItem(Util.menuHTML("img/icon/actions/copy.gif", Main.i18n("filebrowser.menu.copy")), true, copyOKM);
copy.addStyleName("okm-MenuItem-strike");
move = new MenuItem(Util.menuHTML("img/icon/actions/move_document.gif", Main.i18n("filebrowser.menu.move")), true, moveOKM);
move.addStyleName("okm-MenuItem-strike");
rename = new MenuItem(Util.menuHTML("img/icon/actions/rename.gif", Main.i18n("filebrowser.menu.rename")), true, renameOKM);
rename.addStyleName("okm-MenuItem-strike");
//added by vissu on feb19 for zohoapi
zoho = new MenuItem(Util.menuHTML("img/icon/actions/zoho.gif", Main.i18n("general.menu.file.zoho")), true, zohoOKM);
zoho.addStyleName("okm-MainMenuItem");
// Submenu edit
subMenuEdit = new MenuBar(true);
subMenuEdit.setStyleName("okm-SubMenuBar");
subMenuEdit.setAutoOpen(true);
subMenuEdit.addItem(lock);
subMenuEdit.addItem(unlock);
subMenuEdit.addItem(checkout);
subMenuEdit.addItem(checkin);
subMenuEdit.addItem(cancelCheckout);
subMenuEdit.addItem(delete);
subMenuEdit.addItem(copy);
subMenuEdit.addItem(move);
subMenuEdit.addItem(rename);
subMenuEdit.addItem(zoho); //added by vissu on feb19 for zohoapi
// Menu edit
menuEdit = new MenuItem(Main.i18n("general.menu.edit"), subMenuEdit);
menuEdit.addStyleName("okm-MainMenuBar");
// Tools menu
// First we must create menus and submenus on inverse order
// Submenu Language options
subMenuLanguage = new MenuBar(true);
subMenuLanguage.setStyleName("okm-SubMenuBar");
// Submenu language
language = new MenuItem(Util.menuHTML("img/icon/menu/language.gif", Main.i18n("general.menu.tools.languages")), true, subMenuLanguage);
language.addStyleName("okm-MainMenuItem");
//language.addStyleName("okm-MainMenuItem-Base-Childs");
// Submenu skin options
subMenuSkin = new MenuBar(true);
subMenuSkin.setStyleName("okm-SubMenuBar");
skinDefault = new MenuItem(Util.menuHTML("img/icon/menu/skin_default.gif", Main.i18n("general.menu.tools.skin.default")), true, setSkinDefault);
skinTest = new MenuItem(Util.menuHTML("img/icon/menu/skin_test.gif", Main.i18n("general.menu.tools.skin.default2")), true, setSkinDefault2);
skinMediumFont = new MenuItem(Util.menuHTML("img/icon/menu/skin_test.gif", Main.i18n("general.menu.tools.skin.mediumfont")), true, setSkinMediumFont);
skinBigFont = new MenuItem(Util.menuHTML("img/icon/menu/skin_test.gif", Main.i18n("general.menu.tools.skin.bigfont")), true, setSkinBigFont);
skinDefault.addStyleName("okm-MainMenuItem");
skinTest.addStyleName("okm-MainMenuItem");
skinMediumFont.addStyleName("okm-MainMenuItem");
skinBigFont.addStyleName("okm-MainMenuItem");
subMenuSkin.addItem(skinDefault);
subMenuSkin.addItem(skinTest);
subMenuSkin.addItem(skinMediumFont);
subMenuSkin.addItem(skinBigFont);
// Submenu skin
skin = new MenuItem(Util.menuHTML("img/icon/menu/skin.gif", Main.i18n("general.menu.tools.skin")), true, subMenuSkin);
skin.addStyleName("okm-MainMenuItem");
// Other tools options
debugConsole = new MenuItem(Util.menuHTML("img/icon/menu/console.gif", Main.i18n("general.menu.debug.console")), true, setViewDebugConsole);
debugConsole.addStyleName("okm-MainMenuItem");
administration = new MenuItem(Util.menuHTML("img/icon/menu/administration.gif", Main.i18n("general.menu.administration")), true, showAdministration);
administration.addStyleName("okm-MainMenuItem");
administration.setVisible(false);
// Submenu preferences opions
//commented by vissu on oct'11th
/* subMenuPreferences = new MenuBar(true);
subMenuPreferences.setStyleName("okm-SubMenuBar"); */
userPreferences = new MenuItem(Util.menuHTML("img/icon/menu/user_preferences.gif", Main.i18n("general.menu.tools.user.preferences")), true, setUserPreferences);
userPreferences.addStyleName("okm-MainMenuItem");
//commented by vissu on oct'11th
//subMenuPreferences.addItem(userPreferences);
// Submenu preferences
//commented by vissu on oct'11th
/* preferences = new MenuItem(Util.menuHTML("img/icon/menu/preferences.gif", Main.i18n("general.menu.tools.preferences")), true, subMenuPreferences);
preferences.addStyleName("okm-MainMenuItem"); */
// Submenu tools
subMenuTools = new MenuBar(true);
subMenuTools.setStyleName("okm-SubMenuBar");
subMenuTools.setAutoOpen(true);
subMenuTools.addItem(language);
subMenuTools.addItem(skin);
subMenuTools.addItem(debugConsole);
subMenuTools.addItem(administration);
//modifide as preferences to userPreferences by vissu on oct'11th
subMenuTools.addItem(userPreferences);
// Menu tools
menuTools = new MenuItem(Main.i18n("general.menu.tools"), subMenuTools);
menuTools.addStyleName("okm-MainMenuBar");
home = new MenuItem(Util.menuHTML("img/icon/actions/bookmark_go.gif", Main.i18n("general.menu.bookmark.home")), true, goToUserHome);
home.addStyleName("okm-MainMenuItem");
defaultHome = new MenuItem(Util.menuHTML("img/icon/actions/bookmark.gif", Main.i18n("general.menu.bookmark.default.home")), true, setDefaultHome);
defaultHome.addStyleName("okm-MainMenuItem");
manageBookmark = new MenuItem(Util.menuHTML("img/icon/actions/bookmark_edit.gif", Main.i18n("general.menu.bookmark.edit")), true, editBookmark);
manageBookmark.addStyleName("okm-MainMenuItem");
horizontalLineBookmark1 = new MenuItem("", true, nullExecute);
horizontalLineBookmark1.setStyleName("okm-MainMenuItem");
horizontalLineBookmark1.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator");
horizontalLineBookmark1.setHeight("2");
// Submenu tools
subMenuBookmark = new MenuBar(true);
subMenuBookmark.setStyleName("okm-SubMenuBar");
subMenuBookmark.setAutoOpen(true);
subMenuBookmark.addItem(home);
subMenuBookmark.addItem(defaultHome);
subMenuBookmark.addItem(manageBookmark);
subMenuBookmark.addItem(horizontalLineBookmark1);
// Menu bookmark
menuBookmark = new MenuItem(Main.i18n("general.menu.bookmark"), subMenuBookmark);
menuBookmark.addStyleName("okm-MainMenuBar");
// Submenu help option
help = new MenuItem(Util.menuHTML("img/icon/menu/help.gif", Util.windowOpen(Main.i18n("general.menu.help"), URI_HELP) ), true, nullExecute);
help.addStyleName("okm-MainMenuItem");
documentation = new MenuItem(Util.menuHTML("img/icon/menu/documentation.gif", Util.windowOpen(Main.i18n("general.menu.documentation"), URI_DOCUMENTATION)), true, nullExecute);
documentation.addStyleName("okm-MainMenuItem");
bugReport = new MenuItem(Util.menuHTML("img/icon/menu/bugs.gif", Util.windowOpen(Main.i18n("general.menu.bug.report") ,URI_BUG_REPORT) ), true, nullExecute);
bugReport.addStyleName("okm-MainMenuItem");
supportRequest = new MenuItem(Util.menuHTML("img/icon/menu/support.gif", Util.windowOpen(Main.i18n("general.menu.support.request"), URI_SUPPORT_REQUEST) ), true, nullExecute);
supportRequest.addStyleName("okm-MainMenuItem");
publicForum = new MenuItem(Util.menuHTML("img/icon/menu/forum.gif", Util.windowOpen(Main.i18n("general.menu.public.forum"), URI_PUBLIC_FORUM)), true, nullExecute);
publicForum.addStyleName("okm-MainMenuItem");
versionChanges = new MenuItem(Util.menuHTML("img/icon/menu/brick.gif", Util.windowOpen(Main.i18n("general.menu.version.changes"), URI_VERSION_CHANGES)), true, nullExecute);
versionChanges.addStyleName("okm-MainMenuItem");
projectWeb = new MenuItem(Util.menuHTML("img/icon/menu/home.gif", Util.windowOpen(Main.i18n("general.menu.project.web"), URI_PROJECT_WEB)), true, nullExecute);
projectWeb.addStyleName("okm-MainMenuItem");
about = new MenuItem(Util.menuHTML("img/icon/menu/about.gif", Main.i18n("general.menu.about")), true, aboutOKM);
about.addStyleName("okm-MainMenuItem");
// Submenu preferences
//commented by vissu on oct'11th
/* preferences = new MenuItem(Util.menuHTML("img/icon/menu/preferences.gif", Main.i18n("general.menu.tools.preferences")), true, subMenuPreferences);
preferences.addStyleName("okm-MainMenuItem"); */
// Submenu report format
subMenuReportFormat = new MenuBar(true);
subMenuReportFormat.setStyleName("okm-SubMenuBar");
reportFormatPdf = new MenuItem(Util.menuHTML("img/icon/security/yes.gif", Main.i18n("general.menu.report.format.pdf")), true, enablePdfReporFormat);
reportFormatPdf.addStyleName("okm-MainMenuItem");
reportFormatRtf = new MenuItem(Util.menuHTML("img/icon/security/no.gif", Main.i18n("general.menu.report.format.rtf")), true, enableTextReporFormat);
reportFormatRtf.addStyleName("okm-MainMenuItem");
reportFormatRtf.addStyleName("okm-MenuItem-strike");
reportFormatCsv = new MenuItem(Util.menuHTML("img/icon/security/no.gif", Main.i18n("general.menu.report.format.csv")), true, enableCsvReporFormat);
reportFormatCsv.addStyleName("okm-MainMenuItem");
reportFormatCsv.addStyleName("okm-MenuItem-strike");
subMenuReportFormat.addItem(reportFormatPdf);
subMenuReportFormat.addItem(reportFormatRtf);
subMenuReportFormat.addItem(reportFormatCsv);
reportFormat = new MenuItem(Util.menuHTML("img/icon/menu/preferences.gif", Main.i18n("general.menu.report.format")), true, subMenuReportFormat);
reportFormat.addStyleName("okm-MainMenuItem");
// Submenu tools
subMenuReports = new MenuBar(true);
subMenuReports.setStyleName("okm-SubMenuBar");
subMenuReports.setAutoOpen(true);
subMenuReports.addItem(reportFormat);
// Menu bookmark
menuReports = new MenuItem(Main.i18n("general.menu.report"), subMenuReports);
menuReports.addStyleName("okm-MainMenuBar");
// Submenu help
subMenuHelp = new MenuBar(true);
subMenuHelp.setStyleName("okm-SubMenuBar");
subMenuHelp.setAutoOpen(true);
//subMenuHelp.addItem(help);
subMenuHelp.addItem(documentation);
subMenuHelp.addItem(bugReport);
subMenuHelp.addItem(supportRequest);
subMenuHelp.addItem(publicForum);
subMenuHelp.addItem(versionChanges);
subMenuHelp.addItem(projectWeb);
subMenuHelp.addItem(about);
// Help menu
menuHelp = new MenuItem(Main.i18n("general.menu.help"), subMenuHelp);
menuHelp.addStyleName("okm-MainMenuBar");
// Create final general menu adding cascade menus to it
MainMenu.addItem(menuFile);
MainMenu.addItem(menuEdit);
MainMenu.addItem(menuTools);
MainMenu.addItem(menuBookmark);
MainMenu.addItem(menuReports);
MainMenu.addItem(menuHelp);
MainMenu.setAutoOpen(false);
// By default hide menus
menuFile.setVisible(false);
menuEdit.setVisible(false);
menuTools.setVisible(false);
menuBookmark.setVisible(false);
menuReports.setVisible(false);
menuHelp.setVisible(false);
initWidget(MainMenu);
}
// Lang refresh
public void langRefresh() {
bookmarkPopup.langRefresh(); // Refreshing popup
manageBookmarkPopup.langRefresh(); // Refreshing management popup
menuEdit.setText(Main.i18n("general.menu.edit"));
createDirectory.setHTML(Util.menuHTML("img/icon/actions/add_folder.gif", Main.i18n("general.menu.file.create.directory")));
download.setHTML(Util.menuHTML("img/icon/actions/download.gif", Main.i18n("general.menu.file.download.document")));
downloadPdf.setHTML(Util.menuHTML("img/icon/actions/download_pdf.gif", Main.i18n("general.menu.file.download.document.pdf")));
sendDocumentLink.setHTML(Util.menuHTML("img/icon/actions/send_document_link.gif", Main.i18n("general.menu.file.send.link")));
sendDocumentAttachment.setHTML(Util.menuHTML("img/icon/actions/send_document_attachment.gif", Main.i18n("general.menu.file.send.attachment")));
export.setHTML(Util.menuHTML("img/icon/actions/export.gif", Main.i18n("filebrowser.menu.export")));
scanner.setHTML(Util.menuHTML("img/icon/actions/scanner.gif", Main.i18n("general.menu.file.scanner")));
uploader.setHTML(Util.menuHTML("img/icon/actions/upload.gif", Main.i18n("general.menu.file.uploader")));
lock.setHTML(Util.menuHTML("img/icon/actions/lock.gif", Main.i18n("general.menu.file.lock")));
unlock.setHTML(Util.menuHTML("img/icon/actions/unlock.gif", Main.i18n("general.menu.file.unlock")));
addDocument.setHTML(Util.menuHTML("img/icon/actions/add_document.gif", Main.i18n("general.menu.file.add.document")));
checkout.setHTML(Util.menuHTML("img/icon/actions/checkout.gif", Main.i18n("general.menu.file.checkout")));
checkin.setHTML(Util.menuHTML("img/icon/actions/checkin.gif", Main.i18n("general.menu.file.checkin")));
cancelCheckout.setHTML(Util.menuHTML("img/icon/actions/cancel_checkout.gif", Main.i18n("general.menu.file.cancel.checkout")));
delete.setHTML(Util.menuHTML("img/icon/actions/delete.gif", Main.i18n("general.menu.file.delete")));
move.setHTML(Util.menuHTML("img/icon/actions/move_document.gif", Main.i18n("filebrowser.menu.move")));
copy.setHTML(Util.menuHTML("img/icon/actions/copy.gif", Main.i18n("filebrowser.menu.copy")));
rename.setHTML(Util.menuHTML("img/icon/actions/rename.gif", Main.i18n("filebrowser.menu.rename")));
//added by vissu on feb19 for zohoapi
zoho.setHTML(Util.menuHTML("img/icon/actions/zoho.gif", Main.i18n("general.menu.file.zoho")));
menuFile.setText(Main.i18n("general.menu.file"));
purgeTrash.setHTML(Util.menuHTML("img/icon/actions/purge_trash.gif", Main.i18n("general.menu.file.purge.trash")));
exit.setHTML(Util.menuHTML("img/icon/menu/exit.gif", Main.i18n("general.menu.file.exit")));
menuTools.setText(Main.i18n("general.menu.tools"));
language.setHTML(Util.menuHTML("img/icon/menu/language.gif", Main.i18n("general.menu.tools.languages")));
skin.setHTML(Util.menuHTML("img/icon/menu/skin.gif", Main.i18n("general.menu.tools.skin")));
skinDefault.setHTML(Util.menuHTML("img/icon/menu/skin_default.gif", Main.i18n("general.menu.tools.skin.default")));
skinTest.setHTML(Util.menuHTML("img/icon/menu/skin_test.gif", Main.i18n("general.menu.tools.skin.default2")));
skinMediumFont.setHTML(Util.menuHTML("img/icon/menu/skin_test.gif", Main.i18n("general.menu.tools.skin.mediumfont")));
skinBigFont.setHTML(Util.menuHTML("img/icon/menu/skin_test.gif", Main.i18n("general.menu.tools.skin.bigfont")));
skinTest.setHTML(Util.menuHTML("img/icon/menu/skin_test.gif", Main.i18n("general.menu.tools.skin.default2")));
debugConsole.setHTML(Util.menuHTML("img/icon/menu/console.gif", Main.i18n("general.menu.debug.console")));
administration.setHTML(Util.menuHTML("img/icon/menu/administration.gif", Main.i18n("general.menu.administration")));
//commented by vissu on oct'11th
//preferences.setHTML(Util.menuHTML("img/icon/menu/preferences.gif", Main.i18n("general.menu.tools.preferences")));
userPreferences.setHTML(Util.menuHTML("img/icon/menu/user_preferences.gif", Main.i18n("general.menu.tools.user.preferences")));
menuBookmark.setText(Main.i18n("general.menu.bookmark"));
home.setHTML(Util.menuHTML("img/icon/actions/bookmark_go.gif", Main.i18n("general.menu.bookmark.home")));
defaultHome.setHTML(Util.menuHTML("img/icon/actions/bookmark.gif", Main.i18n("general.menu.bookmark.default.home")));
manageBookmark.setHTML(Util.menuHTML("img/icon/actions/bookmark_edit.gif", Main.i18n("general.menu.bookmark.edit")));
menuReports.setText(Main.i18n("general.menu.report"));
reportFormat.setHTML(Util.menuHTML("img/icon/menu/preferences.gif", Main.i18n("general.menu.report.format")));
refreshReportFormatMenu();
menuHelp.setText(Main.i18n("general.menu.help"));
help.setHTML(Util.menuHTML("img/icon/menu/help.gif", Util.windowOpen(Main.i18n("general.menu.help"), URI_HELP)));
documentation.setHTML(Util.menuHTML("img/icon/menu/documentation.gif", Util.windowOpen(Main.i18n("general.menu.documentation"), URI_DOCUMENTATION)));
bugReport.setHTML(Util.menuHTML("img/icon/menu/bugs.gif", Util.windowOpen(Main.i18n("general.menu.bug.report"), URI_BUG_REPORT)));
supportRequest.setHTML(Util.menuHTML("img/icon/menu/support.gif", Util.windowOpen(Main.i18n("general.menu.support.request"), URI_SUPPORT_REQUEST)));
publicForum.setHTML(Util.menuHTML("img/icon/menu/forum.gif", Util.windowOpen(Main.i18n("general.menu.public.forum"), URI_PUBLIC_FORUM)));
versionChanges.setHTML(Util.menuHTML("img/icon/menu/brick.gif", Util.windowOpen(Main.i18n("general.menu.version.changes"), URI_VERSION_CHANGES)));
projectWeb.setHTML(Util.menuHTML("img/icon/menu/home.gif", Util.windowOpen(Main.i18n("general.menu.project.web"), URI_PROJECT_WEB)));
about.setHTML(Util.menuHTML("img/icon/menu/about.gif", Main.i18n("general.menu.about")));
}
/**
* refreshReportFormatMenu
*/
private void refreshReportFormatMenu(){
switch (reportOutput) {
case OUTPUT_PDF:
reportFormatPdf.setHTML(Util.menuHTML("img/icon/security/yes.gif", Main.i18n("general.menu.report.format.pdf")));
reportFormatRtf.setHTML(Util.menuHTML("img/icon/security/no.gif", Main.i18n("general.menu.report.format.rtf")));
reportFormatCsv.setHTML(Util.menuHTML("img/icon/security/no.gif", Main.i18n("general.menu.report.format.csv")));
enable(reportFormatPdf);
disable(reportFormatRtf);
disable(reportFormatCsv);
break;
case OUTPUT_RTF:
reportFormatPdf.setHTML(Util.menuHTML("img/icon/security/no.gif", Main.i18n("general.menu.report.format.pdf")));
reportFormatRtf.setHTML(Util.menuHTML("img/icon/security/yes.gif", Main.i18n("general.menu.report.format.rtf")));
reportFormatCsv.setHTML(Util.menuHTML("img/icon/security/no.gif", Main.i18n("general.menu.report.format.csv")));
disable(reportFormatPdf);
enable(reportFormatRtf);
disable(reportFormatCsv);
break;
case OUTPUT_CSV:
reportFormatPdf.setHTML(Util.menuHTML("img/icon/security/no.gif", Main.i18n("general.menu.report.format.pdf")));
reportFormatRtf.setHTML(Util.menuHTML("img/icon/security/no.gif", Main.i18n("general.menu.report.format.rtf")));
reportFormatCsv.setHTML(Util.menuHTML("img/icon/security/yes.gif", Main.i18n("general.menu.report.format.csv")));
disable(reportFormatPdf);
disable(reportFormatRtf);
enable(reportFormatCsv);
break;
}
}
/**
* Enables menu item
*
* @param menuItem The menu item
*/
public void enable(MenuItem menuItem) {
menuItem.removeStyleName("okm-MenuItem-strike");
}
/**
* Disables the menu item with and strike
*
* @param menuItem The menu item
*/
public void disable(MenuItem menuItem) {
menuItem.addStyleName("okm-MenuItem-strike");
}
/**
* Enables or disables menu option on privileges
*/
public void evaluateMenuOptions() {
if (mainMenuOption.createFolderOption) { enable(createDirectory); } else { disable(createDirectory); }
if (mainMenuOption.downloadOption) { enable(download); } else { disable(download); }
if (mainMenuOption.downloadPdfOption) { enable(downloadPdf); } else { disable(downloadPdf); }
if (mainMenuOption.sendDocumentLinkOption) { enable(sendDocumentLink); } else { disable(sendDocumentLink); }
if (mainMenuOption.sendDocumentAttachmentOption) { enable(sendDocumentAttachment); } else { disable(sendDocumentAttachment); }
if (mainMenuOption.exportOption) { enable(export); } else { disable(export); }
if (mainMenuOption.scannerOption) { enable(scanner); } else { disable(scanner); }
if (mainMenuOption.uploaderOption) { enable(uploader); } else { disable(uploader); }
if (mainMenuOption.lockOption) { enable(lock); } else { disable(lock); }
if (mainMenuOption.unLockOption) { enable(unlock); } else { disable(unlock); }
if (mainMenuOption.addDocumentOption) { enable(addDocument); } else { disable(addDocument); }
if (mainMenuOption.checkoutOption) { enable(checkout); } else { disable(checkout); }
if (mainMenuOption.checkinOption) { enable(checkin); } else { disable(checkin); }
if (mainMenuOption.cancelCheckoutOption) { enable(cancelCheckout); } else { disable(cancelCheckout); }
if (mainMenuOption.deleteOption) { enable(delete); } else { disable(delete); }
if (mainMenuOption.copyOption) { enable(copy); } else { disable(copy); }
if (mainMenuOption.renameOption) { enable(rename); } else { disable(rename); }
//added by vissu on feb19 for zohoapi
if (mainMenuOption.zohoOption) { enable(zoho); } else { disable(zoho); }
if (mainMenuOption.moveOption) { enable(move); } else { disable(move); }
if (mainMenuOption.homeOption) {
enable(home);
enable(defaultHome);
bookmark.enableBookmarks();
} else {
disable(home);
disable(defaultHome);
bookmark.disableBookmarks();
}
}
/**
* Sets the main menu options
*
* @param mainMenuOption The manin Menu options
*/
public void setOptions(ToolBarOption mainMenuOption){
this.mainMenuOption = mainMenuOption;
evaluateMenuOptions();
}
// Command menu to purge trash
Command purgeTrashOKM = new Command() {
public void execute() {
Main.get().confirmPopup.setConfirm(ConfirmPopup.CONFIRM_EMPTY_TRASH);
Main.get().confirmPopup.show();
}
};
// Command menu to create directory
Command createDirectoryOKM = new Command() {
public void execute() {
if (mainMenuOption.createFolderOption) {
Main.get().mainPanel.topPanel.toolBar.executeFolderDirectory();
}
}
};
// Command menu to download
Command downloadOKM = new Command() {
public void execute() {
if (mainMenuOption.downloadOption) {
Main.get().mainPanel.topPanel.toolBar.executeDownload();
}
}
};
// Command menu to download as PDF
Command downloadPdfOKM = new Command() {
public void execute() {
if (mainMenuOption.downloadPdfOption) {
Main.get().mainPanel.topPanel.toolBar.executeDownloadPdf();
}
}
};
// Command menu to send document link
Command sendDocumentLinkOKM = new Command() {
public void execute() {
if (mainMenuOption.sendDocumentLinkOption) {
Main.get().notifyPopup.executeSendDocument(NotifyPopup.NOTIFY_WITH_LINK);
}
}
};
// Command menu to send document attachment
Command sendDocumentAttachmentOKM = new Command() {
public void execute() {
if (mainMenuOption.sendDocumentAttachmentOption) {
Main.get().notifyPopup.executeSendDocument(NotifyPopup.NOTIFY_WITH_ATTACHMENT);
}
}
};
// Command menu to export
Command exportToFile = new Command() {
public void execute() {
if (mainMenuOption.exportOption) {
Main.get().mainPanel.topPanel.toolBar.executeExport();
}
}
};
// Command menu to scan
Command scanFile = new Command() {
public void execute() {
if (mainMenuOption.scannerOption) {
Main.get().mainPanel.topPanel.toolBar.executeScanner();
}
}
};
// Command menu to upload
Command uploadFile = new Command() {
public void execute() {
if (mainMenuOption.uploaderOption) {
Main.get().mainPanel.topPanel.toolBar.executeUploader();
}
}
};
// Command menu to lock
Command lockOKM = new Command() {
public void execute() {
if (mainMenuOption.lockOption) {
Main.get().mainPanel.topPanel.toolBar.executeLock();
}
}
};
// Command menu to unlock
Command unlockOKM = new Command() {
public void execute() {
if (mainMenuOption.unLockOption) {
Main.get().mainPanel.topPanel.toolBar.executeUnlock();
}
}
};
// Command menu to add documen
Command addDocumentOKM = new Command() {
public void execute() {
if (mainMenuOption.addDocumentOption) {
Main.get().mainPanel.topPanel.toolBar.executeAddDocument();
}
}
};
// Command menu to edit (checkout)
Command checkoutOKM = new Command() {
public void execute() {
if (mainMenuOption.checkoutOption) {
Main.get().mainPanel.topPanel.toolBar.executeCheckout();
}
}
};
// Command menu to checkin
Command checkinOKM = new Command() {
public void execute() {
if (mainMenuOption.checkinOption) {
Main.get().mainPanel.topPanel.toolBar.exectuteCheckin();
}
}
};
// Command menu to cancel checkout
Command cancelCheckoutOKM = new Command() {
public void execute() {
if (mainMenuOption.cancelCheckoutOption) {
Main.get().mainPanel.topPanel.toolBar.executeCancelCheckout();
}
}
};
// Command menu to copy
Command copyOKM = new Command() {
public void execute() {
if (mainMenuOption.copyOption) {
Main.get().mainPanel.topPanel.toolBar.executeCopy();
}
}
};
// Command menu to copy
Command moveOKM = new Command() {
public void execute() {
Main.get().mainPanel.topPanel.toolBar.executeMove();
}
};
// Command menu to copy
Command renameOKM = new Command() {
public void execute() {
if (mainMenuOption.renameOption) {
Main.get().mainPanel.topPanel.toolBar.executeRename();
}
}
};
//added by vissu on feb19 for zohoapi
// Command menu to copy
Command zohoOKM = new Command() {
public void execute() {
if (mainMenuOption.zohoOption) {
Main.get().mainPanel.topPanel.toolBar.executeZoho();
//Main.get().zohoPopup.show();
}
}
};
// Command menu to delete
Command deleteOKM = new Command() {
public void execute() {
if (mainMenuOption.deleteOption) {
Main.get().mainPanel.topPanel.toolBar.executeDelete();
}
}
};
// Command menu to delete
Command refreshOKM = new Command() {
public void execute() {
if (mainMenuOption.refreshOption) {
Main.get().mainPanel.topPanel.toolBar.executeRefresh();
}
}
};
// Command menu to exit application
Command exitOKM = new Command() {
public void execute() {
Main.get().logoutPopup.logout();
}
};
// Command menu to show about
Command aboutOKM = new Command() {
public void execute() {
Main.get().aboutPopup.show();
}
};
// Command menu to set default skin
Command setSkinDefault = new Command() {
public void execute() {
Util.changeCss("default");
}
};
// Command menu to set test skin
Command setSkinDefault2 = new Command() {
public void execute() {
Util.changeCss("test");
}
};
// Command menu to set test skin
Command setSkinMediumFont = new Command() {
public void execute() {
Util.changeCss("mediumfont");
}
};
// Command menu to set test skin
Command setSkinBigFont = new Command() {
public void execute() {
Util.changeCss("bigfont");
}
};
// Command menu to show debug console
Command setViewDebugConsole = new Command() {
public void execute() {
Main.get().debugConsolePopup.center();
}
};
// Command menu to show administration
Command showAdministration = new Command() {
public void execute() {
Window.open(Main.CONTEXT + "/admin/index.jsp", "Administration", "");
}
};
// Command menu to go to set user preferences
Command setUserPreferences = new Command() {
public void execute() {
Main.get().userPopup.show();
}
};
// Command enable pdf report format
Command enablePdfReporFormat = new Command() {
public void execute() {
reportOutput = OUTPUT_PDF;
refreshReportFormatMenu();
}
};
// Command enable text report format
Command enableTextReporFormat = new Command() {
public void execute() {
reportOutput = OUTPUT_RTF;
refreshReportFormatMenu();
}
};
// Command enable CSV report format
Command enableCsvReporFormat = new Command() {
public void execute() {
reportOutput = OUTPUT_CSV;
refreshReportFormatMenu();
}
};
// Command menu to go to user home
Command goToUserHome = new Command() {
public void execute() {
if (mainMenuOption.homeOption) {
Main.get().mainPanel.topPanel.toolBar.executeGoToUserHome();
}
}
};
// Command menu to go to user home
Command setDefaultHome = new Command() {
public void execute() {
if (mainMenuOption.homeOption) {
if (Main.get().mainPanel.desktop.browser.fileBrowser.isPanelSelected()) {
Main.get().mainPanel.desktop.browser.fileBrowser.setHome();
} else if (Main.get().activeFolderTree.isPanelSelected()) {
Main.get().activeFolderTree.setHome();
}
}
}
};
// Command menu to go to user home
Command editBookmark = new Command() {
public void execute() {
if (mainMenuOption.homeOption) {
manageBookmarkPopup.showPopup();
}
}
};
// Command menu that executes void
Command nullExecute = new Command() {
public void execute() {
}
};
/**
* Gets the tools bar options
* @return The tool bar options values
*/
public ToolBarOption getToolBarOption() {
return mainMenuOption;
}
/**
* setAvailableOption
*
* @param option
*/
public void setAvailableOption(GWTWorkspace workspace) {
GWTAvailableOption option = workspace.getAvailableOption();
// FILE MENU
createDirectory.setVisible(option.isCreateFolderOption());
addDocument.setVisible(option.isAddDocumentOption());
download.setVisible(option.isDownloadOption());
downloadPdf.setVisible(option.isDownloadPdfOption());
sendDocumentLink.setVisible(option.isSendDocumentLinkOption());
sendDocumentAttachment.setVisible(option.isSendDocumentAttachmentOption());
export.setVisible(option.isExportOption());
horizontalLineFile1.setVisible(option.isCreateFolderOption() || option.isAddDocumentOption() || option.isDownloadOption() ||
option.isDownloadPdfOption() || option.isSendDocumentLinkOption() ||
option.isSendDocumentAttachmentOption() || option.isExportOption());
scanner.setVisible(option.isScannerOption());
uploader.setVisible(option.isUploaderOption());
horizontalLineFile2.setVisible(option.isScannerOption() || option.isUploaderOption());
purgeTrash.setVisible(option.isPurgeTrashOption());
horizontalLineFile3.setVisible(option.isPurgeTrashOption());
// EDIT MENU
lock.setVisible(option.isLockOption());
unlock.setVisible(option.isUnLockOption());
checkout.setVisible(option.isCheckoutOption());
checkin.setVisible(option.isCheckinOption());
cancelCheckout.setVisible(option.isCancelCheckoutOption());
delete.setVisible(option.isDeleteOption());
copy.setVisible(option.isCopyOption());
move.setVisible(option.isMoveOption());
rename.setVisible(option.isRenameOption());
zoho.setVisible(option.isZohoOption()); //added by vissu on feb19 for zohoapi
// MENU TOOLS
if (!option.isLanguagesOption()) {
subMenuTools.removeItem(language);
}
if (!option.isSkinOption()) {
subMenuTools.removeItem(skin);
}
debugConsole.setVisible(option.isDebugOption());
administration.setVisible(option.isAdministrationOption());
//commented by vissu on oct'11th
/* if (!option.isPreferencesOption()) {
subMenuTools.removeItem(preferences);
} */
// MENU BOOKMARKS
home.setVisible(option.isHomeOption());
defaultHome.setVisible(option.isAddBookmarkOption());
manageBookmark.setVisible(option.isManageBookmarkOption());
horizontalLineBookmark1.setVisible(option.isHomeOption() || option.isAddBookmarkOption() || option.isAddBookmarkOption());
// MENU REPORTS
if (workspace.getReports().size()>0) {
menuReports.setVisible(true);
for (final GWTReport report : workspace.getReports()) {
MenuItem reportMenuItem = new MenuItem(Util.menuHTML("img/icon/menu/report.png", report.getName()), true, new Command() {
@Override
public void execute() {
if (report.getFormElements().size()>0) {
Main.get().reportPopup.setReport(report);
Main.get().reportPopup.center();
} else {
Map<String,String> parameters = new HashMap<String, String>();
parameters.put("format", String.valueOf(reportOutput));
Util.executeReport(report.getId(), parameters);
}
}
});
reportMenuItem.addStyleName("okm-MainMenuItem");
subMenuReports.addItem(reportMenuItem);
}
}
// MENU HELP
help.setVisible(option.isHelpOption());
documentation.setVisible(option.isDocumentationOption());
bugReport.setVisible(option.isBugReportOption());
supportRequest.setVisible(option.isSupportRequestOption());
publicForum.setVisible(option.isPublicForumOption());
versionChanges.setVisible(option.isVersionChangesOption());
projectWeb.setVisible(option.isProjectWebOption());
about.setVisible(option.isAboutOption());
}
/**
* setEditMenuVisible
*
* @param visible
*/
public void setEditMenuVisible(boolean visible) {
menuEdit.setVisible(visible);
}
/**
* setToolsMenuVisible
*
* @param visible
*/
public void setToolsMenuVisible(boolean visible) {
menuTools.setVisible(visible);
}
/**
* setBookmarkMenuVisible
*
* @param visible
*/
public void setBookmarkMenuVisible(boolean visible) {
menuBookmark.setVisible(visible);
}
/**
* setHelpMenuVisible
*
* @param visible
*/
public void setHelpMenuVisible(boolean visible) {
menuHelp.setVisible(visible);
}
/**
* setFileMenuVisible
*
* @param visible
*/
public void setFileMenuVisible(boolean visible) {
menuFile.setVisible(visible);
}
/**
* addMenu
*
* @param extension
*/
public void addMenuExtension(MenuItemExtension extension) {
switch (extension.getMenuLocation()) {
case UIMenuConstants.NEW_MENU:
MainMenu.addItem(extension);
break;
case UIMenuConstants.MAIN_MENU_FILE:
subMenuFile.addItem(extension);
break;
case UIMenuConstants.MAIN_MENU_EDIT:
subMenuEdit.addItem(extension);
break;
case UIMenuConstants.MAIN_MENU_TOOLS:
subMenuTools.addItem(extension);
break;
case UIMenuConstants.MAIN_MENU_BOOKMARS:
subMenuBookmark.addItem(extension);
break;
case UIMenuConstants.MAIN_MENU_REPORTS:
subMenuReports.addItem(extension);
menuReports.setVisible(true);
break;
case UIMenuConstants.MAIN_MENU_HELP:
subMenuHelp.addItem(extension);
break;
}
}
/**
* getReportOutput
*/
public int getReportOutput() {
return reportOutput;
}
/**
* initAvailableLanguage
*
* @param langs
*/
public void initAvailableLanguage(List<GWTLanguage> langs) {
for (final GWTLanguage lang : langs) {
MenuItem menuItem = new MenuItem(Util.flagMenuHTML(lang.getId(), lang.getName()), true, new Command() {
public void execute() {
Main.get().refreshLang(lang.getId());
}
});
menuItem.addStyleName("okm-MainMenuItem");
subMenuLanguage.addItem(menuItem);
}
}
}