/*******************************************************************************
* Copyright (c) 2005, 2006 Eclipse Foundation
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Bjorn Freeman-Benson - initial implementation
* Ward Cunningham - initial implementation
*******************************************************************************/
package org.eclipse.eclipsemonkey;
import org.eclipse.core.runtime.IPath;
import org.eclipse.eclipsemonkey.language.IMonkeyLanguageFactory;
import org.eclipse.ui.IWorkbenchWindow;
/**
* @author Ingo Muschenetz
*
*/
public class MenuRunMonkeyScript
{
/**
* last_run
*/
public static StoredScript last_run = null;
private IMonkeyScriptRunner monkeyScript = null;
/**
* MenuRunMonkeyScript
* @param path
* @param window
*/
public MenuRunMonkeyScript(IPath path, IWorkbenchWindow window)
{
IMonkeyLanguageFactory langFactory = getLanguageFactory(path);
if(langFactory != null)
{
monkeyScript = langFactory.getRunMonkeyScript(path, window);
}
}
/**
* @param path
*/
public MenuRunMonkeyScript(IPath path)
{
this(path, null);
}
/**
* @param entryName
* @param functionArgs
* @return Object
* @throws RunMonkeyException
*/
public Object run(String entryName, Object[] functionArgs) throws RunMonkeyException
{
return run(entryName, functionArgs, true);
}
/**
* @param entryName
* @param functionArgs
* @param rememberLast
* @return Object
* @throws RunMonkeyException
*/
public Object run(String entryName, Object[] functionArgs, boolean rememberLast) throws RunMonkeyException
{
try
{
if (monkeyScript != null)
{
return monkeyScript.run(entryName, functionArgs);
}
else
{
return null;
}
} finally {
if(monkeyScript != null && rememberLast == true)
{
last_run = monkeyScript.getStoredScript();
UpdateMonkeyActionsResourceChangeListener.createTheMonkeyMenu();
}
}
}
private IMonkeyLanguageFactory getLanguageFactory(IPath path)
{
String scriptExtension = path.getFileExtension();
IMonkeyLanguageFactory factory = (IMonkeyLanguageFactory) EclipseMonkeyPlugin.getDefault().getLanguageStore().get(scriptExtension);
return factory;
}
}