/**
* Copyright (c) 2009-2011, The HATS Consortium. All rights reserved.
* This file is licensed under the terms of the Modified BSD License.
*/
package org.absmodels.abs.plugin.debug.views.variablesview;
import org.absmodels.abs.plugin.debug.model.VariableValuePair;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.graphics.Image;
import abs.backend.java.observing.ObjectView;
/**
* TableLabelProvider for the TreeViewer of the VariablView. This class provides labels (and could also
* provide icons if wanted in later revisions) for the variable tree reflecting the state of a stack frame
* or an object.
* @author tfischer
*/
public class VariableLabelProvider implements ITableLabelProvider{
@Override
public void addListener(ILabelProviderListener listener) { }
@Override
public void dispose() { }
@Override
public boolean isLabelProperty(Object element, String property) { return false; }
@Override
public void removeListener(ILabelProviderListener listener) { }
@Override
public Image getColumnImage(Object element, int columnIndex) { return null; }
@Override
public String getColumnText(Object element, int columnIndex) {
if(element != null){
if(element instanceof VariableValuePair){
VariableValuePair elem = (VariableValuePair)element;
if(elem.getValue() instanceof ObjectView && columnIndex == 0){
return elem.getIdentifier();
} else{
switch(columnIndex){
case 0 : return elem.getIdentifier();
case 1 :
if(elem.getValue() == null){
return "null";
} else{
return elem.getValue().toString();
}
default: return "Errornous Column";
}
}
} else{
return "Error: The VariableView can only display VariableValuePairs. Encountered element " + element.getClass().toString();
}
} else{
return "Error: The VariableView can only display VariableValuePairs. Encountered null.";
}
}
}