use of org.eclipse.swtchart.ITitle in project swtchart by eclipse.
the class ScrollableChart method modifyChart.
private void modifyChart() {
IChartSettings chartSettings = baseChart.getChartSettings();
setSliderVisibility(chartSettings);
setRangeInfoVisibility(chartSettings);
//
ITitle title = baseChart.getTitle();
title.setText(chartSettings.getTitle());
title.setVisible(chartSettings.isTitleVisible());
title.setForeground(chartSettings.getTitleColor());
//
ILegend legend = baseChart.getLegend();
legend.setPosition(chartSettings.getLegendPosition());
legend.setVisible(chartSettings.isLegendVisible());
//
setBackground(chartSettings.getBackground());
baseChart.setOrientation(chartSettings.getOrientation());
baseChart.setBackground(chartSettings.getBackgroundChart());
baseChart.setBackgroundInPlotArea(chartSettings.getBackgroundPlotArea());
baseChart.enableCompress(chartSettings.isEnableCompress());
baseChart.setRangeRestriction(chartSettings.getRangeRestriction());
/*
* Primary and Secondary axes
*/
addPrimaryAxisX(chartSettings);
addPrimaryAxisY(chartSettings);
addSecondaryAxesX(chartSettings);
addSecondaryAxesY(chartSettings);
/*
* Range Info
*/
rangeSelector.resetRanges();
/*
* Additional actions.
*/
setCustomPaintListener();
updateRangeHintPaintListener();
setMenuItems();
setEventProcessors();
}
use of org.eclipse.swtchart.ITitle in project swtchart by eclipse.
the class ChartPage method selectValues.
/**
* Selects the values for controls.
*/
private void selectValues() {
backgroundInPlotAreaButton.setColorValue(chart.getBackgroundInPlotArea().getRGB());
backgroundButton.setColorValue(chart.getBackground().getRGB());
orientationButton.setSelection(chart.getOrientation() == SWT.VERTICAL);
ITitle title = chart.getTitle();
showTitleButton.setSelection(title.isVisible());
setTitleControlsEnable(title.isVisible());
titleText.setText(title.getText());
fontSizeSpinner.setSelection(title.getFont().getFontData()[0].getHeight());
titleColorButton.setColorValue(title.getForeground().getRGB());
}
use of org.eclipse.swtchart.ITitle in project swtchart by eclipse.
the class CustomLinkedLineSeries1 method setChartInfo.
public void setChartInfo(String trace, String sample, String reference) {
ITitle title;
//
title = sampleChart.getBaseChart().getTitle();
title.setText(sample + " (" + trace + ")");
title.setForeground(getDisplay().getSystemColor(SWT.COLOR_BLACK));
//
title = referenceChart.getBaseChart().getTitle();
title.setText(reference + " (" + trace + ")");
title.setForeground(getDisplay().getSystemColor(SWT.COLOR_BLACK));
}
use of org.eclipse.swtchart.ITitle in project org.eclipse.linuxtools by eclipse-linuxtools.
the class ChartEditor method createPartControl.
@Override
public void createPartControl(Composite parent) {
final ChartEditorInput input = (ChartEditorInput) getEditorInput();
final HeapChart heapChart = input.getChart();
control = new InteractiveChart(parent, SWT.FILL);
heapChart.setChartControl(control);
final Color LIGHTYELLOW = new Color(Display.getDefault(), 255, 255, 225);
final Color WHITE = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
final Color BLACK = Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
final Color RED = Display.getDefault().getSystemColor(SWT.COLOR_RED);
final Color ORANGE = new Color(Display.getDefault(), 255, 165, 0);
final Color GREEN = Display.getDefault().getSystemColor(SWT.COLOR_GREEN);
final Color DARK_BLUE = new Color(Display.getDefault(), 64, 128, 128);
final int TICK_GAP = 40;
control.setBackground(WHITE);
control.getPlotArea().setBackground(LIGHTYELLOW);
control.setProposedSaveAsFilename(heapChart.title.substring(0, heapChart.title.indexOf(' ')));
FontData fd = JFaceResources.getDialogFont().getFontData()[0];
fd.setStyle(SWT.BOLD);
Font font = new Font(Display.getDefault(), fd);
fd.setHeight(fd.getHeight() + 2);
Font titleFont = new Font(Display.getDefault(), fd);
ITitle title = control.getTitle();
title.setFont(titleFont);
title.setForeground(BLACK);
title.setText(heapChart.title);
IAxis xAxis = control.getAxisSet().getXAxis(0);
xAxis.getGrid().setStyle(LineStyle.NONE);
xAxis.getTick().setForeground(BLACK);
ITitle xTitle = xAxis.getTitle();
xTitle.setFont(font);
xTitle.setForeground(BLACK);
xTitle.setText(heapChart.xUnits);
IAxis yAxis = control.getAxisSet().getYAxis(0);
yAxis.getGrid().setStyle(LineStyle.SOLID);
yAxis.getTick().setForeground(BLACK);
yAxis.getTick().setTickMarkStepHint(TICK_GAP);
ITitle yTitle = yAxis.getTitle();
yTitle.setFont(font);
yTitle.setText(heapChart.yUnits);
yTitle.setForeground(BLACK);
control.getLegend().setPosition(SWT.BOTTOM);
// data
final ILineSeries lsUseful = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE, // $NON-NLS-1$;
Messages.getString("HeapChart.Useful_Heap"));
lsUseful.setXSeries(heapChart.time);
lsUseful.setYSeries(heapChart.dataUseful);
lsUseful.setSymbolType(PlotSymbolType.DIAMOND);
lsUseful.setSymbolColor(RED);
lsUseful.setLineColor(RED);
final ILineSeries lsExtra = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE, // $NON-NLS-1$;
Messages.getString("HeapChart.Extra_Heap"));
lsExtra.setXSeries(heapChart.time);
lsExtra.setYSeries(heapChart.dataExtra);
lsExtra.setSymbolType(PlotSymbolType.DIAMOND);
lsExtra.setSymbolColor(ORANGE);
lsExtra.setLineColor(ORANGE);
if (heapChart.dataStacks != null) {
final ILineSeries lsStack = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE, // $NON-NLS-1$;
Messages.getString("HeapChart.Stacks"));
lsStack.setXSeries(heapChart.time);
lsStack.setYSeries(heapChart.dataStacks);
lsStack.setSymbolType(PlotSymbolType.DIAMOND);
lsStack.setSymbolColor(DARK_BLUE);
lsStack.setLineColor(DARK_BLUE);
}
final ILineSeries lsTotal = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE, // $NON-NLS-1$;
Messages.getString("HeapChart.Total_Heap"));
lsTotal.setXSeries(heapChart.time);
lsTotal.setYSeries(heapChart.dataTotal);
lsTotal.setSymbolType(PlotSymbolType.DIAMOND);
lsTotal.setSymbolColor(GREEN);
lsTotal.setLineColor(GREEN);
// adjust axes
control.getAxisSet().adjustRange();
IAxisSet axisSet = control.getAxisSet();
Range xRange = axisSet.getXAxis(0).getRange();
Range yRange = axisSet.getYAxis(0).getRange();
double xExtra = 0.05 * (xRange.upper - xRange.lower);
double yExtra = 0.05 * (yRange.upper - yRange.lower);
axisSet.getXAxis(0).setRange(new Range(xRange.lower, xRange.upper + xExtra));
axisSet.getYAxis(0).setRange(new Range(yRange.lower, yRange.upper + yExtra));
// listeners
control.getPlotArea().getControl().addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
showView();
TableViewer viewer = input.getView().getTableViewer();
input.getView().setTopControl(viewer.getControl());
Point p = new Point(e.x, e.y);
int closest = 0;
double d1, d2, d3, currMin;
double globalMin = Double.MAX_VALUE;
for (int i = 0; i < heapChart.time.length; i++) {
// get distance from click event to data points for the given index
d1 = distance(lsUseful.getPixelCoordinates(i), p);
d2 = distance(lsExtra.getPixelCoordinates(i), p);
d3 = distance(lsTotal.getPixelCoordinates(i), p);
// find the closest data point to the click event
currMin = Math.min(Math.min(d1, d2), d3);
if (currMin < globalMin) {
closest = i;
globalMin = currMin;
}
}
MassifSnapshot snapshot = (MassifSnapshot) viewer.getElementAt(closest);
viewer.setSelection(new StructuredSelection(snapshot), true);
if (e.count == 2 && snapshot.isDetailed()) {
ChartLocationsDialog dialog = new ChartLocationsDialog(Display.getCurrent().getActiveShell());
dialog.setInput(snapshot);
if (dialog.open() == Window.OK) {
dialog.openEditorForResult();
}
}
}
});
}
use of org.eclipse.swtchart.ITitle in project org.eclipse.linuxtools by eclipse-linuxtools.
the class AbstractChartWithAxisBuilder method applyTitleBoundsListener.
/**
* After this method is called, the chart's title will (from then on) be centered with the plot area.
* @since 3.0
*/
protected void applyTitleBoundsListener() {
ITitle title = chart.getTitle();
// once the title has been altered.
if (title instanceof Control) {
titleBoundsPaintListener = e -> {
Rectangle bounds = chart.getPlotArea().getBounds();
Control title1 = (Control) chart.getTitle();
Rectangle titleBounds = title1.getBounds();
title1.setLocation(new Point(bounds.x + (bounds.width - titleBounds.width) / 2, title1.getLocation().y));
};
chart.addPaintListener(titleBoundsPaintListener);
} else {
// move title paint listener to end
chart.removePaintListener((PaintListener) title);
titleBoundsPaintListener = e -> {
ITitle title1 = chart.getTitle();
Font font = title1.getFont();
Font oldFont = e.gc.getFont();
e.gc.setFont(font);
Control legend = (Control) chart.getLegend();
Rectangle legendBounds = legend.getBounds();
int adjustment = legendBounds.width - 15;
// $NON-NLS-1$
Point blankSize = e.gc.textExtent(" ");
int numBlanks = ((adjustment / blankSize.x) >> 1) << 1;
String text = title1.getText().trim();
for (int i = 0; i < numBlanks; ++i) {
// $NON-NLS-1$
text += " ";
}
e.gc.setFont(oldFont);
title1.setText(text);
};
chart.addPaintListener(titleBoundsPaintListener);
chart.addPaintListener((PaintListener) title);
}
}
Aggregations