Added short titles for MPM columns
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Wed, 13 Nov 2019 12:07:07 +0000 (13:07 +0100)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Wed, 13 Nov 2019 12:07:07 +0000 (13:07 +0100)
plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900MicroInstructionDefinition.java
plugins/net.mograsim.machine/src/net/mograsim/machine/mi/MicroInstructionDefinition.java
plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/MainPreferencePage.java
plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionTable.java
plugins/net.mograsim.preferences/src/net/mograsim/preferences/DefaultPreferences.java

index dc149c8..c2272bd 100644 (file)
@@ -80,6 +80,10 @@ public class Am2900MicroInstructionDefinition implements MicroInstructionDefinit
                        dbus, am2904CarryInstructions, am2904ShiftInstructions, hL, hL, am2904StatusInstructions, ccen, am2910Instructions,
                        constant_12bit, hL, hE, hI, hE, hL, rW };
 
+       private static final String[] paramTitle = { "IE", "I", "KMUX", "K", "01 Src", "01 Func", "01 Dest", "01 RA", "01 ASel", "01 RB",
+                       "01 BSel", "_ABus", "_DBus", "04 Cin", "04 Shift", "04 _CE\u00b5", "_CEM", "04 Op", "10 _CCEN", "10 I", "D", "BZ _LD", "BZ _ED",
+                       "BZ _INC", "BZ _EA", "IR _LD", "_MWE" };
+
        private static final String[] paramDesc = { "Allow interrupts?", "Interrupt instructions; omitted for simplicity",
                        "Get D-input from data bus/constant value", "Constant value", "Operand sources for ALU operation", "ALU operation",
                        "Destination of ALU calculation", "Register for A-operand", "Get A-operand from instruction register/micro instruction?",
@@ -102,6 +106,12 @@ public class Am2900MicroInstructionDefinition implements MicroInstructionDefinit
                return classes[index];
        }
 
+       @Override
+       public Optional<String> getParameterTitle(int index)
+       {
+               return Optional.of(paramTitle[index]);
+       }
+
        @Override
        public Optional<String> getParameterDescription(int index)
        {
index e5e3448..4054bb8 100644 (file)
@@ -48,5 +48,7 @@ public interface MicroInstructionDefinition
                return new StandardMicroInstruction(params);
        }
 
+       public Optional<String> getParameterTitle(int index);
+
        public Optional<String> getParameterDescription(int index);
 }
\ No newline at end of file
index 87e2334..79a18f1 100644 (file)
@@ -34,8 +34,8 @@ public class MainPreferencePage extends FieldEditorPreferencePage implements IWo
                addField(new ComboFieldEditor("net.mograsim.logic.model.button.action", "Mouse button for actions", MOUSE_BUTTONS, parent));
                addField(new ComboFieldEditor("net.mograsim.logic.model.button.drag", "Mouse button for dragging", MOUSE_BUTTONS, parent));
                addField(new ComboFieldEditor("net.mograsim.logic.model.button.zoom", "Mouse button for zooming", MOUSE_BUTTONS, parent));
-               addField(new BooleanFieldEditor("net.mograsim.plugin.core.editors.mpm.descriptionascolumnname",
-                               "Use the MPM column description as table header", parent));
+               addField(new BooleanFieldEditor("net.mograsim.plugin.core.editors.mpm.bitsascolumnname",
+                               "Use the raw bit indices of MPM columns as column titles in the MPM editor", parent));
                // TODO add other preferences
        }
 }
\ No newline at end of file
index 2632f39..81e0f16 100644 (file)
@@ -132,19 +132,14 @@ public class InstructionTable
                        int startBit = bit - 1;
                        int endBit = bit = bit - classes[i].getExpectedBits();
 
-                       String description = miDef.getParameterDescription(i).orElse(null);
+                       String columnTitle;
                        String bitString = startBit == endBit ? Integer.toString(startBit) : startBit + "..." + endBit;
-                       String columnTitle, columnTooltip;
-                       if (useDescriptionAsColumnTitle(description))
-                       {
-                               columnTitle = description;
-                               columnTooltip = bitString;
-                       } else
-                       {
+                       if (Preferences.current().getBoolean("net.mograsim.plugin.core.editors.mpm.bitsascolumnname"))
                                columnTitle = bitString;
-                               columnTooltip = description;
-                       }
+                       else
+                               columnTitle = miDef.getParameterTitle(i).orElse(bitString);
                        columnTitles[i] = columnTitle;
+                       String columnTooltip = miDef.getParameterDescription(i).orElse(null);
 
                        col = createTableViewerColumn(columnTitle, columnTooltip);
                        columns[i + 1] = col;
@@ -175,11 +170,6 @@ public class InstructionTable
                viewer.getTable().setVisible(true);
        }
 
-       private static boolean useDescriptionAsColumnTitle(String description)
-       {
-               return description != null && Preferences.current().getBoolean("net.mograsim.plugin.core.editors.mpm.descriptionascolumnname");
-       }
-
        public void bindMicroInstructionMemory(MicroInstructionMemory memory)
        {
                this.memory = memory;
index b6180f2..1f6820d 100644 (file)
@@ -13,7 +13,7 @@ public class DefaultPreferences extends Preferences
                        return true;
                case "net.mograsim.logic.model.debug.openhlsshell":
                        return false;
-               case "net.mograsim.plugin.core.editors.mpm.descriptionascolumnname":
+               case "net.mograsim.plugin.core.editors.mpm.bitsascolumnname":
                        return false;
                default:
                        throw new IllegalArgumentException("Unknown boolean preference name: " + name);