1 package net.mograsim.plugin.memory;
3 import org.eclipse.jface.viewers.ILazyContentProvider;
4 import org.eclipse.jface.viewers.TableViewer;
5 import org.eclipse.jface.viewers.Viewer;
7 import net.mograsim.machine.MainMemory;
9 public class MemoryTableContentProvider implements ILazyContentProvider
12 private TableViewer viewer;
13 private final static int limit = 10_000;
14 private int amount = 0;
15 private MainMemory memory;
17 public void setLowerBound(long lower)
20 this.lower = Long.min(memory.getDefinition().getMaximalAddress(), Long.max(memory.getDefinition().getMinimalAddress(), lower));
26 public void updateItemCount()
30 long size = memory.getDefinition().getMaximalAddress() - lower;
31 viewer.setItemCount(size > amount ? amount : (int) size);
33 viewer.setItemCount(0);
36 public long getLowerBound()
41 public void setAmount(int amount)
43 this.amount = Integer.min(amount, limit);
47 public int getAmount()
53 public void updateElement(int index)
55 long address = lower + index;
56 if (address <= memory.getDefinition().getMaximalAddress())
57 viewer.replace(new MemoryTableRow(address, memory), index);
61 public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
63 this.viewer = (TableViewer) viewer;
64 this.memory = (MainMemory) newInput;