2 import java.awt.BorderLayout;
3 import java.awt.ComponentOrientation;
4 import java.awt.Container;
5 import java.awt.Dimension;
7 import java.awt.GridLayout;
8 import java.awt.MediaTracker;
10 import java.text.DecimalFormat;
11 import java.util.HashMap;
12 import java.util.Locale;
15 import javax.swing.ImageIcon;
16 import javax.swing.JButton;
17 import javax.swing.JCheckBox;
18 import javax.swing.JCheckBoxMenuItem;
19 import javax.swing.JFrame;
20 import javax.swing.JLabel;
21 import javax.swing.JMenu;
22 import javax.swing.JMenuBar;
23 import javax.swing.JPanel;
24 import javax.swing.JRadioButton;
25 import javax.swing.JRadioButtonMenuItem;
26 import javax.swing.SwingConstants;
27 import javax.swing.WindowConstants;
28 import javax.swing.border.TitledBorder;
31 * A class with a main method entry point for ad hoc tests of JalviewJS
32 * behaviour. The J2S transpiler should generate an html entry point for this
33 * class, allowing comparison between Java and Javascript execution.
35 public class JalviewJSTest extends JPanel
37 public static void main(String[] args)
39 new JalviewJSTest().doTest3();
44 System.out.println("Mungo".toLowerCase(Locale.getDefault()));
45 System.out.println("Mungo".toLowerCase(Locale.ENGLISH));
46 System.out.println("Mungo".toLowerCase(Locale.ROOT));
50 Map<File, String> map = new HashMap<>();
51 File f1 = new File("/var/folders/y/xyz");
52 File f2 = new File("/var/folders/y/xyz");
53 map.put(f1, "hello world");
54 System.out.println("f1.equals(f2) = " + f1.equals(f2));
55 System.out.println("f1 hashCode = " + f1.hashCode());
56 System.out.println("f2 hashCode = " + f2.hashCode());
57 System.out.println(map.get(f2));
60 * Put some content in a JFrame and show it
64 System.out.println("ab;c;".split(";"));
65 new DecimalFormat("###,###").format((Integer) 1);
66 JFrame main = new JFrame();
67 main.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
68 JMenu menu = new JMenu("testing");
69 menu.setHorizontalAlignment(SwingConstants.RIGHT);
70 main.setContentPane(getVisualPaneContent(menu));
71 main.setJMenuBar(new JMenuBar());
72 main.getJMenuBar().add(menu);
74 main.setVisible(true);
78 * Builds a cut-down 'Preferences Visual tab' for a minimal test of layout
82 Container getVisualPaneContent(JMenu menu)
84 JPanel panel = new JPanel();
85 panel.setPreferredSize(new Dimension(400, 500));
86 panel.setOpaque(true);
87 panel.setLayout(new BorderLayout());
89 JPanel firstColumn = new JPanel();
90 firstColumn.setLayout(new GridLayout(10, 1));
91 firstColumn.setBorder(new TitledBorder("column 1"));
95 * - checkbox label and text extend outside the enclosing panel in JS
97 Font font = new Font("Verdana", Font.PLAIN, 11);
99 JLabel l1 = new JLabel(getImage("test2.png"));
100 l1.setText("trailing right");
101 l1.setHorizontalTextPosition(SwingConstants.TRAILING);
102 l1.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
103 l1.setHorizontalAlignment(SwingConstants.RIGHT);
105 JLabel l2 = new JLabel(getImage("test2.png"));
106 l2.setText("leading left");
108 l2.setHorizontalTextPosition(SwingConstants.LEADING);
109 l2.setHorizontalAlignment(SwingConstants.LEFT);
111 JButton b1 = new JButton("right left");
112 b1.setIcon(getImage("test2.png"));
114 b1.setHorizontalTextPosition(SwingConstants.RIGHT);
115 b1.setHorizontalAlignment(SwingConstants.LEFT);
122 JCheckBox cb3 = new JCheckBox("leading,left-to-right,rt");
124 cb3.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
125 cb3.setHorizontalTextPosition(SwingConstants.LEADING);
126 cb3.setHorizontalAlignment(SwingConstants.TRAILING);
128 JCheckBox cb4 = new JCheckBox("leading,right-to-left");
130 cb4.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
131 cb4.setHorizontalTextPosition(SwingConstants.LEADING);
133 JCheckBox cb5 = new JCheckBox("trailing,left-to-right");
135 cb5.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
136 cb5.setHorizontalTextPosition(SwingConstants.TRAILING);
138 JRadioButton rb1 = new JRadioButton("trailing,right-to-left");
140 rb1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
141 rb1.setHorizontalTextPosition(SwingConstants.TRAILING);
143 JRadioButton rb2 = new JRadioButton("right,left-to-right");
145 rb2.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
146 rb2.setHorizontalTextPosition(SwingConstants.RIGHT);
148 JRadioButton rb3 = new JRadioButton("right,right-to-left");
150 rb3.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
151 rb3.setHorizontalTextPosition(SwingConstants.RIGHT);
155 firstColumn.add(cb3);
156 firstColumn.add(cb4);
157 firstColumn.add(cb5);
158 firstColumn.add(rb1);
159 firstColumn.add(rb2);
160 firstColumn.add(rb3);
161 firstColumn.setBounds(200, 20, 200, 500);
163 JCheckBoxMenuItem cb3m = new JCheckBoxMenuItem("leading,left-to-right");
165 cb3m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
166 cb3m.setHorizontalTextPosition(SwingConstants.LEADING);
168 JCheckBoxMenuItem cb4m = new JCheckBoxMenuItem("leading,right-to-left");
170 cb4m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
171 cb4m.setHorizontalTextPosition(SwingConstants.LEADING);
173 JCheckBoxMenuItem cb5m = new JCheckBoxMenuItem("trailing,left-to-right");
175 cb5m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
176 cb5m.setHorizontalTextPosition(SwingConstants.TRAILING);
178 JCheckBoxMenuItem cb6m = new JCheckBoxMenuItem("trailing,right-to-left");
180 cb6m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
181 cb6m.setHorizontalTextPosition(SwingConstants.TRAILING);
183 JRadioButtonMenuItem rb1m = new JRadioButtonMenuItem("trailing,right-to-left");
185 rb1m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
186 rb1m.setHorizontalTextPosition(SwingConstants.TRAILING);
188 JRadioButtonMenuItem rb2m = new JRadioButtonMenuItem("right,left-to-right");
190 rb2m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
191 rb2m.setHorizontalTextPosition(SwingConstants.RIGHT);
193 JRadioButtonMenuItem rb3m = new JRadioButtonMenuItem("right,right-to-left");
195 rb3m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
196 rb3m.setHorizontalTextPosition(SwingConstants.RIGHT);
198 JMenu m1 = new JMenu("left");
199 JMenu m2 = new JMenu("right");
210 JPanel theTab = new JPanel();
212 theTab.setLayout(null);
213 theTab.add(firstColumn);
219 private ImageIcon getImage(String name) {
220 ImageIcon icon = new ImageIcon(getClass().getResource(name));
222 while(icon.getImageLoadStatus() == MediaTracker.LOADING)
225 } catch (InterruptedException e) {