X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Ftables%2Fmi%2FIntegerEditingSupport.java;h=d3b48ce439d086cdc742bfcd83b98a920ca1041d;hb=8bed58cd47f4e53a0a83e066d38864aa6875502f;hp=43d6041ed585c6c04007c932f97fd9c21d0f8182;hpb=b6235ae81c28ddf0ddb585a21236df1541d1e7fb;p=Mograsim.git diff --git a/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/IntegerEditingSupport.java b/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/IntegerEditingSupport.java index 43d6041e..d3b48ce4 100644 --- a/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/IntegerEditingSupport.java +++ b/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/IntegerEditingSupport.java @@ -4,35 +4,40 @@ import java.math.BigInteger; import org.eclipse.jface.viewers.TableViewer; -import net.mograsim.machine.mi.MicroInstruction; import net.mograsim.machine.mi.MicroInstructionDefinition; import net.mograsim.machine.mi.parameters.IntegerClassification; import net.mograsim.machine.mi.parameters.IntegerImmediate; +import net.mograsim.plugin.tables.DisplaySettings; import net.mograsim.plugin.tables.NumberCellEditingSupport; -import net.mograsim.plugin.tables.memory.DisplaySettings; public class IntegerEditingSupport extends NumberCellEditingSupport { private IntegerClassification classification; private int index; + private InstructionTableContentProvider provider; - public IntegerEditingSupport(TableViewer viewer, MicroInstructionDefinition miDef, int index, DisplaySettings displaySettings) + public IntegerEditingSupport(TableViewer viewer, MicroInstructionDefinition miDef, int index, DisplaySettings displaySettings, + InstructionTableContentProvider provider) { super(viewer, displaySettings); classification = (IntegerClassification) miDef.getParameterClassifications()[index]; this.index = index; + this.provider = provider; } @Override protected void setAsBigInteger(Object element, BigInteger value) { - ((MicroInstruction) element).setParameter(index, new IntegerImmediate(value, classification.getExpectedBits())); + InstructionTableRow row = ((InstructionTableRow) element); + row.data.setParameter(index, new IntegerImmediate(value, classification.getExpectedBits())); + provider.update(row.address); +// viewer.update(element, null); Does not do anything for some reason } @Override protected BigInteger getAsBigInteger(Object element) { - return ((IntegerImmediate) ((MicroInstruction) element).getParameter(index)).getValueAsBigInteger(); + return ((IntegerImmediate) ((InstructionTableRow) element).data.getParameter(index)).getValueAsBigInteger(); } }