Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
929af41dd3 | |||
979a7672e6 | |||
67818ff4dd | |||
0c7631e912 | |||
a06b888365 | |||
ded10e1c22 | |||
2f3bc0d892 | |||
184f1b2d2c | |||
90249dadb9 | |||
c88eb32db8 |
@ -27,6 +27,10 @@
|
||||
<unit id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature.feature.group" version="1.6.0.201909181823"/>
|
||||
<unit id="org.eclipse.nebula.widgets.nattable.extension.poi.feature.feature.group" version="1.5.1.201909181823"/>
|
||||
</location>
|
||||
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
|
||||
<repository location="http://download.eclipse.org/nebula/releases/latest"/>
|
||||
<unit id="org.eclipse.nebula.widgets.xviewer.feature.feature.group" version="1.1.0.202011020719"/>
|
||||
</location>
|
||||
</locations>
|
||||
<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<launcherArgs>
|
||||
|
@ -336,15 +336,19 @@ public class WaveformView implements IWaveformView {
|
||||
SashForm topSash = new SashForm(top, SWT.SMOOTH);
|
||||
topSash.setBackground(topSash.getDisplay().getSystemColor(SWT.COLOR_GRAY));
|
||||
|
||||
Composite composite = new Composite(topSash, SWT.NONE);
|
||||
composite.setLayout(new FillLayout(SWT.HORIZONTAL));
|
||||
Composite namePane = new Composite(topSash, SWT.NONE);
|
||||
Composite rightPane = new Composite(topSash, SWT.NONE);
|
||||
rightPane.setLayout(new FillLayout(SWT.HORIZONTAL));
|
||||
|
||||
waveformCanvas = new WaveformCanvas(topSash, SWT.NONE);
|
||||
SashForm rightSash = new SashForm(rightPane, SWT.SMOOTH);
|
||||
rightSash.setBackground(SWTResourceManager.getColor(SWT.COLOR_GRAY));
|
||||
|
||||
SashForm leftSash = new SashForm(composite, SWT.SMOOTH);
|
||||
leftSash.setBackground(SWTResourceManager.getColor(SWT.COLOR_GRAY));
|
||||
Composite valuePane = new Composite(rightSash, SWT.NONE);
|
||||
waveformCanvas = new WaveformCanvas(rightSash, SWT.NONE);
|
||||
|
||||
// create the name pane
|
||||
createTextPane(namePane, "Name");
|
||||
|
||||
Composite namePane = createTextPane(leftSash, "Name");
|
||||
namePaneHeader= namePane.getChildren()[0];
|
||||
namePane.setBackground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_BACKGROUND));
|
||||
|
||||
@ -380,7 +384,8 @@ public class WaveformView implements IWaveformView {
|
||||
nameList.addMouseListener(nameValueMouseListener);
|
||||
nameListScrolled.setContent(nameList);
|
||||
|
||||
Composite valuePane = createTextPane(leftSash, "Value");
|
||||
createTextPane(valuePane, "Value");
|
||||
|
||||
valuePane.setBackground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_BACKGROUND));
|
||||
valueListScrolled = new ScrolledComposite(valuePane, SWT.H_SCROLL | SWT.V_SCROLL);
|
||||
valueListScrolled.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
|
||||
@ -445,8 +450,8 @@ public class WaveformView implements IWaveformView {
|
||||
valueListScrolled.setOrigin(valueListScrolled.getOrigin().x, y);
|
||||
}
|
||||
});
|
||||
topSash.setWeights(new int[] { 30, 70 });
|
||||
leftSash.setWeights(new int[] { 75, 25 });
|
||||
topSash.setWeights(new int[] { 25, 75 });
|
||||
rightSash.setWeights(new int[] { 10, 90 });
|
||||
|
||||
createStreamDragSource(nameList);
|
||||
createStreamDragSource(valueList);
|
||||
@ -459,8 +464,7 @@ public class WaveformView implements IWaveformView {
|
||||
toolTipHandler.activateHoverHelp(waveformCanvas);
|
||||
}
|
||||
|
||||
private Composite createTextPane(SashForm leftSash, String text) {
|
||||
Composite namePane = new Composite(leftSash, SWT.NONE);
|
||||
private void createTextPane(Composite namePane, String text) {
|
||||
GridLayout gl_namePane = new GridLayout(1, false);
|
||||
gl_namePane.verticalSpacing = 0;
|
||||
gl_namePane.marginWidth = 0;
|
||||
@ -480,7 +484,6 @@ public class WaveformView implements IWaveformView {
|
||||
GridData gd_nameSep = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
|
||||
gd_nameSep.heightHint = 2;
|
||||
nameSep.setLayoutData(gd_nameSep);
|
||||
return namePane;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: %Bundle-Name
|
||||
Bundle-SymbolicName: com.minres.scviewer.e4.application;singleton:=true
|
||||
Bundle-Version: 2.9.1.qualifier
|
||||
Bundle-Version: 2.10.0.qualifier
|
||||
Bundle-Vendor: %Bundle-Vendor
|
||||
Require-Bundle: javax.inject;bundle-version="1.0.0",
|
||||
org.eclipse.core.runtime;bundle-version="3.11.1",
|
||||
|
@ -1,7 +1,7 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>com.minres.scviewer.e4.application</artifactId>
|
||||
<version>2.9.1-SNAPSHOT</version>
|
||||
<version>2.10.0-SNAPSHOT</version>
|
||||
<parent>
|
||||
<groupId>com.minres.scviewer</groupId>
|
||||
<artifactId>com.minres.scviewer.parent</artifactId>
|
||||
|
@ -41,8 +41,6 @@ public class SearchHandler {
|
||||
public void execute(Shell shell, MPart activePart){
|
||||
Object obj = activePart.getObject();
|
||||
if(obj instanceof WaveformViewer){
|
||||
WaveformViewer wfv = (WaveformViewer)obj;
|
||||
wfv.showSearch();
|
||||
// ISelection sel = wfv.getSelection();
|
||||
// if(sel instanceof StructuredSelection) {
|
||||
// TrackEntry e = findTrackEntry(((StructuredSelection)sel).toArray());
|
||||
|
@ -22,7 +22,7 @@ StatusBarControl_2=\nLast task:
|
||||
StatusBarControl_3=Currently running:
|
||||
StatusBarControl_4=No background progress running.
|
||||
SWTResourceManager_0=Wrong decorate corner
|
||||
TransactionDetails_0=Enter text to filter
|
||||
TransactionDetails_0=Enter text to filter attributes
|
||||
TransactionDetails_1=Name
|
||||
TransactionDetails_10=Properties
|
||||
TransactionDetails_11=Attributes
|
||||
|
@ -48,6 +48,7 @@ import org.eclipse.swt.events.SelectionAdapter;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
import org.eclipse.swt.graphics.Rectangle;
|
||||
import org.eclipse.swt.layout.FillLayout;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.layout.GridLayout;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
@ -114,6 +115,7 @@ public class TransactionDetails {
|
||||
*/
|
||||
@PostConstruct
|
||||
public void createComposite(final Composite parent, @Optional WaveformViewer waveformViewerPart) {
|
||||
parent.setLayout(new FillLayout());
|
||||
this.waveformViewerPart=waveformViewerPart;
|
||||
|
||||
top = new Composite(parent, SWT.NONE);
|
||||
@ -378,6 +380,7 @@ public class TransactionDetails {
|
||||
}
|
||||
|
||||
private void setTopItemFromHier(List<String> names, TreeItem [] items) {
|
||||
if(names.size()==0) return;
|
||||
for (TreeItem item : items) { // find item from category
|
||||
if(item.getText(0).equals(names.get(0))) {
|
||||
if(names.size()==1 || item.getItemCount()==0) {
|
||||
|
@ -12,23 +12,28 @@ import org.eclipse.jface.viewers.ComboViewer;
|
||||
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider;
|
||||
import org.eclipse.jface.viewers.DoubleClickEvent;
|
||||
import org.eclipse.jface.viewers.IDoubleClickListener;
|
||||
import org.eclipse.jface.viewers.ITreeSelection;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.LabelProvider;
|
||||
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||
import org.eclipse.jface.viewers.StructuredSelection;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.jface.viewers.TreeViewerColumn;
|
||||
import org.eclipse.jface.viewers.TableViewer;
|
||||
import org.eclipse.jface.viewers.TableViewerColumn;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.ModifyEvent;
|
||||
import org.eclipse.swt.events.ModifyListener;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
import org.eclipse.swt.events.SelectionListener;
|
||||
import org.eclipse.swt.layout.FillLayout;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.layout.GridLayout;
|
||||
import org.eclipse.swt.widgets.Combo;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Table;
|
||||
import org.eclipse.swt.widgets.TableColumn;
|
||||
import org.eclipse.swt.widgets.Text;
|
||||
import org.eclipse.swt.widgets.Tree;
|
||||
import org.eclipse.swt.widgets.TreeColumn;
|
||||
|
||||
import com.minres.scviewer.database.DataType;
|
||||
import com.minres.scviewer.database.ITx;
|
||||
@ -73,11 +78,11 @@ public class TransactionList extends Composite {
|
||||
|
||||
private Text searchPropValue;
|
||||
|
||||
private TreeViewer treeViewer = null;
|
||||
private TableViewer tableViewer = null;
|
||||
|
||||
private TreeColumn valueColumn = null;
|
||||
private TableColumn valueColumn = null;
|
||||
|
||||
private AttributeLabelProvider nameLabelProvider = null;
|
||||
private AttributeLabelProvider valueLabelProvider = null;
|
||||
|
||||
private ITxStream<? extends ITxEvent> stream;
|
||||
|
||||
@ -96,9 +101,16 @@ public class TransactionList extends Composite {
|
||||
*/
|
||||
public TransactionList(Composite parent, int style, WaveformViewer waveformViewer) {
|
||||
super(parent, style);
|
||||
setLayout(new GridLayout(3, false));
|
||||
parent.setLayout(new FillLayout());
|
||||
|
||||
setLayout(new GridLayout(5, false));
|
||||
txFilter = new TxFilter();
|
||||
|
||||
Label lbl1 = new Label(this, SWT.NONE);
|
||||
lbl1.setAlignment(SWT.RIGHT);
|
||||
lbl1.setText("Property to match:");
|
||||
lbl1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
|
||||
|
||||
searchPropComboViewer = new ComboViewer(this, SWT.NONE);
|
||||
searchPropComboViewer.setLabelProvider(new LabelProvider() {
|
||||
public String getText(Object element) {
|
||||
@ -116,27 +128,34 @@ public class TransactionList extends Composite {
|
||||
int idx = searchPropCombo.getSelectionIndex();
|
||||
AttributeNameBean sel = attrNames.get(idx);
|
||||
txFilter.setSearchProp(sel.getName(), sel.getType());
|
||||
treeViewer.refresh();
|
||||
tableViewer.refresh();
|
||||
}
|
||||
@Override
|
||||
public void widgetDefaultSelected(SelectionEvent e) {
|
||||
int idx = searchPropCombo.getSelectionIndex();
|
||||
AttributeNameBean sel = attrNames.get(idx);
|
||||
txFilter.setSearchProp(sel.getName(), sel.getType());
|
||||
treeViewer.refresh();
|
||||
tableViewer.refresh();
|
||||
}
|
||||
});
|
||||
|
||||
searchPropValue = new Text(this, SWT.BORDER);
|
||||
searchPropValue.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
|
||||
GridData gd_searchPropValue = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
|
||||
gd_searchPropValue.minimumWidth = 50;
|
||||
searchPropValue.setLayoutData(gd_searchPropValue);
|
||||
searchPropValue.addModifyListener(new ModifyListener() {
|
||||
@Override
|
||||
public void modifyText(ModifyEvent e) {
|
||||
txFilter.setSearchValue(((Text) e.widget).getText());
|
||||
treeViewer.refresh();
|
||||
tableViewer.refresh();
|
||||
}
|
||||
});
|
||||
|
||||
Label lbl2 = new Label(this, SWT.NONE);
|
||||
lbl2.setAlignment(SWT.RIGHT);
|
||||
lbl2.setText("Property to show:");
|
||||
lbl2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
|
||||
|
||||
viewPropComboViewer = new ComboViewer(this, SWT.NONE);
|
||||
viewPropComboViewer.setLabelProvider(new LabelProvider() {
|
||||
public String getText(Object element) {
|
||||
@ -152,15 +171,15 @@ public class TransactionList extends Composite {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
int idx = viewPropCombo.getSelectionIndex();
|
||||
nameLabelProvider.setShowProp(attrNames.get(idx).getName());
|
||||
treeViewer.refresh(true);
|
||||
valueLabelProvider.setShowProp(attrNames.get(idx).getName());
|
||||
tableViewer.refresh(true);
|
||||
}
|
||||
@Override
|
||||
public void widgetDefaultSelected(SelectionEvent e) { }
|
||||
});
|
||||
|
||||
treeViewer = new TreeViewer(this);
|
||||
treeViewer.setContentProvider(new AbstractTransactionTreeContentProvider(waveformViewer) {
|
||||
tableViewer = new TableViewer(this);
|
||||
tableViewer.setContentProvider(new AbstractTransactionTreeContentProvider(waveformViewer) {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
@ -171,66 +190,60 @@ public class TransactionList extends Composite {
|
||||
return new Object[0];
|
||||
}
|
||||
});
|
||||
treeViewer.addFilter(txFilter);
|
||||
treeViewer.addDoubleClickListener(new IDoubleClickListener() {
|
||||
tableViewer.addFilter(txFilter);
|
||||
tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
|
||||
@Override
|
||||
public void doubleClick(DoubleClickEvent event) {
|
||||
ITreeSelection treeSelection = treeViewer.getStructuredSelection();
|
||||
Object selected = treeSelection.getFirstElement();
|
||||
public void selectionChanged(SelectionChangedEvent event) {
|
||||
ISelection treeSelection = event.getSelection();
|
||||
if(treeSelection instanceof IStructuredSelection) {
|
||||
Object selected = ((IStructuredSelection)treeSelection).getFirstElement();
|
||||
if(selected instanceof ITx){
|
||||
waveformViewer.setSelection(new StructuredSelection(selected));
|
||||
} else if(selected instanceof TransactionTreeNode && ((TransactionTreeNode)selected).type == TransactionTreeNodeType.TX) {
|
||||
waveformViewer.setSelection(new StructuredSelection(((TransactionTreeNode)selected).element));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Tree tree = treeViewer.getTree();
|
||||
tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
|
||||
Table table = tableViewer.getTable();
|
||||
table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 5, 1));
|
||||
|
||||
TreeViewerColumn nameColumnViewer = new TreeViewerColumn(treeViewer, SWT.NONE);
|
||||
TreeColumn nameColumn = nameColumnViewer.getColumn();
|
||||
TableViewerColumn nameColumnViewer = new TableViewerColumn(tableViewer, SWT.NONE);
|
||||
TableColumn nameColumn = nameColumnViewer.getColumn();
|
||||
nameColumn.setWidth(200);
|
||||
nameColumn.setText("Tx ID");
|
||||
nameColumn.setResizable(true);
|
||||
nameColumnViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(new AttributeLabelProvider(waveformViewer, AttributeLabelProvider.NAME)));
|
||||
|
||||
TreeViewerColumn timeColumnViewer = new TreeViewerColumn(treeViewer, SWT.NONE);
|
||||
TreeColumn timeColumn = timeColumnViewer.getColumn();
|
||||
TableViewerColumn timeColumnViewer = new TableViewerColumn(tableViewer, SWT.NONE);
|
||||
TableColumn timeColumn = timeColumnViewer.getColumn();
|
||||
timeColumn.setAlignment(SWT.RIGHT);
|
||||
timeColumn.setWidth(150);
|
||||
timeColumn.setText("Start time");
|
||||
timeColumn.setResizable(true);
|
||||
timeColumnViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(new AttributeLabelProvider(waveformViewer, AttributeLabelProvider.TX_TIME)));
|
||||
|
||||
TreeViewerColumn typeColumnViewer = new TreeViewerColumn(treeViewer, SWT.NONE);
|
||||
TreeColumn typeColumn = typeColumnViewer.getColumn();
|
||||
typeColumn.setAlignment(SWT.RIGHT);
|
||||
typeColumn.setWidth(150);
|
||||
typeColumn.setText("Type");
|
||||
typeColumn.setResizable(true);
|
||||
typeColumnViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(new AttributeLabelProvider(waveformViewer, AttributeLabelProvider.TYPE)));
|
||||
|
||||
TreeViewerColumn valueColumnViewer = new TreeViewerColumn(treeViewer, SWT.NONE);
|
||||
TableViewerColumn valueColumnViewer = new TableViewerColumn(tableViewer, SWT.NONE);
|
||||
valueColumn = valueColumnViewer.getColumn();
|
||||
valueColumn.setWidth(150);
|
||||
valueColumn.setText("Value");
|
||||
valueColumn.setText("Property Value");
|
||||
valueColumn.setResizable(true);
|
||||
nameLabelProvider= new AttributeLabelProvider(waveformViewer, AttributeLabelProvider.VALUE);
|
||||
valueColumnViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(nameLabelProvider));
|
||||
valueLabelProvider= new AttributeLabelProvider(waveformViewer, AttributeLabelProvider.VALUE);
|
||||
valueColumnViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(valueLabelProvider));
|
||||
|
||||
// Turn on the header and the lines
|
||||
tree.setHeaderVisible(true);
|
||||
tree.setLinesVisible(true);
|
||||
table.setHeaderVisible(true);
|
||||
table.setLinesVisible(true);
|
||||
}
|
||||
|
||||
public void setInput(TrackEntry trackEntry) {
|
||||
if(trackEntry==null || !trackEntry.isStream()) {
|
||||
attrNames.clear();
|
||||
treeViewer.setInput(emptyList);
|
||||
tableViewer.setInput(emptyList);
|
||||
} else {
|
||||
stream=trackEntry.getStream();
|
||||
treeViewer.setInput(emptyList);
|
||||
tableViewer.setInput(emptyList);
|
||||
new Thread() {
|
||||
private ConcurrentHashMap<String, DataType> propNames=new ConcurrentHashMap<String, DataType>();
|
||||
|
||||
@ -257,16 +270,16 @@ public class TransactionList extends Composite {
|
||||
getDisplay().asyncExec(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
treeViewer.setInput(eventList);
|
||||
tableViewer.setInput(eventList);
|
||||
attrNames.clear();
|
||||
attrNames.addAll(getEntries());
|
||||
searchPropComboViewer.getCombo().select(0);
|
||||
if(attrNames.size()>0)
|
||||
txFilter.setSearchProp(attrNames.get(0).getName(), attrNames.get(0).getType());
|
||||
if (searchPropComboViewer!=null) {
|
||||
searchPropComboViewer.setInput(attrNames);
|
||||
searchPropComboViewer.setSelection(new StructuredSelection(searchPropComboViewer.getElementAt(0)));
|
||||
}
|
||||
treeViewer.refresh(true);
|
||||
tableViewer.refresh(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -181,9 +181,6 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||
/** The waveform pane. */
|
||||
private IWaveformView waveformPane;
|
||||
|
||||
private CTabFolder tabFolder;
|
||||
|
||||
private CTabItem tbtmSearchResults;
|
||||
/** get UISynchronize injected as field */
|
||||
@Inject UISynchronize sync;
|
||||
|
||||
@ -278,43 +275,31 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||
}
|
||||
});
|
||||
parent.setLayout(new FillLayout(SWT.HORIZONTAL));
|
||||
SashForm sashFormTop = new SashForm(parent, SWT.BORDER | SWT.SMOOTH);
|
||||
|
||||
Composite left = new Composite(sashFormTop, SWT.NONE);
|
||||
|
||||
IEclipseContext ctx = myPart.getContext();
|
||||
ctx.set(WaveformViewer.class, this);
|
||||
ctx.set(IWaveformDb.class, database);
|
||||
ctx.set(Composite.class, left);
|
||||
|
||||
SashForm topSash = new SashForm(parent, SWT.BORDER | SWT.SMOOTH | SWT.HORIZONTAL);
|
||||
Composite left = new Composite(topSash, SWT.NONE);
|
||||
SashForm middleSash = new SashForm(topSash, SWT.BORDER | SWT.SMOOTH | SWT.VERTICAL);
|
||||
Composite right = new Composite(topSash, SWT.NONE);
|
||||
topSash.setWeights(new int[] {20, 60, 20});
|
||||
|
||||
Composite middleTop = new Composite(middleSash, SWT.NONE);
|
||||
Composite middleBottom = new Composite(middleSash, SWT.NONE);
|
||||
middleSash.setWeights(new int[] {75, 25});
|
||||
|
||||
ctx.set(Composite.class, left);
|
||||
browser = ContextInjectionFactory.make(DesignBrowser.class, ctx);
|
||||
|
||||
//Composite right = new Composite(sashFormTop, SWT.NONE);
|
||||
SashForm sashFormRight = new SashForm(sashFormTop, SWT.BORDER | SWT.SMOOTH | SWT.VERTICAL);
|
||||
sashFormTop.setWeights(new int[] {25, 75});
|
||||
|
||||
Composite rightTop = new Composite(sashFormRight, SWT.NONE);
|
||||
|
||||
waveformPane = factory.createPanel(rightTop);
|
||||
|
||||
tabFolder = new CTabFolder(sashFormRight, SWT.BORDER);
|
||||
tabFolder.setSelectionBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
|
||||
|
||||
CTabItem tbtmDetails = new CTabItem(tabFolder, SWT.NONE);
|
||||
tbtmDetails.setText("Transaction Details");
|
||||
|
||||
ctx.set(Composite.class, tabFolder);
|
||||
ctx.set(Composite.class, right);
|
||||
detailsView = ContextInjectionFactory.make(TransactionDetails.class, ctx);
|
||||
tbtmDetails.setControl(detailsView.getControl());
|
||||
|
||||
tbtmSearchResults = new CTabItem(tabFolder, SWT.NONE);
|
||||
tbtmSearchResults.setText("Search Results");
|
||||
waveformPane = factory.createPanel(middleTop);
|
||||
|
||||
ctx.set(Composite.class, middleBottom);
|
||||
transactionList = ContextInjectionFactory.make(TransactionListView.class, ctx);
|
||||
tbtmSearchResults.setControl(transactionList.getControl());
|
||||
|
||||
sashFormRight.setWeights(new int[] {75, 25});
|
||||
tabFolder.setSelection(0);
|
||||
|
||||
waveformPane.setMaxTime(0);
|
||||
setupColors();
|
||||
@ -1315,15 +1300,10 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||
}
|
||||
}
|
||||
|
||||
public void showSearch() {
|
||||
tabFolder.setSelection(tbtmSearchResults);
|
||||
}
|
||||
|
||||
public void search(String propName, DataType type, String propValue) {
|
||||
// StructuredSelection sel = (StructuredSelection) getSelection();
|
||||
// TrackEntry e = findTrackEntry((sel).toArray());
|
||||
// if(e==null) return;
|
||||
tabFolder.setSelection(tbtmSearchResults);
|
||||
transactionList.getControl().setSearchProps(propName, type, propValue);
|
||||
}
|
||||
}
|
@ -72,6 +72,13 @@ public class AttributeLabelProvider extends LabelProvider implements IStyledLabe
|
||||
return new StyledString(iTx.getId().toString());
|
||||
case TX_TIME:
|
||||
return new StyledString(waveformViewerPart.getScaledTime(iTx.getBeginTime()));
|
||||
case TYPE:
|
||||
if(showProp!=null){
|
||||
List<ITxAttribute> res = iTx.getAttributes().stream().filter(a -> showProp.equals(a.getName())).collect(Collectors.toList());
|
||||
if(res.size()==1)
|
||||
return new StyledString(res.get(0).getDataType().toString());
|
||||
}
|
||||
return new StyledString("");
|
||||
case VALUE:
|
||||
if(showProp!=null){
|
||||
List<ITxAttribute> res = iTx.getAttributes().stream().filter(a -> showProp.equals(a.getName())).collect(Collectors.toList());
|
||||
@ -95,13 +102,21 @@ public class AttributeLabelProvider extends LabelProvider implements IStyledLabe
|
||||
} else
|
||||
return new StyledString(element.toString());
|
||||
case TYPE:
|
||||
if (element instanceof ITxAttribute) {
|
||||
if(element instanceof TransactionTreeNode) {
|
||||
if(showProp!=null){
|
||||
ITx iTx = ((TransactionTreeNode) element).element;
|
||||
List<ITxAttribute> res = iTx.getAttributes().stream().filter(a -> showProp.equals(a.getName())).collect(Collectors.toList());
|
||||
if(res.size()==1)
|
||||
return new StyledString(res.get(0).getDataType().toString());
|
||||
}
|
||||
return new StyledString("");
|
||||
} else if (element instanceof ITxAttribute) {
|
||||
ITxAttribute attribute = (ITxAttribute) element;
|
||||
return new StyledString(attribute.getDataType().toString());
|
||||
}else if(element instanceof Object[]){
|
||||
} else if(element instanceof Object[]){
|
||||
Object[] elements = (Object[]) element;
|
||||
return new StyledString(elements[field].toString());
|
||||
}else
|
||||
} else
|
||||
return new StyledString(""); //$NON-NLS-1$
|
||||
case TX_TIME:
|
||||
if(element instanceof TransactionTreeNode) {
|
||||
@ -120,7 +135,7 @@ public class AttributeLabelProvider extends LabelProvider implements IStyledLabe
|
||||
} else if (element instanceof ITxAttribute) {
|
||||
ITxAttribute attribute = (ITxAttribute) element;
|
||||
return getAttrValueAsStyledString(attribute);
|
||||
}else if(element instanceof Object[]){
|
||||
} else if(element instanceof Object[]){
|
||||
Object[] elements = (Object[]) element;
|
||||
Object o = elements[field];
|
||||
if(o instanceof ITx) {
|
||||
|
@ -43,13 +43,14 @@ public class TxAttributeFilter extends ViewerFilter {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if(element instanceof Object[]) {
|
||||
try {
|
||||
return (((Object[])element)[0]).toString().toLowerCase().matches(searchString.toLowerCase());
|
||||
} catch (PatternSyntaxException e) {
|
||||
// if(element instanceof Object[]) {
|
||||
// try {
|
||||
// return (((Object[])element)[0]).toString().toLowerCase().matches(searchString.toLowerCase());
|
||||
// } catch (PatternSyntaxException e) {
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
// return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
@ -2,6 +2,8 @@ package com.minres.scviewer.e4.application.parts.txTableTree;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.regex.PatternSyntaxException;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -24,6 +26,8 @@ public class TxFilter extends ViewerFilter {
|
||||
/** The search string. */
|
||||
private String searchValue;
|
||||
|
||||
private Pattern pattern=null;
|
||||
|
||||
/**
|
||||
* Sets the search text.
|
||||
*
|
||||
@ -41,6 +45,14 @@ public class TxFilter extends ViewerFilter {
|
||||
*/
|
||||
public void setSearchValue(String s) {
|
||||
this.searchValue = s;
|
||||
if(searchType==DataType.STRING) {
|
||||
try {
|
||||
//pattern = Pattern.compile(searchValue, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
|
||||
pattern = Pattern.compile(searchValue);
|
||||
} catch (PatternSyntaxException e) {
|
||||
pattern = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@ -70,9 +82,10 @@ public class TxFilter extends ViewerFilter {
|
||||
BigInteger sval = parseBigInteger(searchValue);
|
||||
return lval.equals(sval);
|
||||
case STRING:
|
||||
try {
|
||||
return (((ITxAttribute) element).getName().toLowerCase().matches(searchValue.toLowerCase()));
|
||||
} catch (PatternSyntaxException e) {
|
||||
if(pattern!=null) {
|
||||
Matcher matcher = pattern.matcher( attr.getValue().toString());
|
||||
return matcher.find();
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
|
@ -10,7 +10,7 @@
|
||||
<relativePath>../..</relativePath>
|
||||
</parent>
|
||||
<artifactId>com.minres.scviewer.e4.product</artifactId>
|
||||
<version>2.9.1-SNAPSHOT</version>
|
||||
<version>2.10.0-SNAPSHOT</version>
|
||||
<packaging>eclipse-repository</packaging>
|
||||
<groupId>com.minres.scviewer</groupId>
|
||||
<build>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?pde version="3.5"?>
|
||||
|
||||
<product name="SCViewer" uid="product" id="com.minres.scviewer.e4.application.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="2.9.1.qualifier" useFeatures="true" includeLaunchers="true">
|
||||
<product name="SCViewer" uid="product" id="com.minres.scviewer.e4.application.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="2.10.0.qualifier" useFeatures="true" includeLaunchers="true">
|
||||
|
||||
<configIni use="default">
|
||||
</configIni>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<relativePath>../..</relativePath>
|
||||
</parent>
|
||||
<artifactId>com.minres.scviewer.e4.product_slim</artifactId>
|
||||
<version>2.9.1-SNAPSHOT</version>
|
||||
<version>2.10.0-SNAPSHOT</version>
|
||||
<packaging>eclipse-repository</packaging>
|
||||
<groupId>com.minres.scviewer</groupId>
|
||||
<build>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?pde version="3.5"?>
|
||||
|
||||
<product name="SCViewer" uid="product_slim" id="com.minres.scviewer.e4.application.product_slim" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="2.9.1.qualifier" useFeatures="false" includeLaunchers="true">
|
||||
<product name="SCViewer" uid="product_slim" id="com.minres.scviewer.e4.application.product_slim" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="2.10.0.qualifier" useFeatures="false" includeLaunchers="true">
|
||||
|
||||
<configIni use="default">
|
||||
</configIni>
|
||||
|
Reference in New Issue
Block a user