blob: b4508fe1236a88e63de75849056ab6633352cd1c [file] [log] [blame]
package org.eclipse.dltk.ruby.internal.debug.ui;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.dltk.debug.core.model.IScriptStackFrame;
public class RubyVariableColumnPresentationFactory implements IColumnPresentationFactory {
@Override
public IColumnPresentation createColumnPresentation(IPresentationContext context, Object element) {
if (isApplicable(context, element)) {
return new RubyVariableColumnPresentation();
}
return null;
}
@Override
public String getColumnPresentationId(IPresentationContext context, Object element) {
if (isApplicable(context, element)) {
return RubyVariableColumnPresentation.RUBY_VARIABLE_COLUMN_PRESENTATION;
}
return null;
}
private boolean isApplicable(IPresentationContext context, Object element) {
IScriptStackFrame frame = null;
if (IDebugUIConstants.ID_VARIABLE_VIEW.equals(context.getId())) {
if (element instanceof IAdaptable) {
IAdaptable adaptable = (IAdaptable)element;
frame = adaptable.getAdapter(IScriptStackFrame.class);
}
}
return frame != null;
}
}