The final restructured version for automatic build using maven tycho
[Mograsim.git] / plugins / net.mograsim.plugin.core / src / net / mograsim / plugin / tables / mi / InstructionTableContentProvider.java
1 package net.mograsim.plugin.tables.mi;
2
3 import org.eclipse.jface.viewers.ILazyContentProvider;
4 import org.eclipse.jface.viewers.TableViewer;
5 import org.eclipse.jface.viewers.Viewer;
6
7 import net.mograsim.machine.mi.MicroInstructionMemory;
8
9 public class InstructionTableContentProvider implements ILazyContentProvider
10 {
11         private TableViewer viewer;
12         private MicroInstructionMemory memory;
13         private long minAddr = 0;
14
15         @Override
16         public void updateElement(int index)
17         {
18                 long address = memory.getDefinition().getMinimalAddress() + index;
19                 viewer.replace(new InstructionTableRow(address, memory.getCell(address)), index);
20         }
21
22         @Override
23         public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
24         {
25                 this.viewer = (TableViewer) viewer;
26                 this.memory = (MicroInstructionMemory) newInput;
27                 if (this.memory != null)
28                 {
29                         this.viewer.setItemCount((int) memory.size());
30                         this.minAddr = memory.getDefinition().getMinimalAddress();
31                 }
32         }
33
34         public void update(long address)
35         {
36                 updateElement((int) (address - minAddr));
37         }
38 }