Search in sources :

Example 1 with ITitle

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();
}
Also used : ILegend(org.eclipse.swtchart.ILegend) ITitle(org.eclipse.swtchart.ITitle)

Example 2 with ITitle

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());
}
Also used : ITitle(org.eclipse.swtchart.ITitle)

Example 3 with ITitle

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));
}
Also used : ITitle(org.eclipse.swtchart.ITitle)

Example 4 with ITitle

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();
                }
            }
        }
    });
}
Also used : MouseEvent(org.eclipse.swt.events.MouseEvent) Color(org.eclipse.swt.graphics.Color) FontData(org.eclipse.swt.graphics.FontData) ILineSeries(org.eclipse.swtchart.ILineSeries) MouseAdapter(org.eclipse.swt.events.MouseAdapter) MassifSnapshot(org.eclipse.linuxtools.internal.valgrind.massif.MassifSnapshot) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) Point(org.eclipse.swt.graphics.Point) Range(org.eclipse.swtchart.Range) ITitle(org.eclipse.swtchart.ITitle) InteractiveChart(org.eclipse.swtchart.extensions.charts.InteractiveChart) Point(org.eclipse.swt.graphics.Point) Font(org.eclipse.swt.graphics.Font) IAxis(org.eclipse.swtchart.IAxis) IAxisSet(org.eclipse.swtchart.IAxisSet) TableViewer(org.eclipse.jface.viewers.TableViewer)

Example 5 with ITitle

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);
    }
}
Also used : Control(org.eclipse.swt.widgets.Control) Rectangle(org.eclipse.swt.graphics.Rectangle) Point(org.eclipse.swt.graphics.Point) ITitle(org.eclipse.swtchart.ITitle) Font(org.eclipse.swt.graphics.Font) Point(org.eclipse.swt.graphics.Point)

Aggregations

ITitle (org.eclipse.swtchart.ITitle)13 Font (org.eclipse.swt.graphics.Font)5 Color (org.eclipse.swt.graphics.Color)4 Point (org.eclipse.swt.graphics.Point)4 Rectangle (org.eclipse.swt.graphics.Rectangle)3 IAxis (org.eclipse.swtchart.IAxis)3 FontData (org.eclipse.swt.graphics.FontData)2 Control (org.eclipse.swt.widgets.Control)2 InteractiveChart (org.eclipse.swtchart.extensions.charts.InteractiveChart)2 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)1 TableViewer (org.eclipse.jface.viewers.TableViewer)1 IChartField (org.eclipse.linuxtools.dataviewers.charts.provider.IChartField)1 MassifSnapshot (org.eclipse.linuxtools.internal.valgrind.massif.MassifSnapshot)1 StyleRange (org.eclipse.swt.custom.StyleRange)1 MouseAdapter (org.eclipse.swt.events.MouseAdapter)1 MouseEvent (org.eclipse.swt.events.MouseEvent)1 Composite (org.eclipse.swt.widgets.Composite)1 IAxisSet (org.eclipse.swtchart.IAxisSet)1 IAxisTick (org.eclipse.swtchart.IAxisTick)1 IBarSeries (org.eclipse.swtchart.IBarSeries)1