private Collection<SpecimenOrObservationBase> specimenCache = null;
- private ListDataProvider<RowWrapper> bodyDataProvider;
++ private ListDataProvider<Object> bodyDataProvider;
+
@PostConstruct
public void create(Composite parent) {
if(CdmStore.isActive() && conversation==null){
* data provider
*/
SpecimenColumnPropertyAccessor columnPropertyAccessor = new SpecimenColumnPropertyAccessor(this);
- IDataProvider bodyDataProvider = new ListDataProvider<Object>(treeList, columnPropertyAccessor);
- bodyDataProvider = new ListDataProvider<RowWrapper>(sortedList, columnPropertyAccessor);
++ bodyDataProvider = new ListDataProvider<Object>(treeList, columnPropertyAccessor);
/**
* BODY layer
this.specimenCache = specimenCache;
}
- public ListDataProvider<RowWrapper> getBodyDataProvider() {
+ /**
+ * @return the bodyDataProvider
+ */
++ public ListDataProvider<Object> getBodyDataProvider() {
+ return bodyDataProvider;
+ }
+
@Persist
@Override
public void save(IProgressMonitor monitor) {
@Override
public void setCanonicalValue(Object canonicalValue) {
- CategoricalData data = CategoricalData.NewInstance(feature);
- RowWrapper rowWrapper = matrix.getBodyDataProvider().getRowObject(this.getRowIndex());
- rowWrapper.getSpecimenDescription().addElement(data);
- canonicalValue = data;
+ if(canonicalValue==null){
++ Object rowWrapper = matrix.getBodyDataProvider().getRowObject(this.getRowIndex());
++ if(rowWrapper instanceof RowWrapper){
++ CategoricalData data = CategoricalData.NewInstance(feature);
++ ((RowWrapper) rowWrapper).getSpecimenDescription().addElement(data);
++ canonicalValue = data;
++ }
+ }
if (canonicalValue instanceof CategoricalData) {
CategoricalData data = (CategoricalData)canonicalValue;
List<State> states = data.getStatesOnly();
@Override
protected Control activateCell(Composite parent, Object originalCanonicalValue) {
this.editorControl = createEditorControl(parent);
- QuantitativeData data = QuantitativeData.NewInstance(feature);
- RowWrapper rowObject = matrix.getBodyDataProvider().getRowObject(this.getRowIndex());
- rowObject.getSpecimenDescription().addElement(data);
- originalCanonicalValue = data;
+ if(originalCanonicalValue==null){
++ Object rowObject = matrix.getBodyDataProvider().getRowObject(this.getRowIndex());
++ if(rowObject instanceof RowWrapper){
++ QuantitativeData data = QuantitativeData.NewInstance(feature);
++ ((RowWrapper) rowObject).getSpecimenDescription().addElement(data);
++ originalCanonicalValue = data;
++ }
+ }
this.setEditorValue(originalCanonicalValue);
if(originalCanonicalValue instanceof QuantitativeData){