projects
/
Mograsim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6f7a567
)
Fleshed out LazyTableViewer; Rows can now be highlighted
author
Fabian Stemmler
<stemmler@in.tum.de>
Sat, 14 Sep 2019 23:57:44 +0000
(
01:57
+0200)
committer
Fabian Stemmler
<stemmler@in.tum.de>
Sat, 14 Sep 2019 23:57:44 +0000
(
01:57
+0200)
net.mograsim.plugin.core/src/net/mograsim/plugin/tables/LazyTableViewer.java
patch
|
blob
|
history
net.mograsim.plugin.core/src/net/mograsim/plugin/tables/memory/MemoryView.java
patch
|
blob
|
history
net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionView.java
patch
|
blob
|
history
diff --git
a/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/LazyTableViewer.java
b/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/LazyTableViewer.java
index
e00742f
..
1b371e2
100644
(file)
--- a/
net.mograsim.plugin.core/src/net/mograsim/plugin/tables/LazyTableViewer.java
+++ b/
net.mograsim.plugin.core/src/net/mograsim/plugin/tables/LazyTableViewer.java
@@
-4,11
+4,14
@@
import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.ILazyContentProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.jface.viewers.ILazyContentProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Table;
public class LazyTableViewer extends TableViewer
{
import org.eclipse.swt.widgets.Table;
public class LazyTableViewer extends TableViewer
{
+ public static Color highlightColor = Display.getDefault().getSystemColor(SWT.COLOR_YELLOW);
public LazyTableViewer(Composite parent, int style)
{
public LazyTableViewer(Composite parent, int style)
{
@@
-25,6
+28,16
@@
public class LazyTableViewer extends TableViewer
super(table);
}
super(table);
}
+ public void highlightRow(int index, boolean highlight)
+ {
+ Table table = getTable();
+ if (index < 0 || index >= table.getItemCount())
+ return;
+ table.getItem(index).setBackground(highlight ? highlightColor : table.getBackground());
+ System.out.println("Infinite loop!!!");
+ ((ILazyContentProvider) getContentProvider()).updateElement(index);
+ }
+
@Override
public void setContentProvider(IContentProvider provider)
{
@Override
public void setContentProvider(IContentProvider provider)
{
@@
-33,14
+46,15
@@
public class LazyTableViewer extends TableViewer
super.setContentProvider(provider);
}
super.setContentProvider(provider);
}
- public void refreshLazy()
+ @Override
+ public void refresh()
{
Table t = getTable();
ILazyContentProvider provider = (ILazyContentProvider) getContentProvider();
doClearAll();
int startIndex = t.getTopIndex();
int numRows = t.getBounds().height / t.getItemHeight();
{
Table t = getTable();
ILazyContentProvider provider = (ILazyContentProvider) getContentProvider();
doClearAll();
int startIndex = t.getTopIndex();
int numRows = t.getBounds().height / t.getItemHeight();
- int endIndex =
startIndex + numRows + 5
;
+ int endIndex =
Integer.min(startIndex + numRows + 5, doGetItemCount())
;
for (int i = startIndex; i < endIndex; i++)
{
for (int i = startIndex; i < endIndex; i++)
{
diff --git
a/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/memory/MemoryView.java
b/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/memory/MemoryView.java
index
356428b
..
1bcc3bc
100644
(file)
--- a/
net.mograsim.plugin.core/src/net/mograsim/plugin/tables/memory/MemoryView.java
+++ b/
net.mograsim.plugin.core/src/net/mograsim/plugin/tables/memory/MemoryView.java
@@
-46,7
+46,7
@@
public class MemoryView extends ViewPart implements ContextObserver
createHeader(parent);
createViewer(parent);
createHeader(parent);
createViewer(parent);
- displaySettings.addObserver(() -> viewer.refresh
Lazy
());
+ displaySettings.addObserver(() -> viewer.refresh());
setupContextBinding();
}
setupContextBinding();
}
diff --git
a/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionView.java
b/net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionView.java
index
35b6933
..
68e8329
100644
(file)
--- a/
net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionView.java
+++ b/
net.mograsim.plugin.core/src/net/mograsim/plugin/tables/mi/InstructionView.java
@@
-40,6
+40,7
@@
public class InstructionView extends ViewPart implements ContextObserver
private MicroInstructionMemory memory;
private DisplaySettings displaySettings;
private InstructionTableContentProvider provider;
private MicroInstructionMemory memory;
private DisplaySettings displaySettings;
private InstructionTableContentProvider provider;
+ private int highlighted = 0;
@SuppressWarnings("unused")
@Override
@SuppressWarnings("unused")
@Override
@@
-66,10
+67,17
@@
public class InstructionView extends ViewPart implements ContextObserver
viewerData.horizontalSpan = 3;
viewer.getTable().setLayoutData(viewerData);
viewerData.horizontalSpan = 3;
viewer.getTable().setLayoutData(viewerData);
- displaySettings.addObserver(() -> viewer.refresh
Lazy
());
+ displaySettings.addObserver(() -> viewer.refresh());
MachineContext.getInstance().registerObserver(this);
}
MachineContext.getInstance().registerObserver(this);
}
+ public void highlight(int index)
+ {
+ viewer.highlightRow(highlighted, false);
+ viewer.highlightRow(index, true);
+ viewer.getTable().setTopIndex(index);
+ }
+
@SuppressWarnings("unused")
private void setupMenuButtons(Composite parent)
{
@SuppressWarnings("unused")
private void setupMenuButtons(Composite parent)
{
@@
-167,6
+175,7
@@
public class InstructionView extends ViewPart implements ContextObserver
}
col.setEditingSupport(support);
col.setLabelProvider(provider);
}
col.setEditingSupport(support);
col.setLabelProvider(provider);
+ col.getColumn().setToolTipText(miDef.getParameterDescription(index).orElse(""));
}
private TableViewerColumn createTableViewerColumn(String title, int bound)
}
private TableViewerColumn createTableViewerColumn(String title, int bound)