/* * 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.Properties; import org.eclipse.core.resources.IProject; import org.eclipse.jface.action.Action; import org.eclipse.jface.window.Window; import org.eclipse.ui.IWorkbenchWindow; import org.teiid.designer.advisor.ui.AdvisorUiConstants; import org.teiid.designer.advisor.ui.AdvisorUiPlugin; import org.teiid.designer.transformation.ui.editors.DefineViewProcedureDialog; import org.teiid.designer.ui.viewsupport.DesignerProperties; import org.teiid.designer.ui.viewsupport.DesignerPropertiesUtil; import org.teiid.designer.ui.viewsupport.IPropertiesContext; import org.teiid.designer.ui.viewsupport.ModelerUiViewUtils; /** * */ public class DefineViewProcedureAction extends Action implements AdvisorUiConstants { private Properties designerProperties; /** * Construct an instance of NewModelAction. */ public DefineViewProcedureAction() { super(); setText("Define View Procedure"); //$NON-NLS-1$ setToolTipText("Define View Procedure Tooltip"); //$NON-NLS-1$ setImageDescriptor(AdvisorUiPlugin.getDefault().getImageDescriptor(Images.NEW_VIRTUAL_PROCEDURE_ICON)); } /** * @param properties the designer properties */ public DefineViewProcedureAction( Properties properties ) { this(); this.designerProperties = properties; } /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ @Override public void run() { boolean tempProperties = false; if( this.designerProperties == null ) { tempProperties = true; this.designerProperties = new DesignerProperties("unknown"); } if( !ModelerUiViewUtils.workspaceHasOpenModelProjects() ) { IProject newProject = ModelerUiViewUtils.queryUserToCreateModelProject(); if( newProject != null ) { DesignerPropertiesUtil.setProjectName(designerProperties, newProject.getName()); } else { DesignerPropertiesUtil.setProjectStatus(this.designerProperties, IPropertiesContext.NO_OPEN_PROJECT); return; } } final IWorkbenchWindow iww = AdvisorUiPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(); DefineViewProcedureDialog sdDialog = new DefineViewProcedureDialog(iww.getShell(), this.designerProperties); sdDialog.open(); if (sdDialog.getReturnCode() == Window.OK) { // Here we get to set the properties on the new procedure } if( tempProperties ) { this.designerProperties = null; } } }