Поставщик ярлыка не называется - PullRequest
0 голосов
/ 18 февраля 2019

Следующий код не отображает текст и длину должным образом, но toString () класса Record.

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) {/**/}
}

Текст, отображаемый в столбце «Файл»: «abcStats $ Record @ 750e313c»и в столбце «Потребляемый» текст не отображается.

Я поставил точки останова в методах «getText»: они никогда не достигаются.

Где моя ошибка?

1 Ответ

0 голосов
/ 18 февраля 2019

Вы должны настроить все в таблице до того, как позвоните setInput, поэтому переместите строку

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

в конец метода.

...