代码之家  ›  专栏  ›  技术社区  ›  Aubin

未调用标签提供程序

  •  -1
  • Aubin  · 技术社区  · 7 年前

    public class CodeCheckerPreferencePage extends PreferencePage
       implements
          IWorkbenchPreferencePage
    {
       public CodeCheckerPreferencePage() {
          super( "Code checker statistics" );
       }
    
       @Override
       protected Control createContents( Composite parent ) {
          final TableViewer viewer =
             new TableViewer(
                parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL |
                        SWT.FULL_SELECTION | SWT.BORDER );
          viewer.setContentProvider( ArrayContentProvider.getInstance());
          viewer.setInput( Stats.getStats().getRecords());
          final Table table = viewer.getTable();
          table.setHeaderVisible( true );
          table.setLinesVisible( true );
          final TableViewerColumn colFile =
             new TableViewerColumn( viewer, SWT.NONE );
          colFile.getColumn().setWidth( 400 );
          colFile.getColumn().setText( "File" );
          colFile.setLabelProvider( new ColumnLabelProvider() {
             @Override public String getText( Object element ) {
                return ((Stats.Record)element).getFile(); }});
          final TableViewerColumn colConsumed =
             new TableViewerColumn( viewer, SWT.NONE );
          colConsumed.getColumn().setWidth( 80 );
          colConsumed.getColumn().setText( "Consumed ms" );
          colConsumed.setLabelProvider( new ColumnLabelProvider() {
             @Override public String getText( Object element ) {
                return String.format( "%3d",
                          ((Stats.Record)element).getConsumed()); }});
          final GridData gridData = new GridData();
          gridData.verticalAlignment = GridData.FILL;
          gridData.horizontalSpan = 2;
          gridData.grabExcessHorizontalSpace = true;
          gridData.grabExcessVerticalSpace = true;
          gridData.horizontalAlignment = GridData.FILL;
          viewer.getControl().setLayoutData(gridData);
          return table;
       }
    
       @Override
       public void init(IWorkbench workbench) {/**/}
    }
    

    “文件”列中显示的文本是“a.b.c.Stats$Record@750e313c”,而“消耗”列中不显示任何文本。

    我在“getText”方法中设置了断点:它们永远不会到达。

    我的错误在哪里?

    0 回复  |  直到 7 年前
        1
  •  1
  •   greg-449    7 年前

    你必须把桌子的一切都摆好 之前 setInput 所以移动

      viewer.setInput( Stats.getStats().getRecords());
    

    方法结尾的行。