public void valueChanged(ListSelectionEvent e) {
DatasetFilterGroup configuration = getConfiguration();
if (configuration != null && (e == null || !e.getValueIsAdjusting())) {
int[] indices = filtersList.getSelectedIndices();
List<DatasetFilter> filters = configuration.getFilters();
DatasetFilterImpl filter = filters.size() > 0 && indices.length == 1 ? (DatasetFilterImpl) filters.get(indices[0]) : null;
CardLayout cardLayout = (CardLayout) filterDetailsPanel.getLayout();
if (filter == null) {
cardLayout.show(filterDetailsPanel, BLANK_PANEL_ID);
} else {
String id = filter.getId();
ConfigurationEditorForm configurationEditorForm = filterDetailPanels.get(id);
if (configurationEditorForm == null) {
filterDetailsPanel.add(filter.createComponent(), id);
filterDetailPanels.put(id, filter.getSettingsEditor());
}
cardLayout.show(filterDetailsPanel, id);
filter.getSettingsEditor().focus();
}
}
}