public void createControl()

in ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/TestViewPage.java [119:328]


  public void createControl(Composite parent) {

    IPreferenceStore store = RutaAddonsPlugin.getDefault().getPreferenceStore();
    this.propertyChangeListener = new IPropertyChangeListener() {
      public void propertyChange(PropertyChangeEvent event) {
        if (event.getProperty().equals("LOAD_OLD_TEST_RESULTS")) {

          if (event.getNewValue().toString().equals("true")) {
            loadExistingTests();
          }
        }
      }
    };
    store.addPropertyChangeListener(propertyChangeListener);

    this.overlay = new Composite(parent, SWT.NULL);

    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 1;
    gridLayout.marginWidth = 5;
    gridLayout.marginHeight = 5;
    overlay.setLayout(gridLayout);

    // Composite rowButtonOverlay = new Composite(overlay, SWT.RIGHT_TO_LEFT);
    GridData layoutData = new GridData(SWT.RIGHT);
    layoutData.grabExcessHorizontalSpace = true;
    layoutData.horizontalAlignment = GridData.END;
    layoutData.horizontalSpan = 1;
    // rowButtonOverlay.setLayout(rowLayout);

    tInfoPanel = new InfoPanel(overlay);
    GridData tInfoLabelData = new GridData();
    tInfoLabelData.grabExcessHorizontalSpace = true;
    tInfoLabelData.horizontalAlignment = GridData.FILL;
    tInfoLabelData.horizontalSpan = 1;
    tInfoPanel.setLayoutData(tInfoLabelData);

    IPath path = script.getFullPath().removeFileExtension();
    String pathString = path.removeFirstSegments(2).toPortableString().replaceAll("[/]", ".");
    tInfoPanel.setFilename(pathString);

    sash = new SashForm(overlay, SWT.HORIZONTAL);
    sash.setLayoutData(new GridData(GridData.FILL_BOTH));

    listviewer = new TableViewer(sash, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    labelProvider = new ListLabelProvider();
    listviewer.setLabelProvider(labelProvider);
    ListContentProvider provider = new ListContentProvider();
    listviewer.setContentProvider(provider);
    listviewer.getControl().addKeyListener(new KeyAdapter() {

      @Override
      public void keyPressed(KeyEvent e) {
        int keyCode = e.keyCode;
        // backspace or delete
        if (keyCode == SWT.BS || keyCode == SWT.DEL) {
          List<?> list = (List<?>) listviewer.getInput();
          if (listviewer.getSelection() instanceof StructuredSelection) {
            StructuredSelection selection = (StructuredSelection) listviewer.getSelection();
            Iterator<?> iter = selection.iterator();
            while (iter.hasNext()) {
              list.remove(iter.next());
            }
          }
          listviewer.refresh(false);
        }
      }

    });
    checkProjectTestStructure(script);
    loadExistingTests();

    listviewer.addSelectionChangedListener(new ISelectionChangedListener() {

      public void selectionChanged(SelectionChangedEvent event) {
        Object obj = event.getSelection();
        if (obj instanceof IStructuredSelection) {
          StructuredSelection selection = (StructuredSelection) obj;
          Iterator<?> iterator = selection.iterator();
          while (iterator.hasNext()) {
            Object element = iterator.next();
            if (element instanceof TestCasData) {
              TestCasData data = (TestCasData) element;
              updateSingleTestInformation(data);

            }
          }
        }
      }
    });

    listviewer.addDoubleClickListener(new IDoubleClickListener() {

      public void doubleClick(DoubleClickEvent event) {
        Object obj = event.getSelection();
        if (obj instanceof IStructuredSelection) {
          StructuredSelection selection = (StructuredSelection) obj;
          Iterator<?> iterator = selection.iterator();
          while (iterator.hasNext()) {
            Object element = iterator.next();
            if (element instanceof TestCasData) {
              TestCasData data = (TestCasData) element;
              if (data.getResultPath() != null) {
                openInCasEditor(data.getResultPath());
              }
            }
          }
        }

      }
    });
    Transfer[] transfers = new Transfer[] { FileTransfer.getInstance() };
    int ops = DND.DROP_COPY | DND.DROP_DEFAULT | DND.DROP_LINK | DND.DROP_MOVE;

    listviewer.addDropSupport(ops, transfers, new ListDropAdapter(listviewer));
    GridData listData = new GridData();
    listData.horizontalAlignment = GridData.FILL;
    listData.verticalAlignment = GridData.FILL;
    listData.grabExcessHorizontalSpace = true;
    listData.grabExcessVerticalSpace = true;
    listData.horizontalSpan = 1;
    listviewer.getControl().setLayoutData(listData);

    tableViewer = new TableViewer(sash);
    tableViewer.setLabelProvider(new EvalTableLabelProvider());
    tableViewer.setContentProvider(new EvalTableContentProvider());

    tableViewer.setSorter(new TypeTableSorter());

    Table table = tableViewer.getTable();

    TableColumn tc = new TableColumn(table, SWT.LEFT);
    tc.setText("Type");
    tc.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent event) {
        ((TypeTableSorter) tableViewer.getSorter()).doSort(TypeEvalTableConst.COLUMN_TYPE_NAME);
        tableViewer.refresh();
      }
    });

    tc = new TableColumn(table, SWT.LEFT);
    tc.setText("TP");
    tc.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent event) {
        ((TypeTableSorter) tableViewer.getSorter())
                .doSort(TypeEvalTableConst.COLUMN_TRUE_POSITIVES);
        tableViewer.refresh();
      }
    });

    tc = new TableColumn(table, SWT.LEFT);
    tc.setText("FP");
    tc.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent event) {
        ((TypeTableSorter) tableViewer.getSorter())
                .doSort(TypeEvalTableConst.COLUMN_FALSE_POSITIVES);
        tableViewer.refresh();
      }
    });

    tc = new TableColumn(table, SWT.LEFT);
    tc.setText("FN");
    tc.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent event) {
        ((TypeTableSorter) tableViewer.getSorter())
                .doSort(TypeEvalTableConst.COLUMN_FALSE_NEGATIVES);
        tableViewer.refresh();
      }
    });

    tc = new TableColumn(table, SWT.LEFT);
    tc.setText("Prec.");
    tc.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent event) {
        ((TypeTableSorter) tableViewer.getSorter()).doSort(TypeEvalTableConst.COLUMN_PRECISION);
        tableViewer.refresh();
      }
    });

    tc = new TableColumn(table, SWT.LEFT);
    tc.setText("Recall");
    tc.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent event) {
        ((TypeTableSorter) tableViewer.getSorter()).doSort(TypeEvalTableConst.COLUMN_RECALL);
        tableViewer.refresh();
      }
    });

    tc = new TableColumn(table, SWT.LEFT);
    tc.setText("F1");
    tc.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent event) {
        ((TypeTableSorter) tableViewer.getSorter()).doSort(TypeEvalTableConst.COLUMN_F1);
        tableViewer.refresh();
      }
    });

    for (int i = 0, n = table.getColumnCount(); i < n; i++) {
      table.getColumn(i).pack();
    }
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
  }