カスタマイズされたマーカー ビューを作成しようとしています。このビューでは、リソースを選択したプロジェクトのみに制限/フィルタリングしたいと考えています。このプロジェクト名は動的に提供されます。
たとえば、プロジェクト エクスプローラーのコンテキスト メニューでは、カスタム マーカー ビューを開くオプションがユーザーに与えられます。
ユーザーが project1 からカスタム マーカー ビューを選択した場合、ビューには project1 のマーカーのみが表示されます。
助言がありますか?
カスタマイズされたマーカー ビューを作成しようとしています。このビューでは、リソースを選択したプロジェクトのみに制限/フィルタリングしたいと考えています。このプロジェクト名は動的に提供されます。
たとえば、プロジェクト エクスプローラーのコンテキスト メニューでは、カスタム マーカー ビューを開くオプションがユーザーに与えられます。
ユーザーが project1 からカスタム マーカー ビューを選択した場合、ビューには project1 のマーカーのみが表示されます。
助言がありますか?
私は似たようなことをしました。最初に、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" を使用してプロジェクト固有のマーカーを作成する方法を決定する必要があります。