import net.mograsim.machine.mi.MicroInstructionMemory;
import net.mograsim.machine.mi.parameters.MnemonicFamily;
import net.mograsim.machine.mi.parameters.ParameterClassification;
import net.mograsim.machine.mi.MicroInstructionMemory;
import net.mograsim.machine.mi.parameters.MnemonicFamily;
import net.mograsim.machine.mi.parameters.ParameterClassification;
import net.mograsim.plugin.tables.AddressLabelProvider;
import net.mograsim.plugin.tables.DisplaySettings;
import net.mograsim.plugin.tables.LazyTableViewer;
import net.mograsim.plugin.tables.AddressLabelProvider;
import net.mograsim.plugin.tables.DisplaySettings;
import net.mograsim.plugin.tables.LazyTableViewer;
public InstructionTable(Composite parent, DisplaySettings displaySettings, IThemeManager themeManager)
public InstructionTable(Composite parent, DisplaySettings displaySettings, IThemeManager themeManager)
+ {
+ this(parent, displaySettings, themeManager, true);
+ }
+
+ public InstructionTable(Composite parent, DisplaySettings displaySettings, IThemeManager themeManager, boolean allowEditing)
{
viewer = new LazyTableViewer(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL);
this.displaySettings = displaySettings;
this.cProv = new FontAndColorHelper(viewer, themeManager);
this.highlighter = new RowHighlighter(viewer, cProv);
{
viewer = new LazyTableViewer(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL);
this.displaySettings = displaySettings;
this.cProv = new FontAndColorHelper(viewer, themeManager);
this.highlighter = new RowHighlighter(viewer, cProv);
- String columnTitle = calculateColumnTitle(startBit, endBit);
+
+ String columnTitle;
+ String bitString = startBit == endBit ? Integer.toString(startBit) : startBit + "..." + endBit;
+ // TODO add a listener
+ if (MograsimActivator.instance().getPluginPrefs().getBoolean(MPM_EDITOR_BITS_AS_COLUMN_NAME))
+ columnTitle = bitString;
+ else
+ columnTitle = miDef.getParameterTitle(i).orElse(bitString);
- support = new IntegerEditingSupport(viewer, miDef, index, displaySettings, this.provider);
+ support = isEditable ? new IntegerEditingSupport(viewer, miDef, index, displaySettings, this.provider) : null;
- support = new MnemonicEditingSupport(viewer, miDef, index, this.provider);
+ support = isEditable ? new MnemonicEditingSupport(viewer, miDef, index, this.provider) : null;
provider = new ParameterLabelProvider(cProv, index);
break;
default:
throw new IllegalStateException(
"Unable to create EditingSupport for unknown ParameterType " + parameterClassification.getExpectedType());
}
provider = new ParameterLabelProvider(cProv, index);
break;
default:
throw new IllegalStateException(
"Unable to create EditingSupport for unknown ParameterType " + parameterClassification.getExpectedType());
}
{
TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE);
TableColumn column = viewerColumn.getColumn();
column.setText(title);
{
TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE);
TableColumn column = viewerColumn.getColumn();
column.setText(title);