我正在尝试创建自定义标记 View 。在此 View 中,我想仅将资源限制/过滤到选定的项目。该项目名称将动态提供。
例如,在项目资源管理器的上下文菜单中,用户将可以选择打开自定义标记 View 。
如果用户从project1选择自定义标记 View ,则该 View 应仅显示project1的标记。
有什么建议吗?
最佳答案
我也做过类似的事情。首先在您的plugin.xml 中定义一个View,相应的类必须扩展MarkerSupportView。像这样的事情:
public class MarkerView extends MarkerSupportView {
public MarkerView() {
super("com.example.markerEventContentGenerator"); //$NON-NLS-1$
}
}
然后您需要定义新 View 中的列以及必须显示的标记类型。这是来自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"创建项目特定标记。
关于eclipse-pde - Eclipse 自定义标记 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12511519/