projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Renamed MainMachineLaunchConfigTab in the Wizard
[Mograsim.git]
/
plugins
/
net.mograsim.plugin.core
/
src
/
net
/
mograsim
/
plugin
/
tables
/
mi
/
InstructionTable.java
diff --git
a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionTable.java
b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionTable.java
index
7b17f24
..
d7c2327
100644
(file)
--- a/
plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionTable.java
+++ b/
plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionTable.java
@@
-38,19
+38,28
@@
public class InstructionTable
private MicroInstructionMemory memory;
private InstructionTableContentProvider provider;
private final RowHighlighter highlighter;
private MicroInstructionMemory memory;
private InstructionTableContentProvider provider;
private final RowHighlighter highlighter;
- private final ColorProvider cProv;
+ private final FontAndColorHelper cProv;
+
+ private final boolean isEditable;
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;
{
viewer = new LazyTableViewer(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL);
this.displaySettings = displaySettings;
- this.cProv = new
ColorProvid
er(viewer, themeManager);
+ this.cProv = new
FontAndColorHelp
er(viewer, themeManager);
this.highlighter = new RowHighlighter(viewer, cProv);
this.highlighter = new RowHighlighter(viewer, cProv);
+ this.isEditable = allowEditing;
Table table = viewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
viewer.setUseHashlookup(true);
Table table = viewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
viewer.setUseHashlookup(true);
+ table.addDisposeListener(e -> dispose());
TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer));
TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer));
@@
-182,22
+191,23
@@
public class InstructionTable
switch (parameterClassification.getExpectedType())
{
case BOOLEAN_IMMEDIATE:
switch (parameterClassification.getExpectedType())
{
case BOOLEAN_IMMEDIATE:
- support =
new BooleanEditingSupport(viewer, miDef, index)
;
+ support =
isEditable ? new BooleanEditingSupport(viewer, miDef, index) : null
;
provider = new ParameterLabelProvider(cProv, index);
break;
case INTEGER_IMMEDIATE:
provider = new ParameterLabelProvider(cProv, index);
break;
case INTEGER_IMMEDIATE:
- support =
new IntegerEditingSupport(viewer, miDef, index, displaySettings, this.provider)
;
+ support =
isEditable ? new IntegerEditingSupport(viewer, miDef, index, displaySettings, this.provider) : null
;
provider = new IntegerColumnLabelProvider(displaySettings, cProv, index);
break;
case MNEMONIC:
provider = new IntegerColumnLabelProvider(displaySettings, cProv, index);
break;
case MNEMONIC:
- 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());
}
- col.setEditingSupport(support);
+ if (isEditable)
+ col.setEditingSupport(support);
col.setLabelProvider(provider);
col.getColumn().setToolTipText(miDef.getParameterDescription(index).orElse(""));
}
col.setLabelProvider(provider);
col.getColumn().setToolTipText(miDef.getParameterDescription(index).orElse(""));
}
@@
-257,7
+267,7
@@
public class InstructionTable
Display.getDefault().asyncExec(() -> viewer.refresh());
}
Display.getDefault().asyncExec(() -> viewer.refresh());
}
- p
ublic
void dispose()
+ p
rivate
void dispose()
{
cProv.dispose();
viewer.getTable().dispose();
{
cProv.dispose();
viewer.getTable().dispose();