Example usage for org.jfree.chart.plot Marker setLabelFont

List of usage examples for org.jfree.chart.plot Marker setLabelFont

Introduction

In this page you can find the example usage for org.jfree.chart.plot Marker setLabelFont.

Prototype

public void setLabelFont(Font font) 

Source Link

Document

Sets the label font and sends a MarkerChangeEvent to all registered listeners.

Usage

From source file:utils.ChartUtils.java

/**
 * Update values of a bar chart/*from  w w  w. j  a  va2  s .com*/
 * 
 * @param labelsByFreq Labels ordered by frequency
 * @param nInstances Number of instances
 * @param cp CategoryPlot
 */
public static void updateValuesBarChart(ImbalancedFeature[] labelsByFreq, int nInstances, CategoryPlot cp) {
    DefaultCategoryDataset data = new DefaultCategoryDataset();

    double prob;

    labelsByFreq = MetricUtils.sortByFrequency(labelsByFreq);

    double sum = 0.0;
    for (int i = 0; i < labelsByFreq.length; i++) {
        prob = labelsByFreq[i].getAppearances() * 1.0 / nInstances;
        sum += prob;

        data.setValue(prob, labelsByFreq[i].getName(), " ");
    }

    cp.setDataset(data);

    // add mean mark
    sum = sum / labelsByFreq.length;
    Marker start = new ValueMarker(sum);
    start.setPaint(Color.red);
    start.setLabelFont(new Font("SansSerif", Font.BOLD, 12));
    start.setLabel("                        Mean: " + MetricUtils.truncateValue(sum, 3));
    cp.addRangeMarker(start);
}

From source file:utils.ChartUtils.java

/**
 * Update IR bar chart/* w  w  w. j av  a2 s . c  o  m*/
 * 
 * @param labelsByFrequency Labels ordered by frequency
 * @param IR Imbalance Ratio values
 * @param cp CategoryPlot
 */
public static void updateIRBarChart(ImbalancedFeature[] labelsByFrequency, double[] IR, CategoryPlot cp) {
    DefaultCategoryDataset myData = new DefaultCategoryDataset();

    double prob = 0;

    labelsByFrequency = MetricUtils.sortByFrequency(labelsByFrequency);

    double sum = 0.0;
    for (int i = labelsByFrequency.length - 1; i >= 0; i--) {
        prob = IR[i];
        sum += prob;
        myData.setValue(prob, labelsByFrequency[i].getName(), " ");
    }

    cp.setDataset(myData);

    // add mean mark
    sum = sum / labelsByFrequency.length;
    Marker meanMark = new ValueMarker(sum);
    meanMark.setPaint(Color.red);
    meanMark.setLabelFont(new Font("SansSerif", Font.BOLD, 12));
    meanMark.setLabel("                        Mean: " + MetricUtils.truncateValue(sum, 3));
    cp.addRangeMarker(meanMark);

    //Add Imbalance limit mark
    Marker limitMark = new ValueMarker(1.5);
    limitMark.setPaint(Color.black);
    limitMark.setLabelFont(new Font("SansSerif", Font.BOLD, 12));

    if ((sum < 1.3) || (sum > 1.7)) {
        limitMark.setLabel("                                                Imbalance limit (IR=1.5)");
    }
    cp.addRangeMarker(limitMark);
}

From source file:com.appnativa.rare.ui.chart.jfreechart.ChartHelper.java

public static void updateMarker(Marker marker, ChartDataItem item) {
    if (item.getFont() != null) {
        marker.setLabelFont(item.getFont());
    } else {/*  w w w.ja v  a 2s.co  m*/
        UIFont f = Platform.getUIDefaults().getFont("Rare.Chart.markerFont");

        if (f != null) {
            marker.setLabelFont(f);
        }
    }

    if (item.getForeground() != null) {
        marker.setLabelPaint(item.getForeground());
    } else {
        UIColor c = Platform.getUIDefaults().getColor("Rare.Chart.markerForeground");

        if (c != null) {
            marker.setLabelPaint(c.getPaint());
        }
    }

    if (item.getBackground() != null) {
        marker.setPaint(item.getBackground());
    } else {
        UIColor c = Platform.getUIDefaults().getColor("Rare.Chart.markerBackground");

        if (c != null) {
            marker.setPaint(c.getPaint());
        }
    }
}

From source file:org.eobjects.datacleaner.widgets.result.NumberAnalyzerResultSwingRenderer.java

@Override
protected void decorate(NumberAnalyzerResult result, DCTable table,
        final DisplayChartCallback displayChartCallback) {
    // find the std. deviation row number.
    int rowNumber = -1;
    {/*from  w  w w. j a  v  a 2  s  . c  om*/
        for (int i = 0; i < table.getRowCount(); i++) {
            Object value = table.getValueAt(i, 0);
            if (NumberAnalyzer.MEASURE_STANDARD_DEVIATION.equals(value)) {
                rowNumber = i;
                break;
            }
        }
        if (rowNumber == -1) {
            throw new IllegalStateException("Could not determine Std. deviation row number!");
        }
    }

    Crosstab<?> crosstab = result.getCrosstab();

    final InputColumn<? extends Number>[] columns = result.getColumns();
    int columnNumber = 1;
    for (final InputColumn<? extends Number> column : columns) {
        final CrosstabNavigator<?> nav = crosstab.where(NumberAnalyzer.DIMENSION_COLUMN, column.getName());

        final Number numRows = (Number) nav
                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_ROW_COUNT).get();
        if (numRows.intValue() > 0) {
            final Number standardDeviation = (Number) nav
                    .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_STANDARD_DEVIATION).get();
            if (standardDeviation != null) {

                ActionListener action = new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        final Number mean = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_MEAN).get();
                        final Number min = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_LOWEST_VALUE)
                                .get();
                        final Number max = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_HIGHEST_VALUE)
                                .get();

                        final NormalDistributionFunction2D normalDistributionFunction = new NormalDistributionFunction2D(
                                mean.doubleValue(), standardDeviation.doubleValue());
                        final XYDataset dataset = DatasetUtilities.sampleFunction2D(normalDistributionFunction,
                                min.doubleValue(), max.doubleValue(), 100, "Normal");

                        final JFreeChart chart = ChartFactory.createXYLineChart(
                                "Normal distribution of " + column.getName(), column.getName(), "", dataset,
                                PlotOrientation.VERTICAL, false, true, false);
                        ChartUtils.applyStyles(chart);
                        Marker meanMarker = new ValueMarker(mean.doubleValue(), WidgetUtils.BG_COLOR_BLUE_DARK,
                                new BasicStroke(2f));
                        meanMarker.setLabel("Mean");
                        meanMarker.setLabelOffset(new RectangleInsets(70d, 25d, 0d, 0d));
                        meanMarker.setLabelFont(WidgetUtils.FONT_SMALL);
                        chart.getXYPlot().addDomainMarker(meanMarker);

                        final ChartPanel chartPanel = new ChartPanel(chart);
                        displayChartCallback.displayChart(chartPanel);
                    }
                };

                DCPanel panel = AbstractCrosstabResultSwingRenderer.createActionableValuePanel(
                        standardDeviation, Alignment.RIGHT, action, "images/chart-types/line.png");
                table.setValueAt(panel, rowNumber, columnNumber);
            }
        }

        columnNumber++;
    }

    super.decorate(result, table, displayChartCallback);
}

From source file:org.datacleaner.widgets.result.NumberAnalyzerResultSwingRenderer.java

@Override
protected void decorate(NumberAnalyzerResult result, DCTable table,
        final DisplayChartCallback displayChartCallback) {
    // find the std. deviation row number.
    int rowNumber = -1;
    {//from   w  w  w . ja  va  2s  .co  m
        for (int i = 0; i < table.getRowCount(); i++) {
            Object value = table.getValueAt(i, 0);
            if (NumberAnalyzer.MEASURE_STANDARD_DEVIATION.equals(value)) {
                rowNumber = i;
                break;
            }
        }
        if (rowNumber == -1) {
            throw new IllegalStateException("Could not determine Std. deviation row number!");
        }
    }

    Crosstab<?> crosstab = result.getCrosstab();

    final InputColumn<? extends Number>[] columns = result.getColumns();
    int columnNumber = 1;
    for (final InputColumn<? extends Number> column : columns) {
        final CrosstabNavigator<?> nav = crosstab.where(NumberAnalyzer.DIMENSION_COLUMN, column.getName());

        final Number numRows = (Number) nav
                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_ROW_COUNT).get();
        if (numRows.intValue() > 0) {
            final Number standardDeviation = (Number) nav
                    .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_STANDARD_DEVIATION).get();
            if (standardDeviation != null) {

                ActionListener action = new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        final Number mean = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_MEAN).get();
                        final Number min = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_LOWEST_VALUE)
                                .get();
                        final Number max = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_HIGHEST_VALUE)
                                .get();

                        final NormalDistributionFunction2D normalDistributionFunction = new NormalDistributionFunction2D(
                                mean.doubleValue(), standardDeviation.doubleValue());
                        final XYDataset dataset = DatasetUtilities.sampleFunction2D(normalDistributionFunction,
                                min.doubleValue(), max.doubleValue(), 100, "Normal");

                        final JFreeChart chart = ChartFactory.createXYLineChart(
                                "Normal distribution of " + column.getName(), column.getName(), "", dataset,
                                PlotOrientation.VERTICAL, false, true, false);
                        ChartUtils.applyStyles(chart);
                        Marker meanMarker = new ValueMarker(mean.doubleValue(), WidgetUtils.BG_COLOR_BLUE_DARK,
                                new BasicStroke(2f));
                        meanMarker.setLabel("Mean");
                        meanMarker.setLabelOffset(new RectangleInsets(70d, 25d, 0d, 0d));
                        meanMarker.setLabelFont(WidgetUtils.FONT_SMALL);
                        chart.getXYPlot().addDomainMarker(meanMarker);

                        final ChartPanel chartPanel = ChartUtils.createPanel(chart, true);
                        displayChartCallback.displayChart(chartPanel);
                    }
                };

                DCPanel panel = AbstractCrosstabResultSwingRenderer.createActionableValuePanel(
                        standardDeviation, Alignment.RIGHT, action, IconUtils.CHART_LINE);
                table.setValueAt(panel, rowNumber, columnNumber);
            }
        }

        columnNumber++;
    }

    super.decorate(result, table, displayChartCallback);
}

From source file:it.eng.spagobi.engines.chart.bo.charttypes.scattercharts.MarkerScatter.java

public JFreeChart createChart(DatasetMap datasets) {

    DefaultXYDataset dataset = (DefaultXYDataset) datasets.getDatasets().get("1");

    JFreeChart chart = ChartFactory.createScatterPlot(name, yLabel, xLabel, dataset, PlotOrientation.HORIZONTAL,
            false, true, false);/*from www  .  j av a 2 s .  c om*/

    TextTitle title = setStyleTitle(name, styleTitle);
    chart.setTitle(title);
    chart.setBackgroundPaint(Color.white);
    if (subName != null && !subName.equals("")) {
        TextTitle subTitle = setStyleTitle(subName, styleSubTitle);
        chart.addSubtitle(subTitle);
    }

    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setForegroundAlpha(0.65f);

    XYItemRenderer renderer = plot.getRenderer();

    //defines colors 
    int seriesN = dataset.getSeriesCount();
    if ((colorMap != null && colorMap.size() > 0) || (defaultColor != null && !defaultColor.equals(""))) {
        for (int i = 0; i < seriesN; i++) {
            String serieName = (String) dataset.getSeriesKey(i);
            Color color = new Color(Integer.decode(defaultColor).intValue());
            if (colorMap != null && colorMap.size() > 0)
                color = (Color) colorMap.get(serieName);
            if (color != null)
                renderer.setSeriesPaint(i, color);
        }
    }

    // add un interval  marker for the Y axis...
    if (yMarkerStartInt != null && yMarkerEndInt != null && !yMarkerStartInt.equals("")
            && !yMarkerEndInt.equals("")) {
        Marker intMarkerY = new IntervalMarker(Double.parseDouble(yMarkerStartInt),
                Double.parseDouble(yMarkerEndInt));
        intMarkerY.setLabelOffsetType(LengthAdjustmentType.EXPAND);
        intMarkerY.setPaint(
                new Color(Integer.decode((yMarkerIntColor.equals("")) ? "0" : yMarkerIntColor).intValue()));
        //intMarkerY.setLabel(yMarkerLabel);
        intMarkerY.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT);
        intMarkerY.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
        plot.addDomainMarker(intMarkerY, Layer.BACKGROUND);
    }
    // add un interval  marker for the X axis...
    if (xMarkerStartInt != null && xMarkerEndInt != null && !xMarkerStartInt.equals("")
            && !xMarkerEndInt.equals("")) {
        Marker intMarkerX = new IntervalMarker(Double.parseDouble(xMarkerStartInt),
                Double.parseDouble(xMarkerEndInt));
        intMarkerX.setLabelOffsetType(LengthAdjustmentType.EXPAND);
        intMarkerX.setPaint(
                new Color(Integer.decode((xMarkerIntColor.equals("")) ? "0" : xMarkerIntColor).intValue()));
        //intMarkerX.setLabel(xMarkerLabel);
        intMarkerX.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT);
        intMarkerX.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
        plot.addRangeMarker(intMarkerX, Layer.BACKGROUND);
    }
    // add a labelled marker for the Y axis...
    if (yMarkerValue != null && !yMarkerValue.equals("")) {
        Marker markerY = new ValueMarker(Double.parseDouble(yMarkerValue));
        markerY.setLabelOffsetType(LengthAdjustmentType.EXPAND);
        if (!yMarkerColor.equals(""))
            markerY.setPaint(new Color(Integer.decode(yMarkerColor).intValue()));
        markerY.setLabel(yMarkerLabel);
        markerY.setLabelFont(new Font("Arial", Font.BOLD, 11));
        markerY.setLabelAnchor(RectangleAnchor.TOP_RIGHT);
        markerY.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
        plot.addDomainMarker(markerY, Layer.BACKGROUND);
    }
    // add a labelled marker for the X axis...
    if (xMarkerValue != null && !xMarkerValue.equals("")) {
        Marker markerX = new ValueMarker(Double.parseDouble(xMarkerValue));
        markerX.setLabelOffsetType(LengthAdjustmentType.EXPAND);
        if (!xMarkerColor.equals(""))
            markerX.setPaint(new Color(Integer.decode(xMarkerColor).intValue()));
        markerX.setLabel(xMarkerLabel);
        markerX.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT);
        markerX.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
        plot.addRangeMarker(markerX, Layer.BACKGROUND);
    }

    if (xRangeLow != null && !xRangeLow.equals("") && xRangeHigh != null && !xRangeHigh.equals("")) {
        if (Double.valueOf(xRangeLow).doubleValue() > xMin)
            xRangeLow = String.valueOf(xMin);
        if (Double.valueOf(xRangeHigh).doubleValue() < xMax)
            xRangeHigh = String.valueOf(xMax);
        ValueAxis rangeAxis = plot.getRangeAxis();
        //rangeAxis.setRange(Double.parseDouble(xRangeLow), Double.parseDouble(xRangeHigh));
        rangeAxis.setRangeWithMargins(Double.parseDouble(xRangeLow), Double.parseDouble(xRangeHigh));
    } else {
        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setAutoRange(true);
        rangeAxis.setRange(xMin, xMax);
    }

    if (yRangeLow != null && !yRangeLow.equals("") && yRangeHigh != null && !yRangeHigh.equals("")) {
        if (Double.valueOf(yRangeLow).doubleValue() > yMin)
            yRangeLow = String.valueOf(yMin);
        if (Double.valueOf(yRangeHigh).doubleValue() < yMax)
            yRangeHigh = String.valueOf(yMax);
        NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
        //domainAxis.setRange(Double.parseDouble(yRangeLow), Double.parseDouble(yRangeHigh));
        domainAxis.setRangeWithMargins(Double.parseDouble(yRangeLow), Double.parseDouble(yRangeHigh));
        domainAxis.setAutoRangeIncludesZero(false);
    } else {
        NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
        domainAxis.setAutoRange(true);
        domainAxis.setRange(yMin, yMax);
        domainAxis.setAutoRangeIncludesZero(false);
    }

    //add annotations if requested
    if (viewAnnotations != null && viewAnnotations.equalsIgnoreCase("true")) {
        if (annotationMap == null || annotationMap.size() == 0)
            logger.error("Annotations on the chart are requested but the annotationMap is null!");
        else {
            int cont = 1;
            for (Iterator iterator = annotationMap.keySet().iterator(); iterator.hasNext();) {
                String text = (String) iterator.next();
                String pos = (String) annotationMap.get(text);
                double x = Double.parseDouble(pos.substring(0, pos.indexOf("__")));
                double y = Double.parseDouble(pos.substring(pos.indexOf("__") + 2));
                //default up position
                XYTextAnnotation annotation = new XYTextAnnotation(text, y - 1,
                        x + ((text.length() > 20) ? text.length() / 3 + 1 : text.length() / 2 + 1));
                if (cont % 2 != 0)
                    //dx
                    annotation = new XYTextAnnotation(text, y,
                            x + ((text.length() > 20) ? text.length() / 3 + 1 : text.length() / 2 + 1));
                else
                    //sx
                    //annotation = new XYTextAnnotation(text, y, x-((text.length()%2==0)?text.length():text.length()-1));
                    annotation = new XYTextAnnotation(text, y, x - (text.length() - 1));

                annotation.setFont(new Font("SansSerif", Font.PLAIN, 11));
                //annotation.setRotationAngle(Math.PI / 4.0);
                annotation.setRotationAngle(0.0); // horizontal
                plot.addAnnotation(annotation);
                cont++;
            }
            renderer.setShape(new Ellipse2D.Double(-3, -5, 8, 8));
        }
    } else if (viewAnnotations != null && viewAnnotations.equalsIgnoreCase("false")) {
        renderer.setShape(new Ellipse2D.Double(-3, -5, 8, 8));
    }
    if (legend == true) {

        drawLegend(chart);
    }
    return chart;
}

From source file:org.jfree.chart.demo.DifferenceChartDemo2.java

/**
 * Creates a chart./*from  w w w.  j  av  a2s.c  om*/
 * 
 * @param dataset  the dataset.
 * 
 * @return The chart.
 */
private JFreeChart createChart(final XYDataset dataset) {
    final JFreeChart chart = ChartFactory.createTimeSeriesChart("Daylight Hours - London, UK", "Date", "Time",
            dataset, true, // legend
            true, // tool tips
            false // URLs
    );
    chart.setBackgroundPaint(Color.white);

    final XYDifferenceRenderer renderer = new XYDifferenceRenderer(Color.blue, Color.blue, false);
    renderer.setStroke(new BasicStroke(2.0f));
    renderer.setSeriesPaint(0, Color.yellow);
    renderer.setSeriesPaint(1, Color.red);
    final XYPlot plot = chart.getXYPlot();
    plot.setRenderer(renderer);
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    //        plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0));

    final DateAxis domainAxis = new DateAxis("Time");
    domainAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
    domainAxis.setLowerMargin(0.0);
    domainAxis.setUpperMargin(0.0);
    plot.setDomainAxis(domainAxis);
    plot.setForegroundAlpha(0.5f);

    final Color c = new Color(255, 60, 24, 63);
    final Marker bst = new IntervalMarker(new Day(28, 3, 2004).getFirstMillisecond(),
            new Day(30, 10, 2004).getFirstMillisecond(), c, new BasicStroke(2.0f), null, null, 1.0f);
    bst.setLabel("British Summer Time");
    bst.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT);
    bst.setLabelFont(new Font("SansSerif", Font.ITALIC + Font.BOLD, 10));
    bst.setLabelTextAnchor(TextAnchor.BASELINE_RIGHT);
    plot.addDomainMarker(bst, Layer.BACKGROUND);

    final DateAxis rangeAxis = new DateAxis("Time");
    rangeAxis.setLowerMargin(0.15);
    rangeAxis.setUpperMargin(0.15);
    plot.setRangeAxis(rangeAxis);
    return chart;
}

From source file:no.met.jtimeseries.chart.ChartPlotter.java

public void addDomainMarkers(Date start, Date stop, TimeZone timeZone, Locale locale) {
    if (!addedDomainMarkers) {
        //make a one hour by one hour time list
        //The reason is that not all the data are hour by hour
        //domainMarkers will not mark labels when no date at clock 00:00

        List<Date> time = getTimeHourByHour(start, stop);
        // set the markers
        Map<Long, String> domainMarkers = getDomainMarkersWithLabel(time, timeZone, locale);
        for (Map.Entry<Long, String> entry : domainMarkers.entrySet()) {
            Long timeInMilli = entry.getKey();
            String label = entry.getValue();
            final Marker originalEnd = new ValueMarker(timeInMilli);
            originalEnd.setPaint(Color.DARK_GRAY);
            originalEnd.setStroke(new BasicStroke(1.0f));
            originalEnd.setLabel(label);//Arial Hebrew, SansSerif
            originalEnd.setLabelFont(new Font("Arial", Font.PLAIN, 14));
            originalEnd.setLabelAnchor(RectangleAnchor.TOP_RIGHT);
            originalEnd.setLabelTextAnchor(TextAnchor.TOP_LEFT);
            plot.addDomainMarker(originalEnd, Layer.BACKGROUND);
            setAddedDomainMarkers(true);
        }/*from  w w w .  j a v  a  2s  .c om*/

    }
}

From source file:ch.algotrader.client.chart.ChartTab.java

private void initMarker(SeriesDefinitionVO seriesDefinition) {

    final MarkerDefinitionVO markerDefinition = (MarkerDefinitionVO) seriesDefinition;

    final Marker marker;
    if (markerDefinition.isInterval()) {
        marker = new IntervalMarker(0, 0);
        marker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT); // position of the label
        marker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); // position of the text within the label
    } else {//www. jav a  2  s.c om
        marker = new ValueMarker(0);
        marker.setLabelAnchor(RectangleAnchor.TOP_RIGHT);
        marker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);
    }

    marker.setPaint(getColor(markerDefinition.getColor()));
    marker.setLabel(markerDefinition.getLabel());
    marker.setLabelFont(new Font("SansSerif", 0, 9));

    if (seriesDefinition.isDashed()) {
        marker.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f,
                new float[] { 5.0f }, 0.0f));
    } else {
        marker.setStroke(new BasicStroke(1.0f));
    }

    getPlot().addRangeMarker(marker, markerDefinition.isInterval() ? Layer.BACKGROUND : Layer.FOREGROUND);

    this.markers.put(markerDefinition.getName(), marker);
    this.markersSelectionStatus.put(markerDefinition.getName(), seriesDefinition.isSelected());

    // add the menu item
    JCheckBoxMenuItem menuItem = new JCheckBoxMenuItem(seriesDefinition.getLabel());
    menuItem.setSelected(seriesDefinition.isSelected());
    menuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            resetAxis();
            boolean selected = ((JCheckBoxMenuItem) e.getSource()).isSelected();
            ChartTab.this.markersSelectionStatus.put(markerDefinition.getName(), selected);
            if (selected) {
                if (marker instanceof ValueMarker) {
                    marker.setAlpha(1.0f);
                } else {
                    marker.setAlpha(0.5f);
                }
            } else {
                marker.setAlpha(0);
            }
            initAxis();
        }
    });
    this.getPopupMenu().add(menuItem);
}

From source file:com.planetmayo.debrief.satc_rcp.views.MaintainContributionsView.java

protected void redoStraightLegs() {
    // ok, clear any leg markers
    if (legPlot != null) {
        if (!graphTabs.isDisposed())
            graphTabs.setSelection(legTab);

        // hmm, actually we have to remove any target leg markers
        @SuppressWarnings("unchecked")
        Collection<IntervalMarker> markers = legPlot.getDomainMarkers(Layer.FOREGROUND);
        if (markers != null) {
            ArrayList<IntervalMarker> markersToDelete = new ArrayList<IntervalMarker>(markers);
            Iterator<IntervalMarker> mIter = markersToDelete.iterator();
            while (mIter.hasNext()) {
                IntervalMarker im = mIter.next();
                legPlot.removeDomainMarker(im);
            }/*from   ww  w  . j av  a  2 s. c om*/
        }

        Iterator<BaseContribution> conts = activeSolver.getContributions().iterator();
        while (conts.hasNext()) {
            BaseContribution baseC = conts.next();
            if (baseC.isActive())
                if (baseC instanceof StraightLegForecastContribution) {
                    StraightLegForecastContribution slf = (StraightLegForecastContribution) baseC;
                    java.awt.Color thisCol = slf.getColor();

                    // hmm, has it been given a color (initialised) yet?
                    if (thisCol == null)
                        continue;

                    long thisStart = baseC.getStartDate().getTime();
                    long thisFinish = baseC.getFinishDate().getTime();

                    java.awt.Color transCol = new java.awt.Color(255, 0, 0, 22);

                    final Marker bst = new IntervalMarker(thisStart, thisFinish, transCol,
                            new BasicStroke(2.0f), null, null, 1.0f);
                    bst.setLabel(baseC.getName());
                    bst.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT);
                    bst.setLabelFont(new Font("SansSerif", Font.ITALIC + Font.BOLD, 10));
                    bst.setLabelTextAnchor(TextAnchor.BASELINE_LEFT);
                    legPlot.addDomainMarker(bst, Layer.FOREGROUND);
                } else {
                    if (baseC instanceof BearingMeasurementContribution) {

                    }
                }
        }

    }

}