Instruction Table Editing Support now uses the correct font
[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 import org.eclipse.swt.graphics.Font;
7
8 import net.mograsim.machine.mi.parameters.IntegerImmediate;
9 import net.mograsim.plugin.tables.DisplaySettings;
10 import net.mograsim.plugin.tables.NumberColumnLabelProvider;
11
12 public class IntegerColumnLabelProvider extends NumberColumnLabelProvider
13 {
14         private final int index;
15         private final FontAndColorHelper cProv;
16
17         public IntegerColumnLabelProvider(DisplaySettings displaySettings, FontAndColorHelper cProv, int index)
18         {
19                 super(displaySettings);
20                 this.cProv = cProv;
21                 this.index = index;
22         }
23
24         @Override
25         public BigInteger getAsBigInteger(Object element)
26         {
27                 InstructionTableRow row = (InstructionTableRow) element;
28                 return ((IntegerImmediate) row.data.getCell(row.address).getParameter(index)).getValueAsBigInteger();
29         }
30
31         @Override
32         public int getBitLength(Object element)
33         {
34                 return ((InstructionTableRow) element).getData().getDefinition().getMicroInstructionDefinition().getParameterClassification(index)
35                                 .getExpectedBits();
36         }
37
38         @Override
39         public Color getBackground(Object element)
40         {
41                 return cProv.getBackground(element, index);
42         }
43
44         @Override
45         public Color getForeground(Object element)
46         {
47                 return cProv.getForeground(element, index);
48         }
49
50         @Override
51         public Font getFont(Object element)
52         {
53                 return cProv.getFont(element, index);
54         }
55 }