如何将自定义标记设置为自定义视图?

时间:2014-10-16 09:37:56

标签: eclipse eclipse-plugin eclipse-pde

我创建了eclipse插件,我需要自定义标记视图。我创建了一个视图并创建了一个我自己的标记,我需要在视图中有4个列,名为location,resource,value,method name。我不在输出视图中获取自定义字段,如值和方法名称像位置资源这样的onlu默认列正在进行中。

plugin.xml中:

<extension
     id="com.test.plugin.markers"
     name="Test Markers"
     point="org.eclipse.core.resources.markers">
  <persistent
        value="true">
  </persistent>
  <super
        type="org.eclipse.core.resources.textmarker">
  </super>
  <attribute
        name="Name">
  </attribute>
  </extension>

  <!--creating new view for displaying the markers --> 
  <extension 
   point="org.eclipse.ui.views"> 
  <view 
     class="marker.handlers.CustomMarkerView" 
     icon="icons/sample.gif" 
     id="com.test.customMarker" 
     name="Test Markers View"> 
  </view> 
 </extension >

  <extension  point="org.eclipse.ui.ide.markerSupport"> 
  <markerContentGenerator 
   id="com.test.customMarkerGenerator" name="Custom Marker View">      
  <markerTypeReference 
     id="com.test.plugin.markers"/>   
 <markerFieldReference 
     id="org.eclipse.ui.ide.locationField"/>  
  <markerFieldReference 
     id="org.eclipse.ui.ide.resourceField"/>
<markerFieldReference 
     id="com.test.value"/> <markerFieldReference 
     id="com.test.methodname"/> 
 </markerContentGenerator>

 <markerField
  class="marker.handlers.MethodName"
  id="com.test.methodname"
  name="Method Name">
</markerField>

 <markerField
  class="marker.test.Value"
  id="com.test.value"
  name="Value">
 </markerField>
</extension>

CustomMarkerView.java:

public class CustomMarkerView extends MarkerSupportView {

public CustomMarkerView() {
    super("com.testcustomMarkerGenerator");

}
}

MethodName.java

 public class Names extends MarkerField {

  public Names() {
    super();
  }

  public String getValue(MarkerItem item) { 
     return item.getMarker().getResource().getProject().getName(); 
  }
}

但是方法名称和值没有在显示中出现,我如何将自定义标记添加到自定义视图中?

1 个答案:

答案 0 :(得分:1)

最后我发现了问题,它带有我的代码。我创建了自定义字段

<markerField
  class="marker.handlers.MethodName"
  id="com.test.methodname"
  name="Method Name">

markerContentGenerator之后的

如果我们将markerField放在markerContentGenerator之前,则自定义字段会显示在视图中。

感谢。