blob: ba23239bf880973ce2d2ba80ac36ee72d8b60f9e [file] [log] [blame]
/**
*
* Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
*/
package org.eclipse.osbp.xtext.datamart.common;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.osbp.ui.api.datamart.DatamartFilter;
import org.eclipse.osbp.ui.api.datamart.DatamartFilter.FilterType;
import com.vaadin.ui.Component;
public class DatamartUiFilterFactory {
Map<String, Component> uiFilters = new HashMap<>();
public Component getUiFilter(DatamartFilter filter, int numMultiRows){
Component component = uiFilters.get(filter.getName());
if (component == null) {
switch (filter.getMultipleType()) {
case SINGLE:
uiFilters.put(filter.getName(), new DatamartSingleSelect(filter.getData()));
break;
case MULTIPLE:
uiFilters.put(filter.getName(), new DatamartMultiSelect(numMultiRows, (filter.getType() != FilterType.EXCEPT), filter.getData()));
break;
default:
break;
}
switch (filter.getType()) {
case BETWEEN:
uiFilters.put(filter.getName(), new DatamartBetweenText());
break;
case BETWEEN_DATE:
uiFilters.put(filter.getName(), new DatamartBetweenDate(filter.format, filter.resolution));
break;
default:
break;
}
component = uiFilters.get(filter.getName());
}
return component;
}
}