public void onSelectFilterFunction() { int selectedIdx = view.getSelectedFunctionIndex(); if (selectedIdx >= 0) { CoreFunctionFilter coreFilter = getCoreFilter(); CoreFunctionType functionType = getAvailableFunctions(coreFilter).get(selectedIdx); ColumnType columnType = metadata.getColumnType(coreFilter.getColumnId()); List params = FilterFactory.createParameters(columnType, functionType); coreFilter.setType(functionType); coreFilter.setParameters(params); initFilterSelector(); fireFilterChanged(); if (!initFilterConfig().isEmpty()) { view.showFilterConfig(); } } }
@UiHandler(value = "filterListBox") public void onFilterSelected(ChangeEvent changeEvent) { presenter.onSelectFilterFunction(); }
protected List<FunctionParameterEditor> initFilterConfig() { view.clearFilterConfig(); List<FunctionParameterEditor> inputs = createFilterInputControls(); if (!inputs.isEmpty()) { for (IsWidget input : inputs) { view.addFilterConfigWidget(input); } inputs.get(0).setFocus(true); } return inputs; }
protected void updateSelectedFilter() { String currentFunction = formatFilterFunction(getCoreFilter()); view.setFunctionSelected(currentFunction); fireFilterChanged(); }
protected void initFilterSelector() { CoreFunctionFilter coreFilter = getCoreFilter(); if (coreFilter != null) { view.clearFunctionSelector(); String currentFunction = formatFilterFunction(coreFilter); view.setFunctionSelected(currentFunction); List<CoreFunctionType> calculateAvailableFunctions = getAvailableFunctions(coreFilter); for (CoreFunctionType functionType : calculateAvailableFunctions) { view.addFunctionItem(functionType); } } }
protected List<FunctionParameterEditor> createFilterInputControls() { List<FunctionParameterEditor> filterInputControls = new ArrayList<FunctionParameterEditor>(); CoreFunctionFilter coreFilter = getCoreFilter(); if (CoreFunctionType.LIKE_TO.equals(coreFilter.getType())) { FunctionParameterEditor paramInput = createLikeToFunctionWidget(coreFilter); filterInputControls.add(paramInput); } else { for (int i = 0; i < coreFilter.getType().getParametersCount(); i++) { FunctionParameterEditor paramInput = createParamInputWidget(coreFilter, i); filterInputControls.add(paramInput); } } return filterInputControls; }
protected FunctionParameterEditor createParamInputWidget(final CoreFunctionFilter coreFilter, final int paramIndex) { final List paramList = coreFilter.getParameters(); ColumnType columnType = metadata.getColumnType(coreFilter.getColumnId()); CoreFunctionType functionType = coreFilter.getType(); boolean isMultiple = CoreFunctionType.IN.equals(functionType) || CoreFunctionType.NOT_IN.equals(functionType); if (ColumnType.DATE.equals(columnType)) { if (CoreFunctionType.TIME_FRAME.equals(coreFilter.getType())) { return createTimeFrameWidget(paramList, paramIndex); } return createDateInputWidget(paramList, paramIndex); } if (!isMultiple) { if (ColumnType.NUMBER.equals(columnType)) { return createNumberInputWidget(paramList, paramIndex); } return createTextInputWidget(paramList, paramIndex); } else { if (ColumnType.NUMBER.equals(columnType)) { return createMultipleNumberInputWidget(paramList); } return createMultipleTextInputWidget(paramList); } }
protected ColumnFilterEditor setupEditor(ColumnType columnType, CoreFunctionType functionType, Comparable... params) { when(metadata.getColumnType("col")).thenReturn(columnType); CoreFunctionFilter filter = new CoreFunctionFilter("col", functionType, params); ColumnFilterEditor filterEditor = new ColumnFilterEditor(view, beanManager, changedEvent, deletedEvent); filterEditor.init(metadata, filter); assertEquals(view, filterEditor.getView()); return filterEditor; }
@Test public void testSelectFunction() { ColumnFilterEditor presenter = setupEditor(ColumnType.LABEL, CoreFunctionType.EQUALS_TO, "value"); verify(view).clearFilterConfig(); verify(view).setFunctionSelected("col = value"); reset(view); when(view.getSelectedFunctionIndex()).thenReturn(2); presenter.onSelectFilterFunction(); assertEquals(presenter.getCoreFilter().getType(), CoreFunctionType.NOT_EQUALS_TO); verify(changedEvent).fire(any(ColumnFilterChangedEvent.class)); verify(view).clearFilterConfig(); verify(view).setFunctionSelected("col != value1"); } }
public void onCreateFilter() { int selectedIdx = view.getSelectedColumnIndex(); String columnId = metadata.getColumnId(selectedIdx); ColumnType columnType = metadata.getColumnType(selectedIdx); CoreFunctionFilter columnFilter = FilterFactory.createCoreFunctionFilter( columnId, columnType, ColumnType.DATE.equals(columnType) ? CoreFunctionType.TIME_FRAME : CoreFunctionType.NOT_EQUALS_TO); if (filter == null) { filter = new DataSetFilter(); } filter.addFilterColumn(columnFilter); ColumnFilterEditor columnFilterEditor = beanManager.lookupBean(ColumnFilterEditor.class).newInstance(); columnFilterEditor.init(metadata, columnFilter); columnFilterEditor.expand(); view.addColumnFilterEditor(columnFilterEditor); view.resetSelectedColumn(); view.showNewFilterHome(); changeEvent.fire(new DataSetFilterChangedEvent(filter)); }
protected void onColumnFilterDeleted(@Observes final ColumnFilterDeletedEvent event) { ColumnFilterEditor editor = event.getColumnFilterEditor(); ColumnFilter columnFilter = editor.getFilter(); filter.getColumnFilterList().remove(columnFilter); view.removeColumnFilterEditor(editor); view.showNewFilterHome(); beanManager.destroyBean(editor); changeEvent.fire(new DataSetFilterChangedEvent(filter)); } }
public void init(DataSetFilter filter, DataSetMetadata metadata) { this.filter = filter; this.metadata = metadata; view.showNewFilterHome(); view.clearColumnSelector(); if (metadata != null) { for (int i = 0; i < metadata.getNumberOfColumns(); i++) { view.addColumn(metadata.getColumnId(i)); } } view.clearColumnFilterEditors(); if (filter != null) { for (ColumnFilter columnFilter : filter.getColumnFilterList()) { ColumnFilterEditor columnFilterEditor = beanManager.lookupBean(ColumnFilterEditor.class).newInstance(); columnFilterEditor.init(metadata, columnFilter); view.addColumnFilterEditor(columnFilterEditor); } } }
protected FunctionParameterEditor createParamInputWidget(final CoreFunctionFilter coreFilter, final int paramIndex) { final List paramList = coreFilter.getParameters(); ColumnType columnType = metadata.getColumnType(coreFilter.getColumnId()); CoreFunctionType functionType = coreFilter.getType(); boolean isMultiple = CoreFunctionType.IN.equals(functionType) || CoreFunctionType.NOT_IN.equals(functionType); if (ColumnType.DATE.equals(columnType)) { if (CoreFunctionType.TIME_FRAME.equals(coreFilter.getType())) { return createTimeFrameWidget(paramList, paramIndex); } return createDateInputWidget(paramList, paramIndex); } if (!isMultiple) { if (ColumnType.NUMBER.equals(columnType)) { return createNumberInputWidget(paramList, paramIndex); } return createTextInputWidget(paramList, paramIndex); } else { if (ColumnType.NUMBER.equals(columnType)) { return createMultipleNumberInputWidget(paramList); } return createMultipleTextInputWidget(paramList); } }
protected void initFilterSelector() { CoreFunctionFilter coreFilter = getCoreFilter(); if (coreFilter != null) { view.clearFunctionSelector(); String currentFunction = formatFilterFunction(coreFilter); view.setFunctionSelected(currentFunction); List<CoreFunctionType> calculateAvailableFunctions = getAvailableFunctions(coreFilter); for (CoreFunctionType functionType : calculateAvailableFunctions) { view.addFunctionItem(functionType); } } }
protected ColumnFilterEditor setupEditor(ColumnType columnType, CoreFunctionType functionType, Comparable... params) { when(metadata.getColumnType("col")).thenReturn(columnType); CoreFunctionFilter filter = new CoreFunctionFilter("col", functionType, params); ColumnFilterEditor filterEditor = new ColumnFilterEditor(view, beanManager, changedEvent, deletedEvent); filterEditor.init(metadata, filter); assertEquals(view, filterEditor.getView()); return filterEditor; }
protected void updateSelectedFilter() { String currentFunction = formatFilterFunction(getCoreFilter()); view.setFunctionSelected(currentFunction); fireFilterChanged(); }
@Test public void testSelectFunction() { ColumnFilterEditor presenter = setupEditor(ColumnType.LABEL, CoreFunctionType.EQUALS_TO, "value"); verify(view).clearFilterConfig(); verify(view).setFunctionSelected("col = value"); reset(view); when(view.getSelectedFunctionIndex()).thenReturn(2); presenter.onSelectFilterFunction(); assertEquals(presenter.getCoreFilter().getType(), CoreFunctionType.NOT_EQUALS_TO); verify(changedEvent).fire(any(ColumnFilterChangedEvent.class)); verify(view).clearFilterConfig(); verify(view).setFunctionSelected("col != value1"); } }
protected List<FunctionParameterEditor> createFilterInputControls() { List<FunctionParameterEditor> filterInputControls = new ArrayList<FunctionParameterEditor>(); CoreFunctionFilter coreFilter = getCoreFilter(); if (CoreFunctionType.LIKE_TO.equals(coreFilter.getType())) { FunctionParameterEditor paramInput = createLikeToFunctionWidget(coreFilter); filterInputControls.add(paramInput); } else { for (int i = 0; i < coreFilter.getType().getParametersCount(); i++) { FunctionParameterEditor paramInput = createParamInputWidget(coreFilter, i); filterInputControls.add(paramInput); } } return filterInputControls; }
public void onCreateFilter() { int selectedIdx = view.getSelectedColumnIndex(); String columnId = metadata.getColumnId(selectedIdx); ColumnType columnType = metadata.getColumnType(selectedIdx); CoreFunctionFilter columnFilter = FilterFactory.createCoreFunctionFilter( columnId, columnType, ColumnType.DATE.equals(columnType) ? CoreFunctionType.TIME_FRAME : CoreFunctionType.NOT_EQUALS_TO); if (filter == null) { filter = new DataSetFilter(); } filter.addFilterColumn(columnFilter); ColumnFilterEditor columnFilterEditor = beanManager.lookupBean(ColumnFilterEditor.class).newInstance(); columnFilterEditor.init(metadata, columnFilter); columnFilterEditor.expand(); view.addColumnFilterEditor(columnFilterEditor); view.resetSelectedColumn(); view.showNewFilterHome(); changeEvent.fire(new DataSetFilterChangedEvent(filter)); }
protected void onColumnFilterDeleted(@Observes final ColumnFilterDeletedEvent event) { ColumnFilterEditor editor = event.getColumnFilterEditor(); ColumnFilter columnFilter = editor.getFilter(); filter.getColumnFilterList().remove(columnFilter); view.removeColumnFilterEditor(editor); view.showNewFilterHome(); beanManager.destroyBean(editor); changeEvent.fire(new DataSetFilterChangedEvent(filter)); } }