<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FChart%2FCompass_Chart</id>
		<title>Java/Chart/Compass Chart - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FChart%2FCompass_Chart"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Chart/Compass_Chart&amp;action=history"/>
		<updated>2026-04-21T16:09:24Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Chart/Compass_Chart&amp;diff=7959&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Chart/Compass_Chart&amp;diff=7959&amp;oldid=prev"/>
				<updated>2010-06-01T06:51:57Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:51, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Chart/Compass_Chart&amp;diff=7958&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Chart/Compass_Chart&amp;diff=7958&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== JFreeChart: Compass Chart Sample ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JFreeChart: Compass Demo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc.&lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * ----------------&lt;br /&gt;
 * CompassDemo.java&lt;br /&gt;
 * ----------------&lt;br /&gt;
 * (C) Copyright 2002-2004, by the Australian Antarctic Division and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  Bryan Scott (for the Australian Antarctic Division);&lt;br /&gt;
 * Contributor(s):   David Gilbert (for Object Refinery Limited);&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: CompassDemo.java,v 1.15 2004/04/26 19:11:53 taqua Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes&lt;br /&gt;
 * -------&lt;br /&gt;
 * 25-Sep-2002 : Version 1, contributed by Bryan Scott (DG);&lt;br /&gt;
 * 10-Oct-2002 : Fixed errors reported by Checkstyle (DG);&lt;br /&gt;
 * 27-Mar-2003 : Changed dataset to ValueDataset (DG);&lt;br /&gt;
 * 16-Mar-2004 : Fixed null data display issue (BRS);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.GridBagConstraints;&lt;br /&gt;
import java.awt.GridBagLayout;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.Insets;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.beans.PropertyChangeEvent;&lt;br /&gt;
import java.beans.PropertyChangeListener;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JComboBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.SwingConstants;&lt;br /&gt;
import javax.swing.border.TitledBorder;&lt;br /&gt;
import org.jfree.chart.ChartPanel;&lt;br /&gt;
import org.jfree.chart.JFreeChart;&lt;br /&gt;
import org.jfree.chart.plot.rupassPlot;&lt;br /&gt;
import org.jfree.data.general.DefaultValueDataset;&lt;br /&gt;
import org.jfree.ui.Spinner;&lt;br /&gt;
/**&lt;br /&gt;
 * A demo application showing how to use the {@link CompassPlot} class.&lt;br /&gt;
 *&lt;br /&gt;
 * @author Bryan Scott&lt;br /&gt;
 */&lt;br /&gt;
public class CompassDemo extends JPanel {&lt;br /&gt;
    /** Whether to output messages to the console **/&lt;br /&gt;
    public static final boolean DEBUG = true;&lt;br /&gt;
    /** The available needle types. */&lt;br /&gt;
    public static final String[] NEEDLE_TYPES&lt;br /&gt;
        = {&amp;quot;Arrow&amp;quot;, &amp;quot;Line&amp;quot;, &amp;quot;Long&amp;quot;, &amp;quot;Pin&amp;quot;, &amp;quot;Plum&amp;quot;, &amp;quot;Pointer&amp;quot;, &amp;quot;Ship&amp;quot;, &amp;quot;Wind&amp;quot;, &amp;quot;Arrow&amp;quot;};&lt;br /&gt;
    /** Dataset 1. */&lt;br /&gt;
    private DefaultValueDataset compassData = new DefaultValueDataset(new Double(0.0));&lt;br /&gt;
    /** Dataset 2. */&lt;br /&gt;
    private DefaultValueDataset shipData = new DefaultValueDataset(new Double(0.0));&lt;br /&gt;
    /** The compass plot. */&lt;br /&gt;
    private CompassPlot compassPlot = new CompassPlot(this.rupassData);&lt;br /&gt;
    /** The chart. */&lt;br /&gt;
    private JFreeChart compassChart = new JFreeChart(&amp;quot;Compass Test&amp;quot;,&lt;br /&gt;
                                                     JFreeChart.DEFAULT_TITLE_FONT,&lt;br /&gt;
                                                     this.rupassPlot, false);&lt;br /&gt;
    /** The chart panel. */&lt;br /&gt;
    private ChartPanel panelCompass = new ChartPanel(this.rupassChart);&lt;br /&gt;
    /** A grid layout. */&lt;br /&gt;
    private GridLayout gridLayout1 = new GridLayout();&lt;br /&gt;
    /** A panel. */&lt;br /&gt;
    private JPanel panelCompassHolder = new JPanel();&lt;br /&gt;
    /** A border layout. */&lt;br /&gt;
    private BorderLayout borderLayout = new BorderLayout();&lt;br /&gt;
    /** A panel. */&lt;br /&gt;
    private JPanel jPanel12 = new JPanel();&lt;br /&gt;
    /** A checkbox. */&lt;br /&gt;
    private JCheckBox windNullCheckBox = new JCheckBox();&lt;br /&gt;
    /** A checkbox. */&lt;br /&gt;
    private JCheckBox shipNullCheckBox = new JCheckBox();&lt;br /&gt;
    // SpinnerNumberModel modelWind = new SpinnerNumberModel(0, -1, 361, 1);&lt;br /&gt;
    // SpinnerNumberModel modelShip = new SpinnerNumberModel(0, -1, 361, 1);&lt;br /&gt;
    // JSpinner spinWind = new JSpinner(modelWind);&lt;br /&gt;
    // JSpinner spinShip = new JSpinner(modelShip);&lt;br /&gt;
    /** The wind spinner control. */&lt;br /&gt;
    private Spinner spinWind = new Spinner(270);&lt;br /&gt;
    /** The ship spinner control. */&lt;br /&gt;
    private Spinner spinShip = new Spinner(45);&lt;br /&gt;
    /** A panel. */&lt;br /&gt;
    private JPanel jPanel1 = new JPanel();&lt;br /&gt;
    /** A combo box. */&lt;br /&gt;
    private JComboBox pick1Pointer = new JComboBox(NEEDLE_TYPES);&lt;br /&gt;
    /** A panel. */&lt;br /&gt;
    private JPanel jPanel2 = new JPanel();&lt;br /&gt;
    /** A combo box. */&lt;br /&gt;
    private JComboBox pick2Pointer = new JComboBox(NEEDLE_TYPES);&lt;br /&gt;
    /** A titled border. */&lt;br /&gt;
    private TitledBorder titledBorder1;&lt;br /&gt;
    /** A titled border. */&lt;br /&gt;
    private TitledBorder titledBorder2;&lt;br /&gt;
    /** A grid bag layout. */&lt;br /&gt;
    private GridBagLayout gridBagLayout1 = new GridBagLayout();&lt;br /&gt;
    /** A grid bag layout. */&lt;br /&gt;
    private GridBagLayout gridBagLayout2 = new GridBagLayout();&lt;br /&gt;
    /** A titled border. */&lt;br /&gt;
    private TitledBorder titledBorder3;&lt;br /&gt;
    /** A grid layout. */&lt;br /&gt;
    private GridLayout gridLayout2 = new GridLayout();&lt;br /&gt;
    /**&lt;br /&gt;
     * Default constructor.&lt;br /&gt;
     */&lt;br /&gt;
    public CompassDemo() {&lt;br /&gt;
        try {&lt;br /&gt;
            //this.rupassPlot.addData(this.rupassData);&lt;br /&gt;
            this.rupassPlot.addData(this.shipData);&lt;br /&gt;
            this.rupassPlot.setSeriesNeedle(0, 7);&lt;br /&gt;
            this.rupassPlot.setSeriesNeedle(1, 5);&lt;br /&gt;
            this.rupassPlot.setSeriesPaint(0, Color.blue);&lt;br /&gt;
            this.rupassPlot.setSeriesOutlinePaint(0, Color.blue);&lt;br /&gt;
            this.rupassPlot.setSeriesPaint(1, Color.red);&lt;br /&gt;
            this.rupassPlot.setSeriesOutlinePaint(1, Color.red);&lt;br /&gt;
            this.pick1Pointer.setSelectedIndex(7);&lt;br /&gt;
            this.pick2Pointer.setSelectedIndex(5);&lt;br /&gt;
            jbInit();&lt;br /&gt;
        }&lt;br /&gt;
        catch (Exception ex) {&lt;br /&gt;
            ex.printStackTrace();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Initialises the user interface.&lt;br /&gt;
     *&lt;br /&gt;
     * @throws Exception if there are any exceptions.&lt;br /&gt;
     */&lt;br /&gt;
    void jbInit() throws Exception {&lt;br /&gt;
        this.titledBorder1 = new TitledBorder(&amp;quot;&amp;quot;);&lt;br /&gt;
        this.titledBorder2 = new TitledBorder(&amp;quot;&amp;quot;);&lt;br /&gt;
        this.titledBorder3 = new TitledBorder(&amp;quot;&amp;quot;);&lt;br /&gt;
        setLayout(this.gridLayout1);&lt;br /&gt;
        this.panelCompassHolder.setLayout(this.borderLayout);&lt;br /&gt;
        this.windNullCheckBox.setHorizontalTextPosition(SwingConstants.LEADING);&lt;br /&gt;
        this.windNullCheckBox.setText(&amp;quot;Null&amp;quot;);&lt;br /&gt;
        this.windNullCheckBox.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;
            public void actionPerformed(final ActionEvent e) {&lt;br /&gt;
                checkWindNullActionPerformed(e);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        this.shipNullCheckBox.setHorizontalTextPosition(SwingConstants.LEFT);&lt;br /&gt;
        this.shipNullCheckBox.setText(&amp;quot;Null&amp;quot;);&lt;br /&gt;
        this.shipNullCheckBox.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;
            public void actionPerformed(final ActionEvent e) {&lt;br /&gt;
                checkShipNullActionPerformed(e);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        this.spinShip.addPropertyChangeListener(new PropertyChangeListener() {&lt;br /&gt;
            public void propertyChange(final PropertyChangeEvent evt) {&lt;br /&gt;
              if (DEBUG) {&lt;br /&gt;
                System.out.println(&amp;quot;compassDemo:spinShipPropertyChange&amp;quot;);&lt;br /&gt;
              }&lt;br /&gt;
              final Spinner spinner = (Spinner) evt.getSource();&lt;br /&gt;
              if (spinner.isEnabled()) {&lt;br /&gt;
                shipData.setValue(new Double(spinner.getValue()));&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        this.spinWind.addPropertyChangeListener(new PropertyChangeListener() {&lt;br /&gt;
            public void propertyChange(final PropertyChangeEvent evt) {&lt;br /&gt;
                if (DEBUG) {&lt;br /&gt;
                  System.out.println(&amp;quot;compassDemo:spinWindPropertyChange&amp;quot;);&lt;br /&gt;
                }  &lt;br /&gt;
                final Spinner spinner = (Spinner) evt.getSource();&lt;br /&gt;
                if (spinner.isEnabled()) {&lt;br /&gt;
                  compassData.setValue(new Double(spinner.getValue()));&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        this.jPanel12.setLayout(this.gridLayout2);&lt;br /&gt;
        this.jPanel2.setBorder(this.titledBorder1);&lt;br /&gt;
        this.jPanel2.setLayout(this.gridBagLayout2);&lt;br /&gt;
        this.jPanel1.setBorder(this.titledBorder2);&lt;br /&gt;
        this.jPanel1.setLayout(this.gridBagLayout1);&lt;br /&gt;
        this.titledBorder1.setTitle(&amp;quot;Second Pointer&amp;quot;);&lt;br /&gt;
        this.titledBorder2.setTitle(&amp;quot;First Pointer&amp;quot;);&lt;br /&gt;
        this.titledBorder3.setTitle(&amp;quot;Plot Options&amp;quot;);&lt;br /&gt;
        this.pick2Pointer.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;
            public void actionPerformed(final ActionEvent e) {&lt;br /&gt;
                pick2PointerActionPerformed(e);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        this.pick1Pointer.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;
            public void actionPerformed(final ActionEvent e) {&lt;br /&gt;
                pick1PointerActionPerformed(e);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
        add(this.panelCompassHolder, null);&lt;br /&gt;
        this.panelCompassHolder.add(this.jPanel12, BorderLayout.SOUTH);&lt;br /&gt;
        this.jPanel12.add(this.jPanel1, null);&lt;br /&gt;
        this.jPanel1.add(this.pick1Pointer,&lt;br /&gt;
                    new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0,&lt;br /&gt;
                                           GridBagConstraints.CENTER,&lt;br /&gt;
                                           GridBagConstraints.HORIZONTAL,&lt;br /&gt;
                                           new Insets(0, 0, 0, 0),&lt;br /&gt;
                                           0, 0));&lt;br /&gt;
        this.jPanel1.add(this.windNullCheckBox,&lt;br /&gt;
                    new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0,&lt;br /&gt;
                                           GridBagConstraints.CENTER,&lt;br /&gt;
                                           GridBagConstraints.NONE,&lt;br /&gt;
                                           new Insets(0, 0, 0, 0),&lt;br /&gt;
                                           0, 0));&lt;br /&gt;
        this.jPanel1.add(this.spinWind,&lt;br /&gt;
                    new GridBagConstraints(2, 0, 1, 1, 1.0, 0.0,&lt;br /&gt;
                                           GridBagConstraints.CENTER,&lt;br /&gt;
                                           GridBagConstraints.BOTH,&lt;br /&gt;
                                           new Insets(0, 0, 0, 0),&lt;br /&gt;
                                           0, 0));&lt;br /&gt;
        this.jPanel12.add(this.jPanel2, null);&lt;br /&gt;
        this.jPanel2.add(this.pick2Pointer,&lt;br /&gt;
                    new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0,&lt;br /&gt;
                                           GridBagConstraints.CENTER,&lt;br /&gt;
                                           GridBagConstraints.HORIZONTAL,&lt;br /&gt;
                                           new Insets(0, 0, 0, 0),&lt;br /&gt;
                                           0, 0));&lt;br /&gt;
        this.jPanel2.add(this.shipNullCheckBox,&lt;br /&gt;
                    new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0,&lt;br /&gt;
                                           GridBagConstraints.CENTER,&lt;br /&gt;
                                           GridBagConstraints.NONE,&lt;br /&gt;
                                           new Insets(0, 0, 0, 0),&lt;br /&gt;
                                           0, 0));&lt;br /&gt;
        this.jPanel2.add(this.spinShip,&lt;br /&gt;
                    new GridBagConstraints(2, 0, 1, 1, 1.0, 0.0,&lt;br /&gt;
                    GridBagConstraints.CENTER,&lt;br /&gt;
                    GridBagConstraints.BOTH,&lt;br /&gt;
                    new Insets(0, 0, 0, 0),&lt;br /&gt;
                    0, 0));&lt;br /&gt;
        this.panelCompassHolder.add(this.panelCompass, BorderLayout.CENTER);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Entry point for the demo application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final CompassDemo panel = new CompassDemo();&lt;br /&gt;
        final JFrame frame = new JFrame();&lt;br /&gt;
        frame.getContentPane().setLayout(new BorderLayout(5, 5));&lt;br /&gt;
        frame.setDefaultCloseOperation(3);&lt;br /&gt;
        frame.setTitle(&amp;quot;Compass Demo&amp;quot;);&lt;br /&gt;
        frame.getContentPane().add(panel, BorderLayout.CENTER);&lt;br /&gt;
        frame.setSize(700, 400);&lt;br /&gt;
        final Dimension d = Toolkit.getDefaultToolkit().getScreenSize();&lt;br /&gt;
        frame.setLocation((d.width - frame.getSize().width) / 2,&lt;br /&gt;
                          (d.height - frame.getSize().height) / 2);&lt;br /&gt;
        frame.setVisible(true);&lt;br /&gt;
    }&lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    // * JFREECHART DEVELOPER GUIDE                                               *&lt;br /&gt;
    // * The JFreeChart Developer Guide, written by David Gilbert, is available   *&lt;br /&gt;
    // * to purchase from Object Refinery Limited:                                *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * http://www.object-refinery.ru/jfreechart/guide.html                     *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * Sales are used to provide funding for the JFreeChart project - please    *&lt;br /&gt;
    // * support us so that we can continue developing free software.             *&lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    /**&lt;br /&gt;
     * Updates the data.&lt;br /&gt;
     *&lt;br /&gt;
     * @param value  the value.&lt;br /&gt;
     */&lt;br /&gt;
    public void adjustData(final double value) {&lt;br /&gt;
        final Number val = this.rupassData.getValue();&lt;br /&gt;
        double newVal = value;&lt;br /&gt;
        if (val != null) {&lt;br /&gt;
            newVal += val.doubleValue();&lt;br /&gt;
        }&lt;br /&gt;
        if (newVal &amp;gt; 360) {&lt;br /&gt;
            newVal = 0;&lt;br /&gt;
        }&lt;br /&gt;
        if (newVal &amp;lt; 0) {&lt;br /&gt;
            newVal = 360;&lt;br /&gt;
        }&lt;br /&gt;
        this.rupassData.setValue(new Double(newVal));&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Handles an action event.&lt;br /&gt;
     *&lt;br /&gt;
     * @param e  the event.&lt;br /&gt;
     */&lt;br /&gt;
    void checkWindNullActionPerformed(final ActionEvent e) {&lt;br /&gt;
        if (CompassDemo.DEBUG) {&lt;br /&gt;
            System.out.println(&amp;quot;CompassDemo:checkWindNull: &amp;quot; + this.windNullCheckBox.isSelected());&lt;br /&gt;
        }&lt;br /&gt;
        if (this.windNullCheckBox.isSelected()) {&lt;br /&gt;
            this.rupassData.setValue(null);&lt;br /&gt;
            this.spinWind.setEnabled(false);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            //  compassData.setValue((new Double(((Integer)spinWind.getValue()).intValue())));&lt;br /&gt;
            this.rupassData.setValue(new Double(this.spinWind.getValue()));&lt;br /&gt;
            this.spinWind.setEnabled(true);&lt;br /&gt;
        }&lt;br /&gt;
        if (CompassDemo.DEBUG) {&lt;br /&gt;
          System.out.println(&amp;quot;CompassDemo:checkWindNull: &amp;quot; + this.rupassData.getValue());&lt;br /&gt;
        }&lt;br /&gt;
          &lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Handles an action event.&lt;br /&gt;
     *&lt;br /&gt;
     * @param e  the event.&lt;br /&gt;
     */&lt;br /&gt;
    void checkShipNullActionPerformed(final ActionEvent e) {&lt;br /&gt;
        if (CompassDemo.DEBUG) {&lt;br /&gt;
            System.out.println(&amp;quot;CompassDemo:checkShipNull: &amp;quot; + this.shipNullCheckBox.isSelected());&lt;br /&gt;
        }&lt;br /&gt;
        if (this.shipNullCheckBox.isSelected()) {&lt;br /&gt;
            this.shipData.setValue(null);&lt;br /&gt;
            this.spinShip.setEnabled(false);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
           // shipData.setValue((new Double(((Integer)spinShip.getValue()).intValue())));&lt;br /&gt;
            this.shipData.setValue(new Double(this.spinShip.getValue()));&lt;br /&gt;
            this.spinShip.setEnabled(true);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Handles an action event.&lt;br /&gt;
     *&lt;br /&gt;
     * @param e  the event.&lt;br /&gt;
     */&lt;br /&gt;
    void pick2PointerActionPerformed(final ActionEvent e) {&lt;br /&gt;
      if (CompassDemo.DEBUG) {&lt;br /&gt;
        System.out.println(&amp;quot;compassDemo:pick2PointActionPerformed &amp;quot; + e.getActionCommand() + &amp;quot;,&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      this.rupassPlot.setSeriesNeedle(1, this.pick2Pointer.getSelectedIndex());&lt;br /&gt;
      this.rupassPlot.setSeriesPaint(1, Color.red);&lt;br /&gt;
      this.rupassPlot.setSeriesOutlinePaint(1, Color.red);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Handles an action event.&lt;br /&gt;
     *&lt;br /&gt;
     * @param e  the event.&lt;br /&gt;
     */&lt;br /&gt;
    void pick1PointerActionPerformed(final ActionEvent e) {&lt;br /&gt;
        if (CompassDemo.DEBUG) {&lt;br /&gt;
          System.out.println(&amp;quot;compassDemo:pick1PointActionPerformed &amp;quot; + e.getActionCommand() + &amp;quot;,&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        this.rupassPlot.setSeriesNeedle(0, this.pick1Pointer.getSelectedIndex());&lt;br /&gt;
        this.rupassPlot.setSeriesPaint(0, Color.blue);&lt;br /&gt;
        this.rupassPlot.setSeriesOutlinePaint(0, Color.blue);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JFreeChart: Compass Demo 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. &lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * CompassDemo2.java&lt;br /&gt;
 * -----------------&lt;br /&gt;
 * (C) Copyright 2002-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited);&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: CompassDemo2.java,v 1.7 2004/04/26 19:11:53 taqua Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes&lt;br /&gt;
 * -------&lt;br /&gt;
 * 04-Aug-2003 : Version 1 (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import org.jfree.chart.ChartPanel;&lt;br /&gt;
import org.jfree.chart.JFreeChart;&lt;br /&gt;
import org.jfree.chart.plot.rupassPlot;&lt;br /&gt;
import org.jfree.data.general.DefaultValueDataset;&lt;br /&gt;
import org.jfree.data.general.ValueDataset;&lt;br /&gt;
import org.jfree.ui.ApplicationFrame;&lt;br /&gt;
import org.jfree.ui.RefineryUtilities;&lt;br /&gt;
/**&lt;br /&gt;
 * A simple demonstration application showing how to...&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class CompassDemo2 extends ApplicationFrame {&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a new demo application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param title  the frame title.&lt;br /&gt;
     */&lt;br /&gt;
    public CompassDemo2(final String title) {&lt;br /&gt;
        super(title);&lt;br /&gt;
        final ValueDataset dataset = new DefaultValueDataset(new Double(45.0));&lt;br /&gt;
        final JFreeChart chart = createChart(dataset);&lt;br /&gt;
        &lt;br /&gt;
        // add the chart to a panel...&lt;br /&gt;
        final ChartPanel chartPanel = new ChartPanel(chart);&lt;br /&gt;
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));&lt;br /&gt;
        chartPanel.setEnforceFileExtensions(false);&lt;br /&gt;
        setContentPane(chartPanel);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a chart.&lt;br /&gt;
     * &lt;br /&gt;
     * @param dataset  the dataset.&lt;br /&gt;
     * &lt;br /&gt;
     * @return The chart.&lt;br /&gt;
     */&lt;br /&gt;
    private JFreeChart createChart(final ValueDataset dataset) {&lt;br /&gt;
        &lt;br /&gt;
        final CompassPlot plot = new CompassPlot(dataset);&lt;br /&gt;
        plot.setSeriesNeedle(7);&lt;br /&gt;
        plot.setSeriesPaint(0, Color.red);&lt;br /&gt;
        plot.setSeriesOutlinePaint(0, Color.red);&lt;br /&gt;
        final JFreeChart chart = new JFreeChart(plot);&lt;br /&gt;
        return chart;&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    // * JFREECHART DEVELOPER GUIDE                                               *&lt;br /&gt;
    // * The JFreeChart Developer Guide, written by David Gilbert, is available   *&lt;br /&gt;
    // * to purchase from Object Refinery Limited:                                *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * http://www.object-refinery.ru/jfreechart/guide.html                     *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * Sales are used to provide funding for the JFreeChart project - please    * &lt;br /&gt;
    // * support us so that we can continue developing free software.             *&lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Starting point for the demonstration application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final CompassDemo2 demo = new CompassDemo2(&amp;quot;Compass Demo 2&amp;quot;);&lt;br /&gt;
        demo.pack();&lt;br /&gt;
        RefineryUtilities.centerFrameOnScreen(demo);&lt;br /&gt;
        demo.setVisible(true);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JFreeChart: Compass Format Demo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. &lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * ----------------------&lt;br /&gt;
 * CompassFormatDemo.java&lt;br /&gt;
 * ----------------------&lt;br /&gt;
 * (C) Copyright 2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited);&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: CompassFormatDemo.java,v 1.4 2004/04/27 14:53:09 mungady Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes&lt;br /&gt;
 * -------&lt;br /&gt;
 * 18-Feb-2004 : Version 1 (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import org.jfree.chart.ChartFactory;&lt;br /&gt;
import org.jfree.chart.ChartPanel;&lt;br /&gt;
import org.jfree.chart.JFreeChart;&lt;br /&gt;
import org.jfree.chart.axis.rupassFormat;&lt;br /&gt;
import org.jfree.chart.axis.NumberAxis;&lt;br /&gt;
import org.jfree.chart.axis.NumberTickUnit;&lt;br /&gt;
import org.jfree.chart.axis.TickUnits;&lt;br /&gt;
import org.jfree.chart.axis.ValueAxis;&lt;br /&gt;
import org.jfree.chart.plot.XYPlot;&lt;br /&gt;
import org.jfree.chart.renderer.xy.XYAreaRenderer;&lt;br /&gt;
import org.jfree.chart.renderer.xy.XYItemRenderer;&lt;br /&gt;
import org.jfree.data.time.Minute;&lt;br /&gt;
import org.jfree.data.time.RegularTimePeriod;&lt;br /&gt;
import org.jfree.data.time.TimeSeries;&lt;br /&gt;
import org.jfree.data.time.TimeSeriesCollection;&lt;br /&gt;
import org.jfree.data.xy.XYDataset;&lt;br /&gt;
import org.jfree.ui.ApplicationFrame;&lt;br /&gt;
import org.jfree.ui.RefineryUtilities;&lt;br /&gt;
/**&lt;br /&gt;
 * A demo of the {@link CompassFormat} class.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class CompassFormatDemo extends ApplicationFrame {&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a new demo instance.&lt;br /&gt;
     *&lt;br /&gt;
     * @param title  the frame title.&lt;br /&gt;
     */&lt;br /&gt;
    public CompassFormatDemo(final String title) {&lt;br /&gt;
        super(title);&lt;br /&gt;
        final JFreeChart chart = createChart();&lt;br /&gt;
        final ChartPanel chartPanel = new ChartPanel(chart);&lt;br /&gt;
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));&lt;br /&gt;
        setContentPane(chartPanel);&lt;br /&gt;
    }&lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    // * JFREECHART DEVELOPER GUIDE                                               *&lt;br /&gt;
    // * The JFreeChart Developer Guide, written by David Gilbert, is available   *&lt;br /&gt;
    // * to purchase from Object Refinery Limited:                                *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * http://www.object-refinery.ru/jfreechart/guide.html                     *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * Sales are used to provide funding for the JFreeChart project - please    * &lt;br /&gt;
    // * support us so that we can continue developing free software.             *&lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a sample dataset.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the item count.&lt;br /&gt;
     * &lt;br /&gt;
     * @return the dataset.&lt;br /&gt;
     */&lt;br /&gt;
    private XYDataset createDirectionDataset(final int count) {&lt;br /&gt;
        final TimeSeriesCollection dataset = new TimeSeriesCollection();&lt;br /&gt;
        final TimeSeries s1 = new TimeSeries(&amp;quot;Wind Direction&amp;quot;, Minute.class);&lt;br /&gt;
        RegularTimePeriod start = new Minute();&lt;br /&gt;
        double direction = 180.0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            s1.add(start, direction);&lt;br /&gt;
            start = start.next();&lt;br /&gt;
            direction = direction + (Math.random() - 0.5) * 15.0;&lt;br /&gt;
            if (direction &amp;lt; 0.0) {&lt;br /&gt;
                direction = direction + 360.0;&lt;br /&gt;
            }&lt;br /&gt;
            else if (direction &amp;gt; 360.0) {&lt;br /&gt;
                direction = direction - 360.0;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        dataset.addSeries(s1);&lt;br /&gt;
        return dataset;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a sample dataset.&lt;br /&gt;
     *&lt;br /&gt;
     * @param count  the item count.&lt;br /&gt;
     * &lt;br /&gt;
     * @return the dataset.&lt;br /&gt;
     */&lt;br /&gt;
    private XYDataset createForceDataset(final int count) {&lt;br /&gt;
        final TimeSeriesCollection dataset = new TimeSeriesCollection();&lt;br /&gt;
        final TimeSeries s1 = new TimeSeries(&amp;quot;Wind Force&amp;quot;, Minute.class);&lt;br /&gt;
        RegularTimePeriod start = new Minute();&lt;br /&gt;
        double force = 3.0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            s1.add(start, force);&lt;br /&gt;
            start = start.next();&lt;br /&gt;
            force = Math.max(0.5, force + (Math.random() - 0.5) * 0.5);&lt;br /&gt;
        }&lt;br /&gt;
        dataset.addSeries(s1);&lt;br /&gt;
        return dataset;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a sample chart.&lt;br /&gt;
     * &lt;br /&gt;
     * @return a sample chart.&lt;br /&gt;
     */&lt;br /&gt;
    private JFreeChart createChart() {&lt;br /&gt;
        final XYDataset direction = createDirectionDataset(600);&lt;br /&gt;
        final JFreeChart chart = ChartFactory.createTimeSeriesChart(&lt;br /&gt;
            &amp;quot;Time&amp;quot;, &lt;br /&gt;
            &amp;quot;Date&amp;quot;, &lt;br /&gt;
            &amp;quot;Direction&amp;quot;,&lt;br /&gt;
            direction,&lt;br /&gt;
            true,&lt;br /&gt;
            true,&lt;br /&gt;
            false&lt;br /&gt;
        );&lt;br /&gt;
        final XYPlot plot = chart.getXYPlot();&lt;br /&gt;
        plot.getDomainAxis().setLowerMargin(0.0);&lt;br /&gt;
        plot.getDomainAxis().setUpperMargin(0.0);&lt;br /&gt;
        &lt;br /&gt;
        // configure the range axis to display directions...&lt;br /&gt;
        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();&lt;br /&gt;
        rangeAxis.setAutoRangeIncludesZero(false);&lt;br /&gt;
        final TickUnits units = new TickUnits();&lt;br /&gt;
        units.add(new NumberTickUnit(180.0, new CompassFormat()));&lt;br /&gt;
        units.add(new NumberTickUnit(90.0, new CompassFormat()));&lt;br /&gt;
        units.add(new NumberTickUnit(45.0, new CompassFormat()));&lt;br /&gt;
        units.add(new NumberTickUnit(22.5, new CompassFormat()));&lt;br /&gt;
        rangeAxis.setStandardTickUnits(units);&lt;br /&gt;
        &lt;br /&gt;
        // add the wind force with a secondary dataset/renderer/axis&lt;br /&gt;
        plot.setRangeAxis(rangeAxis);&lt;br /&gt;
        final XYItemRenderer renderer2 = new XYAreaRenderer();&lt;br /&gt;
        final ValueAxis axis2 = new NumberAxis(&amp;quot;Force&amp;quot;);&lt;br /&gt;
        axis2.setRange(0.0, 12.0);&lt;br /&gt;
        renderer2.setSeriesPaint(0, new Color(0, 0, 255, 128));&lt;br /&gt;
        plot.setDataset(1, createForceDataset(600));&lt;br /&gt;
        plot.setRenderer(1, renderer2);&lt;br /&gt;
        plot.setRangeAxis(1, axis2);&lt;br /&gt;
        plot.mapDatasetToRangeAxis(1, 1);&lt;br /&gt;
        &lt;br /&gt;
        return chart;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Starting point for the demonstration application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final CompassFormatDemo demo = new CompassFormatDemo(&amp;quot;Compass Format Demo&amp;quot;);&lt;br /&gt;
        demo.pack();&lt;br /&gt;
        RefineryUtilities.centerFrameOnScreen(demo);&lt;br /&gt;
        demo.setVisible(true);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>