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); }