blob: b73c7454930baae89b5cc0c61005ffaf7d87e581 [file] [log] [blame]
/**
*
*/
package com.gemstone.gemfire.mgmt.DataBrowser.ui;
import org.eclipse.jface.viewers.ColumnPixelData;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TableColumn;
import com.gemstone.gemfire.cache.query.QueryStatistics;
import com.gemstone.gemfire.mgmt.DataBrowser.query.QueryResult;
/**
* @author mghosh
*
*/
public class StatisticsPanel extends Composite {
private TableViewer tblCounters_ = null;
private final String[] dummyColLabels = { "Counter", "Value", };
// TODO MGH - remove these as the code develops
private final static int[] dummyColWidths = { 100, 350 };
/**
* @param parent
* @param style
*/
public StatisticsPanel(Composite parent, int style) {
super(parent, style);
GridLayout fl = new GridLayout();
this.setLayout(fl);
createTable();
}
private void createTable() {
tblCounters_ = new TableViewer(this, SWT.H_SCROLL | SWT.V_SCROLL);
TableLayout lytTable = new TableLayout();
int columnCount = dummyColLabels.length;
for (int i = 0; i < columnCount; i++) {
lytTable.addColumnData(new ColumnPixelData(dummyColWidths[i], true));
}
tblCounters_.getTable().setLayout(lytTable);
tblCounters_.getTable().setHeaderVisible(true);
tblCounters_.getTable().setLinesVisible(true);
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
tblCounters_.getTable().setLayoutData(gd);
for (int i = 0; i < columnCount; i++) {
String colName = dummyColLabels[i];
TableColumn col = new TableColumn(tblCounters_.getTable(), SWT.NONE, i);
col.setText(colName);
col.setResizable(true);
}
tblCounters_.setContentProvider(new StatisticsTableContentProvider(
tblCounters_));
tblCounters_.setLabelProvider(new StatisticTableLabelProvider());
tblCounters_.setInput(null);
}
public void showResults(Object oResults) {
if (!(oResults instanceof QueryResult))
return;// only QueryResult is expected
QueryStatistics queryStatistics = ((QueryResult) oResults)
.getQueryStatistics();
tblCounters_.setInput(queryStatistics);
}
void handleEventForConnection() {
if (tblCounters_ != null)
tblCounters_.setInput(null);
}
private static class StatisticsTableContentProvider implements
IStructuredContentProvider {
private TableViewer viewer_;
StatisticsTableContentProvider(TableViewer viewer) {
viewer_ = viewer;
}
public void dispose() {
// TODO Auto-generated method stub
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
// TODO Auto-generated method stub
}
public Object[] getElements(Object inputElement) {
// TODO Auto-generated method stub
return new Object[] { inputElement };
}
}
private static class StatisticTableLabelProvider implements
ITableLabelProvider {
StatisticTableLabelProvider() {
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang
* .Object, int)
*/
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang
* .Object, int)
*/
public String getColumnText(Object element, int columnIndex) {
String res = "";
if (element == null)
return res;
Long columnValue;
if (columnIndex == 0) {
columnValue = Long.valueOf(((QueryStatistics) element).getNumExecutions());
if (columnValue != null)
res = columnValue.toString();
} else if (columnIndex == 1) {
columnValue = Long.valueOf(((QueryStatistics) element).getTotalExecutionTime());
if (columnValue != null)
res = columnValue.toString();
}
return res;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.
* jface.viewers.ILabelProviderListener)
*/
public void addListener(ILabelProviderListener listener) {
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
*/
public void dispose() {
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang
* .Object, java.lang.String)
*/
public boolean isLabelProperty(Object element, String property) {
return false;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse
* .jface.viewers.ILabelProviderListener)
*/
public void removeListener(ILabelProviderListener listener) {
}
}
}