Javaクラスを選択して実行したアクションでJavaクラス名をひろう

ICompilationUnit#findPrimaryType().getFullyQualifiedName()
でとれる。こんなの探して30分〜。プラグイン開発スキルがぜんぜん進歩してません。はい。



import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;

public class LaunchAction implements IObjectActionDelegate{

private ISelection selection;


public void setActivePart(IAction action, IWorkbenchPart targetPart) {
}

public void run(IAction action) {
System.out.println("run!");

try {
ICompilationUnit cu = (ICompilationUnit)((IStructuredSelection)selection).getFirstElement();
String className = cu.findPrimaryType().getFullyQualifiedName()
//...

} catch (Exception e) {
e.printStackTrace();
}
}

public void selectionChanged(IAction action, ISelection selection) {
this.selection = selection;
}

}