X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Ftables%2Fmi%2FBooleanEditingSupport.java;h=8fbfe392567b9a7f7208d582d9f3a537f387a750;hb=ffae9b42c7c9d7c22e8f3a976aea5055d1cb9526;hp=c3318b582474155af6461e25915205d412d4d3ef;hpb=7d05144c25daa53e60fc9ed9fd503546a86567f8;p=Mograsim.git diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/BooleanEditingSupport.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/BooleanEditingSupport.java index c3318b58..8fbfe392 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/BooleanEditingSupport.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/BooleanEditingSupport.java @@ -6,12 +6,15 @@ import org.eclipse.jface.viewers.EditingSupport; import org.eclipse.jface.viewers.TableViewer; import net.mograsim.logic.core.types.Bit; +import net.mograsim.machine.mi.MicroInstruction; import net.mograsim.machine.mi.MicroInstructionDefinition; import net.mograsim.machine.mi.parameters.BooleanClassification; +import net.mograsim.machine.mi.parameters.MicroInstructionParameter; +import net.mograsim.machine.mi.parameters.Mnemonic; public class BooleanEditingSupport extends EditingSupport { - private final CheckboxCellEditor editor; + private final CellEditor editor; private final BooleanClassification boolClass; private final TableViewer viewer; private final int index; @@ -40,13 +43,21 @@ public class BooleanEditingSupport extends EditingSupport @Override protected Object getValue(Object element) { - return ((InstructionTableRow) element).data.getParameter(index).getValue().getMSBit(0).equals(Bit.ONE); + InstructionTableRow row = (InstructionTableRow) element; + // true is 0 because the true value comes first in the combo box + return row.data.getCell(row.address).getParameter(index).getValue().getMSBit(0).equals(Bit.ONE); } @Override protected void setValue(Object element, Object value) { - ((InstructionTableRow) element).data.setParameter(index, boolClass.get((Boolean) value)); + InstructionTableRow row = (InstructionTableRow) element; + MicroInstructionParameter[] params = row.data.getCell(row.address).getParameters(); + // true is 0 because the true value comes first in the combo box + Mnemonic newParam = boolClass.get((Boolean) value); + + params[index] = newParam; + row.data.setCell(row.address, MicroInstruction.create(params)); viewer.update(element, null); }