Сортировка таблицы SWT с несколькими столбцами по заголовку таблицы вверх и вниз - PullRequest
0 голосов
/ 09 мая 2019

Я добавил слушатель в заголовке таблицы в таблицу SWT, чтобы отсортировать ее.Но работает только с первым и вторым столбцом.

    Listener sortListener = new Listener() {
        public void handleEvent(Event e) {
          TableItem[] items = table.getItems();
          Collator collator = Collator.getInstance(Locale.getDefault());
          TableColumn column = (TableColumn) e.widget;
          int index = column == tblclmnName ? 0 : 1;
          for (int i = 1; i < items.length; i++) {
            String value1 = items[i].getText(index);
            System.out.print(value1);
            for (int j = 0; j < i; j++) {
              String value2 = items[j].getText(index);
              if (collator.compare(value1, value2) < 0) {
                String[] values = { items[i].getText(0), items[i].getText(1), items[i].getText(2), items[i].getText(3),
                        items[i].getText(4), items[i].getText(5)};
                items[i].dispose();
                TableItem item = new TableItem(table, SWT.NONE, j);
                item.setText(values);
                items = table.getItems();
                break;
              }
            }
          }
          table.setSortColumn(column);
        }
      };

    tblclmnName.addListener(SWT.Selection, sortListener);
    tblclmnLevel.addListener(SWT.Selection, sortListener);
    tblclmnApplication.addListener(SWT.Selection, sortListener);
    tblclmnDate.addListener(SWT.Selection, sortListener);
    tblclmnTime.addListener(SWT.Selection, sortListener);
    tblclmnAssignment.addListener(SWT.Selection, sortListener);
    table.setSortColumn(tblclmnName);
    table.setSortDirection(SWT.UP);     

А как сортировать по возрастанию и убыванию?

...