/*
 * JDialog.java
 *
 * Created on 2005/05/11, 15:46
 */

package jp.riken.brain.ni.samuraigraph.figure.java2d;

import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.util.ArrayList;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeEvent;

import jp.riken.brain.ni.samuraigraph.base.SGCheckBox;
import jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton;
import jp.riken.brain.ni.samuraigraph.base.SGIConstants;
import jp.riken.brain.ni.samuraigraph.base.SGIPropertyDialogObserver;
import jp.riken.brain.ni.samuraigraph.base.SGProperties;
import jp.riken.brain.ni.samuraigraph.base.SGPropertyDialog;
import jp.riken.brain.ni.samuraigraph.base.SGSpinner;
import jp.riken.brain.ni.samuraigraph.base.SGTwoAxesRadioButtonManager;
import jp.riken.brain.ni.samuraigraph.base.SGUtility;
import jp.riken.brain.ni.samuraigraph.base.SGUtilityText;
import jp.riken.brain.ni.samuraigraph.figure.SGDrawingElementErrorBar;
import jp.riken.brain.ni.samuraigraph.figure.SGDrawingElementLine;
import jp.riken.brain.ni.samuraigraph.figure.SGDrawingElementSymbol;

/**
 *
 * @author  kuromaru
 */
public class SGPropertyDialogSXYData extends SGPropertyDialog
	implements SGIFigureDrawingElementConstants
{
    
	/**
	 * 
	 */
	public static final String TITLE = "SXY-Data Properties";


	/** Creates new form SGPropertyDialogSXYData */
	public SGPropertyDialogSXYData(java.awt.Frame parent, boolean modal)
	{
		super(parent, modal);
		initComponents();
		this.initProperty();
		this.initialize();
	}

    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    private void initComponents() {//GEN-BEGIN:initComponents
        java.awt.GridBagConstraints gridBagConstraints;

        mCommonPanel = new javax.swing.JPanel();
        mLeftTopRadioButton = new javax.swing.JRadioButton();
        mLeftBottomRadioButton = new javax.swing.JRadioButton();
        mRightTopRadioButton = new javax.swing.JRadioButton();
        mRightBottomRadioButton = new javax.swing.JRadioButton();
        mScaleReferenceLabel2 = new javax.swing.JLabel();
        mScaleReferenceLabel1 = new javax.swing.JLabel();
        mLegendVisibleCheckBox = new jp.riken.brain.ni.samuraigraph.base.SGCheckBox();
        mNameLabel = new javax.swing.JLabel();
        mNameField = new jp.riken.brain.ni.samuraigraph.base.SGTextField();
        mTabbedPane = new javax.swing.JTabbedPane();
        mLinePanel = new javax.swing.JPanel();
        mLineVisibleCheckBox = new jp.riken.brain.ni.samuraigraph.base.SGCheckBox();
        mLineWidthSpinner = new jp.riken.brain.ni.samuraigraph.base.SGSpinner();
        mLineTypeLabel = new javax.swing.JLabel();
        mLineWidthLabel = new javax.swing.JLabel();
        mLineColorLabel = new javax.swing.JLabel();
        mLineTypeComboBox = new javax.swing.JComboBox();
        mLineColorButton = new jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton();
        mSymbolPanel = new javax.swing.JPanel();
        mSymbolVisibleCheckBox = new jp.riken.brain.ni.samuraigraph.base.SGCheckBox();
        mSymbolLineWidthSpinner = new jp.riken.brain.ni.samuraigraph.base.SGSpinner();
        mSymbolSizeLabel = new javax.swing.JLabel();
        mSymbolLineWidthLabel = new javax.swing.JLabel();
        mSymbolSizeSpinner = new jp.riken.brain.ni.samuraigraph.base.SGSpinner();
        mSymbolLineColorLabel = new javax.swing.JLabel();
        mSymbolColorLabel = new javax.swing.JLabel();
        mSymbolLineColorButton = new jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton();
        mSymbolColorButton = new jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton();
        mSymbolLineLabel = new javax.swing.JLabel();
        mSymbolLineSeparator = new javax.swing.JSeparator();
        mSymbolTypePanel = new javax.swing.JPanel();
        mSymbolTypeLabel = new javax.swing.JLabel();
        mSymbolTypeComboBox = new javax.swing.JComboBox();
        mSymbolBodySeparator = new javax.swing.JSeparator();
        mSymbolBodyLabel = new javax.swing.JLabel();
        mBarPanel = new javax.swing.JPanel();
        mBarVisibleCheckBox = new jp.riken.brain.ni.samuraigraph.base.SGCheckBox();
        mBarWidthLabel = new javax.swing.JLabel();
        mBarColorLabel = new javax.swing.JLabel();
        mBarLineWidthLabel = new javax.swing.JLabel();
        mBarLineColorLabel = new javax.swing.JLabel();
        mBarWidthSpinner = new jp.riken.brain.ni.samuraigraph.base.SGSpinner();
        mBarLineWidthSpinner = new jp.riken.brain.ni.samuraigraph.base.SGSpinner();
        mBarLineColorButton = new jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton();
        mBarBodyLabel = new javax.swing.JLabel();
        mBarLineLabel = new javax.swing.JLabel();
        mBarInnerColorButton = new jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton();
        mBarBodySeparator = new javax.swing.JSeparator();
        mBarLineSeparator = new javax.swing.JSeparator();
        mBarBaseLinePanel = new javax.swing.JPanel();
        mBarBaseLineTextField = new jp.riken.brain.ni.samuraigraph.base.SGTextField();
        mBarBaseLineValueLabel = new javax.swing.JLabel();
        mErrorBarPanel = new javax.swing.JPanel();
        mErrorBarVisibleCheckBox = new jp.riken.brain.ni.samuraigraph.base.SGCheckBox();
        mErrorBarSymbolSizeLabel = new javax.swing.JLabel();
        mErrorBarSymbolSizeSpinner = new jp.riken.brain.ni.samuraigraph.base.SGSpinner();
        mErrorBarColorLabel = new javax.swing.JLabel();
        mErrorBarTypeLabel = new javax.swing.JLabel();
        mErrorBarTypeComboBox = new javax.swing.JComboBox();
        mErrorBarColorButton = new jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton();
        mErrorBarStyleLabel = new javax.swing.JLabel();
        mErrorBarSymbolLabel = new javax.swing.JLabel();
        mErrorBarStyleSeparator = new javax.swing.JSeparator();
        mErrorBarSymbolSeparator = new javax.swing.JSeparator();
        mErrorBarSylePanel = new javax.swing.JPanel();
        mErrorBarBothsidesRadioButton = new javax.swing.JRadioButton();
        mErrorBarUpsideRadioButton = new javax.swing.JRadioButton();
        mErrorBarDownsideRadioButton = new javax.swing.JRadioButton();
        mErrorBarLineWidthPanel = new javax.swing.JPanel();
        mErrorBarLineWidthLabel1 = new javax.swing.JLabel();
        mErrorBarLineWidthSpinner = new jp.riken.brain.ni.samuraigraph.base.SGSpinner();
        mErrorBarLineWidthLabel2 = new javax.swing.JLabel();
        mTickLabelPanel = new javax.swing.JPanel();
        mTickLabelFontSizeLabel = new javax.swing.JLabel();
        mTickLabelVisibleCheckBox = new jp.riken.brain.ni.samuraigraph.base.SGCheckBox();
        mTickLabelFontSizeSpinner = new jp.riken.brain.ni.samuraigraph.base.SGSpinner();
        mTickLabelColorButton = new jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton();
        mTickLabelColorLabel = new javax.swing.JLabel();
        mTickLabelAnglePanel = new javax.swing.JPanel();
        mTickLabelHorizontalRadioButton = new javax.swing.JRadioButton();
        mTickLabelSlantRadioButton = new javax.swing.JRadioButton();
        mTickLabelFontLabel = new javax.swing.JLabel();
        mTickLabelFontSeparator = new javax.swing.JSeparator();
        mTickLabelAngleLabel = new javax.swing.JLabel();
        mTickLanelAngleSeparator = new javax.swing.JSeparator();
        mTickLabelFontStyleComboBox = new javax.swing.JComboBox();
        mTickLabelFontNameComboBox = new javax.swing.JComboBox();
        mTickLabelFontNameLabel = new javax.swing.JLabel();
        mTickLabelFontStyleLabel = new javax.swing.JLabel();
        mButtonPanel = new javax.swing.JPanel();
        mOKButton = new javax.swing.JButton();
        mCancelButton = new javax.swing.JButton();
        mPreviewButton = new javax.swing.JButton();

        getContentPane().setLayout(new java.awt.GridBagLayout());

        mCommonPanel.setLayout(new java.awt.GridBagLayout());

        mLeftTopRadioButton.setFont(new java.awt.Font("Dialog", 1, 12));
        mLeftTopRadioButton.setText("Left/Top");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        mCommonPanel.add(mLeftTopRadioButton, gridBagConstraints);

        mLeftBottomRadioButton.setFont(new java.awt.Font("Dialog", 1, 12));
        mLeftBottomRadioButton.setText("Left/Bottom");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        mCommonPanel.add(mLeftBottomRadioButton, gridBagConstraints);

        mRightTopRadioButton.setFont(new java.awt.Font("Dialog", 1, 12));
        mRightTopRadioButton.setText("Right/Top");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        mCommonPanel.add(mRightTopRadioButton, gridBagConstraints);

        mRightBottomRadioButton.setFont(new java.awt.Font("Dialog", 1, 12));
        mRightBottomRadioButton.setText("Right/Bottom");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        mCommonPanel.add(mRightBottomRadioButton, gridBagConstraints);

        mScaleReferenceLabel2.setFont(new java.awt.Font("Dialog", 0, 12));
        mScaleReferenceLabel2.setText("(Data <-> Scale)");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
        mCommonPanel.add(mScaleReferenceLabel2, gridBagConstraints);

        mScaleReferenceLabel1.setFont(new java.awt.Font("Dialog", 1, 12));
        mScaleReferenceLabel1.setText("Scale Reference");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.ipadx = 7;
        mCommonPanel.add(mScaleReferenceLabel1, gridBagConstraints);

        mLegendVisibleCheckBox.setText("Legend Visible");
        mLegendVisibleCheckBox.setFont(new java.awt.Font("Dialog", 0, 12));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        mCommonPanel.add(mLegendVisibleCheckBox, gridBagConstraints);

        mNameLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mNameLabel.setText("Name");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 30, 5, 0);
        mCommonPanel.add(mNameLabel, gridBagConstraints);

        mNameField.setColumns(16);
        mNameField.setFont(new java.awt.Font("Dialog", 0, 12));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
        mCommonPanel.add(mNameField, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        getContentPane().add(mCommonPanel, gridBagConstraints);

        mTabbedPane.setFont(new java.awt.Font("Dialog", 1, 12));
        mTabbedPane.setPreferredSize(new java.awt.Dimension(360, 280));
        mLinePanel.setLayout(new java.awt.GridBagLayout());

        mLinePanel.setFont(new java.awt.Font("Dialog", 0, 12));
        mLineVisibleCheckBox.setText("Visible");
        mLineVisibleCheckBox.setFont(new java.awt.Font("Dialog", 0, 12));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(10, 10, 5, 10);
        mLinePanel.add(mLineVisibleCheckBox, gridBagConstraints);

        mLineWidthSpinner.setFont(new java.awt.Font("Dialog", 0, 12));
        mLineWidthSpinner.setPreferredSize(new java.awt.Dimension(75, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
        mLinePanel.add(mLineWidthSpinner, gridBagConstraints);

        mLineTypeLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mLineTypeLabel.setText("Type");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 10, 5);
        mLinePanel.add(mLineTypeLabel, gridBagConstraints);

        mLineWidthLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mLineWidthLabel.setText("Width");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 5);
        mLinePanel.add(mLineWidthLabel, gridBagConstraints);

        mLineColorLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mLineColorLabel.setText("Color");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 20, 5, 5);
        mLinePanel.add(mLineColorLabel, gridBagConstraints);

        mLineTypeComboBox.setFont(new java.awt.Font("Dialog", 0, 12));
        mLineTypeComboBox.setPreferredSize(new java.awt.Dimension(140, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 10, 10);
        mLinePanel.add(mLineTypeComboBox, gridBagConstraints);

        mLineColorButton.setFont(new java.awt.Font("Dialog", 0, 11));
        mLineColorButton.setPreferredSize(new java.awt.Dimension(65, 20));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10);
        mLinePanel.add(mLineColorButton, gridBagConstraints);

        mTabbedPane.addTab("Line", mLinePanel);

        mSymbolPanel.setLayout(new java.awt.GridBagLayout());

        mSymbolVisibleCheckBox.setFont(new java.awt.Font("Dialog", 0, 12));
        mSymbolVisibleCheckBox.setText("Visible");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(10, 10, 5, 10);
        mSymbolPanel.add(mSymbolVisibleCheckBox, gridBagConstraints);

        mSymbolLineWidthSpinner.setFont(new java.awt.Font("Dialog", 0, 12));
        mSymbolLineWidthSpinner.setPreferredSize(new java.awt.Dimension(75, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 10, 5);
        mSymbolPanel.add(mSymbolLineWidthSpinner, gridBagConstraints);

        mSymbolSizeLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mSymbolSizeLabel.setText("Size");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 5, 5);
        mSymbolPanel.add(mSymbolSizeLabel, gridBagConstraints);

        mSymbolLineWidthLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mSymbolLineWidthLabel.setText("Width");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 10, 5);
        mSymbolPanel.add(mSymbolLineWidthLabel, gridBagConstraints);

        mSymbolSizeSpinner.setFont(new java.awt.Font("Dialog", 0, 12));
        mSymbolSizeSpinner.setPreferredSize(new java.awt.Dimension(75, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
        mSymbolPanel.add(mSymbolSizeSpinner, gridBagConstraints);

        mSymbolLineColorLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mSymbolLineColorLabel.setText("Color");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 20, 10, 5);
        mSymbolPanel.add(mSymbolLineColorLabel, gridBagConstraints);

        mSymbolColorLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mSymbolColorLabel.setText("Color");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 20, 5, 5);
        mSymbolPanel.add(mSymbolColorLabel, gridBagConstraints);

        mSymbolLineColorButton.setFont(new java.awt.Font("Dialog", 0, 11));
        mSymbolLineColorButton.setPreferredSize(new java.awt.Dimension(65, 20));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 10, 10);
        mSymbolPanel.add(mSymbolLineColorButton, gridBagConstraints);

        mSymbolColorButton.setFont(new java.awt.Font("Dialog", 0, 11));
        mSymbolColorButton.setPreferredSize(new java.awt.Dimension(65, 20));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10);
        mSymbolPanel.add(mSymbolColorButton, gridBagConstraints);

        mSymbolLineLabel.setFont(new java.awt.Font("Dialog", 3, 12));
        mSymbolLineLabel.setText("Line");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 5);
        mSymbolPanel.add(mSymbolLineLabel, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(5, 45, 5, 10);
        mSymbolPanel.add(mSymbolLineSeparator, gridBagConstraints);

        mSymbolTypePanel.setLayout(new java.awt.GridBagLayout());

        mSymbolTypeLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mSymbolTypeLabel.setText("Type");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 5);
        mSymbolTypePanel.add(mSymbolTypeLabel, gridBagConstraints);

        mSymbolTypeComboBox.setFont(new java.awt.Font("Dialog", 0, 12));
        mSymbolTypeComboBox.setPreferredSize(new java.awt.Dimension(150, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
        mSymbolTypePanel.add(mSymbolTypeComboBox, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 10);
        mSymbolPanel.add(mSymbolTypePanel, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 50, 0, 10);
        mSymbolPanel.add(mSymbolBodySeparator, gridBagConstraints);

        mSymbolBodyLabel.setFont(new java.awt.Font("Dialog", 3, 12));
        mSymbolBodyLabel.setText("Body");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 5);
        mSymbolPanel.add(mSymbolBodyLabel, gridBagConstraints);

        mTabbedPane.addTab("Symbol", mSymbolPanel);

        mBarPanel.setLayout(new java.awt.GridBagLayout());

        mBarVisibleCheckBox.setFont(new java.awt.Font("Dialog", 0, 12));
        mBarVisibleCheckBox.setText("Visible");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(15, 10, 5, 10);
        mBarPanel.add(mBarVisibleCheckBox, gridBagConstraints);

        mBarWidthLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mBarWidthLabel.setText("Width");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 5, 5);
        mBarPanel.add(mBarWidthLabel, gridBagConstraints);

        mBarColorLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mBarColorLabel.setText("Color");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 20, 5, 5);
        mBarPanel.add(mBarColorLabel, gridBagConstraints);

        mBarLineWidthLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mBarLineWidthLabel.setText("Width");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 15, 5);
        mBarPanel.add(mBarLineWidthLabel, gridBagConstraints);

        mBarLineColorLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mBarLineColorLabel.setText("Color");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 20, 15, 5);
        mBarPanel.add(mBarLineColorLabel, gridBagConstraints);

        mBarWidthSpinner.setFont(new java.awt.Font("Dialog", 0, 12));
        mBarWidthSpinner.setPreferredSize(new java.awt.Dimension(75, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
        mBarPanel.add(mBarWidthSpinner, gridBagConstraints);

        mBarLineWidthSpinner.setFont(new java.awt.Font("Dialog", 0, 12));
        mBarLineWidthSpinner.setPreferredSize(new java.awt.Dimension(75, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 15, 5);
        mBarPanel.add(mBarLineWidthSpinner, gridBagConstraints);

        mBarLineColorButton.setFont(new java.awt.Font("Dialog", 0, 11));
        mBarLineColorButton.setPreferredSize(new java.awt.Dimension(65, 20));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 15, 10);
        mBarPanel.add(mBarLineColorButton, gridBagConstraints);

        mBarBodyLabel.setFont(new java.awt.Font("Dialog", 3, 12));
        mBarBodyLabel.setText("Body");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 10);
        mBarPanel.add(mBarBodyLabel, gridBagConstraints);

        mBarLineLabel.setFont(new java.awt.Font("Dialog", 3, 12));
        mBarLineLabel.setText("Line");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 10);
        mBarPanel.add(mBarLineLabel, gridBagConstraints);

        mBarInnerColorButton.setFont(new java.awt.Font("Dialog", 0, 11));
        mBarInnerColorButton.setPreferredSize(new java.awt.Dimension(65, 20));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10);
        mBarPanel.add(mBarInnerColorButton, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(5, 50, 5, 10);
        mBarPanel.add(mBarBodySeparator, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(5, 45, 5, 10);
        mBarPanel.add(mBarLineSeparator, gridBagConstraints);

        mBarBaseLinePanel.setLayout(new java.awt.GridBagLayout());

        mBarBaseLineTextField.setFont(new java.awt.Font("Dialog", 0, 12));
        mBarBaseLineTextField.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        mBarBaseLineTextField.setText("0.0");
        mBarBaseLineTextField.setPreferredSize(new java.awt.Dimension(70, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
        mBarBaseLinePanel.add(mBarBaseLineTextField, gridBagConstraints);

        mBarBaseLineValueLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mBarBaseLineValueLabel.setText("Base Line");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 5);
        mBarBaseLinePanel.add(mBarBaseLineValueLabel, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 10);
        mBarPanel.add(mBarBaseLinePanel, gridBagConstraints);

        mTabbedPane.addTab("Bar", mBarPanel);

        mErrorBarPanel.setLayout(new java.awt.GridBagLayout());

        mErrorBarVisibleCheckBox.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarVisibleCheckBox.setText("Visible");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(10, 10, 5, 5);
        mErrorBarPanel.add(mErrorBarVisibleCheckBox, gridBagConstraints);

        mErrorBarSymbolSizeLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarSymbolSizeLabel.setText("Size");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 5, 5);
        mErrorBarPanel.add(mErrorBarSymbolSizeLabel, gridBagConstraints);

        mErrorBarSymbolSizeSpinner.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarSymbolSizeSpinner.setPreferredSize(new java.awt.Dimension(75, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
        mErrorBarPanel.add(mErrorBarSymbolSizeSpinner, gridBagConstraints);

        mErrorBarColorLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarColorLabel.setText("Color");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(5, 20, 5, 5);
        mErrorBarPanel.add(mErrorBarColorLabel, gridBagConstraints);

        mErrorBarTypeLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarTypeLabel.setText("Type");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 5, 5);
        mErrorBarPanel.add(mErrorBarTypeLabel, gridBagConstraints);

        mErrorBarTypeComboBox.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarTypeComboBox.setPreferredSize(new java.awt.Dimension(90, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10);
        mErrorBarPanel.add(mErrorBarTypeComboBox, gridBagConstraints);

        mErrorBarColorButton.setFont(new java.awt.Font("Dialog", 0, 11));
        mErrorBarColorButton.setPreferredSize(new java.awt.Dimension(65, 20));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10);
        mErrorBarPanel.add(mErrorBarColorButton, gridBagConstraints);

        mErrorBarStyleLabel.setFont(new java.awt.Font("Dialog", 3, 12));
        mErrorBarStyleLabel.setText("Style");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 10);
        mErrorBarPanel.add(mErrorBarStyleLabel, gridBagConstraints);

        mErrorBarSymbolLabel.setFont(new java.awt.Font("Dialog", 3, 12));
        mErrorBarSymbolLabel.setText("Symbol ");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 10);
        mErrorBarPanel.add(mErrorBarSymbolLabel, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(5, 50, 5, 10);
        mErrorBarPanel.add(mErrorBarStyleSeparator, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(5, 65, 5, 10);
        mErrorBarPanel.add(mErrorBarSymbolSeparator, gridBagConstraints);

        mErrorBarSylePanel.setLayout(new java.awt.GridBagLayout());

        mErrorBarBothsidesRadioButton.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarBothsidesRadioButton.setText("Bothsides");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        mErrorBarSylePanel.add(mErrorBarBothsidesRadioButton, gridBagConstraints);

        mErrorBarUpsideRadioButton.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarUpsideRadioButton.setText("Upside");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        mErrorBarSylePanel.add(mErrorBarUpsideRadioButton, gridBagConstraints);

        mErrorBarDownsideRadioButton.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarDownsideRadioButton.setText("Downside");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        mErrorBarSylePanel.add(mErrorBarDownsideRadioButton, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 6;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 30, 10, 10);
        mErrorBarPanel.add(mErrorBarSylePanel, gridBagConstraints);

        mErrorBarLineWidthPanel.setLayout(new java.awt.GridBagLayout());

        mErrorBarLineWidthLabel1.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarLineWidthLabel1.setText("Line");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 5);
        mErrorBarLineWidthPanel.add(mErrorBarLineWidthLabel1, gridBagConstraints);

        mErrorBarLineWidthSpinner.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarLineWidthSpinner.setPreferredSize(new java.awt.Dimension(75, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
        mErrorBarLineWidthPanel.add(mErrorBarLineWidthSpinner, gridBagConstraints);

        mErrorBarLineWidthLabel2.setFont(new java.awt.Font("Dialog", 0, 12));
        mErrorBarLineWidthLabel2.setText("Width");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 5);
        mErrorBarLineWidthPanel.add(mErrorBarLineWidthLabel2, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 5, 10);
        mErrorBarPanel.add(mErrorBarLineWidthPanel, gridBagConstraints);

        mTabbedPane.addTab("Error Bar", mErrorBarPanel);

        mTickLabelPanel.setLayout(new java.awt.GridBagLayout());

        mTickLabelPanel.setMaximumSize(new java.awt.Dimension(2147483647, 2147483647));
        mTickLabelPanel.setMinimumSize(new java.awt.Dimension(297, 229));
        mTickLabelFontSizeLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelFontSizeLabel.setText("Size");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 5, 5);
        mTickLabelPanel.add(mTickLabelFontSizeLabel, gridBagConstraints);

        mTickLabelVisibleCheckBox.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelVisibleCheckBox.setText("Visible");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(10, 10, 5, 10);
        mTickLabelPanel.add(mTickLabelVisibleCheckBox, gridBagConstraints);

        mTickLabelFontSizeSpinner.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelFontSizeSpinner.setPreferredSize(new java.awt.Dimension(75, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
        mTickLabelPanel.add(mTickLabelFontSizeSpinner, gridBagConstraints);

        mTickLabelColorButton.setFont(new java.awt.Font("Dialog", 0, 11));
        mTickLabelColorButton.setPreferredSize(new java.awt.Dimension(65, 20));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10);
        mTickLabelPanel.add(mTickLabelColorButton, gridBagConstraints);

        mTickLabelColorLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelColorLabel.setText("Color");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 20, 5, 5);
        mTickLabelPanel.add(mTickLabelColorLabel, gridBagConstraints);

        mTickLabelAnglePanel.setLayout(new java.awt.GridBagLayout());

        mTickLabelHorizontalRadioButton.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelHorizontalRadioButton.setText("Horizontal");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 10);
        mTickLabelAnglePanel.add(mTickLabelHorizontalRadioButton, gridBagConstraints);

        mTickLabelSlantRadioButton.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelSlantRadioButton.setText("Inclined");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        mTickLabelAnglePanel.add(mTickLabelSlantRadioButton, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 6;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 10);
        mTickLabelPanel.add(mTickLabelAnglePanel, gridBagConstraints);

        mTickLabelFontLabel.setFont(new java.awt.Font("Dialog", 3, 12));
        mTickLabelFontLabel.setText("Font");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 5);
        mTickLabelPanel.add(mTickLabelFontLabel, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 45, 0, 10);
        mTickLabelPanel.add(mTickLabelFontSeparator, gridBagConstraints);

        mTickLabelAngleLabel.setFont(new java.awt.Font("Dialog", 3, 12));
        mTickLabelAngleLabel.setText("Angle");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 10);
        mTickLabelPanel.add(mTickLabelAngleLabel, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.gridwidth = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 55, 0, 10);
        mTickLabelPanel.add(mTickLanelAngleSeparator, gridBagConstraints);

        mTickLabelFontStyleComboBox.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelFontStyleComboBox.setPreferredSize(new java.awt.Dimension(100, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10);
        mTickLabelPanel.add(mTickLabelFontStyleComboBox, gridBagConstraints);

        mTickLabelFontNameComboBox.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelFontNameComboBox.setPreferredSize(new java.awt.Dimension(170, 22));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10);
        mTickLabelPanel.add(mTickLabelFontNameComboBox, gridBagConstraints);

        mTickLabelFontNameLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelFontNameLabel.setText("Famiry");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 5, 5);
        mTickLabelPanel.add(mTickLabelFontNameLabel, gridBagConstraints);

        mTickLabelFontStyleLabel.setFont(new java.awt.Font("Dialog", 0, 12));
        mTickLabelFontStyleLabel.setText("Style");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(5, 25, 5, 5);
        mTickLabelPanel.add(mTickLabelFontStyleLabel, gridBagConstraints);

        mTabbedPane.addTab("Tick Label", mTickLabelPanel);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        getContentPane().add(mTabbedPane, gridBagConstraints);

        mOKButton.setFont(new java.awt.Font("Dialog", 1, 12));
        mOKButton.setText("OK");
        mButtonPanel.add(mOKButton);

        mCancelButton.setFont(new java.awt.Font("Dialog", 1, 12));
        mCancelButton.setText("Cancel");
        mButtonPanel.add(mCancelButton);

        mPreviewButton.setFont(new java.awt.Font("Dialog", 1, 12));
        mPreviewButton.setText("Preview");
        mButtonPanel.add(mPreviewButton);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        getContentPane().add(mButtonPanel, gridBagConstraints);

        pack();
    }//GEN-END:initComponents
    
    
    // 変数宣言 - 編集不可//GEN-BEGIN:variables
    private javax.swing.JPanel mBarBaseLinePanel;
    private jp.riken.brain.ni.samuraigraph.base.SGTextField mBarBaseLineTextField;
    private javax.swing.JLabel mBarBaseLineValueLabel;
    private javax.swing.JLabel mBarBodyLabel;
    private javax.swing.JSeparator mBarBodySeparator;
    private javax.swing.JLabel mBarColorLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton mBarInnerColorButton;
    private jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton mBarLineColorButton;
    private javax.swing.JLabel mBarLineColorLabel;
    private javax.swing.JLabel mBarLineLabel;
    private javax.swing.JSeparator mBarLineSeparator;
    private javax.swing.JLabel mBarLineWidthLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGSpinner mBarLineWidthSpinner;
    private javax.swing.JPanel mBarPanel;
    private jp.riken.brain.ni.samuraigraph.base.SGCheckBox mBarVisibleCheckBox;
    private javax.swing.JLabel mBarWidthLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGSpinner mBarWidthSpinner;
    private javax.swing.JPanel mButtonPanel;
    private javax.swing.JButton mCancelButton;
    private javax.swing.JPanel mCommonPanel;
    private javax.swing.JRadioButton mErrorBarBothsidesRadioButton;
    private jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton mErrorBarColorButton;
    private javax.swing.JLabel mErrorBarColorLabel;
    private javax.swing.JRadioButton mErrorBarDownsideRadioButton;
    private javax.swing.JLabel mErrorBarLineWidthLabel1;
    private javax.swing.JLabel mErrorBarLineWidthLabel2;
    private javax.swing.JPanel mErrorBarLineWidthPanel;
    private jp.riken.brain.ni.samuraigraph.base.SGSpinner mErrorBarLineWidthSpinner;
    private javax.swing.JPanel mErrorBarPanel;
    private javax.swing.JLabel mErrorBarStyleLabel;
    private javax.swing.JSeparator mErrorBarStyleSeparator;
    private javax.swing.JPanel mErrorBarSylePanel;
    private javax.swing.JLabel mErrorBarSymbolLabel;
    private javax.swing.JSeparator mErrorBarSymbolSeparator;
    private javax.swing.JLabel mErrorBarSymbolSizeLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGSpinner mErrorBarSymbolSizeSpinner;
    private javax.swing.JComboBox mErrorBarTypeComboBox;
    private javax.swing.JLabel mErrorBarTypeLabel;
    private javax.swing.JRadioButton mErrorBarUpsideRadioButton;
    private jp.riken.brain.ni.samuraigraph.base.SGCheckBox mErrorBarVisibleCheckBox;
    private javax.swing.JRadioButton mLeftBottomRadioButton;
    private javax.swing.JRadioButton mLeftTopRadioButton;
    private jp.riken.brain.ni.samuraigraph.base.SGCheckBox mLegendVisibleCheckBox;
    private jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton mLineColorButton;
    private javax.swing.JLabel mLineColorLabel;
    private javax.swing.JPanel mLinePanel;
    private javax.swing.JComboBox mLineTypeComboBox;
    private javax.swing.JLabel mLineTypeLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGCheckBox mLineVisibleCheckBox;
    private javax.swing.JLabel mLineWidthLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGSpinner mLineWidthSpinner;
    private jp.riken.brain.ni.samuraigraph.base.SGTextField mNameField;
    private javax.swing.JLabel mNameLabel;
    private javax.swing.JButton mOKButton;
    private javax.swing.JButton mPreviewButton;
    private javax.swing.JRadioButton mRightBottomRadioButton;
    private javax.swing.JRadioButton mRightTopRadioButton;
    private javax.swing.JLabel mScaleReferenceLabel1;
    private javax.swing.JLabel mScaleReferenceLabel2;
    private javax.swing.JLabel mSymbolBodyLabel;
    private javax.swing.JSeparator mSymbolBodySeparator;
    private jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton mSymbolColorButton;
    private javax.swing.JLabel mSymbolColorLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton mSymbolLineColorButton;
    private javax.swing.JLabel mSymbolLineColorLabel;
    private javax.swing.JLabel mSymbolLineLabel;
    private javax.swing.JSeparator mSymbolLineSeparator;
    private javax.swing.JLabel mSymbolLineWidthLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGSpinner mSymbolLineWidthSpinner;
    private javax.swing.JPanel mSymbolPanel;
    private javax.swing.JLabel mSymbolSizeLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGSpinner mSymbolSizeSpinner;
    private javax.swing.JComboBox mSymbolTypeComboBox;
    private javax.swing.JLabel mSymbolTypeLabel;
    private javax.swing.JPanel mSymbolTypePanel;
    private jp.riken.brain.ni.samuraigraph.base.SGCheckBox mSymbolVisibleCheckBox;
    private javax.swing.JTabbedPane mTabbedPane;
    private javax.swing.JLabel mTickLabelAngleLabel;
    private javax.swing.JPanel mTickLabelAnglePanel;
    private jp.riken.brain.ni.samuraigraph.base.SGColorSelectionButton mTickLabelColorButton;
    private javax.swing.JLabel mTickLabelColorLabel;
    private javax.swing.JLabel mTickLabelFontLabel;
    private javax.swing.JComboBox mTickLabelFontNameComboBox;
    private javax.swing.JLabel mTickLabelFontNameLabel;
    private javax.swing.JSeparator mTickLabelFontSeparator;
    private javax.swing.JLabel mTickLabelFontSizeLabel;
    private jp.riken.brain.ni.samuraigraph.base.SGSpinner mTickLabelFontSizeSpinner;
    private javax.swing.JComboBox mTickLabelFontStyleComboBox;
    private javax.swing.JLabel mTickLabelFontStyleLabel;
    private javax.swing.JRadioButton mTickLabelHorizontalRadioButton;
    private javax.swing.JPanel mTickLabelPanel;
    private javax.swing.JRadioButton mTickLabelSlantRadioButton;
    private jp.riken.brain.ni.samuraigraph.base.SGCheckBox mTickLabelVisibleCheckBox;
    private javax.swing.JSeparator mTickLanelAngleSeparator;
    // 変数宣言の終わり//GEN-END:variables
    


	private JRadioButton mNoErrorBarStyleSelectionRadioButton = new JRadioButton();
	private JRadioButton mNoTickLabelAngleSelectionRadioButton = new JRadioButton();
	private SGTwoAxesRadioButtonManager mAxesButtonGroup = null;



	/**
	 * 
	 */
	private boolean initProperty()
	{

		// set the title
		this.setTitle( SGPropertyDialogSXYData.TITLE );


		//
		{
			this.mAxesButtonGroup = new SGTwoAxesRadioButtonManager(
				this.mLeftBottomRadioButton, this.mLeftTopRadioButton,
				this.mRightBottomRadioButton, this.mRightTopRadioButton,
				new JRadioButton()
			);
		}


		//
		{
			final String typeArray[] = {
				SGDrawingElementLine.LINE_NAME_SOLID,
				SGDrawingElementLine.LINE_NAME_BROKEN,
				SGDrawingElementLine.LINE_NAME_DOT,
				SGDrawingElementLine.LINE_NAME_DASHED,
				SGDrawingElementLine.LINE_NAME_DOUBLE_DASHED
			};
			for(int ii=0 ; ii<typeArray.length ; ii++)
			{
				this.mLineTypeComboBox.addItem( typeArray[ii] );
			}
		}


		//
		{

			final Object typeArray[] = {
				SGDrawingElementSymbol.SYMBOL_NAME_CIRCLE,
				SGDrawingElementSymbol.SYMBOL_NAME_SQUARE,
				SGDrawingElementSymbol.SYMBOL_NAME_DIAMOND,
				SGDrawingElementSymbol.SYMBOL_NAME_TRIANGLE,
				SGDrawingElementSymbol.SYMBOL_NAME_INVERTED_TRIANGLE,
				SGDrawingElementSymbol.SYMBOL_NAME_CROSS,
				SGDrawingElementSymbol.SYMBOL_NAME_PLUS
			};

			for(int ii=0 ; ii<typeArray.length ; ii++)
			{
				this.mSymbolTypeComboBox.addItem( typeArray[ii] );
			}
		}


		//
		{
			final String typeArray[] = {
				SGElementGroupArrow.SYMBOL_NAME_CIRCLE,
				SGElementGroupArrow.SYMBOL_NAME_TRANSVERSE_LINE,
				SGElementGroupArrow.NO_SYMBOL
			};
			for(int ii=0 ; ii<typeArray.length ; ii++)
			{
				this.mErrorBarTypeComboBox.addItem( typeArray[ii] );
			}


			//
			{
				this.mNoErrorBarStyleSelectionRadioButton.setVisible(false);
				final ButtonGroup group = new ButtonGroup();
				group.add( this.mErrorBarBothsidesRadioButton );
				group.add( this.mErrorBarUpsideRadioButton );
				group.add( this.mErrorBarDownsideRadioButton );
				group.add( this.mNoErrorBarStyleSelectionRadioButton );
			}
			
		}


		//
		{
			final String fontArray[] = SGUtility.getAvailableFontNames();
			for(int ii=0 ; ii<fontArray.length ; ii++)
			{
				this.mTickLabelFontNameComboBox.addItem( fontArray[ii] );
			}

			final String[] styleNameArray = {
				SGIConstants.FONT_PLAIN,
				SGIConstants.FONT_ITALIC,
				SGIConstants.FONT_BOLD,
				SGIConstants.FONT_BOLD_ITALIC
			};
			for( int ii=0; ii<styleNameArray.length; ii++ )
			{
				this.mTickLabelFontStyleComboBox.addItem( styleNameArray[ii] );
			}


			//
			{
				this.mNoTickLabelAngleSelectionRadioButton.setVisible(false);
				ButtonGroup group = new ButtonGroup();
				group.add( this.mTickLabelHorizontalRadioButton );
				group.add( this.mTickLabelSlantRadioButton );
				group.add( this.mNoTickLabelAngleSelectionRadioButton );
			}

		}


		this.pack();



		//
		// スピナーモデルの適用
		//

		final float ratio = SGIConstants.CM_POINT_RATIO;

		// line
		this.mLineWidthSpinner.initProperties(
			this.getLineWidthSpinnerNumberModel(),
			SGSpinner.SPINNER_UNIT_PT );

		// symbol
		this.mSymbolSizeSpinner.initProperties(
			new SpinnerNumberModel(
				0.1, SYMBOL_SIZE_MIN*ratio, SYMBOL_SIZE_MAX*ratio, 0.05 ),
				SGSpinner.SPINNER_UNIT_CM );

		this.mSymbolLineWidthSpinner.initProperties(
			this.getLineWidthSpinnerNumberModel(),
			SGSpinner.SPINNER_UNIT_PT );

		// bar
		this.mBarWidthSpinner.initProperties(
			new SpinnerNumberModel( 0.1, BAR_WIDTH_MIN*ratio, BAR_WIDTH_MAX*ratio, 0.05 ),
			SGSpinner.SPINNER_UNIT_CM );

		this.mBarLineWidthSpinner.initProperties(
			this.getLineWidthSpinnerNumberModel(),
			SGSpinner.SPINNER_UNIT_PT );

		// error bar
		this.mErrorBarLineWidthSpinner.initProperties(
			this.getLineWidthSpinnerNumberModel(),
			SGSpinner.SPINNER_UNIT_PT );

		this.mErrorBarSymbolSizeSpinner.initProperties(
			new SpinnerNumberModel(
				0.1, ERROR_BAR_HEAD_SIZE_MIN*ratio, ERROR_BAR_HEAD_SIZE_MAX*ratio, 0.05 ),
			SGSpinner.SPINNER_UNIT_CM );

		// tick label
		this.mTickLabelFontSizeSpinner.initProperties(
			this.getFontSizeSpinnerNumberModel(),
			SGSpinner.SPINNER_UNIT_PT );


		{
			this.mOKButton.addActionListener(this);
			this.mCancelButton.addActionListener(this);
			this.mPreviewButton.addActionListener(this);
		}


		// 可視性切り替えチェックボックスにアクションリスナを追加
		this.mLineVisibleCheckBox.addActionListener(this);
		this.mSymbolVisibleCheckBox.addActionListener(this);
		this.mBarVisibleCheckBox.addActionListener(this);
		this.mErrorBarVisibleCheckBox.addActionListener(this);
		this.mTickLabelVisibleCheckBox.addActionListener(this);

		this.mLegendVisibleCheckBox.addActionListener( this );

		
		//
		// add as a change listener
		//

		this.mTabbedPane.addChangeListener(this);


		return true;

	}



	/**
	 * 
	 * @return
	 */
	public String getDataName()
	{
		return this.mNameField.getText();
	}


	/**
	 * 
	 * @param str
	 * @return
	 */
	public boolean setDataName( final String str )
	{
		this.mNameField.setText(str);
		return true;
	}



	/**
	 * 
	 * @return
	 */
	public Boolean getLegendVisible()
	{
		return this.mLegendVisibleCheckBox.getSelected();
	}

	
	/**
	 * 
	 * @param b
	 */
	public void setLegendVisible( final Boolean b )
	{
		this.mLegendVisibleCheckBox.setSelected(b);
	}

	

//
// Line
//


	/**
	 * 
	 */
	public Boolean getLineVisible()
	{
		return this.mLineVisibleCheckBox.getSelected();
	}


	/**
	 * 
	 */
	public Number getLineWidth()
	{
		return this.mLineWidthSpinner.getNumber();
	}


	/**
	 * 
	 */
	public Integer getLineType()
	{
		final String typeName = (String)this.mLineTypeComboBox.getSelectedItem();
		final Integer num = SGDrawingElementLine.getLineTypeFromName(typeName);
		return num;
	}


	/**
	 * 
	 */
	public Color getLineColor()
	{
		return this.mLineColorButton.getColor();
	}


	/**
	 * 
	 */
	public boolean setLineVisible( final Boolean flag )
	{
		this.mLineVisibleCheckBox.setSelected( flag );
		this.setLineComponentsEnabled( flag );
		return true;
	}


	/**
	 * 
	 */
	public boolean setLineWidth( final Object obj )
	{
		return this.setValue( this.mLineWidthSpinner, obj );
	}


	/**
	 * 
	 */
	public boolean setLineType( final Integer type )
	{
		if( type!=null )
		{
			final String typeName = SGDrawingElementLine.getLineTypeName( type.intValue() );
			this.mLineTypeComboBox.setSelectedItem(typeName);
		}
		else
		{
			this.mLineTypeComboBox.setSelectedItem( null );
		}

		return true;
	}


	/**
	 * 
	 */
	public boolean setLineColor( final Color cl )
	{
		this.mLineColorButton.setColor( cl );
		return true;
	}






//
// Symbol
//


	/**
	 * 
	 */
	public Boolean getSymbolVisible()
	{
		return this.mSymbolVisibleCheckBox.getSelected();
	}


	/**
	 * 
	 */
	public Number getSymbolSize()
	{
		return this.mSymbolSizeSpinner.getNumber();
	}


	/**
	 * 
	 */
	public Integer getSymbolType()
	{
		final String typeName = (String)this.mSymbolTypeComboBox.getSelectedItem();
		final Integer num = SGDrawingElementSymbol.getSymbolTypeFromName( typeName );
		return num;
	}


	/**
	 * 
	 */
	public Number getSymbolLineWidth()
	{
		return this.mSymbolLineWidthSpinner.getNumber();
	}


	/**
	 * 
	 */
	public Color getSymbolInnerColor()
	{
		return this.mSymbolColorButton.getColor();
	}


	/**
	 * 
	 */
	public Color getSymbolLineColor()
	{
		return this.mSymbolLineColorButton.getColor();
	}


	/**
	 * 
	 */
	public boolean setSymbolVisible( final Boolean flag )
	{
		this.mSymbolVisibleCheckBox.setSelected( flag );
		this.setSymbolComponentsEnabled( flag );
		return true;
	}


	/**
	 * 
	 */
	public boolean setSymbolType( final Integer type )
	{
		if( type!=null )
		{
			final String typeName = SGDrawingElementSymbol.getSymbolTypeName( type.intValue() );
			this.mSymbolTypeComboBox.setSelectedItem(typeName);
		}
		else
		{
			this.mSymbolTypeComboBox.setSelectedItem(null);
		}
		return true;
	}


	/**
	 * 
	 */
	public boolean setSymbolSize( final Object obj )
	{
		return this.setValue( this.mSymbolSizeSpinner, obj );
	}



	/**
	 * 
	 */
	public boolean setSymbolLineWidth( final Object obj )
	{
		return this.setValue( this.mSymbolLineWidthSpinner, obj );
	}


	/**
	 * 
	 */
	public boolean setSymbolInnerColor( final Color cl )
	{
		this.mSymbolColorButton.setColor( cl );
		return true;
	}


	/**
	 * 
	 */
	public boolean setSymbolLineColor( final Color cl )
	{
		this.mSymbolLineColorButton.setColor( cl );
		return true;
	}






//
// Bar
//


	/**
	 * 
	 */
	public Boolean getBarVisible()
	{
		return this.mBarVisibleCheckBox.getSelected();
	}


	/**
	 * 
	 */
	public Number getBarWidth()
	{
		return this.mBarWidthSpinner.getNumber();
	}


	/**
	 * 
	 */
	public Number getBarEdgeLineWidth()
	{
		return this.mBarLineWidthSpinner.getNumber();
	}


	/**
	 * 
	 */
	public Number getBarBaselineValue()
	{
		return this.getNumber( this.mBarBaseLineTextField );
	}


	/**
	 * 
	 */
	public Color getBarEdgeLineColor()
	{
		return this.mBarLineColorButton.getColor();
	}


	/**
	 * 
	 */
	public Color getBarInnerColor()
	{
		return this.mBarInnerColorButton.getColor();
	}



	/**
	 * 
	 */
	public boolean setBarVisible( final Boolean flag )
	{
		this.mBarVisibleCheckBox.setSelected( flag );
		this.setBarComponentsEnabled( flag );
		return true;
	}


	/**
	 * 
	 */
	public boolean setBarWidth( final Object obj )
	{
		return this.setValue( this.mBarWidthSpinner, obj );
	}



	/**
	 * 
	 */
	public boolean setBarEdgeLineWidth( final Object obj )
	{
		return this.setValue( this.mBarLineWidthSpinner, obj );
	}


	/**
	 * 
	 */
	public boolean setBarBaselineValue( final Object obj )
	{
		return this.setValue( this.mBarBaseLineTextField, obj );
	}



	/**
	 * 
	 */
	public boolean setBarInnerColor( final Color cl )
	{
		this.mBarInnerColorButton.setColor( cl );
		return true;
	}



	/**
	 * 
	 */
	public boolean setBarEdgeLineColor( final Color cl )
	{
		this.mBarLineColorButton.setColor( cl );
		return true;
	}





//
// Error Bar
//


	/**
	 * 
	 */
	public Boolean getErrorBarVisible()
	{
		return this.mErrorBarVisibleCheckBox.getSelected();
	}


	/**
	 * 
	 */
	public Number getErrorBarSymbolSize()
	{
		return this.mErrorBarSymbolSizeSpinner.getNumber();
	}


	/**
	 * 
	 */
	public Number getErrorBarLineWidth()
	{
		return this.mErrorBarLineWidthSpinner.getNumber();
	}


	/**
	 * 
	 */
	public Color getErrorBarColor()
	{
		return this.mErrorBarColorButton.getColor();
	}


	/**
	 * 
	 */
	public String getErrorBarTypeName()
	{
		return (String)this.mErrorBarTypeComboBox.getSelectedItem();
	}


	/**
	 * 
	 */
	public Integer getErrorBarStyle()
	{
		int style = -1;
		if( this.mErrorBarBothsidesRadioButton.isSelected() )
		{
			style = SGElementGroupErrorBar.ERROR_BAR_FULL;
		}
		else if( this.mErrorBarUpsideRadioButton.isSelected() )
		{
			style = SGElementGroupErrorBar.ERROR_BAR_UPPER_ONLY;
		}
		else if( this.mErrorBarDownsideRadioButton.isSelected() )
		{
			style = SGElementGroupErrorBar.ERROR_BAR_LOWER_ONLY;
		}
		else
		{
			return null;
		}

		return new Integer(style);
	}



	/**
	 * 
	 */
	public boolean setErrorBarVisible( final Boolean flag )
	{
		this.mErrorBarVisibleCheckBox.setSelected( flag );
		this.setErrorBarComponentsEnabled( flag );
		return true;
	}


	/**
	 * 
	 */
	public boolean setErrorBarSymbolSize( final Object obj )
	{
		return this.setValue( this.mErrorBarSymbolSizeSpinner, obj );
	}


	/**
	 * 
	 */
	public boolean setErrorBarLineWidth( final Object obj )
	{
		return this.setValue( this.mErrorBarLineWidthSpinner, obj );
	}


	/**
	 * 
	 */
	public boolean setErrorBarColor( final Color cl )
	{
		this.mErrorBarColorButton.setColor( cl );
		return true;
	}


	/**
	 * 
	 */
	public boolean setErrorBarType( final String typeName )
	{
		this.mErrorBarTypeComboBox.setSelectedItem(typeName);
		return true;
	}


	/**
	 * 
	 */
	public boolean setErrorBarStyle( final Object obj )
	{
		if( obj==null )
		{
			this.mNoErrorBarStyleSelectionRadioButton.setSelected(true);
			return false;
		}
		Integer style = null;
		try
		{
			style = Integer.valueOf( obj.toString() );
		}
		catch( NumberFormatException ex )
		{
			return false;
		}

		switch( style.intValue() )
		{
			case SGElementGroupErrorBar.ERROR_BAR_FULL :
			{
				this.mErrorBarBothsidesRadioButton.setSelected(true);
				break;
			}

			case SGElementGroupErrorBar.ERROR_BAR_UPPER_ONLY :
			{
				this.mErrorBarUpsideRadioButton.setSelected(true);
				break;
			}

			case SGElementGroupErrorBar.ERROR_BAR_LOWER_ONLY :
			{
				this.mErrorBarDownsideRadioButton.setSelected(true);
				break;
			}
				
			default :
			{
				throw new Error();
			}
		}
	
		return true;
	}





//
// Tick Label
//


	/**
	 * 
	 */
	public Boolean getTickLabelVisible()
	{
		return this.mTickLabelVisibleCheckBox.getSelected();
	}


	/**
	 * 
	 */
	public String getTickLabelFontName()
	{
		return (String)this.mTickLabelFontNameComboBox.getSelectedItem();
	}


	/**
	 * 
	 */
	public Number getTickLabelFontSize()
	{
		return this.mTickLabelFontSizeSpinner.getNumber();
	}


	/**
	 * 
	 */
	public Integer getTickLabelFontStyle()
	{
		final String name = (String)this.mTickLabelFontStyleComboBox.getSelectedItem();
		final int num = SGUtilityText.getFontStyle(name);
		if( num==-1 )
		{
			return null;
		}
		return new Integer(num);
	}


	/**
	 * 
	 */
	public Boolean isTickLabelHorizontal()
	{
		if( this.mTickLabelHorizontalRadioButton.isSelected() )
		{
			return Boolean.TRUE;
		}
		else if( this.mTickLabelSlantRadioButton.isSelected() )
		{
			return Boolean.FALSE;
		}
		else
		{
			return null;
		}
	}


	/**
	 * 
	 */
	public Color getTickLabelColor()
	{
		return this.mTickLabelColorButton.getColor();
	}



	/**
	 * 
	 */
	public boolean setTickLabelVisible( final Boolean flag )
	{
		this.mTickLabelVisibleCheckBox.setSelected( flag );
		this.setTickLabelComponentsEnabled( flag );
		return true;
	}


	/**
	 * 
	 */
	public boolean setTickLabelFontName( final String name )
	{
		this.mTickLabelFontNameComboBox.setSelectedItem( name );
		return true;
	}


	/**
	 * 
	 */
	public boolean setTickLabelFontSize( final Object obj )
	{
		return this.setValue( this.mTickLabelFontSizeSpinner, obj );
	}


	/**
	 * 
	 */
	public boolean setTickLabelFontStyle( final Object obj )
	{
		if( obj==null )
		{
			this.mTickLabelFontStyleComboBox.setSelectedItem(null);
			return false;
		}
		Integer style = null;
		try
		{
			style = Integer.valueOf( obj.toString() );
		}
		catch( NumberFormatException ex )
		{
			return false;
		}
		this.mTickLabelFontStyleComboBox.setSelectedItem( SGUtilityText.getFontStyleName( style.intValue() ) );
		return true;
	}


	/**
	 * 
	 */
	public boolean setTickLabelHorizontal( final Object obj )
	{
		if( obj==null )
		{
			this.mNoTickLabelAngleSelectionRadioButton.setSelected(true);
			return false;
		}

		Boolean b = (Boolean)obj;
		if( b.booleanValue() )
		{
			this.mTickLabelHorizontalRadioButton.setSelected(true);
		}
		else
		{
			this.mTickLabelSlantRadioButton.setSelected(true);
		}

		return true;
	}


	/**
	 * 
	 */
	public boolean setTickLabelColor( final Color cl )
	{
		this.mTickLabelColorButton.setColor( cl );
		return true;
	}





	/**
	 * 
	 */
	public ArrayList getColorSelectionButtonsList()
	{
		ArrayList list = new ArrayList();
		list.add( this.mLineColorButton );
		list.add( this.mSymbolColorButton );
		list.add( this.mSymbolLineColorButton );
		list.add( this.mBarInnerColorButton );
		list.add( this.mBarLineColorButton );
		list.add( this.mErrorBarColorButton );
		list.add( this.mTickLabelColorButton );

		return list;
	}



	/**
	 * 
	 */
	public ArrayList getTextFieldComponentsList()
	{
		final ArrayList list = this.getFormattedTextFieldsListFromSpinners();
		list.addAll( this.getNumberTextFieldList() );
		list.add( this.mNameField );
		return list;
	}



	/**
	 * Returns a list of text fields to set number.
	 * @return
	 */
	public ArrayList getNumberTextFieldList()
	{
		final ArrayList list = new ArrayList();
		list.add( this.mBarBaseLineTextField );
		return list;
	}


	/**
	 * 
	 */
	public ArrayList getSpinnerList()
	{
		ArrayList list = new ArrayList();
		list.add( this.mLineWidthSpinner );
		list.add( this.mSymbolSizeSpinner );
		list.add( this.mSymbolLineWidthSpinner );
		list.add( this.mBarWidthSpinner );
		list.add( this.mBarLineWidthSpinner );
		list.add( this.mErrorBarLineWidthSpinner );
		list.add( this.mErrorBarSymbolSizeSpinner );
		list.add( this.mTickLabelFontSizeSpinner );

		return list;
	}



	/**
	 * 
	 */
	public boolean setTabEnabled( final Component com, final boolean flag )
	{
		if( com == null )
		{
			return false;
		}
		final int index = this.mTabbedPane.indexOfComponent(com);
		if( index == -1 )
		{
			return false;
		}

		this.mTabbedPane.setEnabledAt(index,flag);

//		// set enabled all components on the panel
//		this.setComponentsOnPanelEnabled(com,flag);

		return true;
	}



	/**
	 * 
	 * @param com
	 * @return
	 */
	public boolean isTabEnabled( final Component com )
	{
		if( com == null )
		{
			return false;
		}
		final int index = this.mTabbedPane.indexOfComponent(com);
		if( index == -1 )
		{
			return false;
		}
		return this.mTabbedPane.isEnabledAt(index);
	}



//	/**
//	 * 
//	 * @param p
//	 * @return
//	 */
//	protected boolean setComponentsOnPanelEnabled( final Component com, final boolean flag )
//	{
//		if( com==null )
//		{
//			return false;
//		}
//
//		if( com.equals( this.mLinePanel ) )
//		{
//			this.mLineVisibleCheckBox.setEnabled(flag);
//			this.setLineComponentsEnabled(flag&this.mLineVisibleCheckBox.isSelected());
//		}
//		else if( com.equals( this.mSymbolPanel ) )
//		{
//			this.mSymbolVisibleCheckBox.setEnabled(flag);
//			this.setSymbolComponentsEnabled(flag&this.mSymbolVisibleCheckBox.isSelected());
//		}
//		else if( com.equals( this.mBarPanel ) )
//		{
//			this.mBarVisibleCheckBox.setEnabled(flag);
//			this.setBarComponentsEnabled(flag&this.mBarVisibleCheckBox.isSelected());
//		}
//		else if( com.equals( this.mErrorBarPanel ) )
//		{
//			this.mErrorBarVisibleCheckBox.setEnabled(flag);
//			this.setErrorBarComponentsEnabled(flag&this.mErrorBarVisibleCheckBox.isSelected());
//		}
//		else if( com.equals( this.mTickLabelPanel ) )
//		{
//			this.mTickLabelVisibleCheckBox.setEnabled(flag);
//			this.setTickLabelComponentsEnabled(flag&this.mTickLabelVisibleCheckBox.isSelected());
//		}
//
//		return true;
//	}




	/**
	 * 
	 */
	public void actionPerformed( ActionEvent e )
	{

		super.actionPerformed(e);

		Object source = e.getSource();

		if( source instanceof SGCheckBox )
		{
			SGCheckBox cb = (SGCheckBox)source;
			boolean flag = cb.isSelected();

			JButton btn = null;
			if( source.equals( this.mLineVisibleCheckBox ) )
			{
				this.setLineVisible( this.getLineVisible() );
				btn = this.mLineColorButton;
			}
			else if( source.equals( this.mSymbolVisibleCheckBox ) )
			{
				this.setSymbolVisible( this.getSymbolVisible() );
				btn = this.mSymbolColorButton;
			}
			else if( source.equals( this.mBarVisibleCheckBox ) )
			{
				this.setBarVisible( this.getBarVisible() );
				btn = this.mBarInnerColorButton;
			}
			else if( source.equals( this.mErrorBarVisibleCheckBox ) )
			{
				this.setErrorBarVisible( this.getErrorBarVisible() );
				btn = this.mErrorBarColorButton;
			}
			else if( source.equals( this.mTickLabelVisibleCheckBox ) )
			{
				this.setTickLabelVisible( this.getTickLabelVisible() );
				btn = this.mTickLabelColorButton;
			}
			else if( source.equals( this.mLegendVisibleCheckBox ) )
			{
				this.setLegendVisible( this.getLegendVisible() );
			}

			this.setColorButtonBorder(btn,flag);

		}

	}


	/**
	 * 
	 */
	private static final String ERRMSG_NOT_HIDE_ALL_ELEMENTS
		= "Lines, symbol and bars cannot be hidden at the same time.";



	/**
	 * 
	 */
	protected boolean hasValidInputValues()
	{
		if( super.hasValidInputValues() == false )
		{
			return false;
		}
		
		// if all drawing elements for any one data are hidden,
		// show an error message dialog
		if( this.isAnyElementsShown() == false )
		{
			this.setInputErrorMessage( ERRMSG_NOT_HIDE_ALL_ELEMENTS );
			return false;
		}

		// check the data name
		if( this.mNameField.hasValidText() == false )
		{
			this.setInputErrorMessage( DEFAULT_INPUT_ERROR_MESSAGE );
			return false;
		}

		return true;
	}




	private boolean isAnyElementsShown()
	{
		final Boolean line = this.getLineVisible();
		final Boolean symbol = this.getSymbolVisible();
		final Boolean bar = this.getBarVisible();

		ArrayList list = this.mPropertyDialogObserverList;
		for( int ii=0; ii<list.size(); ii++ )
		{
			SGISXYDataDialogObserver obs = (SGISXYDataDialogObserver)list.get(ii);
			boolean lineVisible ;
			boolean symbolVisible;
			boolean barVisible;

			if( line!=null )
			{
				lineVisible = line.booleanValue();
			}
			else
			{
				lineVisible = obs.isLineVisible();
			}

			if( symbol!=null )
			{
				symbolVisible = symbol.booleanValue();
			}
			else
			{
				symbolVisible = obs.isSymbolVisible();
			}

			if( bar!=null )
			{
				barVisible = bar.booleanValue();
			}
			else
			{
				barVisible = obs.isBarVisible();
			}

			if( !lineVisible & !symbolVisible & !barVisible )
			{
				return false;
			}
		}

		return true;
	}





	/**
	 * 
	 * @param index
	 */
	public boolean setSelectedIndex( final int index )
	{
		if( index<0 )
		{
			return false;
		}
		
		Component com = this.mTabbedPane.getComponent( index );

		int n = index;
		if( this.isTabEnabled( com ) == false )
		{
			n = 0;
		}
		this.mTabbedPane.setSelectedIndex(n);

		return true;
	}


	/**
	 * 
	 * @return
	 */
	public int getSelectedIndex()
	{
		return this.mTabbedPane.getSelectedIndex();
	}



	/**
	 * 
	 */
	public boolean setPropertiesToListeners( SGIPropertyDialogObserver l )
	{
		SGISXYDataDialogObserver lxy = (SGISXYDataDialogObserver)l;
	
		final int xConfig = this.mAxesButtonGroup.getXAxisConfiguration();
		final int yConfig = this.mAxesButtonGroup.getYAxisConfiguration();
	

		// set the related axes
		if( xConfig!=-1 & yConfig!=-1 )
		{
			lxy.setAxisConfiguration( xConfig, yConfig );
		}


		// data name
		String name = this.getDataName();
		if( name!=null )
		{
			lxy.setName( name );
		}


		// visibility in legend
		Boolean legendVisible = this.getLegendVisible();
		if( legendVisible!=null )
		{
			lxy.setVisibleInLegend( legendVisible.booleanValue() );
		}


		//
		if( this.isTabEnabled( this.mLinePanel ) )
		{
			if( this.setLineProperties(lxy) == false )
			{
				return false;
			}
		}

		if( this.isTabEnabled( this.mSymbolPanel ) )
		{
			if( this.setSymbolProperties(lxy) == false )
			{
				return false;
			}
		}

		if( this.isTabEnabled( this.mBarPanel ) )
		{
			if( this.setBarProperties(lxy) == false )
			{
				return false;
			}
		}

		if( this.isTabEnabled( this.mErrorBarPanel ) )
		{
			if( this.setErrorBarProperties(lxy) == false )
			{
				return false;
			}
		}

		if( this.isTabEnabled( this.mTickLabelPanel ) )
		{
			if( this.setTickLabelProperties(lxy) == false )
			{
				return false;
			}
		}
	
		
		return true;
	}



	/**
	 * 
	 * @param groupList
	 * @param p
	 * @return
	 */		
	private boolean setProperties( ArrayList groupList, SGProperties p )
	{
		for( int ii=0; ii<groupList.size(); ii++ )
		{
			SGElementGroup group = (SGElementGroup)groupList.get(ii);
			if( group.setProperties(p) == false )
			{
				return false;
			}
		}
	
		return true;
	}



	/**
	 * 
	 */
	private JButton mFocusedLineColorButton = null;
	private JButton mFocusedSymbolColorButton = null;
	private JButton mFocusedBarColorButton = null;
	private JButton mFocusedErrorBarColorButton = null;
	private JButton mFocusedTickLabelColorButton = null;




	/**
	 * 
	 */
	private boolean setLineComponentsEnabled( Boolean flag )
	{
		boolean b = true;
		if( flag!=null )
		{
			b = flag.booleanValue();
		}
		this.setLineComponentsEnabled(b);

		return true;
	}


	/**
	 * 
	 */
	private boolean setLineComponentsEnabled( boolean flag )
	{
		this.mLineColorButton.setEnabled(flag);
		this.mLineColorLabel.setEnabled(flag);
		this.mLineTypeLabel.setEnabled(flag);
		this.mLineTypeComboBox.setEnabled(flag);
		this.mLineWidthLabel.setEnabled(flag);
		this.mLineWidthSpinner.setEnabled(flag);

		return true;
	}



	/**
	 * 
	 */
	private boolean setSymbolComponentsEnabled( Boolean flag )
	{
		boolean b = true;
		if( flag!=null )
		{
			b = flag.booleanValue();
		}
		this.setSymbolComponentsEnabled(b);
		return true;
	}


	/**
	 * 
	 */
	private boolean setSymbolComponentsEnabled( boolean flag )
	{
		this.mSymbolColorButton.setEnabled(flag);
		this.mSymbolColorLabel.setEnabled(flag);
		this.mSymbolLineColorButton.setEnabled(flag);
		this.mSymbolLineColorLabel.setEnabled(flag);
		this.mSymbolLineWidthLabel.setEnabled(flag);
		this.mSymbolLineWidthSpinner.setEnabled(flag);
		this.mSymbolSizeLabel.setEnabled(flag);
		this.mSymbolSizeSpinner.setEnabled(flag);
		this.mSymbolTypeComboBox.setEnabled(flag);
		this.mSymbolTypeLabel.setEnabled(flag);
		this.mSymbolBodyLabel.setEnabled(flag);
		this.mSymbolBodySeparator.setEnabled(flag);
		this.mSymbolLineLabel.setEnabled(flag);
		this.mSymbolLineSeparator.setEnabled(flag);

		return true;
	}



	/**
	 * 
	 */
	private boolean setBarComponentsEnabled( Boolean flag )
	{
		boolean b = true;
		if( flag!=null )
		{
			b = flag.booleanValue();
		}

		this.setBarComponentsEnabled(b);

		return true;
	}


	/**
	 * 
	 */
	private boolean setBarComponentsEnabled( boolean flag )
	{
		this.mBarBaseLineValueLabel.setEnabled(flag);
		this.mBarBaseLineTextField.setEnabled(flag);
		this.mBarColorLabel.setEnabled(flag);
		this.mBarInnerColorButton.setEnabled(flag);
		this.mBarLineColorButton.setEnabled(flag);
		this.mBarLineColorLabel.setEnabled(flag);
		this.mBarLineWidthLabel.setEnabled(flag);
		this.mBarLineWidthSpinner.setEnabled(flag);
		this.mBarWidthLabel.setEnabled(flag);
		this.mBarLineWidthSpinner.setEnabled(flag);
		this.mBarWidthSpinner.setEnabled(flag);

		this.mBarBodyLabel.setEnabled(flag);
		this.mBarBodySeparator.setEnabled(flag);
		this.mBarLineLabel.setEnabled(flag);
		this.mBarLineSeparator.setEnabled(flag);

		return true;
	}



	private boolean setErrorBarComponentsEnabled( Boolean flag )
	{
		boolean b = true;
		if( flag!=null )
		{
			b = flag.booleanValue();
		}

		this.setErrorBarComponentsEnabled(b);

		return true;
	}


	/**
	 * 
	 */
	private boolean setErrorBarComponentsEnabled( boolean flag )
	{
		this.mErrorBarBothsidesRadioButton.setEnabled(flag);
		this.mErrorBarColorButton.setEnabled(flag);
		this.mErrorBarColorLabel.setEnabled(flag);
		this.mErrorBarDownsideRadioButton.setEnabled(flag);
		this.mErrorBarLineWidthLabel1.setEnabled(flag);
		this.mErrorBarLineWidthLabel2.setEnabled(flag);
		this.mErrorBarLineWidthSpinner.setEnabled(flag);
		this.mErrorBarSymbolSizeLabel.setEnabled(flag);
		this.mErrorBarSymbolSizeSpinner.setEnabled(flag);
		this.mErrorBarTypeComboBox.setEnabled(flag);
		this.mErrorBarTypeLabel.setEnabled(flag);
		this.mErrorBarUpsideRadioButton.setEnabled(flag);

		this.mErrorBarSymbolLabel.setEnabled(flag);
		this.mErrorBarSymbolSeparator.setEnabled(flag);
		this.mErrorBarStyleLabel.setEnabled(flag);
		this.mErrorBarStyleSeparator.setEnabled(flag);

		return true;
	}



	/**
	 * 
	 */
	private boolean setTickLabelComponentsEnabled( Boolean flag )
	{
		boolean b = true;
		if( flag!=null )
		{
			b = flag.booleanValue();
		}

		this.setTickLabelComponentsEnabled(b);		
		
		return true;
	}


	/**
	 * 
	 */
	private boolean setTickLabelComponentsEnabled( boolean flag )
	{
		this.mTickLabelAngleLabel.setEnabled(flag);
		this.mTickLabelFontNameLabel.setEnabled(flag);
		this.mTickLabelFontNameComboBox.setEnabled(flag);
		this.mTickLabelFontLabel.setEnabled(flag);
		this.mTickLabelFontSizeLabel.setEnabled(flag);
		this.mTickLabelFontSizeSpinner.setEnabled(flag);
		this.mTickLabelFontStyleLabel.setEnabled(flag);
		this.mTickLabelFontStyleComboBox.setEnabled(flag);
		this.mTickLabelHorizontalRadioButton.setEnabled(flag);
		this.mTickLabelSlantRadioButton.setEnabled(flag);
		this.mTickLabelColorButton.setEnabled(flag);
		this.mTickLabelColorLabel.setEnabled(flag);

		return true;
	}



	/**
	 * 
	 */
	public void stateChanged( ChangeEvent e )
	{

		super.stateChanged(e);

		Object source = e.getSource();


		// タブの選択時に行う処理
		if( source.equals(this.mTabbedPane) )
		{
//System.out.println(e);
			int index = this.mTabbedPane.getSelectedIndex();
			this.setColorButtonProperty( index );
		}

	}


	/**
	 * 
	 */
	protected boolean setColorButtonProperty( int tabIndex )
	{

		int lineIndex = this.mTabbedPane.indexOfComponent( this.mLinePanel );
		int symbolIndex = this.mTabbedPane.indexOfComponent( this.mSymbolPanel );
		int barIndex = this.mTabbedPane.indexOfComponent( this.mBarPanel );
		int errBarIndex = this.mTabbedPane.indexOfComponent( this.mErrorBarPanel );
		int tickLabelIndex = this.mTabbedPane.indexOfComponent( this.mTickLabelPanel );

		boolean flag = true;

		SGColorSelectionButton btn = null;
		if( tabIndex == lineIndex )
		{
			if( this.mLineVisibleCheckBox.isSelected() )
			{
				btn = this.mLineColorButton;
			}
		}
		else if( tabIndex == symbolIndex )
		{
			if( this.mSymbolVisibleCheckBox.isSelected() )
			{
				btn = this.mSymbolColorButton;
			}
		}
		else if( tabIndex == barIndex )
		{
			if( this.mBarVisibleCheckBox.isSelected() )
			{
				btn = this.mBarInnerColorButton;
			}
		}
		else if( tabIndex == errBarIndex )
		{
			if( this.mErrorBarVisibleCheckBox.isSelected() )
			{
				btn = this.mErrorBarColorButton;
			}
		}
		else if( tabIndex == tickLabelIndex )
		{
			if( this.mTickLabelVisibleCheckBox.isSelected() )
			{
				btn = this.mTickLabelColorButton;
			}
		}
		else
		{
			flag = false;
		}

		if( btn == null )
		{
			return false;
		}


		this.mFocusedColorSetButton = btn;
		this.setColorButtonBorder( flag );


		return true;
	}




	/**
	 * 
	 * @return
	 */
	public boolean setDialogProperty()
	{
		ArrayList lList = this.mPropertyDialogObserverList;
		final int len = lList.size();


		//
		// Axes
		//

		if( this.mAxesButtonGroup.setRadioButton( lList ) == false )
		{
			return false;
		}



		//
		// data name
		//

		ArrayList nameList = new ArrayList( len );
		for( int ii=0; ii<len; ii++ )
		{
			SGISXYDataDialogObserver l
				= (SGISXYDataDialogObserver)lList.get(ii);
			nameList.add( l.getName() );
		}

		if( this.setDataName( nameList ) == false )
		{
			return false;		
		}


		//
		// visible in legend
		//

		ArrayList legendVisibleList = new ArrayList( len );
		for( int ii=0; ii<len; ii++ )
		{
			SGISXYDataDialogObserver l
				= (SGISXYDataDialogObserver)lList.get(ii);
			legendVisibleList.add( new Boolean( l.getLegendVisibleFlag() ) );
		}
		
		if( this.setLegendVisible( legendVisibleList ) == false )
		{
			return false;
		}


		//
		// set properties by observers
		//

		if( this.setLineProperties(lList) == false )
		{
			return false;
		}

		if( this.setSymbolProperties(lList) == false )
		{
			return false;
		}

		if( this.setBarProperties(lList) == false )
		{
			return false;
		}

		if( this.setErrorBarProperties(lList) == false )
		{
			return false;
		}

		if( this.setTickLabelProperties(lList) == false )
		{
			return false;
		}


		// get clicked object index
		final JPanel[] panelArray = {
			this.mLinePanel,
			this.mSymbolPanel,
			this.mBarPanel,
			this.mErrorBarPanel,
			this.mTickLabelPanel
		};
		int index = -1;

		for( int ii=0; ii<len; ii++ )
		{
			SGISXYDataDialogObserver l
				= (SGISXYDataDialogObserver)lList.get(ii);
			final int num = l.getSelectedTabIndex();
			if( num!=-1 )
			{
				index = num;
				break;
			}
		}

		if( index==-1 )
		{
			index = 0;
		}
		this.mTabbedPane.setSelectedIndex(index);
		this.setColorButtonProperty(index);

		return true;
	}







	private Boolean getCommonVisibility( ArrayList groupList )
	{
		if( groupList.size()==0 )
		{
			return null;
		}

		SGElementGroup first = (SGElementGroup)groupList.get(0);
		Boolean visibleFirst = Boolean.valueOf( first.isVisible() );
		if( groupList.size()==1 )
		{
			return visibleFirst;
		}
		
		for( int ii=1; ii<groupList.size(); ii++ )
		{
			SGElementGroup group = (SGElementGroup)groupList.get(ii);
			Boolean b = Boolean.valueOf( group.isVisible() );
			if( b.equals(visibleFirst) == false )
			{
				return null;
			}
		}
		
		return visibleFirst;
	}



	/**
	 * 
	 * @param list
	 * @return
	 */
	private boolean setDataName( final ArrayList list )
	{
		if( list==null )
		{
			return false;
		}
		if( list.size()==0 )
		{
			return false;
		}

		String name0 = (String)list.get(0);
		String name = name0;
		if( list.size() > 1 )
		{
			for( int ii=1; ii<list.size(); ii++ )
			{
				String name1 = (String)list.get(ii);
				if( name0.equals( name1 ) == false )
				{
					name = null;
					break;
				}
			}
		}

		this.mNameField.setText( name );

		return true;
	}



	/**
	 * 
	 * @param list
	 * @return
	 */
	private boolean setLegendVisible( final ArrayList list )
	{
		if( list==null )
		{
			return false;
		}
		if( list.size()==0 )
		{
			return false;
		}

		Boolean b0 = (Boolean)list.get(0);
		Boolean b = b0;
		if( list.size() > 1 )
		{
			for( int ii=1; ii<list.size(); ii++ )
			{
				Boolean b1 = (Boolean)list.get(ii);
				if( b0.equals( b1 ) == false )
				{
					b = null;
					break;
				}
			}
		}

		this.mLegendVisibleCheckBox.setSelected(b);

		return true;
	}



	/**
	 * 
	 * @param group
	 * @return
	 */
	private boolean setLineProperties( final ArrayList list )
	{
//System.out.println("<< setLineProperties >>");

		if( list==null )
		{
			return false;
		}
		if( list.size()==0 )
		{
			return false;
		}

		SGISXYDataDialogObserver g0 = (SGISXYDataDialogObserver)list.get(0);
		final boolean visible0 = g0.isLineVisible();
		final float lineWidth0 = g0.getLineWidth();
		final int lineType0 = g0.getLineType();
		final Color color0 = g0.getLineColor();

		Boolean visible = Boolean.valueOf( visible0 );
		Float width = new Float( lineWidth0 );
		Integer type = new Integer( lineType0 );
		Color color = color0;

		if( list.size() > 1 )
		{
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final boolean visible1 = g1.isLineVisible();
				if( visible0!=visible1 )
				{
					visible = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final float lineWidth1 = g1.getLineWidth();
				if( lineWidth0!=lineWidth1 )
				{
					width = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final int lineType1 = g1.getLineType();
				if( lineType0!=lineType1 )
				{
					type = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final Color color1 = g1.getLineColor();
				if( color0.equals( color1 ) == false )
				{
					color = null;
					break;
				}
			}
			
		}

		
		//
//		this.setTabEnabled( this.mLinePanel, visible!=null );
//		if( visible!=null )
//		{
//			this.setLineComponentsEnabled( visible.booleanValue() );
//		}

		this.setLineVisible( visible );
		this.setLineWidth( width );
		this.setLineType( type );
		this.setLineColor( color );


		return true;
	}



	/**
	 * 
	 * @param group
	 * @return
	 */
	private boolean setSymbolProperties( final ArrayList list )
	{
//System.out.println("<< setSymbolProperties >>");

		if( list==null )
		{
			return false;
		}
		if( list.size()==0 )
		{
			return false;
		}

		SGISXYDataDialogObserver g0 = (SGISXYDataDialogObserver)list.get(0);
		final boolean visible0 = g0.isSymbolVisible();
		final float size0 = g0.getSymbolSize();
		final float lineWidth0 = g0.getSymbolLineWidth();
		final int type0 = g0.getSymbolType();
		final Color innerColor0 = g0.getSymbolInnerColor();
		final Color lineColor0 = g0.getSymbolLineColor();

		Boolean visible = Boolean.valueOf( visible0 );
		Float size = new Float( size0 );
		Float lineWidth = new Float( lineWidth0 );
		Integer type = new Integer( type0 );
		Color innerColor = innerColor0;
		Color lineColor = lineColor0;

		if( list.size() > 1 )
		{
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final boolean visible1 = g1.isSymbolVisible();
				if( visible0!=visible1 )
				{
					visible = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final float size1 = g1.getSymbolSize();
				if( size0!=size1 )
				{
					size = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final float lineWidth1 = g1.getSymbolLineWidth();
				if( lineWidth0!=lineWidth1 )
				{
					lineWidth = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final int type1 = g1.getSymbolType();
				if( type0!=type1 )
				{
					type = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final Color innerColor1 = g1.getSymbolInnerColor();
				if( innerColor0.equals( innerColor1 ) == false )
				{
					innerColor = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final Color lineColor1 = g1.getSymbolLineColor();
				if( lineColor0.equals( lineColor1 ) == false )
				{
					lineColor = null;
					break;
				}
			}
			
		}


		//
//		this.setTabEnabled( this.mSymbolPanel, visible!=null );
//		if( visible!=null )
//		{
//			this.setSymbolComponentsEnabled( visible.booleanValue() );
//		}

		this.setSymbolVisible( visible );

		if( size!=null )
		{
			size = new Float( size.floatValue()*SGIConstants.CM_POINT_RATIO );
		}
		this.setSymbolSize( size );

		this.setSymbolLineWidth( lineWidth );
		this.setSymbolType( type );
		this.setSymbolInnerColor( innerColor );
		this.setSymbolLineColor( lineColor );

		return true;
	}



	/**
	 * 
	 * @param group
	 * @return
	 */
	private boolean setBarProperties( final ArrayList list )
	{

		if( list==null )
		{
			return false;
		}
		if( list.size()==0 )
		{
			return false;
		}

		SGISXYDataDialogObserver g0 = (SGISXYDataDialogObserver)list.get(0);
		final boolean visible0 = g0.isBarVisible();
		final float width0 = g0.getBarWidth();
		final float edgeLineWidth0 = g0.getBarEdgeLineWidth();
		final double baseline0 = g0.getBarBaselineValue();
		final Color innerColor0 = g0.getBarInnerColor();
		final Color edgeLineColor0 = g0.getBarEdgeLineColor();

		Boolean visible = Boolean.valueOf( visible0 );
		Float width = new Float( width0 );
		Float edgeLineWidth = new Float( edgeLineWidth0 );
		Double baseline = new Double( baseline0 );
		Color innerColor = innerColor0;
		Color lineColor = edgeLineColor0;

		if( list.size() > 1 )
		{
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final boolean visible1 = g1.isBarVisible();
				if( visible0!=visible1 )
				{
					visible = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final float width1 = g1.getBarWidth();
				if( width0!=width1 )
				{
					width = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final float edgeLineWidth1 = g1.getBarEdgeLineWidth();
				if( edgeLineWidth0!=edgeLineWidth1 )
				{
					edgeLineWidth = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final double baseline1 = g1.getBarBaselineValue();
				if( baseline0!=baseline1 )
				{
					baseline = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final Color innerColor1 = g1.getBarInnerColor();
				if( innerColor0.equals( innerColor1 ) == false )
				{
					innerColor = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final Color edgeLineColor1 = g1.getBarEdgeLineColor();
				if( edgeLineColor0.equals( edgeLineColor1 ) == false )
				{
					lineColor = null;
					break;
				}
			}
			
		}


		//
//		this.setTabEnabled( this.mBarPanel, visible!=null );
//		if( visible!=null )
//		{
//			this.setBarComponentsEnabled( visible.booleanValue() );
//		}

		this.setBarVisible( visible );

		if( width!=null )
		{
			width = new Float( width.floatValue()*SGIConstants.CM_POINT_RATIO );
		}
		this.setBarWidth( width );

		this.setBarEdgeLineWidth( edgeLineWidth );
		this.setBarBaselineValue( baseline );
		this.setBarInnerColor( innerColor );
		this.setBarEdgeLineColor( lineColor );

		return true;
	}



	/**
	 * 
	 * @param group
	 * @return
	 */
	private boolean setErrorBarProperties( final ArrayList list )
	{

		if( list==null )
		{
			return false;
		}
		if( list.size()==0 )
		{
			return false;
		}


		boolean holding = true;
		for( int ii=0; ii<list.size(); ii++ )
		{
			SGISXYDataDialogObserver g = (SGISXYDataDialogObserver)list.get(ii);
			final boolean b = g.isErrorBarHolding();
			if( b==false )
			{
				holding = false;
				break;
			}
		}
		this.setTabEnabled( this.mErrorBarPanel, holding );
		if( holding==false )
		{
			return true;
		}


		SGISXYDataDialogObserver g0 = (SGISXYDataDialogObserver)list.get(0);
		final boolean visible0 = g0.isErrorBarVisible();
		final float lineWidth0 = g0.getErrorBarLineWidth();
		final float headSize0 = g0.getErrorBarHeadSize();
		final int style0 = g0.getErrorBarStyle();
		final int type0 = g0.getErrorBarHeadType();
		final Color color0 = g0.getErrorBarColor();

		Boolean visible = Boolean.valueOf( visible0 );
		Float lineWidth = new Float( lineWidth0 );
		Float headSize = new Float( headSize0 );
		Integer style = new Integer( style0 );
		Integer type = new Integer( type0 );
		Color color = color0;

		if( list.size() > 1 )
		{
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final boolean visible1 = g1.isErrorBarVisible();
				if( visible0!=visible1 )
				{
					visible = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final float lineWidth1 = g1.getErrorBarLineWidth();
				if( lineWidth0!=lineWidth1 )
				{
					lineWidth = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final float headSize1 = g1.getErrorBarHeadSize();
				if( headSize0!=headSize1 )
				{
					headSize = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final int style1 = g1.getErrorBarStyle();
				if( style0!=style1 )
				{
					style = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final int type1 = g1.getErrorBarHeadType();
				if( type0!=type1 )
				{
					type = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final Color color1 = g1.getErrorBarColor();
				if( color0.equals( color1 ) == false )
				{
					color = null;
					break;
				}
			}
		}


		//
//		this.setTabEnabled( this.mErrorBarPanel, visible!=null );
//		if( visible!=null )
//		{
//			this.setErrorBarComponentsEnabled( visible.booleanValue() );
//		}

		this.setErrorBarVisible( visible );
		if( headSize!=null )
		{
			headSize = new Float( headSize.floatValue()*SGIConstants.CM_POINT_RATIO );
		}
		String typeName = null;
		if( type!=null )
		{
			typeName = SGDrawingElementSymbol.getSymbolTypeName( type.intValue() );
		}
		this.setErrorBarLineWidth( lineWidth );
		this.setErrorBarSymbolSize( headSize );
		this.setErrorBarStyle( style );
		this.setErrorBarType( typeName );
		this.setErrorBarColor( color );

		return true;
	}



	/**
	 * 
	 * @param group
	 * @return
	 */
	private boolean setTickLabelProperties( final ArrayList list )
	{

		if( list==null )
		{
			return false;
		}
		if( list.size()==0 )
		{
			return false;
		}

		boolean holding = true;
		for( int ii=0; ii<list.size(); ii++ )
		{
			SGISXYDataDialogObserver g = (SGISXYDataDialogObserver)list.get(ii);
			final boolean b = g.isTickLabelHolding();
			if( b==false )
			{
				holding = false;
				break;
			}
		}
		this.setTabEnabled( this.mTickLabelPanel, holding );
		if( holding==false )
		{
			return true;
		}


		SGISXYDataDialogObserver g0 = (SGISXYDataDialogObserver)list.get(0);
		final boolean visible0 = g0.isTickLabelVisible();
		final float fontSize0 = g0.getTickLabelFontSize();
		final int style0 = g0.getTickLabelFontStyle();
		final String name0 = g0.getTickLabelFontName();
		final boolean horizontal0 = g0.isTickLabelHorizontal();
		final Color color0 = g0.getTickLabelColor();

		Boolean visible = Boolean.valueOf( visible0 );
		Float fontSize = new Float( fontSize0 );
		Integer style = new Integer( style0 );
		String name = new String( name0 );
		Boolean horizontal = Boolean.valueOf(horizontal0);
		Color color = color0;

		if( list.size() > 1 )
		{
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final boolean visible1 = g1.isTickLabelVisible();
				if( visible0!=visible1 )
				{
					visible = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final float fontSize1 = g1.getTickLabelFontSize();
				if( fontSize0!=fontSize1 )
				{
					fontSize = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final int style1 = g1.getTickLabelFontStyle();
				if( style0!=style1 )
				{
					style = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final String name1 = g1.getTickLabelFontName();
				if( name0.equals(name1)==false )
				{
					name = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final boolean horizontal1 = g1.isTickLabelHorizontal();
				if( horizontal0!=horizontal1 )
				{
					horizontal = null;
					break;
				}
			}
			for( int ii=1; ii<list.size(); ii++ )
			{
				SGISXYDataDialogObserver g1 = (SGISXYDataDialogObserver)list.get(ii);
				final Color color1 = g1.getTickLabelColor();
				if( color0.equals( color1 ) == false )
				{
					color = null;
					break;
				}
			}
		}


		//
//		this.setTabEnabled( this.mTickLabelPanel, visible!=null );
//		if( visible!=null )
//		{
//			this.setTickLabelComponentsEnabled( visible.booleanValue() );
//		}

		this.setTickLabelVisible( visible );
		this.setTickLabelFontSize( fontSize );
		this.setTickLabelFontStyle( style );
		this.setTickLabelFontName( name );
		this.setTickLabelHorizontal( horizontal );
		this.setTickLabelColor( color );

		return true;
	}



	/**
	 * 
	 */
	private boolean setLineProperties( SGISXYDataDialogObserver l )
	{
		final Boolean visible = this.getLineVisible();
		if( visible!=null )
		{
			l.setLineVisible( visible.booleanValue() );
		}

		final Number lineWidth = this.getLineWidth();
		if( lineWidth!=null )
		{
			l.setLineWidth( lineWidth.floatValue() );
		}

		final Integer type = this.getLineType();
		if( type!=null )
		{
			l.setLineType( type.intValue() );
		}

		final Color color = this.getLineColor();
		if( color!=null )
		{
			l.setLineColor( color );
		}

		return true;
	}



	/**
	 * 
	 */
	private boolean setSymbolProperties( SGISXYDataDialogObserver l )
	{

		final Boolean visible = this.getSymbolVisible();
		if( visible!=null )
		{
			l.setSymbolVisible( visible.booleanValue() );
		}

		final Number size = this.getSymbolSize();
		if( size!=null )
		{
			l.setSymbolSize( size.floatValue()/SGIConstants.CM_POINT_RATIO );
		}

		final Integer type = this.getSymbolType();
		if( type!=null )
		{
			l.setSymbolType( type.intValue() );
		}

		final Color innerColor = this.getSymbolInnerColor();
		if( innerColor!=null )
		{
			l.setSymbolInnerColor( innerColor );
		}

		final Number lineWidth = this.getSymbolLineWidth();
		if( lineWidth!=null )
		{
			l.setSymbolLineWidth( lineWidth.floatValue() );
		}

		final Color lineColor = this.getSymbolLineColor();
		if( lineColor!=null )
		{
			l.setSymbolLineColor( lineColor );
		}

		return true;
	}


	/**
	 * 
	 */
	private boolean setBarProperties( SGISXYDataDialogObserver l )
	{

		final Boolean visible = this.getBarVisible();
		if( visible!=null )
		{
			l.setBarVisible( visible.booleanValue() );
		}
		
		final Color innerColor = this.getBarInnerColor();
		if( innerColor!=null )
		{
			l.setBarInnerColor( innerColor );
		}

		Number barWidth = this.getBarWidth();
		if( barWidth!=null )
		{
			l.setBarWidth( barWidth.floatValue()/SGIConstants.CM_POINT_RATIO );
		}

		Number edgeLineWidth = this.getBarEdgeLineWidth();
		if( edgeLineWidth!=null )
		{
			l.setBarEdgeLineWidth( edgeLineWidth.floatValue() );
		}

		Color lineColor = this.getBarEdgeLineColor();
		if( lineColor!=null )
		{
			l.setBarEdgeLineColor( lineColor );
		}

		Number value = this.getBarBaselineValue();
		if( value!=null )
		{
			l.setBarBaselineValue( value.doubleValue() );
		}

		return true;
	}



	/**
	 * 
	 */
	public boolean setErrorBarProperties( SGISXYDataDialogObserver l )
	{

		final Boolean visible = this.getErrorBarVisible();
		if( visible!=null )
		{
			l.setErrorBarVisible( visible.booleanValue() );
		}

		final Color cl = this.getErrorBarColor();
		if( cl!=null )
		{
			l.setErrorBarColor( cl );
		}

		final Number lineWidth = this.getErrorBarLineWidth();
		if( lineWidth!=null )
		{
			l.setErrorBarLineWidth( lineWidth.floatValue() );
		}

		final Number headSize = this.getErrorBarSymbolSize();
		if( headSize!=null )
		{
			l.setErrorBarHeadSize( headSize.floatValue()/SGIConstants.CM_POINT_RATIO );
		}

		final Integer style = this.getErrorBarStyle();
		if( style!=null )
		{
			l.setErrorBarStyle( style.intValue() );
		}

		final String headSymbolTypeName = this.getErrorBarTypeName();
		final Integer type = SGDrawingElementErrorBar.getHeadTypeFromName( headSymbolTypeName );
		if( type!=null )
		{
			l.setErrorBarHeadType( type.intValue() );
		}


		return true;
	}


	/**
	 * 
	 */
	private boolean setTickLabelProperties( SGISXYDataDialogObserver l )
	{

		Boolean visible = this.getTickLabelVisible();
		if( visible!=null )
		{
			l.setTickLabelVisible( visible.booleanValue() );
		}

		final Color cl = this.getTickLabelColor();
		if( cl!=null )
		{
			l.setTickLabelColor( cl );
		}
		
		final String fontName = this.getTickLabelFontName();
		if( fontName!=null )
		{
			l.setTickLabelFontName( fontName );
		}

		final Number fontSize = this.getTickLabelFontSize();
		if( fontSize!=null )
		{
			l.setTickLabelFontSize( fontSize.floatValue() );
		}

		final Integer fontStyle = this.getTickLabelFontStyle();
		if( fontStyle!=null )
		{
			l.setTickLabelFontStyle( fontStyle.intValue() );
		}

		final Boolean horizontal = this.isTickLabelHorizontal();
		if( horizontal!=null )
		{
			l.setTickLabelHorizontal( horizontal.booleanValue() );
		}

		return true;
	}



}

