package org.erlide.tracing.core.mvc.controller; import org.eclipse.jface.viewers.ICellModifier; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.widgets.TableItem; import org.erlide.tracing.core.mvc.model.TracedNode; import org.erlide.tracing.core.mvc.view.NodeColumn; /** * Cell modifier for nodes table. * * @author Piotr Dorobisz * */ public class NodeCellModifier implements ICellModifier { private final TableViewer tableViewer; /** * Creates cell modifier for trace patterns table. * * @param tableViewer * table viewer with which this cell modifier is used */ public NodeCellModifier(final TableViewer tableViewer) { this.tableViewer = tableViewer; } @Override public boolean canModify(final Object element, final String property) { return true; } @Override public Object getValue(final Object element, final String property) { final TracedNode node = (TracedNode) element; switch (NodeColumn.valueOf(property)) { case COOKIE: return node.getCookie(); case ENABLED: return new Boolean(node.isEnabled()); case NODE_NAME: return node.getNodeName(); default: return null; } } @Override public void modify(final Object element, final String property, final Object value) { final TracedNode node = (TracedNode) ((TableItem) element).getData(); switch (NodeColumn.valueOf(property)) { case COOKIE: node.setCookie((String) value); break; case ENABLED: node.setEnabled((Boolean) value); break; case NODE_NAME: node.setNodeName((String) value); break; default: } tableViewer.refresh(); } }