/******************************************************************************* * Copyright (c) 2013 hangum. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * hangum - initial API and implementation ******************************************************************************/ package com.hangum.tadpole.application.start; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.ICoolBarManager; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.action.ToolBarContributionItem; import org.eclipse.jface.action.ToolBarManager; import org.eclipse.swt.SWT; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.actions.ActionFactory; import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; import org.eclipse.ui.application.ActionBarAdvisor; import org.eclipse.ui.application.IActionBarConfigurer; import com.hangum.tadpole.application.start.action.AboutAction; import com.hangum.tadpole.application.start.action.BillAction; import com.hangum.tadpole.application.start.action.BugIssueAction; import com.hangum.tadpole.application.start.action.NewVersionCheckAction; import com.hangum.tadpole.application.start.action.UserManuelAction; //import com.hangum.tadpole.bill.core.actions.BillAction; import com.hangum.tadpole.commons.admin.core.actions.AdminSQLAuditAction; import com.hangum.tadpole.commons.admin.core.actions.AdminSystemSettingAction; import com.hangum.tadpole.commons.admin.core.actions.AdminUserAction; import com.hangum.tadpole.commons.admin.core.actions.JDBCDriverManagerAction; import com.hangum.tadpole.commons.admin.core.actions.SendMessageAction; import com.hangum.tadpole.commons.util.ApplicationArgumentUtils; import com.hangum.tadpole.compare.core.actions.OpenCompareAction; import com.hangum.tadpole.engine.permission.PermissionChecker; import com.hangum.tadpole.manager.core.actions.global.AdminTransactionConnectionManagerAction; import com.hangum.tadpole.manager.core.actions.global.DBManagerAction; import com.hangum.tadpole.manager.core.actions.global.ResourceManagerAction; import com.hangum.tadpole.manager.core.actions.global.RestfulAPIManagerAction; import com.hangum.tadpole.manager.core.actions.global.SQLAuditAction; import com.hangum.tadpole.manager.core.actions.global.SchemaHistoryAction; import com.hangum.tadpole.manager.core.actions.global.TransactionConnectionManagerAction; import com.hangum.tadpole.monitoring.core.actions.monitoring.MonitoringRealTimeAction; import com.hangum.tadpole.preference.define.GetAdminPreference; import com.hangum.tadpole.rdb.core.actions.global.ConnectDatabaseAction; import com.hangum.tadpole.rdb.core.actions.global.DeleteResourceAction; import com.hangum.tadpole.rdb.core.actions.global.ExitAction; import com.hangum.tadpole.rdb.core.actions.global.OpenDBRelationAction; import com.hangum.tadpole.rdb.core.actions.global.OpenObjectQueryEditorAction; import com.hangum.tadpole.rdb.core.actions.global.OpenQueryEditorAction; import com.hangum.tadpole.rdb.core.actions.global.PreferenceAction; import com.hangum.tadpole.session.manager.SessionManager; /** * Define at action, toolbar, menu * * @author hangum */ public class ApplicationActionBarAdvisor extends ActionBarAdvisor { private IWorkbenchAction exitAction; private IAction saveAction; private IAction saveAsAction; private IAction connectAction; private IAction queryOpenAction; private IAction openObjectQueryEditorAction; private IAction dbRelationOpenAction; private IAction deleteResourceAction; private IAction restFulAPIAction; /** send message */ private IAction adminSendMessageAction; private IAction adminUserAction; private IAction adminSQLAuditAction; private IAction adminSystemSettingAction; /** User permission action */ private IAction dbMgmtAction; /** transaction connection */ private IAction transactionConnectionAction; private IAction adminTransactionConnectionManagerAction; /** executed sql */ private IAction executedSQLAction; /** schedule action */ // private IAction monitoringManageAction; private IAction monitoringRealTimeAction; private IAction jDBCDriverManagerAction; private IAction schemaHistoryAction; private IAction openCompareAction; private IAction resourceManageAction; private IAction preferenceAction; private IAction aboutAction; private IAction bugIssueAction; private IAction userManuelAction; private IAction newVersionCheckAction; // agens monitor // private IAction agensMonitorAction; private IAction billAction; public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { super(configurer); } protected void makeActions(final IWorkbenchWindow window) { saveAction = ActionFactory.SAVE.create(window); register(saveAction); saveAsAction = ActionFactory.SAVE_AS.create(window); register(saveAsAction); connectAction = new ConnectDatabaseAction(window); register(connectAction); queryOpenAction = new OpenQueryEditorAction(window); register(queryOpenAction); openObjectQueryEditorAction = new OpenObjectQueryEditorAction(window); register(openObjectQueryEditorAction); dbRelationOpenAction = new OpenDBRelationAction(window); register(dbRelationOpenAction); deleteResourceAction = new DeleteResourceAction(window); register(deleteResourceAction); adminSendMessageAction = new SendMessageAction(window); register(adminSendMessageAction); adminUserAction = new AdminUserAction(window); register(adminUserAction); dbMgmtAction = new DBManagerAction(window); register(dbMgmtAction); transactionConnectionAction = new TransactionConnectionManagerAction(window); register(transactionConnectionAction); adminTransactionConnectionManagerAction = new AdminTransactionConnectionManagerAction(window); register(adminTransactionConnectionManagerAction); executedSQLAction = new SQLAuditAction(window); register(executedSQLAction); // monitoringManageAction = new MonitoringManageAction(window); // register(monitoringManageAction); monitoringRealTimeAction = new MonitoringRealTimeAction(window); register(monitoringRealTimeAction); // // agensMonitorAction = new AgensManagerOpenAction(window); // register(agensMonitorAction); jDBCDriverManagerAction = new JDBCDriverManagerAction(window); register(jDBCDriverManagerAction); adminSQLAuditAction = new AdminSQLAuditAction(window); register(adminSQLAuditAction); adminSystemSettingAction = new AdminSystemSettingAction(window); register(adminSystemSettingAction); schemaHistoryAction = new SchemaHistoryAction(window); register(schemaHistoryAction); openCompareAction = new OpenCompareAction(window); register(openCompareAction); resourceManageAction = new ResourceManagerAction(window); register(resourceManageAction); restFulAPIAction = new RestfulAPIManagerAction(window); register(restFulAPIAction); exitAction = new ExitAction(window); register(exitAction); preferenceAction = new PreferenceAction(window); register(preferenceAction); aboutAction = new AboutAction(window); register(aboutAction); bugIssueAction = new BugIssueAction(window); register(bugIssueAction); userManuelAction = new UserManuelAction(window); register(userManuelAction); newVersionCheckAction = new NewVersionCheckAction(window); register(newVersionCheckAction); billAction = new BillAction(window); register(billAction); } /** * Comment at 2.1 RC3 has error(https://bugs.eclipse.org/bugs/show_bug.cgi?id=410260) */ protected void fillMenuBar(IMenuManager menuBar) { MenuManager fileMenu = new MenuManager(Messages.get().ApplicationActionBarAdvisor_0, IWorkbenchActionConstants.M_FILE); MenuManager manageMenu = new MenuManager(Messages.get().ApplicationActionBarAdvisor_1, IWorkbenchActionConstants.M_PROJECT); MenuManager adminMenu = null; MenuManager serviceMenu = null; boolean isAdmin = PermissionChecker.isAdmin(SessionManager.getRepresentRole()); if(isAdmin) { adminMenu = new MenuManager(Messages.get().ApplicationActionBarAdvisor_2, IWorkbenchActionConstants.MENU_PREFIX + Messages.get().ApplicationActionBarAdvisor_3); } MenuManager preferenceMenu = new MenuManager(Messages.get().ApplicationActionBarAdvisor_4, IWorkbenchActionConstants.M_PROJECT_CONFIGURE); MenuManager helpMenu = new MenuManager(Messages.get().ApplicationActionBarAdvisor_5, IWorkbenchActionConstants.M_HELP); menuBar.add(fileMenu); menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); menuBar.add(manageMenu); menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); if(isAdmin) { menuBar.add(adminMenu); menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); } if(ApplicationArgumentUtils.isOnlineServer()) { serviceMenu = new MenuManager(Messages.get().ServiceBill, IWorkbenchActionConstants.M_PROJECT_CONFIGURE); menuBar.add(serviceMenu); serviceMenu.add(billAction); } menuBar.add(preferenceMenu); menuBar.add(helpMenu); // File fileMenu.add(connectAction); fileMenu.add(saveAction); fileMenu.add(saveAsAction); fileMenu.add(new Separator()); fileMenu.add(deleteResourceAction); // if(!TadpoleApplicationContextManager.isPersonOperationType()) { fileMenu.add(new Separator()); fileMenu.add(exitAction); // } // Manage manageMenu.add(restFulAPIAction); manageMenu.add(transactionConnectionAction); manageMenu.add(resourceManageAction); manageMenu.add(dbMgmtAction); manageMenu.add(executedSQLAction); manageMenu.add(schemaHistoryAction); manageMenu.add(openCompareAction); if(isAdmin) { adminMenu.add(adminSendMessageAction); adminMenu.add(new Separator()); adminMenu.add(adminSystemSettingAction); adminMenu.add(new Separator()); adminMenu.add(adminUserAction); adminMenu.add(adminSQLAuditAction); adminMenu.add(adminTransactionConnectionManagerAction); adminMenu.add(new Separator()); adminMenu.add(jDBCDriverManagerAction); } // preference action preferenceMenu.add(preferenceAction); // Help helpMenu.add(userManuelAction); helpMenu.add(bugIssueAction); helpMenu.add(newVersionCheckAction); helpMenu.add(aboutAction); } protected void fillCoolBar(ICoolBarManager coolBar) { IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT); coolBar.add(new ToolBarContributionItem(toolbar, "main")); //$NON-NLS-1$ toolbar.add(connectAction); toolbar.add(new Separator()); toolbar.add(saveAction); toolbar.add(saveAsAction); toolbar.add(new Separator()); toolbar.add(queryOpenAction); toolbar.add(openObjectQueryEditorAction); toolbar.add(new Separator()); toolbar.add(dbRelationOpenAction); toolbar.add(new Separator()); // toolbar.add(monitoringManageAction); if("YES".equals(GetAdminPreference.getSupportMonitoring())) { toolbar.add(monitoringRealTimeAction); } // toolbar.add(agensMonitorAction); // toolbar.add(new Separator()); // toolbar.add(deleteResourceAction); // toolbar.add(new Separator()); // if(PermissionChecker.isAdmin(SessionManager.getRepresentRole())) { // toolbar.add(sendMessageAction); // toolbar.add(new Separator()); // toolbar.add(userLoginHistoryAction); // toolbar.add(new Separator()); // } // toolbar.add(restFulAPIAction); // toolbar.add(new Separator()); // // toolbar.add(transactionConnectionAction); // toolbar.add(new Separator()); // // toolbar.add(resourceManageAction); // toolbar.add(new Separator()); // // toolbar.add(userPermissionAction); // toolbar.add(new Separator()); // // toolbar.add(executedSQLAction); // toolbar.add(new Separator()); // // toolbar.add(schemaHistoryAction); // toolbar.add(new Separator()); // toolbar.add(preferenceAction); // toolbar.add(new Separator()); // // toolbar.add(bugIssueAction); // toolbar.add(aboutAction); // if(!TadpoleApplicationContextManager.isPersonOperationType()) { // toolbar.add(new Separator()); toolbar.add(exitAction); // } } }