Java Examples for org.swtchart.IAxis

The following java examples will help you to understand the usage of org.swtchart.IAxis. These source code samples are taken from different open source projects.

Example 1
Project: stocks-master  File: ReturnsVolatilityChartView.java View source code
@Override
protected Composite createBody(Composite parent) {
    cache = make(DataSeriesCache.class);
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
    resources = new LocalResourceManager(JFaceResources.getResources(), composite);
    chart = new ScatterChart(composite);
    chart.getTitle().setVisible(false);
    IAxis xAxis = chart.getAxisSet().getXAxis(0);
    xAxis.getTitle().setText(Messages.LabelVolatility);
    //$NON-NLS-1$
    xAxis.getTick().setFormat(new DecimalFormat("0.##%"));
    IAxis yAxis = chart.getAxisSet().getYAxis(0);
    yAxis.getTitle().setText(Messages.LabelPeformanceTTWROR);
    //$NON-NLS-1$
    yAxis.getTick().setFormat(new DecimalFormat("0.##%"));
    ((IPlotArea) chart.getPlotArea()).addCustomPaintListener(new ICustomPaintListener() {

        @Override
        public void paintControl(PaintEvent e) {
            int y = xAxis.getPixelCoordinate(0);
            e.gc.drawLine(y, 0, y, e.height);
            int x = yAxis.getPixelCoordinate(0);
            e.gc.drawLine(0, x, e.width, x);
        }

        @Override
        public boolean drawBehindSeries() {
            return true;
        }
    });
    configurator = new DataSeriesConfigurator(this, DataSeries.UseCase.RETURN_VOLATILITY);
    configurator.addListener(() -> updateChart());
    DataSeriesChartLegend legend = new DataSeriesChartLegend(composite, configurator);
    //$NON-NLS-1$ //$NON-NLS-2$
    updateTitle(Messages.LabelHistoricalReturnsAndVolatiltity + " (" + configurator.getConfigurationName() + ")");
    chart.getTitle().setText(getTitle());
    GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 0).applyTo(composite);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(chart);
    GridDataFactory.fillDefaults().grab(true, false).align(SWT.CENTER, SWT.FILL).applyTo(legend);
    setChartSeries();
    return composite;
}
Example 2
Project: swtchart-master  File: ChartLayout.java View source code
/**
     * Parses the controls on given composite.
     * 
     * @param composite
     *            the composite
     * @return true if all children found
     */
private boolean parseControls(Composite composite) {
    Control[] children = composite.getChildren();
    axes.clear();
    for (Control child : children) {
        if (child instanceof Legend) {
            legend = (Legend) child;
        } else if (child instanceof ChartTitle) {
            title = (ChartTitle) child;
        } else if (child instanceof PlotArea) {
            plot = (PlotArea) child;
        }
    }
    if (composite instanceof Chart) {
        IAxisSet axisSet = ((Chart) composite).getAxisSet();
        if (axisSet != null) {
            IAxis[] axisArray = axisSet.getAxes();
            for (IAxis axis : axisArray) {
                axes.add((Axis) axis);
            }
        }
    }
    if (title == null || legend == null || plot == null || axes.size() < 2) {
        // the initialization of chart is not completed yet
        return false;
    }
    return true;
}
Example 3
Project: linuxtools-master  File: TestCreateSystemtapScript.java View source code
private static void discreteXControlTests(AbstractChartBuilder cb, int numAxisItems) {
    // Check that default range shows 100% of data.
    IAxis axis = cb.getChart().getAxisSet().getXAxis(0);
    Range range = axis.getRange();
    double scale = cb.getScale();
    double scroll = cb.getScroll();
    assertTrue(range.upper - range.lower == axis.getCategorySeries().length - 1 && range.upper - range.lower == numAxisItems - 1);
    assertTrue(scale == 1.0 && scroll == 1.0);
    // Check that scroll buttons are disabled at 100% range.
    SWTBotButton firstButton = bot.button(org.eclipse.linuxtools.systemtap.graphing.ui.widgets.Messages.GraphDiscreteXControl_First);
    SWTBotButton leftButton = bot.button(org.eclipse.linuxtools.systemtap.graphing.ui.widgets.Messages.GraphDiscreteXControl_Left);
    SWTBotButton rightButton = bot.button(org.eclipse.linuxtools.systemtap.graphing.ui.widgets.Messages.GraphDiscreteXControl_Right);
    SWTBotButton lastButton = bot.button(org.eclipse.linuxtools.systemtap.graphing.ui.widgets.Messages.GraphDiscreteXControl_Last);
    assertFalse(firstButton.isEnabled());
    assertFalse(leftButton.isEnabled());
    assertFalse(rightButton.isEnabled());
    assertFalse(lastButton.isEnabled());
    // Test zooming in. The amount of zoom is arbitrary for this test--just make sure zooming happened.
    SWTBotButton zoomInButton = bot.button(org.eclipse.linuxtools.systemtap.graphing.ui.widgets.Messages.GraphDiscreteXControl_ZoomIn);
    SWTBotButton zoomOutButton = bot.button(org.eclipse.linuxtools.systemtap.graphing.ui.widgets.Messages.GraphDiscreteXControl_ZoomOut);
    SWTBotButton allButton = bot.button(org.eclipse.linuxtools.systemtap.graphing.ui.widgets.Messages.GraphDiscreteXControl_All);
    assertTrue(zoomInButton.isEnabled());
    assertFalse(zoomOutButton.isEnabled());
    assertFalse(allButton.isEnabled());
    zoomInButton.click();
    assertTrue(zoomOutButton.isEnabled());
    assertTrue(allButton.isEnabled());
    // By default, zooming in should zoom in on the end of the axis (newest data).
    range = axis.getRange();
    assertTrue(range.upper == numAxisItems - 1 && range.lower > 0 && cb.getScale() < scale && cb.getScroll() == 1.0);
    // Left scrolling should now be enabled.
    assertTrue(firstButton.isEnabled());
    assertTrue(leftButton.isEnabled());
    assertFalse(rightButton.isEnabled());
    assertFalse(lastButton.isEnabled());
    // Test scrolling left. Again, the specific amount is arbitrary, just make sure scrolling happened.
    leftButton.click();
    range = axis.getRange();
    assertTrue(range.upper < numAxisItems - 1 && cb.getScroll() < scroll);
    int rstore = (int) range.lower;
    assertTrue(rightButton.isEnabled());
    assertTrue(lastButton.isEnabled());
    // Zooming out should bring the range back to 100%.
    zoomOutButton.click();
    range = axis.getRange();
    assertTrue(range.upper - range.lower == numAxisItems - 1 && cb.getScale() == 1.0 && cb.getScroll() < scroll);
    assertTrue(zoomInButton.isEnabled());
    assertFalse(zoomOutButton.isEnabled());
    assertFalse(allButton.isEnabled());
    assertFalse(firstButton.isEnabled());
    assertFalse(leftButton.isEnabled());
    assertFalse(rightButton.isEnabled());
    assertFalse(lastButton.isEnabled());
    // For convenience, zooming out after having scrolled somewhere should make zooming in
    // zoom back to the area that was scrolled to.
    scroll = cb.getScroll();
    zoomInButton.click();
    assertTrue(rstore == axis.getRange().lower && scroll == cb.getScroll());
    // Scrolling right should take the range back to the end of the axis.
    rightButton.click();
    range = axis.getRange();
    assertTrue(range.upper == numAxisItems - 1 && range.lower > 0 && cb.getScroll() > scroll);
    assertTrue(firstButton.isEnabled());
    assertTrue(leftButton.isEnabled());
    assertFalse(rightButton.isEnabled());
    assertFalse(lastButton.isEnabled());
    // and step right/left. Add a loop limit for safety.
    for (int i = 0; i < numAxisItems; i++) {
        range = axis.getRange();
        if (range.upper == range.lower) {
            break;
        }
        zoomInButton.click();
    }
    range = axis.getRange();
    assertTrue(range.upper == range.lower && range.upper == numAxisItems - 1);
    assertTrue(!zoomInButton.isEnabled());
    for (int i = 0; i < numAxisItems; i++) {
        if (axis.getRange().lower == 0) {
            break;
        }
        leftButton.click();
        assertTrue(axis.getRange().lower < range.lower);
        range = axis.getRange();
        assertEquals(range.lower, range.upper, 0.0);
    }
    assertEquals(axis.getRange().lower, 0, 0.0);
    for (int i = 0; i < numAxisItems; i++) {
        if (axis.getRange().upper == numAxisItems - 1) {
            break;
        }
        rightButton.click();
        assertTrue(axis.getRange().upper > range.upper);
        range = axis.getRange();
        assertEquals(range.lower, range.upper, 0.0);
    }
    assertEquals(axis.getRange().upper, numAxisItems - 1, 0);
    firstButton.click();
    assertEquals(axis.getRange().lower, 0, 0);
    assertFalse(firstButton.isEnabled());
    assertFalse(leftButton.isEnabled());
    assertTrue(rightButton.isEnabled());
    assertTrue(lastButton.isEnabled());
    lastButton.click();
    assertEquals(axis.getRange().upper, numAxisItems - 1, 0);
    assertTrue(firstButton.isEnabled());
    assertTrue(leftButton.isEnabled());
    assertFalse(rightButton.isEnabled());
    assertFalse(lastButton.isEnabled());
}
Example 4
Project: usus-plugins-master  File: HistogramView.java View source code
private void initializeChart() {
    ILineSeries series = (ILineSeries) chart.getSeriesSet().createSeries(SeriesType.LINE, SERIES_ID);
    series.setLineStyle(LineStyle.NONE);
    series.setSymbolColor(getSharedColors().getColor(UsusColors.USUS_LIGHT_BLUE));
    chart.getTitle().setVisible(false);
    chart.getLegend().setVisible(false);
    chart.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
    chart.setBackgroundInPlotArea(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
    IAxis yAxis = chart.getAxisSet().getYAxis(0);
    yAxis.getTitle().setText("Count");
    yAxis.getTitle().setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));
    yAxis.getTick().setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY));
    IAxis xAxis = chart.getAxisSet().getXAxis(0);
    xAxis.getTitle().setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));
    xAxis.getTick().setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY));
}
Example 5
Project: tracecompass-master  File: AbstractSegmentStoreDensityViewer.java View source code
private void updateDisplay(List<ISegment> data) {
    if (data.isEmpty()) {
        return;
    }
    IBarSeries series = (IBarSeries) fChart.getSeriesSet().createSeries(SeriesType.BAR, Messages.AbstractSegmentStoreDensityViewer_SeriesLabel);
    series.setVisible(true);
    series.setBarPadding(0);
    series.setBarColor(new Color(Display.getDefault(), BAR_COLOR));
    int barWidth = 4;
    final int width = fChart.getPlotArea().getBounds().width / barWidth;
    double[] xOrigSeries = new double[width];
    double[] yOrigSeries = new double[width];
    Arrays.fill(yOrigSeries, 1.0);
    long maxLength = data.get(data.size() - 1).getLength();
    double maxFactor = 1.0 / (maxLength + 1.0);
    long minX = Long.MAX_VALUE;
    for (ISegment segment : data) {
        double xBox = segment.getLength() * maxFactor * width;
        yOrigSeries[(int) xBox]++;
        minX = Math.min(minX, segment.getLength());
    }
    double timeWidth = (double) maxLength / (double) width;
    for (int i = 0; i < width; i++) {
        xOrigSeries[i] = i * timeWidth;
    }
    double maxY = Double.MIN_VALUE;
    for (int i = 0; i < width; i++) {
        maxY = Math.max(maxY, yOrigSeries[i]);
    }
    if (minX == maxLength) {
        maxLength++;
        minX--;
    }
    series.setYSeries(yOrigSeries);
    series.setXSeries(xOrigSeries);
    final IAxis xAxis = fChart.getAxisSet().getXAxis(0);
    /*
         * adjustrange appears to bring origin back since we pad the series with
         * 0s, not interesting.
         */
    xAxis.adjustRange();
    Range range = xAxis.getRange();
    // fix for overly aggressive lower after an adjust range
    range.lower = minX - range.upper + maxLength;
    xAxis.setRange(range);
    xAxis.getTick().setFormat(DENSITY_TIME_FORMATTER);
    fChart.getAxisSet().getYAxis(0).setRange(new Range(1.0, maxY));
    fChart.getAxisSet().getYAxis(0).enableLogScale(true);
    fChart.redraw();
}
Example 6
Project: acs-master  File: AlarmsPerTenMinutesPart.java View source code
public void createPartControl(Composite parent) {
    chart = new Chart(parent, SWT.NONE);
    ITitle chartTitle = chart.getTitle();
    chartTitle.setText("Alarms per 10 minutes");
    IAxisSet axisSet = chart.getAxisSet();
    IAxis[] xAxis = axisSet.getXAxes();
    ITitle xTitle = xAxis[0].getTitle();
    xTitle.setText("Time");
    IAxis[] yAxis = axisSet.getYAxes();
    ITitle yTitle = yAxis[0].getTitle();
    yTitle.setText("# alarms");
    ISeriesSet seriesSet = chart.getSeriesSet();
    nAlarmsSerie = (ILineSeries) seriesSet.createSeries(SeriesType.LINE, "nAlarms");
    nAlarmsSerie.enableStep(true);
    nAlarmsSerie.setSymbolType(PlotSymbolType.NONE);
    IAxisTick xTick = axisSet.getXAxis(0).getTick();
    DateFormat format = new SimpleDateFormat("HH:mm");
    xTick.setFormat(format);
    errorSerie = (ILineSeries) seriesSet.createSeries(SeriesType.LINE, "Threshold");
    errorSerie.setSymbolType(PlotSymbolType.NONE);
    errorColor = new Color(Display.getDefault(), 255, 0, 0);
    errorSerie.setLineColor(errorColor);
    TenMinutesContainer.getInstance().setChartViewer(this);
}
Example 7
Project: framesoc-master  File: TmfMouseSelectionProvider.java View source code
// ------------------------------------------------------------------------
// ICustomPaintListener
// ------------------------------------------------------------------------
@Override
public void paintControl(PaintEvent e) {
    ITmfChartTimeProvider viewer = getChartViewer();
    if (!fIsInternalUpdate) {
        fBeginTime = viewer.getSelectionBeginTime() - viewer.getTimeOffset();
        fEndTime = viewer.getSelectionEndTime() - viewer.getTimeOffset();
    }
    long windowStartTime = viewer.getWindowStartTime() - viewer.getTimeOffset();
    long windowEndTime = viewer.getWindowEndTime() - viewer.getTimeOffset();
    IAxis xAxis = getChart().getAxisSet().getXAxis(0);
    e.gc.setBackground(TmfXYChartViewer.getDisplay().getSystemColor(SWT.COLOR_BLUE));
    e.gc.setForeground(TmfXYChartViewer.getDisplay().getSystemColor(SWT.COLOR_BLUE));
    e.gc.setLineStyle(SWT.LINE_SOLID);
    if ((fBeginTime >= windowStartTime) && (fBeginTime <= windowEndTime)) {
        int beginX = xAxis.getPixelCoordinate(fBeginTime);
        e.gc.drawLine(beginX, 0, beginX, e.height);
    }
    if ((fEndTime >= windowStartTime) && (fEndTime <= windowEndTime) && (fBeginTime != fEndTime)) {
        int endX = xAxis.getPixelCoordinate(fEndTime);
        e.gc.drawLine(endX, 0, endX, e.height);
    }
    e.gc.setAlpha(150);
    if (Math.abs(fEndTime - fBeginTime) > 1) {
        e.gc.setBackground(TmfXYChartViewer.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
        int beginX = xAxis.getPixelCoordinate(fBeginTime);
        int endX = xAxis.getPixelCoordinate(fEndTime);
        if (fEndTime > fBeginTime) {
            e.gc.fillRectangle(beginX + 1, 0, endX - beginX - 1, e.height);
        } else {
            e.gc.fillRectangle(endX + 1, 0, beginX - endX - 1, e.height);
        }
    }
}
Example 8
Project: limpet-master  File: DataFrequencyView.java View source code
private void showObject(List<IStoreItem> res) {
    Iterator<IStoreItem> iter = res.iterator();
    // clear the graph
    ISeries[] coll = chart.getSeriesSet().getSeries();
    for (int i = 0; i < coll.length; i++) {
        ISeries iSeries = coll[i];
        chart.getSeriesSet().deleteSeries(iSeries.getId());
    }
    while (iter.hasNext()) {
        ICollection iCollection = (ICollection) iter.next();
        if (iCollection.getValuesCount() <= MAX_SIZE) {
            BinnedData bins = null;
            IObjectCollection<?> thisQ = (IObjectCollection<?>) iCollection;
            bins = ObjectFrequencyBins.doBins(thisQ);
            String seriesName = iCollection.getName();
            IBarSeries newSeries = (IBarSeries) chart.getSeriesSet().createSeries(SeriesType.BAR, seriesName);
            newSeries.setBarColor(PlottingHelpers.colorFor(seriesName));
            String[] xData = new String[bins.size()];
            double[] yData = new double[bins.size()];
            // put the data into series
            int ctr = 0;
            Iterator<ObjectFrequencyBins.Bin> iter2 = bins.iterator();
            while (iter2.hasNext()) {
                ObjectFrequencyBins.Bin bin = (ObjectFrequencyBins.Bin) iter2.next();
                xData[ctr] = (String) bin.getIndexVal();
                yData[ctr++] = bin.getFreqVal();
            }
            IAxis xAxis = chart.getAxisSet().getXAxis(0);
            xAxis.setCategorySeries(xData);
            xAxis.enableCategory(true);
            // newSeries.set(xData);
            newSeries.setYSeries(yData);
            // adjust the axis range
            chart.getAxisSet().adjustRange();
            chart.redraw();
        }
    }
}
Example 9
Project: totalads-master  File: LiveXYChart.java View source code
/**
     * Sets minimum and maximum on Y axis
     *
     * @param min
     *            Minimum value
     * @param max
     *            Maximum value
     */
public void setYRange(final int min, final int max) {
    Display.getDefault().syncExec(new // Always execute on the
    Runnable() {

        // main GUI thread
        @Override
        public void run() {
            IAxis yAxis = fXyChart.getAxisSet().getYAxis(0);
            yAxis.setRange(new Range(min, max));
            yAxis.getTick().setTickMarkStepHint(100);
        // fXyChart.getAxisSet().adjustRange();
        }
    });
}
Example 10
Project: ARX-master  File: ViewStatisticsLogisticRegression.java View source code
/**
     * Resets the chart
     */
private void resetChart() {
    if (chart != null) {
        chart.dispose();
    }
    chart = new Chart(this.sash, SWT.NONE);
    chart.setOrientation(SWT.HORIZONTAL);
    // Show/Hide axis
    chart.addControlListener(new ControlAdapter() {

        @Override
        public void controlResized(ControlEvent arg0) {
            updateCategories();
        }
    });
    // Update font
    FontData[] fd = chart.getFont().getFontData();
    fd[0].setHeight(8);
    final Font font = new Font(chart.getDisplay(), fd[0]);
    chart.setFont(font);
    chart.addDisposeListener(new DisposeListener() {

        public void widgetDisposed(DisposeEvent arg0) {
            if (font != null && !font.isDisposed()) {
                font.dispose();
            }
        }
    });
    // Update title
    ITitle graphTitle = chart.getTitle();
    //$NON-NLS-1$
    graphTitle.setText("");
    graphTitle.setFont(chart.getFont());
    // Set colors
    chart.setBackground(root.getBackground());
    chart.setForeground(root.getForeground());
    // OSX workaround
    if (System.getProperty("os.name").toLowerCase().contains("mac")) {
        //$NON-NLS-1$ //$NON-NLS-2$
        int r = chart.getBackground().getRed() - 13;
        int g = chart.getBackground().getGreen() - 13;
        int b = chart.getBackground().getBlue() - 13;
        r = r > 0 ? r : 0;
        r = g > 0 ? g : 0;
        r = b > 0 ? b : 0;
        final Color background = new Color(chart.getDisplay(), r, g, b);
        chart.setBackground(background);
        chart.addDisposeListener(new DisposeListener() {

            public void widgetDisposed(DisposeEvent arg0) {
                if (background != null && !background.isDisposed()) {
                    background.dispose();
                }
            }
        });
    }
    // Initialize axes
    IAxisSet axisSet = chart.getAxisSet();
    IAxis yAxis = axisSet.getYAxis(0);
    IAxis xAxis = axisSet.getXAxis(0);
    ITitle xAxisTitle = xAxis.getTitle();
    //$NON-NLS-1$
    xAxisTitle.setText("");
    xAxis.getTitle().setFont(chart.getFont());
    yAxis.getTitle().setFont(chart.getFont());
    xAxis.getTick().setFont(chart.getFont());
    yAxis.getTick().setFont(chart.getFont());
    xAxis.getTick().setForeground(chart.getForeground());
    yAxis.getTick().setForeground(chart.getForeground());
    xAxis.getTitle().setForeground(chart.getForeground());
    yAxis.getTitle().setForeground(chart.getForeground());
    // Initialize axes
    ITitle yAxisTitle = yAxis.getTitle();
    //$NON-NLS-1$
    yAxisTitle.setText(Resources.getMessage("ViewStatisticsClassificationInput.17"));
    //$NON-NLS-1$
    xAxisTitle.setText(Resources.getMessage("ViewStatisticsClassificationInput.14"));
    chart.setEnabled(false);
    updateCategories();
}
Example 11
Project: org.openscada.orilla-master  File: AbstractTrendView.java View source code
private void adjustRange() {
    if (this.scaleYAutomatically) {
        final Pair<Double, Double> scale = calcScale();
        this.scaleYMin = scale.first;
        this.scaleYMax = scale.second;
        updateSpinner();
    }
    for (final IAxis axis : this.chart.getAxisSet().getXAxes()) {
        axis.adjustRange();
    }
    for (final IAxis axis : this.chart.getAxisSet().getYAxes()) {
        axis.setRange(new Range(this.scaleYMin, this.scaleYMax));
    }
}