コード例 #1
0
ファイル: EventTable.java プロジェクト: mercatis/Lighthouse
  public void addSelectedColumnAsFilterCriteria() {
    ViewerCell cell = (ViewerCell) tableViewer.getCell(lastMousePosition);
    int columnIndex = cell.getColumnIndex();
    ColumnType columnType = (ColumnType) tableViewer.getTable().getColumn(columnIndex).getData();

    Event event = (Event) ((StructuredSelection) tableViewer.getSelection()).getFirstElement();
    List<Object> values = new LinkedList<Object>();
    int propertyIndex =
        EventTableUIElementsConstants.transformColumnNameToFilterPropertyIndex(columnType);

    switch (propertyIndex) {
      case EventFilterModel.UDF:
        for (Entry<String, Object> entry : event.getUdfs().entrySet()) {
          values.add(new Tuple<String, Object>(entry.getKey(), entry.getValue()));
        }
        values.addAll(eventFilterModel.getValuesFor(propertyIndex));
        break;
      case EventFilterModel.DATE:
        values.add(new Tuple<Date, Object>(event.getDateOfOccurrence(), null));
        break;
      case EventFilterModel.TRANSACTION_ID:
        for (String transActionId : event.getTransactionIds()) {
          values.add((Object) transActionId);
        }
        values.addAll(eventFilterModel.getValuesFor(propertyIndex));
        break;
      default:
        values.add(cell.getText());
        values.addAll(eventFilterModel.getValuesFor(propertyIndex));
    }
    eventFilterModel.setValuesFor(values, propertyIndex);
  }