/*
* 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 java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import kcl.waterloo.gui.FontAspectCombo;
import kcl.waterloo.widget.GJColorComboBox;
import kcl.waterloo.widget.GJDial;
public class GeneralOptions extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private final GJColorComboBox backGroundCombo;
private final FontAspectCombo fontPanel;
private JCheckBox shadowEffect;
private JCheckBox frameEffect;
/**
* Create the panel.
*/
public GeneralOptions() {
setPreferredSize(new Dimension(573, 186));
setBorder(new LineBorder(new Color(0, 0, 0)));
SpringLayout springLayout = new SpringLayout();
setLayout(springLayout);
JPanel titlePanel = new JPanel();
springLayout.putConstraint(SpringLayout.NORTH, titlePanel, 1, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.WEST, titlePanel, 1, SpringLayout.WEST, this);
springLayout.putConstraint(SpringLayout.SOUTH, titlePanel, 70, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.EAST, titlePanel, 286, SpringLayout.WEST, this);
titlePanel.setBorder(new TitledBorder(null, "Title", TitledBorder.LEADING, TitledBorder.TOP, null, null));
add(titlePanel);
springLayout.putConstraint(SpringLayout.NORTH, titlePanel, 1, SpringLayout.NORTH, this);
SpringLayout titlePanelLayout = new SpringLayout();
titlePanel.setLayout(titlePanelLayout);
JTextField textField = new JTextField();
titlePanelLayout.putConstraint(SpringLayout.NORTH, textField, 0, SpringLayout.NORTH, titlePanel);
titlePanelLayout.putConstraint(SpringLayout.SOUTH, textField, 0, SpringLayout.SOUTH, titlePanel);
textField.setName("$Title");
titlePanel.add(textField);
titlePanelLayout.putConstraint(SpringLayout.WEST, textField, 5, SpringLayout.WEST, titlePanel);
titlePanelLayout.putConstraint(SpringLayout.EAST, textField, -5, SpringLayout.EAST, titlePanel);
JPanel subTitlePanel = new JPanel();
springLayout.putConstraint(SpringLayout.NORTH, subTitlePanel, 0, SpringLayout.SOUTH, titlePanel);
springLayout.putConstraint(SpringLayout.SOUTH, subTitlePanel, 70, SpringLayout.SOUTH, titlePanel);
titlePanelLayout = new SpringLayout();
subTitlePanel.setLayout(titlePanelLayout);
springLayout.putConstraint(SpringLayout.WEST, subTitlePanel, 1, SpringLayout.WEST, this);
springLayout.putConstraint(SpringLayout.EAST, subTitlePanel, 286, SpringLayout.WEST, this);
subTitlePanel.setBorder(new TitledBorder(null, "SubTitle", TitledBorder.LEADING, TitledBorder.TOP, null, null));
add(subTitlePanel);
JTextField textField_1 = new JTextField();
titlePanelLayout.putConstraint(SpringLayout.NORTH, textField_1, 0, SpringLayout.NORTH, subTitlePanel);
titlePanelLayout.putConstraint(SpringLayout.SOUTH, textField_1, 0, SpringLayout.SOUTH, subTitlePanel);
textField_1.setName("$SubTitle");
subTitlePanel.add(textField_1);
titlePanelLayout.putConstraint(SpringLayout.WEST, textField_1, 5, SpringLayout.WEST, subTitlePanel);
titlePanelLayout.putConstraint(SpringLayout.EAST, textField_1, -5, SpringLayout.EAST, subTitlePanel);
JPanel rotatePanel = new JPanel();
springLayout.putConstraint(SpringLayout.NORTH, rotatePanel, 1, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.WEST, rotatePanel, 291, SpringLayout.WEST, this);
springLayout.putConstraint(SpringLayout.SOUTH, rotatePanel, 0, SpringLayout.SOUTH, titlePanel);
springLayout.putConstraint(SpringLayout.EAST, rotatePanel, 411, SpringLayout.WEST, this);
//rotatePanel.setBorder(new IconBorder(new ImageIcon(AxisEditor.class.getResource("/kcl/waterloo/graphics/gui/gjgraph/arrow_refresh.png"))));
rotatePanel.setBorder(new TitledBorder(null, "Rotation (\u00b0)", TitledBorder.LEADING, TitledBorder.TOP, null, null));
add(rotatePanel);
GridBagLayout gbl_rotatePanel = new GridBagLayout();
gbl_rotatePanel.columnWidths = new int[]{160, 25, 0};
gbl_rotatePanel.rowHeights = new int[]{22, 0};
gbl_rotatePanel.columnWeights = new double[]{1.0, 0.0, Double.MIN_VALUE};
gbl_rotatePanel.rowWeights = new double[]{0.0, Double.MIN_VALUE};
rotatePanel.setLayout(gbl_rotatePanel);
JComboBox rotateCombo = new JComboBox();
rotateCombo.setName("$Rotation");
rotateCombo.addItem("0");
rotateCombo.addItem("-45");
rotateCombo.addItem("-90");
rotateCombo.addItem("-135");
rotateCombo.addItem("180");
rotateCombo.addItem("+135");
rotateCombo.addItem("+90");
rotateCombo.addItem("+45");
rotateCombo.setEditable(true);
GridBagConstraints gbc_rotateCombo = new GridBagConstraints();
gbc_rotateCombo.anchor = GridBagConstraints.WEST;
gbc_rotateCombo.fill = GridBagConstraints.VERTICAL;
gbc_rotateCombo.insets = new Insets(2, 0, 0, 5);
gbc_rotateCombo.gridx = 0;
gbc_rotateCombo.gridy = 0;
rotatePanel.add(rotateCombo, gbc_rotateCombo);
JPanel zoomPanel = new JPanel();
springLayout.putConstraint(SpringLayout.NORTH, zoomPanel, 0, SpringLayout.NORTH, subTitlePanel);
springLayout.putConstraint(SpringLayout.WEST, zoomPanel, 291, SpringLayout.WEST, this);
springLayout.putConstraint(SpringLayout.SOUTH, zoomPanel, 0, SpringLayout.SOUTH, subTitlePanel);
springLayout.putConstraint(SpringLayout.EAST, zoomPanel, 0, SpringLayout.EAST, rotatePanel);
zoomPanel.setBorder(new TitledBorder(null, "View size(%)", TitledBorder.LEADING, TitledBorder.TOP, null, null));
add(zoomPanel);
GridBagLayout gbl_zoomPanel = new GridBagLayout();
gbl_zoomPanel.columnWidths = new int[]{160, 25, 0};
gbl_zoomPanel.rowHeights = new int[]{21, 0};
gbl_zoomPanel.columnWeights = new double[]{1.0, 0.0, Double.MIN_VALUE};
gbl_zoomPanel.rowWeights = new double[]{0.0, Double.MIN_VALUE};
zoomPanel.setLayout(gbl_zoomPanel);
JComboBox zoomCombo = new JComboBox();
zoomCombo.setName("$Zoom");
GridBagConstraints gbc_zoomCombo = new GridBagConstraints();
gbc_zoomCombo.anchor = GridBagConstraints.WEST;
gbc_zoomCombo.fill = GridBagConstraints.VERTICAL;
gbc_zoomCombo.insets = new Insets(2, 0, 0, 5);
gbc_zoomCombo.gridx = 0;
gbc_zoomCombo.gridy = 0;
zoomPanel.add(zoomCombo, gbc_zoomCombo);
zoomCombo.setEditable(true);
zoomCombo.addItem("1000");
zoomCombo.addItem("500");
zoomCombo.addItem("200");
zoomCombo.addItem("100");
zoomCombo.addItem("90");
zoomCombo.addItem("80");
zoomCombo.addItem("70");
zoomCombo.addItem("60");
zoomCombo.addItem("50");
GJDial dial = new GJDial(25, 10);
dial.setMinimum(10);
dial.setMaximum(2000);
dial.setValue(100);
dial.setName("$zoomDial");
//dial.setPreferredSize(new Dimension(25, 25));
GridBagConstraints gbc_dial = new GridBagConstraints();
gbc_dial.insets = new Insets(2, 0, 0, 0);
gbc_dial.anchor = GridBagConstraints.WEST;
gbc_dial.fill = GridBagConstraints.VERTICAL;
gbc_dial.gridx = 1;
gbc_dial.gridy = 0;
zoomPanel.add(dial, gbc_dial);
JPanel panel = new JPanel();
springLayout.putConstraint(SpringLayout.NORTH, panel, 1, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.WEST, panel, 4, SpringLayout.EAST, rotatePanel);
springLayout.putConstraint(SpringLayout.SOUTH, panel, 0, SpringLayout.SOUTH, zoomPanel);
springLayout.putConstraint(SpringLayout.EAST, panel, -1, SpringLayout.EAST, this);
GJDial dialR = new GJDial();
dialR.setMinimum(-180);
dialR.setMaximum(180);
dialR.setValue(0);
dialR.setName("$rotateDial");
dialR.setPreferredSize(new Dimension(25, 25));
GridBagConstraints gbc_dialR = new GridBagConstraints();
gbc_dialR.insets = new Insets(2, 0, 0, 0);
gbc_dialR.anchor = GridBagConstraints.WEST;
gbc_dialR.fill = GridBagConstraints.VERTICAL;
gbc_dialR.gridx = 1;
gbc_dialR.gridy = 0;
rotatePanel.add(dialR, gbc_dialR);
add(panel);
panel.setLayout(new GridLayout());
fontPanel = new FontAspectCombo();
panel.add(fontPanel);
backGroundCombo = new GJColorComboBox();
springLayout.putConstraint(SpringLayout.NORTH, backGroundCombo, 15, SpringLayout.SOUTH, subTitlePanel);
springLayout.putConstraint(SpringLayout.WEST, backGroundCombo, 5, SpringLayout.WEST, this);
springLayout.putConstraint(SpringLayout.SOUTH, backGroundCombo, 40, SpringLayout.SOUTH, subTitlePanel);
backGroundCombo.setName("$ContainerBackground");
backGroundCombo.setPreferredSize(new Dimension(150, 25));
add(backGroundCombo);
JLabel lblNewLabel_1 = new JLabel("Background");
springLayout.putConstraint(SpringLayout.WEST, lblNewLabel_1, 0, SpringLayout.WEST, backGroundCombo);
springLayout.putConstraint(SpringLayout.SOUTH, lblNewLabel_1, -1, SpringLayout.NORTH, backGroundCombo);
add(lblNewLabel_1);
JComboBox spinner = new JComboBox();
springLayout.putConstraint(SpringLayout.WEST, spinner, 10, SpringLayout.EAST, zoomPanel);
add(spinner);
spinner.setEditable(true);
spinner.setName("$AspectRatio");
spinner.addItem("Auto");
spinner.addItem("2");
spinner.addItem("1.5");
spinner.addItem("1");
spinner.addItem("0.75");
spinner.addItem("0.5");
JLabel lblNewLabel_2 = new JLabel("Aspect Ratio");
springLayout.putConstraint(SpringLayout.NORTH, spinner, 0, SpringLayout.SOUTH, lblNewLabel_2);
springLayout.putConstraint(SpringLayout.NORTH, lblNewLabel_2, 2, SpringLayout.SOUTH, panel);
springLayout.putConstraint(SpringLayout.WEST, lblNewLabel_2, 10, SpringLayout.WEST, panel);
lblNewLabel_2.setName("");
add(lblNewLabel_2);
JCheckBox chckbxNewCheckBox = new JCheckBox("");
springLayout.putConstraint(SpringLayout.NORTH, chckbxNewCheckBox, 0, SpringLayout.NORTH, lblNewLabel_1);
chckbxNewCheckBox.setName("$ContainerBackgroundPainted");
springLayout.putConstraint(SpringLayout.WEST, chckbxNewCheckBox, 20, SpringLayout.EAST, lblNewLabel_1);
add(chckbxNewCheckBox);
shadowEffect = new JCheckBox("Shadow");
shadowEffect.setName("$Shadow");
springLayout.putConstraint(SpringLayout.NORTH, shadowEffect, 6, SpringLayout.SOUTH, subTitlePanel);
add(shadowEffect);
frameEffect = new JCheckBox("Frame");
frameEffect.setName("$Frame");
springLayout.putConstraint(SpringLayout.EAST, shadowEffect, -11, SpringLayout.WEST, frameEffect);
springLayout.putConstraint(SpringLayout.NORTH, frameEffect, 6, SpringLayout.SOUTH, zoomPanel);
springLayout.putConstraint(SpringLayout.WEST, frameEffect, 10, SpringLayout.WEST, zoomPanel);
add(frameEffect);
}
/**
* @return the backGroundCombo
*/
public GJColorComboBox getBackGroundCombo() {
return backGroundCombo;
}
/**
* @return the fontPanel
*/
public FontAspectCombo getFontPanel() {
return fontPanel;
}
public JCheckBox getShadowEffect() {
return shadowEffect;
}
public void setShadow(JCheckBox Shadow) {
this.shadowEffect = Shadow;
}
public JCheckBox getFrameEffect() {
return frameEffect;
}
public void setFrameEffect(JCheckBox frameEffect) {
this.frameEffect = frameEffect;
}
}
Ads help maintain this website.