互換性の理由から、Eclipse プラグインを JDT 3.7 から 3.6 に変更する必要があります。残念ながら、古いバージョンには便利な .getParameters() メソッドがまだないようです。
ElementTreeSelectionDialog をユーザーに表示して、ユーザーがクラスのメソッドを参照し、メソッドのパラメーターを選択できるようにする必要があります。このために、この単純な getChildren メソッドを使用して ITreeContentProvider を作成しました。
public Object[] getChildren(Object paramObject) {
if(paramObject instanceof ICompilationUnit){
ICompilationUnit icu = (ICompilationUnit) paramObject;
try {
return icu.getAllTypes()[0].getMethods();
} catch (JavaModelException e) {
e.printStackTrace();
}
}
if(paramObject instanceof IType){
IType type = (IType) paramObject;
try {
return type.getMethods();
} catch (JavaModelException e) {
e.printStackTrace();
}
}
if(paramObject instanceof IMethod){
IMethod method = (IMethod) paramObject;
try {
return method.getParameters();
} catch (JavaModelException e) {
e.printStackTrace();
}
}
return null;
}
適切なアイコン、署名などですべてを表示する JavaUILabelProvider を使用できるように、インターフェイスに固執したいと思います。
したがって、注意が必要なのは、パラメーターから有効な LocalVariable オブジェクトを作成するか、JavaUILabelProvider によって適切に表示されるその他の有効な IJavaElement 実装を作成することです。
LocalVariable[]の配列を作成しようとしましたが、要素に必要な位置マーカーと注釈オブジェクトを取得する方法が見つからないため、これは実際にはうまくいきません...