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=3c0a61240967a0afdd1866d13b4ff2022c22410b;hb=925846da463235961d749c2bd4615e0cb83f4f24;hp=fa7a918b39265b9db20df66c5ecc0d91984eb72a;hpb=2198fbadd2105c47ff4cd65d434616ae329802a1;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 fa7a918b..3c0a6124 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 @@ -1,19 +1,18 @@ package net.mograsim.plugin.tables.mi; import org.eclipse.jface.viewers.CellEditor; -import org.eclipse.jface.viewers.CheckboxCellEditor; 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; @@ -23,7 +22,7 @@ public class BooleanEditingSupport extends EditingSupport super(viewer); this.viewer = viewer; this.boolClass = (BooleanClassification) definition.getParameterClassification(index); - editor = new CheckboxCellEditor(viewer.getTable()); + editor = new CyclingCellEditor(viewer.getTable(), boolClass.size());// new CheckboxCellEditor(viewer.getTable()); this.index = index; } @@ -43,7 +42,8 @@ public class BooleanEditingSupport extends EditingSupport protected Object getValue(Object element) { InstructionTableRow row = (InstructionTableRow) element; - return row.data.getCell(row.address).getParameter(index).getValue().getMSBit(0).equals(Bit.ONE); + // true is 0 because the true value comes first in the combo box + return ((Mnemonic) row.data.getCell(row.address).getParameter(index)).ordinal(); } @Override @@ -51,7 +51,10 @@ public class BooleanEditingSupport extends EditingSupport { InstructionTableRow row = (InstructionTableRow) element; MicroInstructionParameter[] params = row.data.getCell(row.address).getParameters(); - params[index] = boolClass.get((Boolean) value); + // true is 0 because the true value comes first in the combo box + Mnemonic newParam = boolClass.get((Integer) value); + + params[index] = newParam; row.data.setCell(row.address, MicroInstruction.create(params)); viewer.update(element, null); }