Java tutorial
/** * Copyright (c) 2006-2013 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.ikon.frontend.client.widget.mainmenu; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; 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.ikon.frontend.client.Main; import com.ikon.frontend.client.bean.GWTAvailableOption; import com.ikon.frontend.client.bean.GWTDocument; import com.ikon.frontend.client.bean.GWTLanguage; import com.ikon.frontend.client.bean.GWTReport; import com.ikon.frontend.client.bean.GWTWorkspace; import com.ikon.frontend.client.bean.ToolBarOption; import com.ikon.frontend.client.constants.GWTRepository; import com.ikon.frontend.client.constants.ui.UIDashboardConstants; import com.ikon.frontend.client.constants.ui.UIDockPanelConstants; import com.ikon.frontend.client.constants.ui.UIMenuConstants; import com.ikon.frontend.client.extension.widget.menu.MenuItemExtension; import com.ikon.frontend.client.service.OKMDocumentService; import com.ikon.frontend.client.service.OKMDocumentServiceAsync; import com.ikon.frontend.client.util.Util; import com.ikon.frontend.client.widget.ConfirmPopup; import com.ikon.frontend.client.widget.notify.NotifyPopup; /** * Main menu * * @author jllort */ public class MainMenu extends Composite { private final OKMDocumentServiceAsync documentService = (OKMDocumentServiceAsync) GWT .create(OKMDocumentService.class); 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.ikonbps.com/enquiry.htm"; 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 Map<String, MenuBar> fldMenus; private List<MenuItem> templateMenuItems; private Timer menusRefreshing; private MenuBar mainMenu; private MenuItem menuFile; private MenuBar subMenuFile; private MenuItem findFolder; private MenuItem findDocument; private MenuItem createFolder; private MenuItem addDocument; private MenuItem download; private MenuItem downloadPdf; private MenuItem sendDocumentLink; private MenuItem sendDocumentAttachment; private MenuItem createFromTemplate; private MenuItem export; private MenuItem horizontalLineFile1; private MenuItem startWorkflow; private MenuItem horizontalLineFile2; private MenuItem refresh; private MenuItem horizontalLineFile3; private MenuItem scanner; private MenuItem uploader; private MenuItem horizontalLineFile4; private MenuItem restore; private MenuItem purge; private MenuItem purgeTrash; private MenuItem horizontalLineFile5; private MenuItem exit; private MenuItem menuEdit; private MenuBar subMenuEdit; private MenuItem lock; private MenuItem unlock; private MenuItem horizontalLineEdit1; private MenuItem checkout; private MenuItem checkin; private MenuItem cancelCheckout; private MenuItem horizontalLineEdit2; private MenuItem delete; private MenuItem copy; private MenuItem move; private MenuItem rename; private MenuItem note; private MenuItem category; private MenuItem keyword; private MenuItem horizontalLineEdit3; private MenuItem addPropertyGroup; private MenuItem removePropertyGroup; private MenuItem horizontalLineEdit4; private MenuItem addSubscription; private MenuItem removeSubscription; private MenuItem menuTools; private MenuBar subMenuTools; private MenuItem language; private MenuBar subMenuLanguage; private MenuBar subMenuSkin; private MenuItem skinDefault; private MenuItem skinMediumFont; private MenuItem skinBigFont; private MenuItem skin; private MenuItem debugConsole; public MenuItem administration; private MenuItem preferences; private MenuBar subMenuPreferences; private MenuItem userPreferences; private MenuItem menuBookmark; public MenuBar subMenuBookmark; private MenuItem home; private MenuItem defaultHome; private MenuItem addBookmark; 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 menuTemplates; private MenuBar subMenuTemplates; 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; private MenuBar signaturePanelBar; private MenuItem signaturePanel; private MenuItem updateSignature; public MainMenu() { fldMenus = new HashMap<String, MenuBar>(); templateMenuItems = new ArrayList<MenuItem>(); // 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 findFolder = new MenuItem( Util.menuHTML("img/icon/actions/folder_find.gif", Main.i18n("general.menu.file.find.folder")), true, findFolderOKM); findFolder.addStyleName("okm-MainMenuItem"); findDocument = new MenuItem( Util.menuHTML("img/icon/actions/document_find.png", Main.i18n("general.menu.file.find.document")), true, findDocumentOKM); findDocument.addStyleName("okm-MainMenuItem"); createFolder = new MenuItem( Util.menuHTML("img/icon/actions/add_folder.gif", Main.i18n("general.menu.file.create.directory")), true, createFolderOKM); createFolder.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"); createFromTemplate = new MenuItem(Util.menuHTML("img/icon/actions/create_from_template.gif", Main.i18n("general.menu.file.create.from.template")), true, createFromTemplateOKM); createFromTemplate.addStyleName("okm-MainMenuItem"); export = new MenuItem(Util.menuHTML("img/icon/actions/export.gif", Main.i18n("general.menu.file.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"); startWorkflow = new MenuItem( Util.menuHTML("img/icon/actions/start_workflow.gif", Main.i18n("general.menu.file.start.workflow")), true, startWorkflowOKM); horizontalLineFile2 = new MenuItem("", true, nullExecute); horizontalLineFile2.setStyleName("okm-MainMenuItem"); horizontalLineFile2.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator"); horizontalLineFile2.setHeight("2"); refresh = new MenuItem( Util.menuHTML("img/icon/actions/refresh.gif", Main.i18n("general.menu.file.refresh")), true, refreshOKM); horizontalLineFile3 = new MenuItem("", true, nullExecute); horizontalLineFile3.setStyleName("okm-MainMenuItem"); horizontalLineFile3.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator"); horizontalLineFile3.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"); horizontalLineFile4 = new MenuItem("", true, nullExecute); horizontalLineFile4.setStyleName("okm-MainMenuItem"); horizontalLineFile4.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator"); horizontalLineFile4.setHeight("2"); restore = new MenuItem( Util.menuHTML("img/icon/actions/restore.gif", Main.i18n("general.menu.file.restore")), true, restoreOKM); restore.addStyleName("okm-MainMenuItem"); purge = new MenuItem(Util.menuHTML("img/icon/actions/purge.gif", Main.i18n("general.menu.file.purge")), true, purgeOKM); purge.addStyleName("okm-MainMenuItem"); purgeTrash = new MenuItem( Util.menuHTML("img/icon/actions/purge_trash.gif", Main.i18n("general.menu.file.purge.trash")), true, purgeTrashOKM); purgeTrash.addStyleName("okm-MainMenuItem"); horizontalLineFile5 = new MenuItem("", true, nullExecute); horizontalLineFile5.setStyleName("okm-MainMenuItem"); horizontalLineFile5.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator"); horizontalLineFile5.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(findFolder); subMenuFile.addItem(findDocument); subMenuFile.addItem(createFolder); subMenuFile.addItem(addDocument); subMenuFile.addItem(download); subMenuFile.addItem(downloadPdf); subMenuFile.addItem(sendDocumentLink); subMenuFile.addItem(sendDocumentAttachment); subMenuFile.addItem(createFromTemplate); subMenuFile.addItem(export); subMenuFile.addItem(horizontalLineFile1); subMenuFile.addItem(startWorkflow); subMenuFile.addItem(horizontalLineFile2); subMenuFile.addItem(refresh); subMenuFile.addItem(horizontalLineFile3); subMenuFile.addItem(scanner); subMenuFile.addItem(uploader); subMenuFile.addItem(horizontalLineFile4); subMenuFile.addItem(restore); subMenuFile.addItem(purge); subMenuFile.addItem(purgeTrash); subMenuFile.addItem(horizontalLineFile5); 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.edit.lock")), true, lockOKM); lock.addStyleName("okm-MainMenuItem"); unlock = new MenuItem(Util.menuHTML("img/icon/actions/unlock.gif", Main.i18n("general.menu.edit.unlock")), true, unlockOKM); unlock.addStyleName("okm-MainMenuItem"); horizontalLineEdit1 = new MenuItem("", true, nullExecute); horizontalLineEdit1.setStyleName("okm-MainMenuItem"); horizontalLineEdit1.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator"); horizontalLineEdit1.setHeight("2"); checkout = new MenuItem( Util.menuHTML("img/icon/actions/checkout.gif", Main.i18n("general.menu.edit.checkout")), true, checkoutOKM); checkout.addStyleName("okm-MainMenuItem"); checkin = new MenuItem( Util.menuHTML("img/icon/actions/checkin.gif", Main.i18n("general.menu.edit.checkin")), true, checkinOKM); checkin.addStyleName("okm-MainMenuItem"); cancelCheckout = new MenuItem(Util.menuHTML("img/icon/actions/cancel_checkout.gif", Main.i18n("general.menu.edit.cancel.checkout")), true, cancelCheckoutOKM); cancelCheckout.addStyleName("okm-MainMenuItem"); horizontalLineEdit2 = new MenuItem("", true, nullExecute); horizontalLineEdit2.setStyleName("okm-MainMenuItem"); horizontalLineEdit2.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator"); horizontalLineEdit2.setHeight("2"); delete = new MenuItem(Util.menuHTML("img/icon/actions/delete.gif", Main.i18n("general.menu.edit.delete")), true, deleteOKM); delete.addStyleName("okm-MainMenuItem"); copy = new MenuItem(Util.menuHTML("img/icon/actions/copy.gif", Main.i18n("general.menu.edit.copy")), true, copyOKM); copy.addStyleName("okm-MenuItem-strike"); move = new MenuItem( Util.menuHTML("img/icon/actions/move_document.gif", Main.i18n("general.menu.edit.move")), true, moveOKM); move.addStyleName("okm-MenuItem-strike"); rename = new MenuItem(Util.menuHTML("img/icon/actions/rename.gif", Main.i18n("general.menu.edit.rename")), true, renameOKM); rename.addStyleName("okm-MenuItem-strike"); note = new MenuItem(Util.menuHTML("img/icon/actions/add_note.png", Main.i18n("general.menu.edit.add.note")), true, addNote); note.addStyleName("okm-MenuItem-strike"); category = new MenuItem(Util.menuHTML("img/icon/stackpanel/table_key.gif", Main.i18n("category.add")), true, addCategory); category.addStyleName("okm-MenuItem-strike"); keyword = new MenuItem(Util.menuHTML("img/icon/actions/book_add.png", Main.i18n("keyword.add")), true, addKeyword); keyword.addStyleName("okm-MenuItem-strike"); horizontalLineEdit3 = new MenuItem("", true, nullExecute); horizontalLineEdit3.setStyleName("okm-MainMenuItem"); horizontalLineEdit3.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator"); horizontalLineEdit3.setHeight("2"); addPropertyGroup = new MenuItem(Util.menuHTML("img/icon/actions/add_property_group.gif", Main.i18n("general.menu.edit.add.property.group")), true, addPropertyGroupOKM); addPropertyGroup.addStyleName("okm-MenuItem-strike"); removePropertyGroup = new MenuItem(Util.menuHTML("img/icon/actions/remove_property_group.gif", Main.i18n("general.menu.edit.remove.property.group")), true, removePropertyGroupOKM); removePropertyGroup.addStyleName("okm-MenuItem-strike"); horizontalLineEdit4 = new MenuItem("", true, nullExecute); horizontalLineEdit4.setStyleName("okm-MainMenuItem"); horizontalLineEdit4.addStyleName("okm-MainMenuItem-Base-HorizontalSeparator"); horizontalLineEdit4.setHeight("2"); addSubscription = new MenuItem(Util.menuHTML("img/icon/actions/add_subscription.gif", Main.i18n("general.menu.edit.add.subscription")), true, addSubscriptionOKM); addSubscription.addStyleName("okm-MenuItem-strike"); removeSubscription = new MenuItem(Util.menuHTML("img/icon/actions/remove_subscription.gif", Main.i18n("general.menu.edit.remove.subscription")), true, removeSubscriptionOKM); removeSubscription.addStyleName("okm-MenuItem-strike"); // Submenu edit subMenuEdit = new MenuBar(true); subMenuEdit.setStyleName("okm-SubMenuBar"); subMenuEdit.setAutoOpen(true); subMenuEdit.addItem(lock); subMenuEdit.addItem(unlock); subMenuEdit.addItem(horizontalLineEdit1); subMenuEdit.addItem(checkout); subMenuEdit.addItem(checkin); subMenuEdit.addItem(cancelCheckout); subMenuEdit.addItem(horizontalLineEdit2); subMenuEdit.addItem(delete); subMenuEdit.addItem(copy); subMenuEdit.addItem(move); subMenuEdit.addItem(rename); subMenuEdit.addItem(note); subMenuEdit.addItem(category); subMenuEdit.addItem(keyword); subMenuEdit.addItem(horizontalLineEdit3); subMenuEdit.addItem(addPropertyGroup); subMenuEdit.addItem(removePropertyGroup); subMenuEdit.addItem(horizontalLineEdit4); subMenuEdit.addItem(addSubscription); subMenuEdit.addItem(removeSubscription); // 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); 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"); skinMediumFont.addStyleName("okm-MainMenuItem"); skinBigFont.addStyleName("okm-MainMenuItem"); subMenuSkin.addItem(skinDefault); 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.tools.debug.console")), true, setViewDebugConsole); debugConsole.addStyleName("okm-MainMenuItem"); administration = new MenuItem( Util.menuHTML("img/icon/menu/administration.gif", Main.i18n("general.menu.tools.administration")), true, showAdministration); administration.addStyleName("okm-MainMenuItem"); administration.setVisible(false); //signature panel signaturePanelBar = new MenuBar(true); signaturePanelBar.setStyleName("okm-SubMenuBar"); signaturePanel = new MenuItem(Util.menuHTML("img/icon/menu/signature_panel.png", "Signature Panel"), true, signaturePanelBar); updateSignature = new MenuItem(Util.menuHTML("img/icon/actions/delete.gif", "update Signature"), true, updateSignatureAction); updateSignature.addStyleName("okm-MainMenuItem"); signaturePanelBar.addItem(updateSignature); signaturePanel.addStyleName("okm-MainMenuItem"); // Submenu preferences opions 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"); subMenuPreferences.addItem(userPreferences); // Submenu preferences 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); subMenuTools.addItem(preferences); subMenuTools.addItem(signaturePanel); // 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"); addBookmark = new MenuItem( Util.menuHTML("img/icon/actions/add_bookmark.gif", Main.i18n("general.menu.bookmark.add")), true, addBookmarkOKM); addBookmark.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(addBookmark); 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.help.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.help.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.help.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.help.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.help.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.help.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.help.about")), true, aboutOKM); about.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"); reportFormat = new MenuItem( Util.menuHTML("img/icon/menu/preferences.gif", Main.i18n("general.menu.report.format")), true, subMenuReportFormat); reportFormat.addStyleName("okm-MainMenuItem"); // Submenu documents subMenuTemplates = new MenuBar(true); subMenuTemplates.setStyleName("okm-SubMenuBar"); subMenuTemplates.setAutoOpen(true); // Menu documents menuTemplates = new MenuItem(Main.i18n("general.menu.templates"), subMenuTemplates); menuTemplates.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(menuTemplates); mainMenu.addItem(menuHelp); mainMenu.setAutoOpen(false); // By default hide menus menuFile.setVisible(false); menuEdit.setVisible(false); menuTools.setVisible(false); menuBookmark.setVisible(false); menuTemplates.setVisible(false); menuReports.setVisible(false); menuHelp.setVisible(false); initWidget(mainMenu); } // Lang refresh public void langRefresh() { bookmarkPopup.langRefresh(); // Refreshing popup manageBookmarkPopup.langRefresh(); // Refreshing management popup menuFile.setText(Main.i18n("general.menu.file")); findFolder.setHTML( Util.menuHTML("img/icon/actions/folder_find.gif", Main.i18n("general.menu.file.find.folder"))); findDocument.setHTML( Util.menuHTML("img/icon/actions/document_find.png", Main.i18n("general.menu.file.find.document"))); createFolder.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"))); createFromTemplate.setHTML(Util.menuHTML("img/icon/actions/create_from_template.gif", Main.i18n("general.menu.file.create.from.template"))); export.setHTML(Util.menuHTML("img/icon/actions/export.gif", Main.i18n("general.menu.file.export"))); startWorkflow.setHTML(Util.menuHTML("img/icon/actions/start_workflow.gif", Main.i18n("general.menu.file.start.workflow"))); refresh.setHTML(Util.menuHTML("img/icon/actions/refresh.gif", Main.i18n("general.menu.file.refresh"))); 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"))); restore.setHTML(Util.menuHTML("img/icon/actions/restore.gif", Main.i18n("general.menu.file.restore"))); purge.setHTML(Util.menuHTML("img/icon/actions/purge.gif", Main.i18n("general.menu.file.purge"))); 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"))); menuEdit.setText(Main.i18n("general.menu.edit")); lock.setHTML(Util.menuHTML("img/icon/actions/lock.gif", Main.i18n("general.menu.edit.lock"))); unlock.setHTML(Util.menuHTML("img/icon/actions/unlock.gif", Main.i18n("general.menu.edit.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.edit.checkout"))); checkin.setHTML(Util.menuHTML("img/icon/actions/checkin.gif", Main.i18n("general.menu.edit.checkin"))); cancelCheckout.setHTML(Util.menuHTML("img/icon/actions/cancel_checkout.gif", Main.i18n("general.menu.edit.cancel.checkout"))); delete.setHTML(Util.menuHTML("img/icon/actions/delete.gif", Main.i18n("general.menu.edit.delete"))); move.setHTML(Util.menuHTML("img/icon/actions/move_document.gif", Main.i18n("general.menu.edit.move"))); copy.setHTML(Util.menuHTML("img/icon/actions/copy.gif", Main.i18n("general.menu.edit.copy"))); rename.setHTML(Util.menuHTML("img/icon/actions/rename.gif", Main.i18n("general.menu.edit.rename"))); note.setHTML(Util.menuHTML("img/icon/actions/add_note.png", Main.i18n("general.menu.edit.add.note"))); category.setHTML(Util.menuHTML("img/icon/stackpanel/table_key.gif", Main.i18n("category.add"))); keyword.setHTML(Util.menuHTML("img/icon/actions/book_add.png", Main.i18n("keyword.add"))); addPropertyGroup.setHTML(Util.menuHTML("img/icon/actions/add_property_group.gif", Main.i18n("general.menu.edit.add.property.group"))); removePropertyGroup.setHTML(Util.menuHTML("img/icon/actions/remove_property_group.gif", Main.i18n("general.menu.edit.remove.property.group"))); addSubscription.setHTML(Util.menuHTML("img/icon/actions/add_subscription.gif", Main.i18n("general.menu.edit.add.subscription"))); removeSubscription.setHTML(Util.menuHTML("img/icon/actions/remove_subscription.gif", Main.i18n("general.menu.edit.remove.subscription"))); 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"))); 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"))); debugConsole .setHTML(Util.menuHTML("img/icon/menu/console.gif", Main.i18n("general.menu.tools.debug.console"))); administration.setHTML( Util.menuHTML("img/icon/menu/administration.gif", Main.i18n("general.menu.tools.administration"))); signaturePanel.setHTML(Util.menuHTML("img/icon/menu/signature_panel.png", "Signature Panel")); 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"))); addBookmark.setHTML( Util.menuHTML("img/icon/actions/add_bookmark.gif", Main.i18n("general.menu.bookmark.add"))); 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(); menuTemplates.setHTML(Main.i18n("general.menu.templates")); 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.help.documentation"), URI_DOCUMENTATION))); bugReport.setHTML(Util.menuHTML("img/icon/menu/bugs.gif", Util.windowOpen(Main.i18n("general.menu.help.bug.report"), URI_BUG_REPORT))); supportRequest.setHTML(Util.menuHTML("img/icon/menu/support.gif", Util.windowOpen(Main.i18n("general.menu.help.support.request"), URI_SUPPORT_REQUEST))); publicForum.setHTML(Util.menuHTML("img/icon/menu/forum.gif", Util.windowOpen(Main.i18n("general.menu.help.public.forum"), URI_PUBLIC_FORUM))); versionChanges.setHTML(Util.menuHTML("img/icon/menu/brick.gif", Util.windowOpen(Main.i18n("general.menu.help.version.changes"), URI_VERSION_CHANGES))); projectWeb.setHTML(Util.menuHTML("img/icon/menu/home.gif", Util.windowOpen(Main.i18n("general.menu.help.project.web"), URI_PROJECT_WEB))); about.setHTML(Util.menuHTML("img/icon/menu/about.gif", Main.i18n("general.menu.help.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(createFolder); } else { disable(createFolder); } if (mainMenuOption.findFolderOption) { enable(findFolder); } else { disable(findFolder); } if (mainMenuOption.findDocumentOption) { enable(findDocument); } else { disable(findDocument); } 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.createFromTemplateOption) { enable(createFromTemplate); } else { disable(createFromTemplate); } if (mainMenuOption.exportOption) { enable(export); } else { disable(export); } if (mainMenuOption.workflowOption) { enable(startWorkflow); } else { disable(startWorkflow); } if (mainMenuOption.refreshOption) { enable(refresh); } else { disable(refresh); } if (mainMenuOption.scannerOption) { enable(scanner); } else { disable(scanner); } if (mainMenuOption.uploaderOption) { enable(uploader); } else { disable(uploader); } if (mainMenuOption.restore) { enable(restore); } else { disable(restore); } if (mainMenuOption.purge) { enable(purge); } else { disable(purge); } 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.moveOption) { enable(move); } else { disable(move); } if (mainMenuOption.addNoteOption) { enable(note); } else { disable(note); } if (mainMenuOption.addCategoryOption) { enable(category); } else { disable(category); } if (mainMenuOption.addKeywordOption) { enable(keyword); } else { disable(keyword); } if (mainMenuOption.renameOption) { enable(rename); } else { disable(rename); } if (mainMenuOption.addPropertyGroupOption) { enable(addPropertyGroup); } else { disable(addPropertyGroup); } if (mainMenuOption.addSubscription) { enable(addSubscription); } else { disable(addSubscription); } if (mainMenuOption.removeSubscription) { enable(removeSubscription); } else { disable(removeSubscription); } // Property group is evaluated in toolbar getAllGroups() if (mainMenuOption.homeOption) { enable(home); enable(defaultHome); enable(addBookmark); } else { disable(home); disable(defaultHome); disable(addBookmark); } for (MenuItem item : templateMenuItems) { if (mainMenuOption.createFromTemplateOption) { enable(item); } else { disable(item); } } } /** * enableAddPropertyGroup */ public void enableAddPropertyGroup() { if (mainMenuOption != null) { // Condition caused by loading case mainMenuOption.addPropertyGroupOption = true; } enable(addPropertyGroup); } /** * disableAddPropertyGroup */ public void disableAddPropertyGroup() { if (mainMenuOption != null) { // Condition caused by loading case mainMenuOption.addPropertyGroupOption = false; } disable(addPropertyGroup); } /** * enableRemovePropertyGroup */ public void enableRemovePropertyGroup() { if (mainMenuOption != null) { // Condition caused by loading case mainMenuOption.removePropertyGroupOption = true; } enable(removePropertyGroup); } /** * disableRemovePropertyGroup */ public void disableRemovePropertyGroup() { if (mainMenuOption != null) { // Condition caused by loading case mainMenuOption.removePropertyGroupOption = false; } disable(removePropertyGroup); } /** * disableAllOptions */ public void disableAllOptions() { mainMenuOption = new ToolBarOption(); evaluateMenuOptions(); } /** * Sets the main menu options * * @param mainMenuOption The manin Menu options */ public void setOptions(ToolBarOption mainMenuOption) { this.mainMenuOption = mainMenuOption; evaluateMenuOptions(); } // Command menu to restore Command restoreOKM = new Command() { public void execute() { if (mainMenuOption.restore) { Main.get().mainPanel.topPanel.toolBar.executeRestore(); } } }; // Command menu to purge Command purgeOKM = new Command() { public void execute() { if (mainMenuOption.purge) { Main.get().mainPanel.topPanel.toolBar.executePurge(); } } }; // 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 folder Command createFolderOKM = new Command() { public void execute() { if (mainMenuOption.createFolderOption) { Main.get().mainPanel.topPanel.toolBar.executeFolderDirectory(); } } }; // Command menu to find folder Command findFolderOKM = new Command() { public void execute() { if (mainMenuOption.findFolderOption) { Main.get().mainPanel.topPanel.toolBar.executeFindFolder(); } } }; // Command menu to find document Command findDocumentOKM = new Command() { public void execute() { if (mainMenuOption.findDocumentOption) { Main.get().mainPanel.topPanel.toolBar.executeFindDocument(); } } }; // 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 send document attachment Command createFromTemplateOKM = new Command() { public void execute() { if (mainMenuOption.createFromTemplateOption) { Main.get().mainPanel.topPanel.toolBar.executeCreateFromTemplate(); } } }; // Command menu to export Command exportToFile = new Command() { public void execute() { if (mainMenuOption.exportOption) { Main.get().mainPanel.topPanel.toolBar.executeExport(); } } }; // Command menu to start workflow Command startWorkflowOKM = new Command() { public void execute() { if (mainMenuOption.workflowOption) { Main.get().mainPanel.topPanel.toolBar.executeAddWorkflow(); } } }; // 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() { 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.executeCheckin(); } } }; // 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(); } } }; // Command menu to add note Command addNote = new Command() { public void execute() { if (mainMenuOption.addNoteOption) { Main.get().mainPanel.topPanel.toolBar.addNote(); } } }; // Command menu to add category Command addCategory = new Command() { public void execute() { if (mainMenuOption.addCategoryOption) { Main.get().mainPanel.topPanel.toolBar.addCategory(); } } }; // Command menu to add keyword Command addKeyword = new Command() { public void execute() { if (mainMenuOption.addKeywordOption) { Main.get().mainPanel.topPanel.toolBar.addKeyword(); } } }; // Command menu to add property group Command addPropertyGroupOKM = new Command() { public void execute() { if (mainMenuOption.addPropertyGroupOption) { Main.get().mainPanel.topPanel.toolBar.addPropertyGroup(); } } }; // Command menu to remove property group Command removePropertyGroupOKM = new Command() { public void execute() { if (mainMenuOption.removePropertyGroupOption) { Main.get().mainPanel.topPanel.toolBar.executeRemovePropertyGroup(); } } }; // Command menu to add subscription Command addSubscriptionOKM = new Command() { public void execute() { if (mainMenuOption.addSubscription) { Main.get().mainPanel.topPanel.toolBar.executeAddSubscription(); } } }; // Command menu to add subscription Command removeSubscriptionOKM = new Command() { public void execute() { if (mainMenuOption.removeSubscription) { Main.get().mainPanel.topPanel.toolBar.executeRemoveSubscription(); } } }; // 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() { if (Main.get().mainPanel.dashboard.userDashboard.getCheckouts() > 0) { Main.get().mainPanel.dashboard.changeView(UIDashboardConstants.DASHBOARD_USER); Main.get().mainPanel.topPanel.tabWorkspace.changeSelectedTab(UIDockPanelConstants.DASHBOARD); Main.get().confirmPopup.setConfirm(ConfirmPopup.CONFIRM_LOGOUT_DOCUMENTS_CHECKOUT); Main.get().confirmPopup.show(); } else { 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 show Signature Panel Command updateSignatureAction = new Command() { public void execute() { if (!Main.get().workspaceUserProperties.getWorkspace().isSignConfigured()) { Main.get().registerPFXPopup.show(); } else { Main.get().confirmPopup.setConfirm(ConfirmPopup.CONFIRM_DELETE_PFX); Main.get().confirmPopup.show(); } } }; // 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 add bookmark Command addBookmarkOKM = new Command() { public void execute() { if (mainMenuOption.bookmarkOption) { Main.get().mainPanel.topPanel.toolBar.executeAddBookmark(); } } }; // 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 createFolder.setVisible(option.isCreateFolderOption()); addDocument.setVisible(option.isAddDocumentOption()); findFolder.setVisible(option.isFindFolderOption()); findDocument.setVisible(option.isFindDocumentOption()); download.setVisible(option.isDownloadOption()); downloadPdf.setVisible(option.isDownloadPdfOption()); sendDocumentLink.setVisible(option.isSendDocumentLinkOption()); sendDocumentAttachment.setVisible(option.isSendDocumentAttachmentOption()); createFromTemplate.setVisible(option.isCreateFromTemplateOption()); export.setVisible(option.isExportOption()); horizontalLineFile1.setVisible( option.isCreateFolderOption() || option.isFindFolderOption() || option.isFindDocumentOption() || option.isAddDocumentOption() || option.isDownloadOption() || option.isDownloadPdfOption() || option.isSendDocumentLinkOption() || option.isSendDocumentAttachmentOption() || option.isExportOption() || option.isCreateFromTemplateOption()); startWorkflow.setVisible(option.isWorkflowOption()); horizontalLineFile2.setVisible(option.isWorkflowOption()); refresh.setVisible(option.isRefreshOption()); horizontalLineFile3.setVisible(option.isRefreshOption()); scanner.setVisible(option.isScannerOption()); uploader.setVisible(option.isUploaderOption()); horizontalLineFile4.setVisible(option.isScannerOption() || option.isUploaderOption()); restore.setVisible(option.isRestoreOption()); purge.setVisible(option.isPurgeOption()); purgeTrash.setVisible(option.isPurgeTrashOption()); horizontalLineFile5 .setVisible(option.isPurgeTrashOption() || option.isPurgeOption() || option.isRestoreOption()); // EDIT MENU lock.setVisible(option.isLockOption()); unlock.setVisible(option.isUnLockOption()); horizontalLineEdit1.setVisible(option.isLockOption() || option.isUnLockOption()); checkout.setVisible(option.isCheckoutOption()); checkin.setVisible(option.isCheckinOption()); cancelCheckout.setVisible(option.isCancelCheckoutOption()); horizontalLineEdit2.setVisible( option.isCheckoutOption() || option.isCheckinOption() || option.isCancelCheckoutOption()); delete.setVisible(option.isDeleteOption()); copy.setVisible(option.isCopyOption()); move.setVisible(option.isMoveOption()); rename.setVisible(option.isRenameOption()); note.setVisible(option.isAddNoteOption()); category.setVisible(option.isAddCategoryOption()); keyword.setVisible(option.isAddKeywordOption()); horizontalLineEdit3.setVisible(option.isDeleteOption() || option.isCopyOption() || option.isMoveOption() || option.isRenameOption() || option.isAddNoteOption() || option.isAddCategoryOption() || option.isAddKeywordOption() || option.isMergePdfOption()); addPropertyGroup.setVisible(option.isAddPropertyGroupOption()); removePropertyGroup.setVisible(option.isRemovePropertyGroupOption()); horizontalLineEdit4.setVisible(option.isAddPropertyGroupOption() || option.isRemovePropertyGroupOption()); addSubscription.setVisible(option.isAddSubscriptionOption()); removeSubscription.setVisible(option.isRemoveSubscriptionOption()); // MENU TOOLS if (!option.isLanguagesOption()) { subMenuTools.removeItem(language); } if (!option.isSkinOption()) { subMenuTools.removeItem(skin); } debugConsole.setVisible(option.isDebugOption()); administration.setVisible(option.isAdministrationOption()); if (!option.isPreferencesOption()) { subMenuTools.removeItem(preferences); } // MENU BOOKMARKS home.setVisible(option.isHomeOption()); defaultHome.setVisible(option.isAddBookmarkOption()); addBookmark.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); } /** * setTemplatesMenuVisible * * @param visible */ public void setTemplatesMenuVisible(boolean visible) { menuTemplates.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 */ 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); } } /** * refreshAvailableTemplates */ public void refreshAvailableTemplates() { if (menuTemplates.isVisible()) { documentService.getAllTemplates(new AsyncCallback<List<GWTDocument>>() { @Override public void onSuccess(List<GWTDocument> result) { subMenuTemplates.clearItems(); // Remove all items fldMenus = new HashMap<String, MenuBar>(); templateMenuItems = new ArrayList<MenuItem>(); fldMenus.put(GWTRepository.TEMPLATES, subMenuTemplates); for (final GWTDocument doc : result) { String[] paths = doc.getPath().split("/"); String actualPath = GWTRepository.TEMPLATES; for (int i = 2; i < paths.length - 1; i++) { // Evaluates if new path exist otherside creates if (!fldMenus.containsKey(actualPath + "/" + paths[i])) { createSubMenu(actualPath, paths[i]); // Menuitem // folder } actualPath += "/" + paths[i]; } MenuItem docItem = new MenuItem( Util.menuHTML("../mime/" + doc.getMimeType(), doc.getName()), true, new Command() { @Override public void execute() { if (mainMenuOption.createFromTemplateOption) { Main.get().templatePopup.reset(doc, Main.get().activeFolderTree.getActualPath(), false); Main.get().templatePopup.center(); } } }); docItem.addStyleName("okm-MainMenuItem"); fldMenus.get(actualPath).addItem(docItem); templateMenuItems.add(docItem); if (mainMenuOption.createFromTemplateOption) { enable(docItem); } else { disable(docItem); } } } @Override public void onFailure(Throwable caught) { Main.get().showError("getAllTemplatesByType", caught); } }); } } /** * createSubMenu */ private void createSubMenu(String parentFolderPath, String fldName) { MenuBar subMenuFolder = new MenuBar(true); subMenuFolder.setStyleName("okm-SubMenuBar"); MenuItem menuFolder = new MenuItem(Util.menuHTML("img/menuitem_empty.gif", fldName), true, subMenuFolder); menuFolder.addStyleName("okm-MainMenuItem"); fldMenus.put(parentFolderPath + "/" + fldName, subMenuFolder); fldMenus.get(parentFolderPath).addItem(menuFolder); } /** * startRefreshingMenus */ public void startRefreshingMenus(double scheduleTime) { menusRefreshing = new Timer() { public void run() { refreshAvailableTemplates(); } }; menusRefreshing.scheduleRepeating(new Double(scheduleTime).intValue()); } }