~ubuntu-branches/ubuntu/utopic/figtree/utopic

« back to all changes in this revision

Viewing changes to src/figtree/treeviewer/SizeScaleDialog.java

  • Committer: Package Import Robot
  • Author(s): Olivier Sallou
  • Date: 2013-07-09 14:42:53 UTC
  • mfrom: (2.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20130709144253-momqq3s7wthsu9zn
Tags: 1.4-2
Force set of JAVA_HOME in debian/rules (Closes: #715225). 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package figtree.treeviewer;
 
2
 
 
3
import jam.panels.OptionsPanel;
 
4
 
 
5
import javax.swing.*;
 
6
import javax.swing.border.EmptyBorder;
 
7
import java.awt.event.ActionEvent;
 
8
import java.awt.event.ActionListener;
 
9
import java.awt.*;
 
10
 
 
11
import figtree.ui.components.RealNumberField;
 
12
 
 
13
/**
 
14
 * @author                      Andrew Rambaut
 
15
 * @version                     $Id$
 
16
 */
 
17
public class SizeScaleDialog {
 
18
 
 
19
    private JFrame frame;
 
20
    private String dimensionName;
 
21
 
 
22
    private OptionsPanel options;
 
23
    private JCheckBox autoScaleCheck;
 
24
    private JLabel fromLabel;
 
25
    private RealNumberField fromNumberField;
 
26
    private JLabel toLabel;
 
27
    private RealNumberField toNumberField;
 
28
 
 
29
    private RealNumberField fromSizeField;
 
30
        private RealNumberField toSizeField;
 
31
 
 
32
    public SizeScaleDialog(final JFrame frame, final String dimensionName, boolean autoRange, double fromValue, double toValue,
 
33
                           final double fromWidth, final double toWidth) {
 
34
        this.frame = frame;
 
35
 
 
36
        this.dimensionName = dimensionName;
 
37
 
 
38
            autoScaleCheck = new JCheckBox("Auto-scale range");
 
39
            autoScaleCheck.setSelected(autoRange);
 
40
 
 
41
            fromLabel = new JLabel("Range from:");
 
42
            fromNumberField = new RealNumberField();
 
43
            fromNumberField.setColumns(10);
 
44
            fromNumberField.setValue(fromValue);
 
45
 
 
46
            toLabel = new JLabel("to:");
 
47
            toNumberField = new RealNumberField();
 
48
            toNumberField.setColumns(10);
 
49
            toNumberField.setValue(toValue);
 
50
 
 
51
            fromLabel.setEnabled(false);
 
52
            fromNumberField.setEnabled(false);
 
53
            toLabel.setEnabled(false);
 
54
            toNumberField.setEnabled(false);
 
55
 
 
56
            fromSizeField = new RealNumberField();
 
57
                fromSizeField.setColumns(4);
 
58
            fromSizeField.setValue(fromWidth);
 
59
                toSizeField = new RealNumberField();
 
60
                toSizeField.setColumns(4);
 
61
            toSizeField.setValue(toWidth);
 
62
 
 
63
            autoScaleCheck.addActionListener(new ActionListener() {
 
64
            public void actionPerformed(ActionEvent event) {
 
65
                boolean enabled = !autoScaleCheck.isSelected();
 
66
                fromLabel.setEnabled(enabled);
 
67
                fromNumberField.setEnabled(enabled);
 
68
                toLabel.setEnabled(enabled);
 
69
                toNumberField.setEnabled(enabled);
 
70
            }
 
71
        });
 
72
    }
 
73
 
 
74
    public int showDialog() {
 
75
 
 
76
        options = new OptionsPanel(6, 6);
 
77
 
 
78
            options.addComponent(autoScaleCheck);
 
79
 
 
80
            JPanel panel = new JPanel();
 
81
            panel.setLayout(new FlowLayout());
 
82
            panel.add(fromLabel);
 
83
            panel.add(fromNumberField);
 
84
            panel.add(toLabel);
 
85
            panel.add(toNumberField);
 
86
            options.addComponent(panel);
 
87
 
 
88
            JPanel panel1 = new JPanel();
 
89
            panel1.setLayout(new FlowLayout());
 
90
            panel1.add(new JLabel(dimensionName + " from:"));
 
91
            panel1.add(fromSizeField);
 
92
            panel1.add(new JLabel("to:"));
 
93
            panel1.add(toSizeField);
 
94
            options.addComponent(panel1);
 
95
 
 
96
        JOptionPane optionPane = new JOptionPane(options,
 
97
                JOptionPane.QUESTION_MESSAGE,
 
98
                JOptionPane.OK_CANCEL_OPTION,
 
99
                null,
 
100
                null,
 
101
                null);
 
102
        optionPane.setBorder(new EmptyBorder(12, 12, 12, 12));
 
103
 
 
104
        final JDialog dialog = optionPane.createDialog(frame, "Setup " + dimensionName + " scale");
 
105
        dialog.pack();
 
106
 
 
107
        autoScaleCheck.addActionListener(new ActionListener() {
 
108
            public void actionPerformed(ActionEvent event) {
 
109
                boolean enabled = !autoScaleCheck.isSelected();
 
110
                fromLabel.setEnabled(enabled);
 
111
                fromNumberField.setEnabled(enabled);
 
112
                toLabel.setEnabled(enabled);
 
113
                toNumberField.setEnabled(enabled);
 
114
            }});
 
115
 
 
116
        dialog.setVisible(true);
 
117
 
 
118
        int result = JOptionPane.CANCEL_OPTION;
 
119
        Integer value = (Integer)optionPane.getValue();
 
120
        if (value != null && value.intValue() != -1) {
 
121
            result = value.intValue();
 
122
        }
 
123
 
 
124
        return result;
 
125
    }
 
126
 
 
127
    public boolean getAutoRange() {
 
128
        return autoScaleCheck.isSelected();
 
129
    }
 
130
 
 
131
    public Number getFromValue() {
 
132
        return fromNumberField.getValue();
 
133
    }
 
134
 
 
135
    public Number getToValue() {
 
136
        return toNumberField.getValue();
 
137
    }
 
138
 
 
139
    public Number getFromWidth() {
 
140
        return fromSizeField.getValue();
 
141
    }
 
142
 
 
143
    public Number getToWidth() {
 
144
        return toSizeField.getValue();
 
145
    }
 
146
 
 
147
 
 
148
}
 
 
b'\\ No newline at end of file'