blob: ea1e7cb7681bd50773fa9c304f1d3b25721fd900 [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 v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
*/
package org.eclipse.osbp.xtext.datamart.common;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.eclipse.osbp.ui.api.datamart.IDatamartSelectable;
import org.eclipse.osbp.ui.api.datamart.IDualData;
import org.eclipse.osbp.utils.theme.EnumCssClass;
import com.vaadin.data.Container;
import com.vaadin.ui.ListSelect;
public class DatamartMultiSelect extends ListSelect implements
IDatamartSelectable {
private static final long serialVersionUID = 7284120542309904692L;
private String filterName = null;
private boolean slicer = false;
private String hierarchy = null;
private IDualData firstItem = null;
@SuppressWarnings("unchecked")
@Override
public boolean isMultiSelected() {
Collection<IDualData> obj = (Collection<IDualData>) getValue();
return (obj.size() > 0);
}
public DatamartMultiSelect(int rowsLimit, boolean isExcept,
boolean isSlicer, String filterName, Collection<IDualData> data) {
addStyleName(EnumCssClass.MULTI_SELECTION.styleName());
slicer = isSlicer;
setFilterName(filterName);
setMultiSelect(true);
update(data);
if (data.size() > rowsLimit) {
setRows(rowsLimit);
} else {
setRows(data.size());
}
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public boolean isSlicer() {
return slicer;
}
public DatamartMultiSelect() {
}
/**
* (re)set all options visible in this box
*
* @param options
*/
public void update(Collection<IDualData> options) {
removeAllItems();
firstItem = null;
for (IDualData dd : options) {
setHierarchy(dd.getHierarchy());
// String item = dd.getFormattedValue();
String item = dd.getSignificantValue();
if (item != null) {
if (firstItem == null) {
firstItem = dd;
}
addItem(dd);
// setItemCaption(dd, dd.getFormattedValue());
setItemCaption(dd, dd.getSignificantValue());
}
}
// always select the first option
Collection<IDualData> selectedItems = new ArrayList<IDualData>();
selectedItems.add(firstItem);
setValue(selectedItems);
setEnabled(true);
super.setWidth(null);
setNullSelectionAllowed(false);
setImmediate(true);
}
public void setWidth(String width) {
super.setWidth(width);
}
public String getFilterName() {
return filterName;
}
public void setFilterName(String filterName) {
this.filterName = filterName;
}
public List<IDualData> getSelectedItems() {
List<IDualData> list = new ArrayList<IDualData>();
for (Object item : (Collection<?>) getValue()) {
list.add((IDualData) item);
}
return (list);
}
public IDualData getFirstItem() {
return firstItem;
}
public String getHierarchy() {
return hierarchy;
}
public void setHierarchy(String hierarchy) {
this.hierarchy = hierarchy;
}
@Override
public Container getContainerDataSource() {
return super.getContainerDataSource();
}
@Override
public void select(Object obj) {
super.select(obj);
}
@Override
public void addValueChangeListener(ValueChangeListener listener) {
super.addValueChangeListener(listener);
}
@Override
public void removeValueChangeListener(ValueChangeListener listener) {
super.removeValueChangeListener(listener);
}
@Override
public void setCaption(String caption) {
super.setCaption(caption);
}
@Override
public void setDescription(String description) {
super.setDescription(description);
}
@Override
public float getHeight() {
return super.getHeight();
}
@Override
public Unit getHeightUnits() {
return super.getHeightUnits();
}
@Override
public Object getValue() {
return super.getValue();
}
}