0c29bcff2319499521e93baf02717ba1026cb2f5
[Mograsim.git] / plugins / net.mograsim.plugin.core / src / net / mograsim / plugin / tables / mi / IntegerColumnLabelProvider.java
1 package net.mograsim.plugin.tables.mi;
2
3 import java.math.BigInteger;
4
5 import org.eclipse.swt.graphics.Color;
6
7 import net.mograsim.machine.mi.parameters.IntegerImmediate;
8 import net.mograsim.plugin.tables.DisplaySettings;
9 import net.mograsim.plugin.tables.NumberColumnLabelProvider;
10
11 public class IntegerColumnLabelProvider extends NumberColumnLabelProvider
12 {
13         private final int index;
14         private final ColorProvider cProv;
15
16         public IntegerColumnLabelProvider(DisplaySettings displaySettings, ColorProvider cProv, int index)
17         {
18                 super(displaySettings);
19                 this.cProv = cProv;
20                 this.index = index;
21         }
22
23         @Override
24         public BigInteger getAsBigInteger(Object element)
25         {
26                 InstructionTableRow row = (InstructionTableRow) element;
27                 return ((IntegerImmediate) row.data.getCell(row.address).getParameter(index)).getValueAsBigInteger();
28         }
29
30         @Override
31         public int getBitLength(Object element)
32         {
33                 return ((InstructionTableRow) element).getData().getDefinition().getMicroInstructionDefinition().getParameterClassification(index)
34                                 .getExpectedBits();
35         }
36
37         @Override
38         public Color getBackground(Object element)
39         {
40                 return cProv.getBackground(element, index);
41         }
42
43         @Override
44         public Color getForeground(Object element)
45         {
46                 return cProv.getForeground(element, index);
47         }
48 }