/*
* This code is part of Project Waterloo from King's College London
*
*
* Copyright King's College London 2012-
*
* @author Malcolm Lidierth, King's College London [Contact]
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*
*/
package kcl.waterloo.gui.gjgraph;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JSpinner;
import javax.swing.JToggleButton;
import javax.swing.SpinnerNumberModel;
import javax.swing.SpringLayout;
import javax.swing.border.TitledBorder;
import kcl.waterloo.widget.GJColorComboBox;
import org.jdesktop.swingx.VerticalLayout;
public class LayerEditor extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
AxisEditor XEditor = new AxisEditor("X-Axis");
AxisEditor YEditor = new AxisEditor("Y-Axis");
private GJColorComboBox gridCombo;
private GJColorComboBox backGroundCombo;
private GJColorComboBox axisCombo;
/**
* Create the panel.
*/
/**
*
*/
/**
*
*/
public LayerEditor() {
setPreferredSize(new Dimension(550, 308));
SpringLayout springLayout = new SpringLayout();
springLayout.putConstraint(SpringLayout.SOUTH, YEditor, 115, SpringLayout.SOUTH, XEditor);
springLayout.putConstraint(SpringLayout.SOUTH, XEditor, 110, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.WEST, YEditor, 0, SpringLayout.WEST, this);
springLayout.putConstraint(SpringLayout.EAST, YEditor, -100, SpringLayout.EAST, this);
springLayout.putConstraint(SpringLayout.WEST, XEditor, 0, SpringLayout.WEST, this);
springLayout.putConstraint(SpringLayout.EAST, XEditor, -100, SpringLayout.EAST, this);
springLayout.putConstraint(SpringLayout.NORTH, YEditor, 5, SpringLayout.SOUTH, XEditor);
setLayout(springLayout);
JPanel hintsPanel = new JPanel();
springLayout.putConstraint(SpringLayout.SOUTH, hintsPanel, 30, SpringLayout.SOUTH, YEditor);
springLayout.putConstraint(SpringLayout.WEST, hintsPanel, -100, SpringLayout.EAST, this);
springLayout.putConstraint(SpringLayout.NORTH, hintsPanel, 0, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.EAST, hintsPanel, -5, SpringLayout.EAST, this);
hintsPanel.setBorder(new TitledBorder(null, "Hints", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(59, 59, 59)));
add(hintsPanel);
SpringLayout sl_panel_1 = new SpringLayout();
hintsPanel.setLayout(sl_panel_1);
JToggleButton chckbxMajor = new JToggleButton();
chckbxMajor.setName("$MajorGrid");
chckbxMajor.setIcon(new ImageIcon(LayerEditor.class.getResource("/kcl/waterloo/gui/images/major_grid_add.png")));
chckbxMajor.setSelectedIcon(new ImageIcon(LayerEditor.class.getResource("/kcl/waterloo/gui/images/major_grid_remove.png")));
chckbxMajor.setToolTipText("Major Grid");
sl_panel_1.putConstraint(SpringLayout.NORTH, chckbxMajor, -12, SpringLayout.NORTH, hintsPanel);
chckbxMajor.setPreferredSize(new Dimension(24, 24));
hintsPanel.add(chckbxMajor);
JToggleButton chckbxMinor = new JToggleButton();
chckbxMinor.setName("$MinorGrid");
chckbxMinor.setToolTipText("Minor Grid");
chckbxMinor.setSelectedIcon(new ImageIcon(LayerEditor.class.getResource("/kcl/waterloo/gui/images/minor_grid_remove.png")));
chckbxMinor.setIcon(new ImageIcon(LayerEditor.class.getResource("/kcl/waterloo/gui/images/minor_grid_add.png")));
sl_panel_1.putConstraint(SpringLayout.NORTH, chckbxMinor, 3, SpringLayout.SOUTH, chckbxMajor);
chckbxMinor.setPreferredSize(new Dimension(24, 24));
sl_panel_1.putConstraint(SpringLayout.WEST, chckbxMinor, 0, SpringLayout.WEST, chckbxMajor);
sl_panel_1.putConstraint(SpringLayout.EAST, chckbxMinor, 0, SpringLayout.EAST, chckbxMajor);
hintsPanel.add(chckbxMinor);
JLabel lblGrid = new JLabel("Grids");
sl_panel_1.putConstraint(SpringLayout.NORTH, lblGrid, 0, SpringLayout.NORTH, hintsPanel);
sl_panel_1.putConstraint(SpringLayout.WEST, lblGrid, 3, SpringLayout.WEST, hintsPanel);
sl_panel_1.putConstraint(SpringLayout.WEST, chckbxMajor, 10, SpringLayout.EAST, lblGrid);
hintsPanel.add(lblGrid);
JLabel lblInnerAxis = new JLabel("Inner axis");
sl_panel_1.putConstraint(SpringLayout.WEST, lblInnerAxis, 0, SpringLayout.WEST, lblGrid);
hintsPanel.add(lblInnerAxis);
JCheckBox chckbxVisible = new JCheckBox("Show");
chckbxVisible.setName("$InnerAxis");
sl_panel_1.putConstraint(SpringLayout.NORTH, chckbxVisible, 6, SpringLayout.SOUTH, lblInnerAxis);
sl_panel_1.putConstraint(SpringLayout.WEST, chckbxVisible, 0, SpringLayout.WEST, lblGrid);
hintsPanel.add(chckbxVisible);
JCheckBox chckbxLabelled = new JCheckBox("Labels");
chckbxLabelled.setName("$InnerAxisLabels");
sl_panel_1.putConstraint(SpringLayout.NORTH, chckbxLabelled, 6, SpringLayout.SOUTH, chckbxVisible);
sl_panel_1.putConstraint(SpringLayout.WEST, chckbxLabelled, 0, SpringLayout.WEST, lblGrid);
hintsPanel.add(chckbxLabelled);
JSeparator separator = new JSeparator();
sl_panel_1.putConstraint(SpringLayout.NORTH, separator, 2, SpringLayout.SOUTH, chckbxMinor);
sl_panel_1.putConstraint(SpringLayout.NORTH, lblInnerAxis, 12, SpringLayout.SOUTH, separator);
sl_panel_1.putConstraint(SpringLayout.SOUTH, lblGrid, -22, SpringLayout.NORTH, separator);
sl_panel_1.putConstraint(SpringLayout.WEST, separator, 0, SpringLayout.WEST, hintsPanel);
sl_panel_1.putConstraint(SpringLayout.EAST, separator, 0, SpringLayout.EAST, hintsPanel);
hintsPanel.add(separator);
JSeparator separator_1 = new JSeparator();
sl_panel_1.putConstraint(SpringLayout.NORTH, separator_1, 5, SpringLayout.SOUTH, chckbxLabelled);
sl_panel_1.putConstraint(SpringLayout.WEST, separator_1, 0, SpringLayout.WEST, hintsPanel);
sl_panel_1.putConstraint(SpringLayout.SOUTH, separator_1, 22, SpringLayout.SOUTH, chckbxLabelled);
sl_panel_1.putConstraint(SpringLayout.EAST, separator_1, 0, SpringLayout.EAST, hintsPanel);
hintsPanel.add(separator_1);
JSpinner spinner0 = new JSpinner();
spinner0.setName("$XDiv");
sl_panel_1.putConstraint(SpringLayout.EAST, spinner0, 0, SpringLayout.EAST, hintsPanel);
hintsPanel.add(spinner0);
spinner0.setModel(new SpinnerNumberModel(4d, 0d, 10d, 1d));
//spinner0.addChangeListener(spinner0);
JSpinner spinner1 = new JSpinner();
sl_panel_1.putConstraint(SpringLayout.NORTH, spinner1, 2, SpringLayout.SOUTH, spinner0);
spinner1.setName("$YDiv");
sl_panel_1.putConstraint(SpringLayout.WEST, spinner1, 0, SpringLayout.WEST, spinner0);
hintsPanel.add(spinner1);
spinner1.setModel(new SpinnerNumberModel(4d, 0d, 10d, 1d));
//spinner1.addChangeListener(spinner1);
JLabel lblDivisions = new JLabel("Divisions");
sl_panel_1.putConstraint(SpringLayout.NORTH, lblDivisions, 5, SpringLayout.NORTH, separator_1);
sl_panel_1.putConstraint(SpringLayout.NORTH, spinner0, 6, SpringLayout.SOUTH, lblDivisions);
sl_panel_1.putConstraint(SpringLayout.WEST, lblDivisions, 5, SpringLayout.WEST, hintsPanel);
hintsPanel.add(lblDivisions);
JLabel lblX = new JLabel("X");
sl_panel_1.putConstraint(SpringLayout.NORTH, lblX, 0, SpringLayout.NORTH, spinner0);
sl_panel_1.putConstraint(SpringLayout.WEST, lblX, -10, SpringLayout.WEST, spinner0);
hintsPanel.add(lblX);
JLabel lblY = new JLabel("Y");
sl_panel_1.putConstraint(SpringLayout.NORTH, lblY, 0, SpringLayout.NORTH, spinner1);
sl_panel_1.putConstraint(SpringLayout.WEST, lblY, 0, SpringLayout.WEST, lblX);
hintsPanel.add(lblY);
add(XEditor);
springLayout.putConstraint(SpringLayout.NORTH, XEditor, 0, SpringLayout.NORTH, this);
JPanel panel = new JPanel();
XEditor.add(panel);
panel.setLayout(new VerticalLayout());
SpringLayout springLayout_1 = (SpringLayout) YEditor.getLayout();
add(YEditor);
backGroundCombo = new GJColorComboBox();
springLayout.putConstraint(SpringLayout.EAST, backGroundCombo, -164, SpringLayout.EAST, this);
backGroundCombo.setName("$Background");
springLayout_1.putConstraint(SpringLayout.SOUTH, backGroundCombo, 0, SpringLayout.SOUTH, hintsPanel);
springLayout_1.putConstraint(SpringLayout.EAST, backGroundCombo, 0, SpringLayout.EAST, XEditor);
add(backGroundCombo);
backGroundCombo.setPreferredSize(new Dimension(150, 25));
gridCombo = new GJColorComboBox();
springLayout.putConstraint(SpringLayout.WEST, backGroundCombo, 4, SpringLayout.EAST, gridCombo);
springLayout.putConstraint(SpringLayout.EAST, gridCombo, -319, SpringLayout.EAST, this);
gridCombo.setName("$GridColor");
add(gridCombo);
gridCombo.setPreferredSize(new Dimension(150, 25));
axisCombo = new GJColorComboBox();
springLayout.putConstraint(SpringLayout.NORTH, axisCombo, 15, SpringLayout.SOUTH, gridCombo);
springLayout.putConstraint(SpringLayout.WEST, axisCombo, 0, SpringLayout.WEST, gridCombo);
springLayout.putConstraint(SpringLayout.EAST, axisCombo, 0, SpringLayout.EAST, gridCombo);
axisCombo.setName("$AxisColor");
axisCombo.setPreferredSize(new Dimension(150, 25));
add(axisCombo);
JLabel lblForeground = new JLabel("Grid color");
springLayout.putConstraint(SpringLayout.WEST, gridCombo, 0, SpringLayout.WEST, lblForeground);
lblForeground.setName("");
add(lblForeground);
JLabel lblBacgground = new JLabel("Background");
springLayout.putConstraint(SpringLayout.WEST, lblBacgground, 0, SpringLayout.WEST, backGroundCombo);
add(lblBacgground);
JLabel lblAlpha = new JLabel("Alpha");
springLayout.putConstraint(SpringLayout.NORTH, lblAlpha, 0, SpringLayout.SOUTH, YEditor);
springLayout.putConstraint(SpringLayout.SOUTH, lblBacgground, 0, SpringLayout.SOUTH, lblAlpha);
springLayout.putConstraint(SpringLayout.NORTH, lblForeground, 0, SpringLayout.NORTH, lblAlpha);
springLayout.putConstraint(SpringLayout.WEST, lblForeground, 43, SpringLayout.EAST, lblAlpha);
springLayout.putConstraint(SpringLayout.WEST, lblAlpha, 10, SpringLayout.WEST, YEditor);
springLayout_1.putConstraint(SpringLayout.WEST, lblAlpha, 32, SpringLayout.WEST, YEditor);
add(lblAlpha);
JComboBox alphaCombo = new JComboBox();
springLayout.putConstraint(SpringLayout.NORTH, backGroundCombo, 0, SpringLayout.NORTH, alphaCombo);
springLayout.putConstraint(SpringLayout.NORTH, gridCombo, 0, SpringLayout.NORTH, alphaCombo);
springLayout.putConstraint(SpringLayout.NORTH, alphaCombo, 0, SpringLayout.SOUTH, lblAlpha);
springLayout.putConstraint(SpringLayout.WEST, alphaCombo, 5, SpringLayout.WEST, XEditor);
alphaCombo.setName("$Alpha");
alphaCombo.addItem("1.0");
alphaCombo.addItem("0.8");
alphaCombo.addItem("0.6");
alphaCombo.addItem("0.4");
alphaCombo.addItem("0.2");
alphaCombo.setEditable(true);
add(alphaCombo);
alphaCombo.setPreferredSize(new Dimension(75, 25));
JCheckBox chckbxNewCheckBox = new JCheckBox("");
springLayout.putConstraint(SpringLayout.NORTH, chckbxNewCheckBox, -3, SpringLayout.NORTH, lblBacgground);
springLayout.putConstraint(SpringLayout.WEST, chckbxNewCheckBox, 10, SpringLayout.EAST, lblBacgground);
chckbxNewCheckBox.setName("$BackgroundPainted");
add(chckbxNewCheckBox);
JLabel lblNewLabel = new JLabel("Axis color");
springLayout.putConstraint(SpringLayout.WEST, lblNewLabel, 0, SpringLayout.WEST, gridCombo);
springLayout.putConstraint(SpringLayout.SOUTH, lblNewLabel, 2, SpringLayout.NORTH, axisCombo);
add(lblNewLabel);
JCheckBox chckbxNewCheckBox_1 = new JCheckBox("Polar
plot");
springLayout.putConstraint(SpringLayout.NORTH, chckbxNewCheckBox_1, 0, SpringLayout.NORTH, lblNewLabel);
springLayout.putConstraint(SpringLayout.EAST, chckbxNewCheckBox_1, -29, SpringLayout.EAST, this);
chckbxNewCheckBox_1.setName("$Polar");
add(chckbxNewCheckBox_1);
revalidate();
}
public GJColorComboBox getGridCombo() {
return gridCombo;
}
public GJColorComboBox getBackGroundCombo() {
return backGroundCombo;
}
/**
* @return the axisCombo
*/
public GJColorComboBox getAxisCombo() {
return axisCombo;
}
}
Ads help maintain this website.