Fixed some bugs preventing Am2900 from working in Eclipse
[Mograsim.git] / net.mograsim.plugin.core / src / net / mograsim / plugin / tables / mi / InstructionView.java
index 35b6933..b9627aa 100644 (file)
@@ -40,6 +40,7 @@ public class InstructionView extends ViewPart implements ContextObserver
        private MicroInstructionMemory memory;
        private DisplaySettings displaySettings;
        private InstructionTableContentProvider provider;
+       private int highlighted = 0;
 
        @SuppressWarnings("unused")
        @Override
@@ -66,8 +67,16 @@ public class InstructionView extends ViewPart implements ContextObserver
                viewerData.horizontalSpan = 3;
                viewer.getTable().setLayoutData(viewerData);
 
-               displaySettings.addObserver(() -> viewer.refreshLazy());
+               displaySettings.addObserver(() -> viewer.refresh());
                MachineContext.getInstance().registerObserver(this);
+               setMachine(Optional.ofNullable(MachineContext.getInstance().getMachine()));
+       }
+
+       public void highlight(int index)
+       {
+               viewer.highlightRow(highlighted, false);
+               viewer.highlightRow(index, true);
+               viewer.getTable().setTopIndex(index);
        }
 
        @SuppressWarnings("unused")
@@ -117,7 +126,8 @@ public class InstructionView extends ViewPart implements ContextObserver
        private void deleteColumns()
        {
                for (TableViewerColumn col : columns)
-                       col.getColumn().dispose();
+                       if (col != null)
+                               col.getColumn().dispose();
        }
 
        private void createColumns()
@@ -139,7 +149,6 @@ public class InstructionView extends ViewPart implements ContextObserver
 
                        createEditingAndLabel(createTableViewerColumn(name, bounds), miDef, i);
                }
-
        }
 
        private void createEditingAndLabel(TableViewerColumn col, MicroInstructionDefinition miDef, int index)
@@ -167,6 +176,7 @@ public class InstructionView extends ViewPart implements ContextObserver
                }
                col.setEditingSupport(support);
                col.setLabelProvider(provider);
+               col.getColumn().setToolTipText(miDef.getParameterDescription(index).orElse(""));
        }
 
        private TableViewerColumn createTableViewerColumn(String title, int bound)