X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Ftables%2Fmi%2FIntegerEditingSupport.java;h=2cc130afa4b3c72e87548bb220f9f044329ff658;hb=648fc6e69e09fe4467cb6bac47934be1a7dcf0d6;hp=4f5b61616245bbf157821b3e402c9c1771fe7e6c;hpb=2198fbadd2105c47ff4cd65d434616ae329802a1;p=Mograsim.git diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/IntegerEditingSupport.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/IntegerEditingSupport.java index 4f5b6161..2cc130af 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/IntegerEditingSupport.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/IntegerEditingSupport.java @@ -21,7 +21,7 @@ public class IntegerEditingSupport extends NumberCellEditingSupport public IntegerEditingSupport(TableViewer viewer, MicroInstructionDefinition miDef, int index, DisplaySettings displaySettings, InstructionTableContentProvider provider) { - super(viewer, displaySettings); + super(viewer, displaySettings, true); classification = (IntegerClassification) miDef.getParameterClassifications()[index]; this.index = index; this.provider = provider; @@ -32,7 +32,10 @@ public class IntegerEditingSupport extends NumberCellEditingSupport { InstructionTableRow row = ((InstructionTableRow) element); MicroInstructionParameter[] params = row.data.getCell(row.address).getParameters(); - params[index] = new IntegerImmediate(value, classification.getExpectedBits()); + IntegerImmediate newParam = new IntegerImmediate(classification, value, classification.getExpectedBits()); + if (params[index].equals(newParam)) + return; + params[index] = newParam; row.data.setCell(row.address, MicroInstruction.create(params)); provider.update(row.address); // viewer.update(element, null); Does not do anything for some reason @@ -45,4 +48,11 @@ public class IntegerEditingSupport extends NumberCellEditingSupport return ((IntegerImmediate) row.data.getCell(row.address).getParameter(index)).getValueAsBigInteger(); } + @Override + public int getBitLength(Object element) + { + return ((InstructionTableRow) element).getData().getDefinition().getMicroInstructionDefinition().getParameterClassification(index) + .getExpectedBits(); + } + }