package org.eclipse.nebula.widgets.xviewer.edit;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.nebula.widgets.xviewer.core.model.XViewerAlign;
import org.eclipse.nebula.widgets.xviewer.core.model.SortDataType;
import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn;
/**
* XViewerColumns with a description map(key is the inputObject.class)
*
* @author Juergen Reichl
*/
public class ExtendedViewerColumn extends XViewerColumn implements IExtendedViewerColumn {
private Map<Class<?>, CellEditDescriptor> map = new HashMap<Class<?>, CellEditDescriptor>();
public ExtendedViewerColumn(String id, String name, int width, XViewerAlign align, boolean show, SortDataType sortDataType, boolean multiColumnEditable, String description) {
super(id, name, width, align, show, sortDataType, multiColumnEditable, description);
}
/**
* @see IExtendedViewerColumn#getCellEditDescriptorMap()
*/
@Override
public Map<Class<?>, CellEditDescriptor> getCellEditDescriptorMap() {
return new HashMap<Class<?>, CellEditDescriptor>(map);
}
@Override
public void setCellEditDescriptorMap(Map<Class<?>, CellEditDescriptor> map) {
this.map = map;
}
/**
* @see org.eclipse.nebula.widgets.xviewer.XViewerColumn#copy()
*/
@Override
public XViewerColumn copy() {
XViewerColumn copyColumn = new ExtendedViewerColumn(super.id, super.name, super.getWidth(), super.getAlign(),
super.isShow(), super.getSortDataType(), super.isMultiColumnEditable(), super.getDescription());
((ExtendedViewerColumn) copyColumn).setCellEditDescriptorMap(map);
return copyColumn;
}
@Override
public void addMapEntry(Class<?> key, CellEditDescriptor ced) {
map.put(key, ced);
}
@Override
public void removeMapEntry(Class<?> key) {
map.remove(key);
}
@Override
public void clearMap() {
map.clear();
}
}