/*
* 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;
}
}
}