/** * OpenKM, Open Document Management System (http://www.openkm.com) * Copyright (c) 2006-2011 Paco Avila & Josep Llort * * No bytes were intentionally harmed during the development of this application. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package com.openkm.frontend.client.extension; import java.util.Iterator; import java.util.List; import com.openkm.frontend.client.Main; import com.openkm.frontend.client.contants.ui.UIMenuConstants; import com.openkm.frontend.client.extension.event.handler.DashboardHandlerExtension; import com.openkm.frontend.client.extension.event.handler.DocumentHandlerExtension; import com.openkm.frontend.client.extension.event.handler.FolderHandlerExtension; import com.openkm.frontend.client.extension.event.handler.LanguageHandlerExtension; import com.openkm.frontend.client.extension.event.handler.MailHandlerExtension; import com.openkm.frontend.client.extension.event.handler.NavigatorHandlerExtension; import com.openkm.frontend.client.extension.event.handler.PropertyGroupHandlerExtension; import com.openkm.frontend.client.extension.event.handler.ToolBarHandlerExtension; import com.openkm.frontend.client.extension.event.handler.WorkspaceHandlerExtension; import com.openkm.frontend.client.extension.widget.menu.MenuItemExtension; import com.openkm.frontend.client.extension.widget.preview.PreviewExtension; import com.openkm.frontend.client.extension.widget.tabdocument.TabDocumentExtension; import com.openkm.frontend.client.extension.widget.tabfolder.TabFolderExtension; import com.openkm.frontend.client.extension.widget.tabmail.TabMailExtension; import com.openkm.frontend.client.extension.widget.tabworkspace.TabWorkspaceExtension; import com.openkm.frontend.client.extension.widget.toolbar.ToolBarBoxExtension; import com.openkm.frontend.client.extension.widget.toolbar.ToolBarButtonExtension; import com.openkm.frontend.client.extension.widget.userinfo.UserInfoExtension; /** * ExtensionManager * * @author jllort * */ public class ExtensionManager { // Declare here your new widgets public static void start(List<Object> extensions) { for (Iterator<Object> it = extensions.iterator(); it.hasNext();) { Object obj = it.next(); // Registering widgets if (obj instanceof TabDocumentExtension) { addTabDocumentExtension((TabDocumentExtension) obj); } else if (obj instanceof TabFolderExtension) { addTabFolderExtension((TabFolderExtension) obj); } else if (obj instanceof TabMailExtension) { addTabMailExtension((TabMailExtension) obj); } else if (obj instanceof ToolBarButtonExtension) { addToolBarButtonExtension((ToolBarButtonExtension) obj); } else if (obj instanceof MenuItemExtension) { addMenuExtension((MenuItemExtension) obj); } else if (obj instanceof TabWorkspaceExtension) { addWorkspaceExtension((TabWorkspaceExtension) obj); } else if (obj instanceof ToolBarBoxExtension) { addToolBarBoxExtension((ToolBarBoxExtension) obj); } else if (obj instanceof PreviewExtension) { addPreviewExtension((PreviewExtension) obj); } else if (obj instanceof UserInfoExtension) { addUserInfoExtension((UserInfoExtension) obj); } // Registering handlers if (obj instanceof DocumentHandlerExtension) { addDocumentHandlerExtension((DocumentHandlerExtension) obj); } if (obj instanceof FolderHandlerExtension) { addFolderHandlerExtension((FolderHandlerExtension) obj); } if (obj instanceof MailHandlerExtension) { addMailHandlerExtension((MailHandlerExtension) obj); } if (obj instanceof ToolBarHandlerExtension) { addToolBarHandlerExtension((ToolBarHandlerExtension) obj); } if (obj instanceof LanguageHandlerExtension) { addLanguageHandlerExtension((LanguageHandlerExtension) obj); } if (obj instanceof NavigatorHandlerExtension) { addNavigatorHandlerExtension((NavigatorHandlerExtension) obj); } if (obj instanceof WorkspaceHandlerExtension) { addWorkspaceHandlerExtension((WorkspaceHandlerExtension) obj); } if (obj instanceof PropertyGroupHandlerExtension) { addPropertyGroupHandlerExtension((PropertyGroupHandlerExtension) obj); } if (obj instanceof DashboardHandlerExtension) { addDashboardHandlerExtension((DashboardHandlerExtension) obj); } } } /** * addTabDocumentExtension * * @param extension */ private static void addTabDocumentExtension(TabDocumentExtension extension) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.addDocumentExtension(extension); } /** * addTabFolderExtension * * @param extension */ private static void addTabFolderExtension(TabFolderExtension extension) { Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.addFolderExtension(extension); } /** * addTabMailExtension * * @param extension */ private static void addTabMailExtension(TabMailExtension extension) { Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.addMailExtension(extension); } /** * addMenu * * @param extension */ private static void addMenuExtension(MenuItemExtension extension) { switch (extension.getMenuLocation()) { case UIMenuConstants.NEW_MENU: case UIMenuConstants.MAIN_MENU_FILE: case UIMenuConstants.MAIN_MENU_EDIT: case UIMenuConstants.MAIN_MENU_TOOLS: case UIMenuConstants.MAIN_MENU_BOOKMARS: case UIMenuConstants.MAIN_MENU_HELP: Main.get().mainPanel.topPanel.mainMenu.addMenuExtension(extension); break; } } /** * addToolBarButtonExtension * * @param extension */ private static void addToolBarButtonExtension(ToolBarButtonExtension extension) { Main.get().mainPanel.topPanel.toolBar.addToolBarButtonExtension(extension); } /** * addWorkspaceExtension * * @param extension */ private static void addWorkspaceExtension(TabWorkspaceExtension extension) { Main.get().mainPanel.topPanel.tabWorkspace.addWorkspaceExtension(extension); } /** * addToolBarBoxExtension * * @param extension */ private static void addToolBarBoxExtension(ToolBarBoxExtension extension) { Main.get().mainPanel.dashboard.addToolBarBoxExtension(extension); } /** * addPreviewExtension * * @param extension */ private static void addPreviewExtension(PreviewExtension extension) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.addPreviewExtension(extension); } /** * addUserInfoExtension * * @param extension */ private static void addUserInfoExtension(UserInfoExtension extension) { Main.get().mainPanel.bottomPanel.userInfo.addUserInfoExtension(extension); } /** * addDocumentHandlerExtension * * @param handlerExtension */ private static void addDocumentHandlerExtension(DocumentHandlerExtension handlerExtension) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.addDocumentHandlerExtension(handlerExtension); Main.get().mainPanel.desktop.browser.fileBrowser.addDocumentHandlerExtension(handlerExtension); } /** * addFolderHandlerExtension * * @param handlerExtension */ private static void addFolderHandlerExtension(FolderHandlerExtension handlerExtension) { Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.addFolderHandlerExtension(handlerExtension); Main.get().mainPanel.desktop.browser.fileBrowser.addFolderHandlerExtension(handlerExtension); } /** * addMailHandlerExtension * * @param handlerExtension */ private static void addMailHandlerExtension(MailHandlerExtension handlerExtension) { Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.addMailHandlerExtension(handlerExtension); Main.get().mainPanel.desktop.browser.fileBrowser.addMailHandlerExtension(handlerExtension); } /** * addToolBarHandlerExtension * * @param handlerExtension */ private static void addToolBarHandlerExtension(ToolBarHandlerExtension handlerExtension) { Main.get().mainPanel.topPanel.toolBar.addToolBarHandlerExtension(handlerExtension); } /** * addLanguageHandlerExtension * * @param handlerExtension */ private static void addLanguageHandlerExtension(LanguageHandlerExtension handlerExtension) { Main.get().addLanguageHandlerExtension(handlerExtension); } /** * addNavigatorHandlerExtension * * @param handlerExtension */ private static void addNavigatorHandlerExtension(NavigatorHandlerExtension handlerExtension) { Main.get().mainPanel.desktop.navigator.stackPanel.addNavigatorHandlerExtension(handlerExtension); } /** * addWorkspaceHandlerExtension * * @param handlerExtension */ private static void addWorkspaceHandlerExtension(WorkspaceHandlerExtension handlerExtension) { Main.get().mainPanel.topPanel.tabWorkspace.addWorkspaceHandlerExtension(handlerExtension); } /** * addPropertyGroupHandlerExtension * * @param handlerExtension */ private static void addPropertyGroupHandlerExtension(PropertyGroupHandlerExtension handlerExtension) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.addPropertyGroupHandlerExtension(handlerExtension); Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.addPropertyGroupHandlerExtension(handlerExtension); } /** * addDashboardHandlerExtension * * @param handlerExtension */ private static void addDashboardHandlerExtension(DashboardHandlerExtension handlerExtension) { Main.get().mainPanel.dashboard.addDashboardHandlerExtension(handlerExtension); } }