1

カスタマイズされたマーカー ビューを作成しようとしています。このビューでは、リソースを選択したプロジェクトのみに制限/フィルタリングしたいと考えています。このプロジェクト名は動的に提供されます。

たとえば、プロジェクト エクスプローラーのコンテキスト メニューでは、カスタム マーカー ビューを開くオプションがユーザーに与えられます。

ユーザーが project1 からカスタム マーカー ビューを選択した場合、ビューには project1 のマーカーのみが表示されます。

助言がありますか?

4

1 に答える 1

1

私は似たようなことをしました。最初に、plugin.xml でビューを定義します。対応するクラスは MarkerSupportView を拡張する必要があります。このようなもの:

public class MarkerView extends MarkerSupportView {

public MarkerView() {
    super("com.example.markerEventContentGenerator"); //$NON-NLS-1$

}
}

次に、新しいビューの列と、表示する必要があるマーカーの種類を定義する必要があります。次に、plugin.xml の例を示します。

 <extension
   point="org.eclipse.ui.ide.markerSupport">
<markerContentGenerator
      id="com.example.markerEventContentGenerator"
      name="Custom Marker View">
    <markerTypeReference 
     id="com.example.myMarker"/>
</markerContentGenerator>
<markerField
      class="com.example.fields.NameMarkerField"
      id="com.example.field.name"
      name="Name">
</markerField>
</extension>

NameMarkerField クラスは MarkerField を拡張する必要があります。別のダミーの例:

public class AnnotationNameMarkerField extends MarkerField {

public AnnotationNameMarkerField() {
    super();
}

@Override
public String getValue(final MarkerItem item) {
    return "Dummy Name";
}

/*
 * (non-Javadoc)
 *
 * @see
 * org.eclipse.ui.views.markers.MarkerField#getDefaultColumnWidth(org.eclipse
 * .swt.widgets.Control)
 */
@Override
public int getDefaultColumnWidth(final Control control) {
    return 400;
}
}

ここで、id="com.example.myMarker" を使用してプロジェクト固有のマーカーを作成する方法を決定する必要があります。

于 2012-10-09T11:34:13.333 に答える