X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Fmemory%2FMemoryTableContentProvider.java;h=9f2a9e132a9a525d1885088a92c65073146e044b;hb=4c9a2240352c246c76a056687a2d68208137b667;hp=3ddb32f4ec52e38cec22fbe9c4fe4d388f06f9c8;hpb=7d47064f8673a2ba642118750fa93612d8e63ea7;p=Mograsim.git diff --git a/net.mograsim.plugin.core/src/net/mograsim/plugin/memory/MemoryTableContentProvider.java b/net.mograsim.plugin.core/src/net/mograsim/plugin/memory/MemoryTableContentProvider.java index 3ddb32f4..9f2a9e13 100644 --- a/net.mograsim.plugin.core/src/net/mograsim/plugin/memory/MemoryTableContentProvider.java +++ b/net.mograsim.plugin.core/src/net/mograsim/plugin/memory/MemoryTableContentProvider.java @@ -3,10 +3,12 @@ package net.mograsim.plugin.memory; import org.eclipse.jface.viewers.ILazyContentProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.widgets.Display; import net.mograsim.machine.MainMemory; +import net.mograsim.machine.MemoryObserver; -public class MemoryTableContentProvider implements ILazyContentProvider +public class MemoryTableContentProvider implements ILazyContentProvider, MemoryObserver { private long lower; private TableViewer viewer; @@ -62,6 +64,16 @@ public class MemoryTableContentProvider implements ILazyContentProvider { this.viewer = (TableViewer) viewer; this.memory = (MainMemory) newInput; + if (oldInput != null) + ((MainMemory) oldInput).deregisterObserver(this); + if (memory != null) + memory.registerObserver(this); setLowerBound(0L); } + + @Override + public void update(long address) + { + Display.getDefault().asyncExec(() -> updateElement((int) (address - lower))); + } }