aboutsummaryrefslogtreecommitdiff
path: root/src/StatPlotDialog.java
diff options
context:
space:
mode:
authorJoshua Rahm <joshua.rahm@colorado.edu>2015-01-30 17:11:48 -0700
committerJoshua Rahm <joshua.rahm@colorado.edu>2015-01-30 17:11:48 -0700
commit1c5e38fe69ac8a6decbdd8abe93112f4e3369315 (patch)
tree926cef8cb76d46862ed2c4ec7028720611e47476 /src/StatPlotDialog.java
downloadModulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.tar.gz
Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.tar.bz2
Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.zip
added source
Diffstat (limited to 'src/StatPlotDialog.java')
-rw-r--r--src/StatPlotDialog.java163
1 files changed, 163 insertions, 0 deletions
diff --git a/src/StatPlotDialog.java b/src/StatPlotDialog.java
new file mode 100644
index 0000000..73d3a95
--- /dev/null
+++ b/src/StatPlotDialog.java
@@ -0,0 +1,163 @@
+/* */ import GUIComponents.PushablePanel;
+/* */ import java.awt.Dimension;
+/* */ import java.awt.FlowLayout;
+/* */ import java.awt.Frame;
+/* */ import java.awt.event.ActionEvent;
+/* */ import java.awt.event.ActionListener;
+/* */ import java.util.ArrayList;
+/* */ import javax.swing.BoxLayout;
+/* */ import javax.swing.ButtonGroup;
+/* */ import javax.swing.JButton;
+/* */ import javax.swing.JCheckBox;
+/* */ import javax.swing.JComponent;
+/* */ import javax.swing.JDialog;
+/* */ import javax.swing.JPanel;
+/* */ import javax.swing.JRadioButton;
+/* */
+/* */ public class StatPlotDialog extends JDialog
+/* */ implements ActionListener
+/* */ {
+/* */ private JButton add;
+/* */ private JButton cancel;
+/* */ private JButton delete;
+/* */ private JButton ok;
+/* */ private JButton edit;
+/* */ private PushablePanel panel;
+/* 21 */ private ArrayList<StatPlotDialog.CheckAndRadioButton> plots = new ArrayList();
+/* 22 */ private ArrayList<StatPlot> statplots = new ArrayList();
+/* 23 */ private ArrayList<StatPlotCreationDialog> dialogs = new ArrayList();
+/* */ private Graph2D graph;
+/* 25 */ private ButtonGroup buttonGroup = new ButtonGroup();
+/* */
+/* 27 */ public StatPlotDialog(Frame owner, Graph2D graph) { super(owner, "Statplot", true);
+/* 28 */ this.graph = graph;
+/* 29 */ JPanel main = new JPanel();
+/* 30 */ JPanel buttons = new JPanel(new FlowLayout());
+/* 31 */ JPanel head = new JPanel(new FlowLayout());
+/* 32 */ JPanel addDelete = new JPanel();
+/* 33 */ this.panel = new PushablePanel();
+/* 34 */ addDelete.setLayout(new BoxLayout(addDelete, 1));
+/* 35 */ main.setLayout(new BoxLayout(main, 1));
+/* */
+/* 37 */ addDelete.setPreferredSize(new Dimension(75, 250));
+/* 38 */ this.panel.setPreferredSize(new Dimension(150, 250));
+/* 39 */ buttons.setPreferredSize(new Dimension(350, 50));
+/* */
+/* 41 */ this.add = new JButton("Add");
+/* 42 */ this.cancel = new JButton("Cancel");
+/* 43 */ this.delete = new JButton("Delete");
+/* 44 */ this.ok = new JButton("Apply");
+/* 45 */ this.edit = new JButton("Edit");
+/* */
+/* 47 */ this.add.addActionListener(this);
+/* 48 */ this.cancel.addActionListener(this);
+/* 49 */ this.delete.addActionListener(this);
+/* 50 */ this.ok.addActionListener(this);
+/* 51 */ this.edit.addActionListener(this);
+/* */
+/* 53 */ addDelete.add(this.add);
+/* 54 */ addDelete.add(this.delete);
+/* 55 */ addDelete.add(this.edit);
+/* */
+/* 57 */ buttons.add(this.ok);
+/* 58 */ buttons.add(this.cancel);
+/* */
+/* 60 */ head.add(this.panel);
+/* 61 */ head.add(addDelete);
+/* */
+/* 63 */ main.add(head);
+/* 64 */ main.add(buttons);
+/* */
+/* 66 */ add(main);
+/* 67 */ setPreferredSize(new Dimension(275, 350));
+/* 68 */ setResizable(false);
+/* 69 */ pack(); }
+/* */
+/* */ private void sweep() {
+/* 72 */ ArrayList delete = new ArrayList();
+/* 73 */ for (int i = 0; i < this.plots.size(); i++) {
+/* 74 */ if (((StatPlotDialog.CheckAndRadioButton)this.plots.get(i)).isBoxSelected()) {
+/* 75 */ delete.add((StatPlotDialog.CheckAndRadioButton)this.plots.get(i));
+/* */ }
+/* */ }
+/* 78 */ for (int i = 0; i < delete.size(); i++) {
+/* 79 */ this.statplots.remove(this.plots.indexOf(delete.get(i)));
+/* 80 */ this.plots.remove(delete.get(i));
+/* 81 */ this.dialogs.remove(delete.get(i));
+/* 82 */ this.panel.removeComponent((JComponent)delete.get(i));
+/* */ }
+/* 84 */ for (int i = 0; i < this.plots.size(); i++) ((StatPlotDialog.CheckAndRadioButton)this.plots.get(i)).setText("Stat #" + (i + 1));
+/* */ }
+/* */
+/* */ public void actionPerformed(ActionEvent e)
+/* */ {
+/* 88 */ if ((e.getSource() == this.ok) || (e.getSource() == this.cancel)) {
+/* 89 */ if (e.getSource() == this.ok) {
+/* 90 */ dumpPlots();
+/* */ }
+/* 92 */ setVisible(false);
+/* 93 */ } else if (e.getSource() == this.add) {
+/* 94 */ this.dialogs.add(new StatPlotCreationDialog(this, this.graph, this.statplots.size()));
+/* 95 */ ((StatPlotCreationDialog)this.dialogs.get(this.dialogs.size() - 1)).setVisible(true);
+/* 96 */ } else if (e.getSource() == this.delete) {
+/* 97 */ sweep();
+/* 98 */ } else if (e.getSource() == this.edit) {
+/* 99 */ openEditor();
+/* */ }
+/* */ }
+/* */
+/* 103 */ public void setStatPlot(StatPlot x, int idx) { if (idx >= this.statplots.size()) addStatPlot(x); else
+/* 104 */ this.statplots.set(idx, x); }
+/* */
+/* */ public void addStatPlot(StatPlot x) {
+/* 107 */ StatPlotDialog.CheckAndRadioButton temp = new StatPlotDialog.CheckAndRadioButton("Stat #" + (this.plots.size() + 1));
+/* 108 */ this.panel.pushComponent(temp);
+/* 109 */ this.plots.add(temp);
+/* 110 */ this.statplots.add(x);
+/* */ }
+/* */ private void dumpPlots() {
+/* 113 */ this.graph.resetPlots();
+/* 114 */ for (int i = 0; i < this.statplots.size(); i++)
+/* 115 */ if (((StatPlotDialog.CheckAndRadioButton)this.plots.get(i)).isBoxSelected())
+/* 116 */ this.graph.addStatPlot((StatPlot)this.statplots.get(i));
+/* */ }
+/* */
+/* */ private void openEditor() {
+/* 120 */ for (int i = 0; i < this.plots.size(); i++)
+/* 121 */ if (((StatPlotDialog.CheckAndRadioButton)this.plots.get(i)).isButtonSelected()) {
+/* 122 */ ((StatPlotCreationDialog)this.dialogs.get(i)).setVisible(true);
+/* 123 */ return;
+/* */ }
+/* */ }
+/* */
+/* */ public ArrayList<StatPlot> getPlots() {
+/* 128 */ return this.statplots;
+/* */ }
+/* */
+/* */ private class CheckAndRadioButton extends JPanel
+/* */ {
+/* */ private JCheckBox box;
+/* 133 */ private JRadioButton button = new JRadioButton();
+/* */
+/* 135 */ public CheckAndRadioButton(String text) { setLayout(new FlowLayout());
+/* 136 */ this.box = new JCheckBox(text, true);
+/* 137 */ StatPlotDialog.this.buttonGroup.add(this.button);
+/* 138 */ add(this.box);
+/* 139 */ add(this.button); }
+/* */
+/* */ public boolean isBoxSelected() {
+/* 142 */ return this.box.isSelected();
+/* */ }
+/* */ public boolean isButtonSelected() {
+/* 145 */ return this.button.isSelected();
+/* */ }
+/* */ public void setText(String text) {
+/* 148 */ this.box.setText(text);
+/* */ }
+/* */ }
+/* */ }
+
+/* Location: Modulus.jar
+ * Qualified Name: StatPlotDialog
+ * JD-Core Version: 0.6.2
+ */ \ No newline at end of file