package edu.buffalo.cse.green.editor.action;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jdt.core.IClassFile;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.JavaModelException;
import edu.buffalo.cse.green.PlugIn;
import edu.buffalo.cse.green.editor.model.TypeModel;
import edu.buffalo.cse.green.editor.model.commands.IncrementalExploreCommand;
import edu.buffalo.cse.green.relationships.RelationshipGroup;
/**
* mock-up
* @author dan
*/
public class IncrementalExploreSingleAction extends ContextAction {
private Class _partClass;
//private static int KEYCODE = 0;
/**
* mock-up
*/
public IncrementalExploreSingleAction ( Class partClass ) {
super( partClass );
_partClass = partClass;
setText(getLabel());
//setAccelerator( ('0' + ( ( ++KEYCODE ) % 10 ) ) );
}
/**
* @see edu.buffalo.cse.green.editor.action.ContextAction#getLabel()
*/
public String getLabel() {
RelationshipGroup group = PlugIn.getRelationshipGroup(_partClass);
return ( group.getSubtype() != null ? group.getSubtype() + " " : "" ) + group.getName();
}
/**
* @see edu.buffalo.cse.green.editor.action.ContextAction#doRun()
*/
@Override
protected void doRun ( ) throws JavaModelException {
List<RelationshipGroup> relationships =
new ArrayList<RelationshipGroup>();
relationships.add(PlugIn.getRelationshipGroup(_partClass));
getEditor().execute(new IncrementalExploreCommand(getEditor(),
(TypeModel) _model, relationships, false));
}
/**
* @see edu.buffalo.cse.green.editor.action.ContextAction#getPath()
*/
public Submenu getPath() {
return Submenu.IncrExplore;
}
/**
* @see edu.buffalo.cse.green.editor.action.ContextAction#getSupportedModels()
*/
protected int getSupportedModels() {
return CM_TYPE;
}
/**
* @see edu.buffalo.cse.green.editor.action.ContextAction#isAvailableForBinary()
*/
public boolean isAvailableForBinary() {
IClassFile classFile = (IClassFile) _element
.getAncestor(IJavaElement.CLASS_FILE);
try {
return (classFile.getSourceRange() != null);
} catch (JavaModelException e) {
// no source code attached
return false;
}
}
/**
* @see edu.buffalo.cse.green.editor.action.ContextAction#isEnabled()
*/
public boolean isEnabled() {
return true;
}
}