blob: a44c583f0e0cebf154daf8b2b0d434eb5b9b8523 [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.IDatamartFilterGenerator;
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.getType()) {
case BY_ID:
break;
case SINGLE:
case SINGLEHIERARCHY:
uiFilters.put(filter.getName(), new DatamartSingleSelect(false, false, filter.getData()));
break;
case SINGLESLICER:
uiFilters.put(filter.getName(), new DatamartSingleSelect(false, true, filter.getData()));
break;
case EXCEPT:
uiFilters.put(filter.getName(), new DatamartMultiSelect(numMultiRows, false, true, false, filter.getData()));
break;
case MULTIPLE:
case MULTIPLEHIERARCHY:
uiFilters.put(filter.getName(), new DatamartMultiSelect(numMultiRows, false, false, true, filter.getData()));
break;
case MULTIPLESLICER:
uiFilters.put(filter.getName(), new DatamartMultiSelect(numMultiRows, false, true, true, filter.getData()));
break;
case BETWEEN:
uiFilters.put(filter.getName(), new DatamartBetweenText());
break;
case BETWEEN_DATE:
uiFilters.put(filter.getName(), new DatamartBetweenDate(filter.format, filter.resolution));
break;
}
component = uiFilters.get(filter.getName());
}
return component;
}
}