/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.advisor.ui.actions;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
import org.eclipse.datatools.connectivity.IProfileListener;
import org.eclipse.datatools.connectivity.ProfileManager;
import org.eclipse.datatools.connectivity.db.generic.ui.wizard.NewJDBCFilteredCPWizard;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.cheatsheets.OpenCheatSheetAction;
import org.teiid.designer.advisor.ui.AdvisorUiConstants;
import org.teiid.designer.advisor.ui.AdvisorUiPlugin;
import org.teiid.designer.advisor.ui.Messages;
import org.teiid.designer.datatools.ui.dialogs.NewTeiidFilteredCPWizard;
import org.teiid.designer.metamodels.core.ModelType;
import org.teiid.designer.runtime.DqpPlugin;
import org.teiid.designer.runtime.spi.ITeiidServer;
import org.teiid.designer.runtime.ui.actions.DeployVdbAction;
import org.teiid.designer.runtime.ui.actions.EditVdbAction;
import org.teiid.designer.runtime.ui.connection.CreateDataSourceAction;
import org.teiid.designer.runtime.ui.connection.SetConnectionProfileAction;
import org.teiid.designer.runtime.ui.preview.PreviewDataAction;
import org.teiid.designer.runtime.ui.server.RuntimeAssistant;
import org.teiid.designer.runtime.ui.vdb.ExecuteVdbAction;
import org.teiid.designer.ui.common.UiConstants.ConnectionProfileIds;
import org.teiid.designer.ui.common.util.UiUtil;
import org.teiid.designer.ui.common.util.WidgetUtil;
import org.teiid.designer.ui.viewsupport.IPropertiesContext;
import org.teiid.designer.ui.viewsupport.ModelerUiViewUtils;
/**
* Factory intended to provide high-level access to actions and their handlers for Teiid Designer Advisor framework
*/
public class AdvisorActionFactory implements AdvisorUiConstants {
static boolean actionsLoaded = false;
static final String EXT_PT = "cheatSheetContent"; //$NON-NLS-1$
static final String ID_ATTR = "id"; //$NON-NLS-1$
static final String NAME_ATTR = "name"; //$NON-NLS-1$
static final String CHEATSHEET_ELEMENT = "cheatsheet"; //$NON-NLS-1$
static final String CHEAT_SHEET_PLUGIN_ID = "org.eclipse.ui.cheatsheets"; //$NON-NLS-1$
static Map<String, AdvisorActionInfo> actionInfos;
static IConfigurationElement[] cheatsheets;
static Collection<IAction> cheatSheetActions;
static IAction ACTION_IMPORT_DDL;
static IAction ACTION_IMPORT_TEIID_CONNECTION_DDL;
static IAction ACTION_IMPORT_FLAT_FILE;
static IAction ACTION_IMPORT_JDBC;
static IAction ACTION_IMPORT_SALESFORCE;
static IAction ACTION_IMPORT_WSDL_TO_SOURCE;
static IAction ACTION_IMPORT_WSDL_TO_WS;
static IAction ACTION_IMPORT_XML_FILE;
static IAction ACTION_IMPORT_XML_FILE_REMOTE;
static IAction ACTION_CREATE_CONNECTION_FLAT_FILE;
static IAction ACTION_CREATE_CONNECTION_JDBC;
static IAction ACTION_CREATE_CONNECTION_LDAP;
static IAction ACTION_CREATE_CONNECTION_MODESHAPE;
static IAction ACTION_CREATE_CONNECTION_SALESFORCE;
static IAction ACTION_CREATE_CONNECTION_WEB_SERVICE;
static IAction ACTION_CREATE_CONNECTION_WEB_SERVICE_ODA;
static IAction ACTION_CREATE_CONNECTION_XML_FILE_LOCAL;
static IAction ACTION_CREATE_CONNECTION_XML_FILE_URL;
static IAction ACTION_NEW_MODEL_RELATIONAL_SOURCE;
static IAction ACTION_NEW_MODEL_RELATIONAL_VIEW;
static IAction ACTION_NEW_MODEL_WS;
static IAction ACTION_NEW_MODEL_XML_DOC;
static IAction ACTION_CREATE_VDB;
static IAction ACTION_DEFINE_VDB;
static IAction ACTION_EXECUTE_VDB;
static IAction ACTION_EDIT_VDB;
static IAction ACTION_DEPLOY_VDB;
static IAction ACTION_PREVIEW_DATA;
static IAction ACTION_OPEN_DATA_SOURCE_EXPLORER_VIEW;
static IAction ACTION_GENERATE_WS_MODELS_FROM_WSDL;
static IAction ACTION_NEW_TEIID_SERVER;
static IAction ACTION_EDIT_TEIID_SERVER;
static IAction ACTION_CREATE_DATA_SOURCE;
static IAction ACTION_SET_DEFAULT_TEIID_SERVER;
static IAction ACTION_REFRESH_TEIID_SERVER;
static IAction ACTION_NEW_TEIID_MODEL_PROJECT;
static IAction ACTION_DEFINE_TEIID_MODEL_PROJECT;
static IAction ACTION_DEFINE_VIEW_TABLE;
static IAction ACTION_DEFINE_VIEW_PROCEDURE;
static IAction ACTION_DEFINE_REST_PROCEDURE;
static void loadHandlers() {
AdvisorActionFactory.actionInfos = new HashMap<String, AdvisorActionInfo>();
addActionHandler(
COMMAND_IDS.IMPORT_DDL,
COMMAND_LABELS.IMPORT_DDL,
COMMAND_LABELS_SHORT.IMPORT_DDL,
COMMAND_DESC.IMPORT_DDL);
addActionHandler(
COMMAND_IDS.IMPORT_FLAT_FILE,
COMMAND_LABELS.IMPORT_FLAT_FILE,
COMMAND_LABELS_SHORT.IMPORT_FLAT_FILE,
COMMAND_DESC.IMPORT_FLAT_FILE);
addActionHandler(
COMMAND_IDS.IMPORT_JDBC,
COMMAND_LABELS.IMPORT_JDBC,
COMMAND_LABELS_SHORT.IMPORT_JDBC,
COMMAND_DESC.IMPORT_JDBC);
addActionHandler(
COMMAND_IDS.IMPORT_SALESFORCE,
COMMAND_LABELS.IMPORT_SALESFORCE,
COMMAND_LABELS_SHORT.IMPORT_SALESFORCE,
COMMAND_DESC.IMPORT_SALESFORCE);
addActionHandler(
COMMAND_IDS.IMPORT_WSDL_TO_SOURCE,
COMMAND_LABELS.IMPORT_WSDL_TO_SOURCE,
COMMAND_LABELS_SHORT.IMPORT_WSDL_TO_SOURCE,
COMMAND_DESC.IMPORT_WSDL_TO_SOURCE);
addActionHandler(
COMMAND_IDS.IMPORT_WSDL_TO_WS,
COMMAND_LABELS.IMPORT_WSDL_TO_WS,
COMMAND_LABELS_SHORT.IMPORT_WSDL_TO_WS,
COMMAND_DESC.IMPORT_WSDL_TO_WS);
addActionHandler(
COMMAND_IDS.IMPORT_XML_FILE,
COMMAND_LABELS.IMPORT_XML_FILE,
COMMAND_LABELS_SHORT.IMPORT_XML_FILE,
COMMAND_DESC.IMPORT_XML_FILE);
addActionHandler(
COMMAND_IDS.IMPORT_XML_FILE_URL,
COMMAND_LABELS.IMPORT_XML_FILE_URL,
COMMAND_LABELS_SHORT.IMPORT_XML_FILE_URL,
COMMAND_DESC.IMPORT_XML_FILE_URL);
addActionHandler(
COMMAND_IDS.IMPORT_TEIID_CONNECTION_DDL,
COMMAND_LABELS.IMPORT_TEIID_CONNECTION_DDL,
COMMAND_LABELS_SHORT.IMPORT_TEIID_CONNECTION_DDL,
COMMAND_DESC.IMPORT_TEIID_CONNECTION_DDL);
addActionHandler(
COMMAND_IDS.CREATE_CONNECTION_FLAT_FILE,
COMMAND_LABELS.CREATE_CONNECTION_FLAT_FILE,
COMMAND_LABELS_SHORT.CREATE_CONNECTION_FLAT_FILE,
COMMAND_DESC.CREATE_CONNECTION_FLAT_FILE);
addActionHandler(
COMMAND_IDS.CREATE_CONNECTION_JDBC,
COMMAND_LABELS.CREATE_CONNECTION_JDBC,
COMMAND_LABELS_SHORT.CREATE_CONNECTION_JDBC,
COMMAND_DESC.CREATE_CONNECTION_JDBC);
addActionHandler(
COMMAND_IDS.CREATE_CONNECTION_LDAP,
COMMAND_LABELS.CREATE_CONNECTION_LDAP,
COMMAND_LABELS_SHORT.CREATE_CONNECTION_LDAP,
COMMAND_DESC.CREATE_CONNECTION_LDAP);
addActionHandler(
COMMAND_IDS.CREATE_CONNECTION_MODESHAPE,
COMMAND_LABELS.CREATE_CONNECTION_MODESHAPE,
COMMAND_LABELS_SHORT.CREATE_CONNECTION_MODESHAPE,
COMMAND_DESC.CREATE_CONNECTION_MODESHAPE);
addActionHandler(
COMMAND_IDS.CREATE_CONNECTION_SALESFORCE,
COMMAND_LABELS.CREATE_CONNECTION_SALESFORCE,
COMMAND_LABELS_SHORT.CREATE_CONNECTION_SALESFORCE,
COMMAND_DESC.CREATE_CONNECTION_SALESFORCE);
addActionHandler(
COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE,
COMMAND_LABELS.CREATE_CONNECTION_WEB_SERVICE,
COMMAND_LABELS_SHORT.CREATE_CONNECTION_WEB_SERVICE,
COMMAND_DESC.CREATE_CONNECTION_WEB_SERVICE);
addActionHandler(
COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE_ODA,
COMMAND_LABELS.CREATE_CONNECTION_WEB_SERVICE_ODA,
COMMAND_LABELS_SHORT.CREATE_CONNECTION_WEB_SERVICE_ODA,
COMMAND_DESC.CREATE_CONNECTION_WEB_SERVICE_ODA);
addActionHandler(
COMMAND_IDS.CREATE_CONNECTION_XML_FILE_LOCAL,
COMMAND_LABELS.CREATE_CONNECTION_XML_FILE_LOCAL,
COMMAND_LABELS_SHORT.CREATE_CONNECTION_XML_FILE_LOCAL,
COMMAND_DESC.CREATE_CONNECTION_XML_FILE_LOCAL);
addActionHandler(
COMMAND_IDS.CREATE_CONNECTION_XML_FILE_URL,
COMMAND_LABELS.CREATE_CONNECTION_XML_FILE_URL,
COMMAND_LABELS_SHORT.CREATE_CONNECTION_XML_FILE_URL,
COMMAND_DESC.CREATE_CONNECTION_XML_FILE_URL);
addActionHandler(
COMMAND_IDS.NEW_MODEL_RELATIONAL_SOURCE,
COMMAND_LABELS.NEW_MODEL_RELATIONAL_SOURCE,
COMMAND_LABELS_SHORT.NEW_MODEL_RELATIONAL_SOURCE,
COMMAND_DESC.NEW_MODEL_RELATIONAL_SOURCE);
addActionHandler(
COMMAND_IDS.NEW_MODEL_RELATIONAL_VIEW,
COMMAND_LABELS.NEW_MODEL_RELATIONAL_VIEW,
COMMAND_LABELS_SHORT.NEW_MODEL_RELATIONAL_VIEW,
COMMAND_DESC.NEW_MODEL_RELATIONAL_VIEW);
addActionHandler(
COMMAND_IDS.NEW_MODEL_WS,
COMMAND_LABELS.NEW_MODEL_WS,
COMMAND_LABELS_SHORT.NEW_MODEL_WS,
COMMAND_DESC.NEW_MODEL_WS);
addActionHandler(
COMMAND_IDS.NEW_MODEL_XML_DOC,
COMMAND_LABELS.NEW_MODEL_XML_DOC,
COMMAND_LABELS_SHORT.NEW_MODEL_XML_DOC,
COMMAND_DESC.NEW_MODEL_XML_DOC);
addActionHandler(
COMMAND_IDS.CREATE_VDB,
COMMAND_LABELS.CREATE_VDB,
COMMAND_LABELS_SHORT.CREATE_VDB,
COMMAND_DESC.CREATE_VDB);
addActionHandler(
COMMAND_IDS.DEFINE_VDB,
COMMAND_LABELS.DEFINE_VDB,
COMMAND_LABELS_SHORT.DEFINE_VDB,
COMMAND_DESC.DEFINE_VDB);
addActionHandler(
COMMAND_IDS.DEFINE_SOURCE,
COMMAND_LABELS.DEFINE_SOURCE,
COMMAND_LABELS_SHORT.DEFINE_SOURCE,
COMMAND_DESC.DEFINE_SOURCE);
addActionHandler(
COMMAND_IDS.EXECUTE_VDB,
COMMAND_LABELS.EXECUTE_VDB,
COMMAND_LABELS.EXECUTE_VDB,
COMMAND_DESC.EXECUTE_VDB);
addActionHandler(
COMMAND_IDS.EDIT_VDB,
COMMAND_LABELS.EDIT_VDB,
COMMAND_LABELS_SHORT.EDIT_VDB,
COMMAND_DESC.EDIT_VDB);
addActionHandler(
COMMAND_IDS.DEPLOY_VDB,
COMMAND_LABELS.DEPLOY_VDB,
COMMAND_LABELS_SHORT.DEPLOY_VDB,
COMMAND_DESC.DEPLOY_VDB);
addActionHandler(
COMMAND_IDS.PREVIEW_DATA,
COMMAND_LABELS.PREVIEW_DATA,
COMMAND_LABELS.PREVIEW_DATA,
COMMAND_DESC.PREVIEW_DATA);
addActionHandler(
COMMAND_IDS.OPEN_DATA_SOURCE_EXPLORER_VIEW,
COMMAND_LABELS.OPEN_DATA_SOURCE_EXPLORER_VIEW,
COMMAND_LABELS.OPEN_DATA_SOURCE_EXPLORER_VIEW,
COMMAND_DESC.OPEN_DATA_SOURCE_EXPLORER_VIEW);
addActionHandler(
COMMAND_IDS.GENERATE_WS_MODELS_FROM_WSDL,
COMMAND_LABELS.GENERATE_WS_MODELS_FROM_WSDL,
COMMAND_LABELS.GENERATE_WS_MODELS_FROM_WSDL,
COMMAND_DESC.GENERATE_WS_MODELS_FROM_WSDL);
addActionHandler(
COMMAND_IDS.NEW_TEIID_SERVER,
COMMAND_LABELS.NEW_TEIID_SERVER,
COMMAND_LABELS_SHORT.NEW_TEIID_SERVER,
COMMAND_DESC.NEW_TEIID_SERVER);
addActionHandler(
COMMAND_IDS.EDIT_TEIID_SERVER,
COMMAND_LABELS.EDIT_TEIID_SERVER,
COMMAND_LABELS_SHORT.EDIT_TEIID_SERVER,
COMMAND_DESC.EDIT_TEIID_SERVER);
addActionHandler(
COMMAND_IDS.CREATE_DATA_SOURCE,
COMMAND_LABELS.CREATE_DATA_SOURCE,
COMMAND_LABELS_SHORT.CREATE_DATA_SOURCE,
COMMAND_DESC.CREATE_DATA_SOURCE);
addActionHandler(
COMMAND_IDS.SET_DEFAULT_TEIID_SERVER,
COMMAND_LABELS.SET_DEFAULT_TEIID_SERVER,
COMMAND_LABELS_SHORT.SET_DEFAULT_TEIID_SERVER,
COMMAND_DESC.SET_DEFAULT_TEIID_SERVER);
addActionHandler(
COMMAND_IDS.REFRESH_TEIID_SERVER,
COMMAND_LABELS.REFRESH_TEIID_SERVER,
COMMAND_LABELS_SHORT.REFRESH_TEIID_SERVER,
COMMAND_DESC.REFRESH_TEIID_SERVER);
addActionHandler(
COMMAND_IDS.NEW_TEIID_MODEL_PROJECT,
COMMAND_LABELS.NEW_TEIID_MODEL_PROJECT,
COMMAND_LABELS_SHORT.NEW_TEIID_MODEL_PROJECT,
COMMAND_DESC.NEW_TEIID_MODEL_PROJECT);
addActionHandler(
COMMAND_IDS.DEFINE_TEIID_MODEL_PROJECT,
COMMAND_LABELS.DEFINE_TEIID_MODEL_PROJECT,
COMMAND_LABELS_SHORT.DEFINE_TEIID_MODEL_PROJECT,
COMMAND_DESC.DEFINE_TEIID_MODEL_PROJECT);
addActionHandler(
COMMAND_IDS.DEFINE_VIEW_TABLE,
COMMAND_LABELS.DEFINE_VIEW_TABLE,
COMMAND_LABELS_SHORT.DEFINE_VIEW_TABLE,
COMMAND_DESC.DEFINE_VIEW_TABLE);
addActionHandler(
COMMAND_IDS.DEFINE_VIEW_PROCEDURE,
COMMAND_LABELS.DEFINE_VIEW_PROCEDURE,
COMMAND_LABELS_SHORT.DEFINE_VIEW_PROCEDURE,
COMMAND_DESC.DEFINE_VIEW_PROCEDURE);
addActionHandler(
COMMAND_IDS.NEW_OBJECT_REST_PROCEDURE,
COMMAND_LABELS.NEW_OBJECT_REST_PROCEDURE,
COMMAND_LABELS_SHORT.NEW_OBJECT_REST_PROCEDURE,
COMMAND_DESC.NEW_OBJECT_REST_PROCEDURE);
addActionHandler(
COMMAND_IDS.GENERATE_REST_WAR,
COMMAND_LABELS.GENERATE_REST_WAR,
COMMAND_LABELS_SHORT.GENERATE_REST_WAR,
COMMAND_DESC.GENERATE_REST_WAR);
addActionHandler(
COMMAND_IDS.GENERATE_SOAP_WAR,
COMMAND_LABELS.GENERATE_SOAP_WAR,
COMMAND_LABELS_SHORT.GENERATE_SOAP_WAR,
COMMAND_DESC.GENERATE_SOAP_WAR);
addActionHandler(
COMMAND_IDS.DEPLOY_WAR,
COMMAND_LABELS.DEPLOY_WAR,
COMMAND_LABELS_SHORT.DEPLOY_WAR,
COMMAND_DESC.DEPLOY_WAR);
addActionHandler(
COMMAND_IDS.SET_CONNECTION_PROFILE,
COMMAND_LABELS.SET_CONNECTION_PROFILE,
COMMAND_LABELS_SHORT.SET_CONNECTION_PROFILE,
COMMAND_DESC.SET_CONNECTION_PROFILE);
addActionHandler(
CHEAT_SHEET_IDS.MODEL_FROM_JDBC_SOURCE,
CHEAT_SHEET_DISPLAY_NAMES.MODEL_FROM_JDBC_SOURCE,
CHEAT_SHEET_DISPLAY_NAMES.MODEL_FROM_JDBC_SOURCE);
addActionHandler(
CHEAT_SHEET_IDS.MULTI_SOURCE_VDB,
CHEAT_SHEET_DISPLAY_NAMES.MULTI_SOURCE_VDB,
CHEAT_SHEET_DISPLAY_NAMES.MULTI_SOURCE_VDB);
addActionHandler(
CHEAT_SHEET_IDS.MODEL_XML_LOCAL_SOURCE,
CHEAT_SHEET_DISPLAY_NAMES.MODEL_XML_LOCAL_SOURCE,
CHEAT_SHEET_DISPLAY_NAMES.MODEL_XML_LOCAL_SOURCE);
addActionHandler(
CHEAT_SHEET_IDS.MODEL_XML_REMOTE_SOURCE,
CHEAT_SHEET_DISPLAY_NAMES.MODEL_XML_REMOTE_SOURCE,
CHEAT_SHEET_DISPLAY_NAMES.MODEL_XML_REMOTE_SOURCE);
addActionHandler(
CHEAT_SHEET_IDS.MODEL_FLAT_FILE_SOURCE,
CHEAT_SHEET_DISPLAY_NAMES.MODEL_FLAT_FILE_SOURCE,
CHEAT_SHEET_DISPLAY_NAMES.MODEL_FLAT_FILE_SOURCE);
addActionHandler(
CHEAT_SHEET_IDS.CREATE_AND_TEST_VDB,
CHEAT_SHEET_DISPLAY_NAMES.CREATE_AND_TEST_VDB,
CHEAT_SHEET_DISPLAY_NAMES.CREATE_AND_TEST_VDB);
addActionHandler(
CHEAT_SHEET_IDS.CONSUME_SOAP_SERVICE,
CHEAT_SHEET_DISPLAY_NAMES.CONSUME_SOAP_SERVICE,
CHEAT_SHEET_DISPLAY_NAMES.CONSUME_SOAP_SERVICE);
}
public static AbstractHandler getActionHandler(String id) {
if( actionInfos == null ) {
loadHandlers();
}
AdvisorActionInfo info = getActionInfo(id);
if( info != null ) {
return info.getActionHandler();
}
return null;
}
public static AdvisorActionInfo getActionInfo(String id) {
if( actionInfos == null ) {
loadHandlers();
}
return actionInfos.get(id);
}
private static void addActionHandler(String id, String displayName, String shortDisplayName) {
actionInfos.put(id, createInfo(id, displayName, shortDisplayName));
}
private static void addActionHandler(String id, String displayName, String shortDisplayName, String description) {
AdvisorActionInfo info = createInfo(id, displayName, shortDisplayName);
if( description != null ) {
info.setDescription(description);
}
actionInfos.put(id, info);
}
public static AdvisorActionInfo createInfo(String commandId, String displayName, String shortDisplayName) {
AbstractHandler handler = new TeiidDesignerActionHandler(commandId, displayName);
AdvisorActionInfo info = new AdvisorActionInfo(commandId, displayName, shortDisplayName, handler);
String imageId = getImageId(commandId);
info.setImageId(imageId);
return info;
}
public static void executeAction(TeiidDesignerActionHandler actionHandler, boolean synchronous) {
AdvisorActionFactory.executeAction(actionHandler.getId(), synchronous);
}
public static void executeAction(String id, boolean synchronous) {
AdvisorActionFactory.executeAction(id, null, synchronous);
}
public static void executeAction(String id, Properties properties, boolean synchronous) {
// IMPORT OPTIONS
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_DDL)) {
launchWizard(ImportMetadataAction.DDL_TO_RELATIONAL, properties, synchronous);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_FLAT_FILE)) {
launchWizard(ImportMetadataAction.TEIID_FLAT_FILE, properties, synchronous);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_JDBC)) {
launchWizard(ImportMetadataAction.JDBC, properties, synchronous);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_SALESFORCE)) {
launchWizard(ImportMetadataAction.SALESFORCE_TO_RELATIONAL, properties, synchronous);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_XML_FILE)) {
properties.put(IPropertiesContext.KEY_IMPORT_XML_TYPE, IPropertiesContext.IMPORT_XML_LOCAL);
launchWizard(ImportMetadataAction.TEIID_XML_FILE, properties, synchronous);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_XML_FILE_URL)) {
properties.put(IPropertiesContext.KEY_IMPORT_XML_TYPE, IPropertiesContext.IMPORT_XML_REMOTE);
launchWizard(ImportMetadataAction.TEIID_XML_FILE, properties, synchronous);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_WSDL_TO_SOURCE)) {
launchWizard(ImportMetadataAction.WSDL_TO_RELATIONAL, properties, synchronous);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_WSDL_TO_WS)) {
launchWizard(ImportMetadataAction.WSDL_TO_WEB_SERVICE, properties, synchronous);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_TEIID_CONNECTION_DDL)) {
launchWizard(ImportMetadataAction.TEIID_CONNECTION_DDL_TO_RELATIONAL, properties, synchronous);
return;
}
// NEW MODEL OPTIONS
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_RELATIONAL_SOURCE)) {
createNewModel(ModelType.PHYSICAL_LITERAL, MODEL_CLASSES.RELATIONAL, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_RELATIONAL_VIEW)) {
createNewModel(ModelType.VIRTUAL_LITERAL, MODEL_CLASSES.RELATIONAL, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_WS)) {
createNewModel(ModelType.VIRTUAL_LITERAL, MODEL_CLASSES.WEB_SERVICE, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_XML_DOC)) {
createNewModel(ModelType.VIRTUAL_LITERAL, MODEL_CLASSES.XML, properties);
return;
}
// NEW OBJECT OPTIONS
if (id.equalsIgnoreCase(COMMAND_IDS.DEFINE_VIEW_TABLE)) {
DefineViewTableAction action = new DefineViewTableAction(properties);
action.run();
return;
}
if (id.equalsIgnoreCase(COMMAND_IDS.DEFINE_VIEW_PROCEDURE)) {
DefineViewProcedureAction action = new DefineViewProcedureAction(properties);
action.run();
return;
}
// CONNECTIONPROFILE OPTIONS
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_JDBC)) {
createConnection(ConnectionProfileIds.CATEGORY_JDBC, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_FLAT_FILE)) {
createConnection(ConnectionProfileIds.CATEGORY_ODA_FLAT_FILE_ID, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_LDAP)) {
createConnection(ConnectionProfileIds.CATEGORY_LDAP_CONNECTION, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_MODESHAPE)) {
createConnection(ConnectionProfileIds.CATEGORY_MODESHAPE, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_SALESFORCE)) {
createConnection(ConnectionProfileIds.CATEGORY_SALESFORCE_CONNECTION, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE)) {
createConnection(ConnectionProfileIds.CATEGORY_WS_CONNECTION, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE_ODA)) {
createConnection(ConnectionProfileIds.CATEGORY_WS_SOAP, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_XML_FILE_LOCAL)) {
createConnection(ConnectionProfileIds.CATEGORY_XML_FILE_LOCAL, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_XML_FILE_URL)) {
createConnection(ConnectionProfileIds.CATEGORY_XML_FILE_URL, properties);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.GENERATE_WS_MODELS_FROM_WSDL)) {
launchWizard(ImportMetadataAction.WSDL_TO_RELATIONAL, properties, synchronous);
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_VDB)) {
ModelerUiViewUtils.launchWizard("newVdbWizard", new StructuredSelection(), properties, synchronous); //$NON-NLS-1$
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEFINE_VDB)) {
DefineVdbAction action = new DefineVdbAction(properties);
action.run();
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.EDIT_VDB)) {
EditVdbAction action = new EditVdbAction(properties);
action.run();
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.EXECUTE_VDB)) {
ExecuteVdbAction action = new ExecuteVdbAction(properties);
action.run();
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEPLOY_VDB)) {
DeployVdbAction action = new DeployVdbAction(properties);
action.queryUserAndRun();
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_TEIID_MODEL_PROJECT)) {
ModelerUiViewUtils.launchWizard("newModelProject", new StructuredSelection(), properties, synchronous); //$NON-NLS-1$
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEFINE_TEIID_MODEL_PROJECT)) {
DefineProjectAction action = new DefineProjectAction(properties);
action.run();
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.OPEN_DATA_SOURCE_EXPLORER_VIEW)) {
try {
UiUtil.getWorkbenchPage().showView("org.eclipse.datatools.connectivity.DataSourceExplorerNavigator"); //$NON-NLS-1$
} catch (final PartInitException err) {
AdvisorUiConstants.UTIL.log(err);
WidgetUtil.showError(err.getLocalizedMessage());
}
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.PREVIEW_DATA)) {
PreviewDataAction action = new PreviewDataAction(properties);
action.run();
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_TEIID_SERVER)) {
RuntimeAssistant.runNewServerAction(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.EDIT_TEIID_SERVER)) {
RuntimeAssistant.runEditServerAction(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_DATA_SOURCE)) {
// make sure there is a Teiid connection
if (RuntimeAssistant.ensureServerConnection(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
Messages.CreateDataSource_NoServerMessage, false)) {
try {
ITeiidServer teiidServer = DqpPlugin.getInstance().getServerManager().getDefaultServer();
CreateDataSourceAction action = new CreateDataSourceAction();
action.setTeiidServer(teiidServer);
action.setSelection(new StructuredSelection());
action.setEnabled(true);
action.run();
} catch (Exception ex) {
AdvisorUiConstants.UTIL.log(ex);
}
}
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.SET_DEFAULT_TEIID_SERVER)) {
RuntimeAssistant.runSetDefaultServerAction();
return;
}
if (id.equalsIgnoreCase(COMMAND_IDS.REFRESH_TEIID_SERVER)) {
RuntimeAssistant.runRefreshServerAction();
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEFINE_SOURCE)) {
DefineSourceAction action = new DefineSourceAction(properties);
action.run();
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.GENERATE_REST_WAR)) {
GenerateRESTWarAction action = new GenerateRESTWarAction(properties);
action.run();
return;
}
// if( id.equalsIgnoreCase(COMMAND_IDS.GENERATE_SOAP_WAR)) {
// // TODO
// return;
// }
if( id.equalsIgnoreCase(COMMAND_IDS.DEPLOY_WAR)) {
LaunchInstructionsAction action = new LaunchInstructionsAction(INSTRUCTIONS.DEPLOY_WAR_FILE);
action.run();
return;
}
if( id.equalsIgnoreCase(COMMAND_IDS.SET_CONNECTION_PROFILE)) {
SetConnectionProfileAction action = new SetConnectionProfileAction();
action.setProperties(properties);
action.setConnectionProfile();
return;
}
if( id.equalsIgnoreCase(CHEAT_SHEET_IDS.CONSUME_SOAP_SERVICE) ||
id.equalsIgnoreCase(CHEAT_SHEET_IDS.CREATE_AND_TEST_VDB) ||
id.equalsIgnoreCase(CHEAT_SHEET_IDS.MODEL_FLAT_FILE_SOURCE) ||
id.equalsIgnoreCase(CHEAT_SHEET_IDS.MODEL_FROM_JDBC_SOURCE) ||
id.equalsIgnoreCase(CHEAT_SHEET_IDS.MODEL_XML_LOCAL_SOURCE)
|| id.equalsIgnoreCase(CHEAT_SHEET_IDS.MODEL_XML_REMOTE_SOURCE)
||
id.equalsIgnoreCase(CHEAT_SHEET_IDS.MULTI_SOURCE_VDB) ) {
executeCheatSheet(id);
return;
}
MessageDialog.openWarning(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Unimplemented Action", //$NON-NLS-1$
"Action for ID [" + id + "] is not yet implemented"); //$NON-NLS-1$ //$NON-NLS-2$
}
public static ImageDescriptor getImageDesciptor(String commandId) {
String id = getImageId(commandId);
if( id != null ) {
return AdvisorUiPlugin.getDefault().getImageDescriptor(getImageId(commandId));
}
return null;
}
public static String getImageId(String id) {
// IMPORT OPTIONS
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_DDL)) {
return Images.IMPORT;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_FLAT_FILE)) {
return Images.IMPORT;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_JDBC)) {
return Images.IMPORT_JDBC;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_SALESFORCE)) {
return Images.IMPORT;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_XML_FILE)) {
return Images.IMPORT;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_XML_FILE_URL)) {
return Images.IMPORT;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_WSDL_TO_SOURCE)) {
return Images.IMPORT_WSDL;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_WSDL_TO_WS)) {
return Images.IMPORT_WSDL;
}
if( id.equalsIgnoreCase(COMMAND_IDS.IMPORT_TEIID_CONNECTION_DDL)) {
return Images.IMPORT_TEIID_CONNECTION_DDL;
}
// NEW MODEL OPTIONS
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_RELATIONAL_SOURCE)) {
return Images.NEW_MODEL_ACTION;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_RELATIONAL_VIEW)) {
return Images.NEW_MODEL_ACTION;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_WS)) {
return Images.NEW_MODEL_ACTION;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_XML_DOC)) {
return Images.NEW_MODEL_ACTION;
}
// CONNECTIONPROFILE OPTIONS
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_JDBC)) {
return Images.NEW_CONNECTION_PROFILE;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_FLAT_FILE)) {
return Images.NEW_CONNECTION_PROFILE;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_LDAP)) {
return Images.NEW_CONNECTION_PROFILE;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_MODESHAPE)) {
return Images.NEW_CONNECTION_PROFILE;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_SALESFORCE)) {
return Images.NEW_CONNECTION_PROFILE;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE)) {
return Images.NEW_CONNECTION_PROFILE;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE_ODA)) {
return Images.NEW_CONNECTION_PROFILE;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_XML_FILE_LOCAL)) {
return Images.NEW_CONNECTION_PROFILE;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_XML_FILE_URL)) {
return Images.NEW_CONNECTION_PROFILE;
}
if( id.equalsIgnoreCase(COMMAND_IDS.GENERATE_WS_MODELS_FROM_WSDL)) {
return Images.NEW_WEB_SERVICES_MODEL;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_VDB)) {
return Images.NEW_VDB;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEFINE_VDB)) {
return Images.NEW_VDB;
}
if( id.equalsIgnoreCase(COMMAND_IDS.EXECUTE_VDB)) {
return Images.EXECUTE_VDB_ACTION;
}
if( id.equalsIgnoreCase(COMMAND_IDS.PREVIEW_DATA)) {
return Images.PREVIEW_DATA;
}
if( id.equalsIgnoreCase(COMMAND_IDS.CREATE_DATA_SOURCE)) {
return Images.CREATE_DATA_SOURCE_ACTION;
}
if( id.equalsIgnoreCase(COMMAND_IDS.EDIT_VDB)) {
return Images.EDIT_VDB_ACTION;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEPLOY_VDB)) {
return Images.DEPLOY_VDB_ACTION;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_TEIID_MODEL_PROJECT)) {
return Images.NEW_PROJECT_ACTION;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEFINE_TEIID_MODEL_PROJECT)) {
return Images.NEW_PROJECT_ACTION;
}
if( id.equalsIgnoreCase(COMMAND_IDS.OPEN_DATA_SOURCE_EXPLORER_VIEW)) {
return Images.DATA_SOURCE_EXPLORER_VIEW;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_TEIID_SERVER)) {
return Images.NEW_TEIID_SERVER;
}
if( id.equalsIgnoreCase(COMMAND_IDS.EDIT_TEIID_SERVER)) {
return Images.EDIT_TEIID_SERVER;
}
if (id.equalsIgnoreCase(COMMAND_IDS.SET_DEFAULT_TEIID_SERVER)) {
return Images.SET_DEFAULT_TEIID_SERVER;
}
if (id.equalsIgnoreCase(COMMAND_IDS.REFRESH_TEIID_SERVER)) {
return Images.REFRESH_TEIID_SERVER;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEFINE_VIEW_TABLE)) {
return Images.NEW_VIRTUAL_TABLE_ICON;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEFINE_VIEW_PROCEDURE)) {
return Images.NEW_VIRTUAL_PROCEDURE_ICON;
}
if( id.equalsIgnoreCase(COMMAND_IDS.NEW_OBJECT_REST_PROCEDURE)) {
return Images.NEW_VIRTUAL_PROCEDURE_ICON;
}
if( id.equalsIgnoreCase(COMMAND_IDS.GENERATE_REST_WAR)) {
return Images.GENERATE_WAR;
}
if( id.equalsIgnoreCase(COMMAND_IDS.GENERATE_SOAP_WAR)) {
return Images.GENERATE_WAR;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEPLOY_WAR)) {
return Images.DEPLOY_WAR;
}
if( id.equalsIgnoreCase(COMMAND_IDS.DEFINE_SOURCE)) {
return Images.CREATE_SOURCES;
}
if( id.equalsIgnoreCase(CHEAT_SHEET_IDS.CONSUME_SOAP_SERVICE) ) {
return CHEAT_SHEET_IMAGE_IDS.CONSUME_SOAP_SERVICE;
}
if( id.equalsIgnoreCase(CHEAT_SHEET_IDS.CREATE_AND_TEST_VDB) ) {
return CHEAT_SHEET_IMAGE_IDS.CREATE_AND_TEST_VDB;
}
if( id.equalsIgnoreCase(CHEAT_SHEET_IDS.MODEL_FLAT_FILE_SOURCE) ) {
return CHEAT_SHEET_IMAGE_IDS.MODEL_FLAT_FILE_SOURCE;
}
if( id.equalsIgnoreCase(CHEAT_SHEET_IDS.MODEL_FROM_JDBC_SOURCE) ) {
return CHEAT_SHEET_IMAGE_IDS.MODEL_FROM_JDBC_SOURCE;
}
if (id.equalsIgnoreCase(CHEAT_SHEET_IDS.MODEL_XML_LOCAL_SOURCE)) {
return CHEAT_SHEET_IMAGE_IDS.MODEL_XML_LOCAL_SOURCE;
}
if (id.equalsIgnoreCase(CHEAT_SHEET_IDS.MODEL_XML_REMOTE_SOURCE)) {
return CHEAT_SHEET_IMAGE_IDS.MODEL_XML_REMOTE_SOURCE;
}
if( id.equalsIgnoreCase(CHEAT_SHEET_IDS.MULTI_SOURCE_VDB) ) {
return CHEAT_SHEET_IMAGE_IDS.MULTI_SOURCE_VDB;
}
if( id.equalsIgnoreCase(COMMAND_IDS.SET_CONNECTION_PROFILE) ) {
return Images.NEW_CONNECTION_PROFILE;
}
return null;
}
public static Image getImage(AdvisorActionInfo actionInfo) {
return getImage(getImageId(actionInfo.getId()));
}
public static Image getImage(String imageId) {
return AdvisorUiPlugin.getDefault().getImage(imageId);
}
private static void createNewModel(ModelType type, String modelClass, Properties properties) {
NewModelAction nma = new NewModelAction(type, modelClass, null, properties);
nma.run();
}
private static void launchWizard(String id, Properties properties, boolean synchronous) {
ModelerUiViewUtils.launchWizard(id, new StructuredSelection(), properties, synchronous);
}
private static void createConnection(final String id, final Properties properties) {
// Add then remove profile changed listener so new CP name can be set in properties
IProfileListener listener = new PropertiesProfileChangedListener(properties);
ProfileManager.getInstance().addProfileListener(listener);
if( id.equalsIgnoreCase(ConnectionProfileIds.CATEGORY_JDBC) ) {
NewJDBCFilteredCPWizard wiz = new NewJDBCFilteredCPWizard();
ModelerUiViewUtils.launchWizard(wiz, new StructuredSelection(), properties, true, false);
} else {
INewWizard wiz = new NewTeiidFilteredCPWizard(id);
ModelerUiViewUtils.launchWizard(wiz, new StructuredSelection(), properties, true, false);
}
ProfileManager.getInstance().removeProfileListener(listener);
}
public static void addActionsLibraryToMenu(IMenuManager manager) {
if( !actionsLoaded ) {
initActions();
}
addMenuForAspect(manager, MODELING_ASPECT_LABELS.MODEL_PROJECT_MANAGEMENT, ASPECT_MODEL_PROJECT_MANAGEMENT);
addMenuForAspect(manager, MODELING_ASPECT_LABELS.DEFINE_MODELS, ASPECT_DEFINE_MODELS);
addMenuForAspect(manager, MODELING_ASPECT_LABELS.MANAGE_CONNECTIONS, ASPECT_MANAGE_CONNECTIONS);
addMenuForAspect(manager, MODELING_ASPECT_LABELS.MODEL_DATA_SOURCES, ASPECT_MODEL_DATA_SOURCES);
addMenuForAspect(manager, MODELING_ASPECT_LABELS.CONSUME_REST_WS, ASPECT_CONSUME_REST_WS);
// addMenuForAspect(manager, MODELING_ASPECT_LABELS.CONSUME_SOAP_WS, ASPECT_CONSUME_SOAP_WS);
addMenuForAspect(manager, MODELING_ASPECT_LABELS.DEFINE_MODEL_OBJECTS, ASPECT_DEFINE_MODEL_OBJECTS);
addMenuForAspect(manager, MODELING_ASPECT_LABELS.MANAGE_VDBS, ASPECT_MANAGE_VDBS);
addMenuForAspect(manager, MODELING_ASPECT_LABELS.TEIID_SERVER, ASPECT_TEIID_SERVER);
addMenuForAspect(manager, MODELING_ASPECT_LABELS.TEST, ASPECT_TEST);
if( !cheatSheetActions.isEmpty() ) {
manager.add( new Separator());
MenuManager subManager = new MenuManager("Cheat Sheets"); //$NON-NLS-1$
for(IAction action : cheatSheetActions) {
subManager.add(action);
}
manager.add(subManager);
}
}
private static void addMenuForAspect(final IMenuManager manager, final String aspectId, final String[] aspectCommandsIds ) {
if( aspectCommandsIds.length == 0 ) return;
MenuManager subManager = new MenuManager(aspectId);
for(String commandId : aspectCommandsIds) {
IAction action = getAction(commandId);
if( action != null ) {
subManager.add(action);
}
}
manager.add(subManager);
}
public static void executeCheatSheet(String id) {
for(IAction action : cheatSheetActions) {
if( action.getId().equalsIgnoreCase(id)) {
action.run();
}
}
}
private static IAction getAction(final String commandId) {
// IMPORT OPTIONS
if( commandId.equalsIgnoreCase(COMMAND_IDS.IMPORT_DDL)) {
return ACTION_IMPORT_DDL;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.IMPORT_TEIID_CONNECTION_DDL)) {
return ACTION_IMPORT_TEIID_CONNECTION_DDL;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.IMPORT_FLAT_FILE)) {
return ACTION_IMPORT_FLAT_FILE;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.IMPORT_JDBC)) {
return ACTION_IMPORT_JDBC;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.IMPORT_SALESFORCE)) {
return ACTION_IMPORT_SALESFORCE;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.IMPORT_XML_FILE)) {
return ACTION_IMPORT_WSDL_TO_SOURCE;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.IMPORT_WSDL_TO_SOURCE)) {
return ACTION_IMPORT_WSDL_TO_WS;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.IMPORT_WSDL_TO_WS)) {
return ACTION_IMPORT_XML_FILE;
}
// NEW MODEL OPTIONS
if( commandId.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_RELATIONAL_SOURCE)) {
return ACTION_NEW_MODEL_RELATIONAL_SOURCE;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_RELATIONAL_VIEW)) {
return ACTION_NEW_MODEL_RELATIONAL_VIEW;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_WS)) {
return ACTION_NEW_MODEL_WS;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.NEW_MODEL_XML_DOC)) {
return ACTION_NEW_MODEL_XML_DOC;
}
// CONNECTIONPROFILE OPTIONS
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_JDBC)) {
return ACTION_CREATE_CONNECTION_JDBC;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_FLAT_FILE)) {
return ACTION_CREATE_CONNECTION_FLAT_FILE;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_LDAP)) {
return ACTION_CREATE_CONNECTION_LDAP;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_MODESHAPE)) {
return ACTION_CREATE_CONNECTION_MODESHAPE;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_SALESFORCE)) {
return ACTION_CREATE_CONNECTION_SALESFORCE;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE)) {
return ACTION_CREATE_CONNECTION_WEB_SERVICE;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE_ODA)) {
return ACTION_CREATE_CONNECTION_WEB_SERVICE_ODA;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_XML_FILE_LOCAL)) {
return ACTION_CREATE_CONNECTION_XML_FILE_LOCAL;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_CONNECTION_XML_FILE_URL)) {
return ACTION_CREATE_CONNECTION_XML_FILE_URL;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.GENERATE_WS_MODELS_FROM_WSDL)) {
return ACTION_GENERATE_WS_MODELS_FROM_WSDL;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_VDB)) {
return ACTION_CREATE_VDB;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.DEFINE_VDB)) {
return ACTION_CREATE_VDB;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.EXECUTE_VDB)) {
return ACTION_EXECUTE_VDB;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.PREVIEW_DATA)) {
return ACTION_PREVIEW_DATA;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.CREATE_DATA_SOURCE)) {
return ACTION_CREATE_DATA_SOURCE;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.EDIT_VDB)) {
return ACTION_EDIT_VDB;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.DEPLOY_VDB)) {
return ACTION_DEPLOY_VDB;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.NEW_TEIID_MODEL_PROJECT)) {
return ACTION_NEW_TEIID_MODEL_PROJECT;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.DEFINE_TEIID_MODEL_PROJECT)) {
return ACTION_DEFINE_TEIID_MODEL_PROJECT;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.OPEN_DATA_SOURCE_EXPLORER_VIEW)) {
return ACTION_OPEN_DATA_SOURCE_EXPLORER_VIEW;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.NEW_TEIID_SERVER)) {
return ACTION_NEW_TEIID_SERVER;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.EDIT_TEIID_SERVER)) {
return ACTION_EDIT_TEIID_SERVER;
}
if( commandId.equalsIgnoreCase(COMMAND_IDS.SET_DEFAULT_TEIID_SERVER)) {
return ACTION_SET_DEFAULT_TEIID_SERVER;
}
if (commandId.equalsIgnoreCase(COMMAND_IDS.REFRESH_TEIID_SERVER)) {
return ACTION_REFRESH_TEIID_SERVER;
}
if (commandId.equalsIgnoreCase(COMMAND_IDS.DEFINE_VIEW_TABLE)) {
return ACTION_DEFINE_VIEW_TABLE;
}
if (commandId.equalsIgnoreCase(COMMAND_IDS.DEFINE_VIEW_PROCEDURE)) {
return ACTION_DEFINE_VIEW_PROCEDURE;
}
return null;
}
private static void initActions() {
actionsLoaded = true;
loadCheatSheetExtensions();
cheatSheetActions = new ArrayList<IAction>();
for (IConfigurationElement cheatSheet : cheatsheets) {
String id = cheatSheet.getAttribute(ID_ATTR);
// Only includes metamatrix cheat sheets for now
if (id.indexOf("teiid") > -1) { //$NON-NLS-1$
String sheetName = cheatSheet.getAttribute(NAME_ATTR);
IAction action = createCheatSheetAction(id, sheetName);
if( action != null ) {
cheatSheetActions.add(action);
}
}
}
ACTION_IMPORT_DDL = createAction(COMMAND_IDS.IMPORT_DDL);
ACTION_IMPORT_TEIID_CONNECTION_DDL = createAction(COMMAND_IDS.IMPORT_TEIID_CONNECTION_DDL);
ACTION_IMPORT_FLAT_FILE = createAction(COMMAND_IDS.IMPORT_FLAT_FILE);
ACTION_IMPORT_JDBC = createAction(COMMAND_IDS.IMPORT_JDBC);
ACTION_IMPORT_SALESFORCE = createAction(COMMAND_IDS.IMPORT_SALESFORCE);
ACTION_IMPORT_WSDL_TO_SOURCE = createAction(COMMAND_IDS.IMPORT_WSDL_TO_SOURCE);
ACTION_IMPORT_WSDL_TO_WS = createAction(COMMAND_IDS.IMPORT_WSDL_TO_WS);
ACTION_IMPORT_XML_FILE = createAction(COMMAND_IDS.IMPORT_XML_FILE);
ACTION_IMPORT_XML_FILE_REMOTE = createAction(COMMAND_IDS.IMPORT_XML_FILE_URL);
ACTION_CREATE_CONNECTION_FLAT_FILE = createAction(COMMAND_IDS.CREATE_CONNECTION_FLAT_FILE);
ACTION_CREATE_CONNECTION_JDBC = createAction(COMMAND_IDS.CREATE_CONNECTION_JDBC);
ACTION_CREATE_CONNECTION_LDAP = createAction(COMMAND_IDS.CREATE_CONNECTION_LDAP);
ACTION_CREATE_CONNECTION_MODESHAPE = createAction(COMMAND_IDS.CREATE_CONNECTION_MODESHAPE);
ACTION_CREATE_CONNECTION_SALESFORCE = createAction(COMMAND_IDS.CREATE_CONNECTION_SALESFORCE);
ACTION_CREATE_CONNECTION_WEB_SERVICE = createAction(COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE);
ACTION_CREATE_CONNECTION_WEB_SERVICE_ODA = createAction(COMMAND_IDS.CREATE_CONNECTION_WEB_SERVICE_ODA);
ACTION_CREATE_CONNECTION_XML_FILE_LOCAL = createAction(COMMAND_IDS.CREATE_CONNECTION_XML_FILE_LOCAL);
ACTION_CREATE_CONNECTION_XML_FILE_URL = createAction(COMMAND_IDS.CREATE_CONNECTION_XML_FILE_URL);
ACTION_NEW_MODEL_RELATIONAL_SOURCE = createAction(COMMAND_IDS.NEW_MODEL_RELATIONAL_SOURCE);
ACTION_NEW_MODEL_RELATIONAL_VIEW = createAction(COMMAND_IDS.NEW_MODEL_RELATIONAL_VIEW);
ACTION_NEW_MODEL_WS = createAction(COMMAND_IDS.NEW_MODEL_WS);
ACTION_NEW_MODEL_XML_DOC = createAction(COMMAND_IDS.NEW_MODEL_XML_DOC);
ACTION_CREATE_VDB = createAction(COMMAND_IDS.CREATE_VDB);
ACTION_EXECUTE_VDB = createAction(COMMAND_IDS.EXECUTE_VDB);
ACTION_EDIT_VDB = createAction(COMMAND_IDS.EDIT_VDB);
ACTION_DEPLOY_VDB = createAction(COMMAND_IDS.DEPLOY_VDB);
ACTION_PREVIEW_DATA = createAction(COMMAND_IDS.PREVIEW_DATA);
ACTION_OPEN_DATA_SOURCE_EXPLORER_VIEW = createAction(COMMAND_IDS.OPEN_DATA_SOURCE_EXPLORER_VIEW);
ACTION_GENERATE_WS_MODELS_FROM_WSDL = createAction(COMMAND_IDS.GENERATE_WS_MODELS_FROM_WSDL);
ACTION_NEW_TEIID_SERVER = createAction(COMMAND_IDS.NEW_TEIID_SERVER);
ACTION_EDIT_TEIID_SERVER = createAction(COMMAND_IDS.EDIT_TEIID_SERVER);
ACTION_CREATE_DATA_SOURCE = createAction(COMMAND_IDS.CREATE_DATA_SOURCE);
ACTION_SET_DEFAULT_TEIID_SERVER = createAction(COMMAND_IDS.SET_DEFAULT_TEIID_SERVER);
ACTION_REFRESH_TEIID_SERVER = createAction(COMMAND_IDS.REFRESH_TEIID_SERVER);
ACTION_NEW_TEIID_MODEL_PROJECT = createAction(COMMAND_IDS.NEW_TEIID_MODEL_PROJECT);
ACTION_DEFINE_TEIID_MODEL_PROJECT = createAction(COMMAND_IDS.DEFINE_TEIID_MODEL_PROJECT);
ACTION_DEFINE_VIEW_TABLE = createAction(COMMAND_IDS.DEFINE_VIEW_TABLE);
ACTION_DEFINE_VIEW_PROCEDURE = createAction(COMMAND_IDS.DEFINE_VIEW_PROCEDURE);
ACTION_DEFINE_REST_PROCEDURE = createAction(COMMAND_IDS.NEW_OBJECT_REST_PROCEDURE);
}
private static IAction createAction(final String commandId) {
final AdvisorActionInfo info = getActionInfo(commandId);
if( info != null ) {
final IAction action = new Action(info.getDisplayName()) {
@Override
public void run() {
AdvisorActionFactory.executeAction(info.getId(), true);
}
};
ImageDescriptor desc = AdvisorActionFactory.getImageDesciptor(info.getId());
if (desc != null) {
action.setImageDescriptor(desc);
}
return action;
}
return null;
}
private static IAction createCheatSheetAction(final String sheetId, final String name) {
if( sheetId != null ) {
final IAction action = new Action(name) {
@Override
public void run() {
OpenCheatSheetAction action = new OpenCheatSheetAction(sheetId);
action.run();
}
};
action.setId(sheetId);
return action;
}
return null;
}
private static void loadCheatSheetExtensions() {
IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(CHEAT_SHEET_PLUGIN_ID, EXT_PT);
if (extensionPoint != null) {
IExtension[] extensions = extensionPoint.getExtensions();
if (extensions.length != 0) {
List<IConfigurationElement> temp = new ArrayList<IConfigurationElement>();
for (int i = 0; i < extensions.length; ++i) {
IConfigurationElement[] elements = extensions[i].getConfigurationElements();
// only care about cheatsheet configuration elements. don't care about category elements.
for (int j = 0; j < elements.length; ++j) {
if (elements[j].getName().equals(CHEATSHEET_ELEMENT)) {
temp.add(elements[j]);
}
}
}
if (!temp.isEmpty()) {
temp.toArray(cheatsheets = new IConfigurationElement[temp.size()]);
} else {
cheatsheets = new IConfigurationElement[0];
}
}
}
if (cheatsheets == null) {
cheatsheets = new IConfigurationElement[0];
}
}
}