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;
9 import java.awt.MenuItem;
11 import javax.swing.ImageIcon;
12 import javax.swing.JButton;
13 import javax.swing.JCheckBox;
14 import javax.swing.JCheckBoxMenuItem;
15 import javax.swing.JFrame;
16 import javax.swing.JLabel;
17 import javax.swing.JMenu;
18 import javax.swing.JMenuBar;
19 import javax.swing.JPanel;
20 import javax.swing.JRadioButton;
21 import javax.swing.JRadioButtonMenuItem;
22 import javax.swing.SwingConstants;
23 import javax.swing.WindowConstants;
24 import javax.swing.border.TitledBorder;
27 * A class with a main method entry point for ad hoc tests of JalviewJS
28 * behaviour. The J2S transpiler should generate an html entry point for this
29 * class, allowing comparison between Java and Javascript execution.
31 public class JalviewJSTest extends JPanel
33 public static void main(String[] args)
35 new JalviewJSTest().doTest();
39 * Put some content in a JFrame and show it
43 JFrame main = new JFrame();
44 main.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
45 JMenu menu = new JMenu("testing");
46 menu.setHorizontalAlignment(SwingConstants.RIGHT);
47 main.setContentPane(getVisualPaneContent(menu));
48 main.setJMenuBar(new JMenuBar());
49 main.getJMenuBar().add(menu);
51 main.setVisible(true);
55 * Builds a cut-down 'Preferences Visual tab' for a minimal test of layout
59 Container getVisualPaneContent(JMenu menu)
61 JPanel panel = new JPanel();
62 panel.setPreferredSize(new Dimension(400, 500));
63 panel.setOpaque(true);
64 panel.setLayout(new BorderLayout());
66 JPanel firstColumn = new JPanel();
67 firstColumn.setLayout(new GridLayout(10, 1));
68 firstColumn.setBorder(new TitledBorder("column 1"));
72 * - checkbox label and text extend outside the enclosing panel in JS
74 Font font = new Font("Verdana", Font.PLAIN, 11);
76 JLabel l1 = new JLabel(getImage("test2.png"));
77 l1.setText("trailing right");
78 l1.setHorizontalTextPosition(SwingConstants.TRAILING);
79 l1.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
80 l1.setHorizontalAlignment(SwingConstants.RIGHT);
82 JLabel l2 = new JLabel(getImage("test2.png"));
83 l2.setText("leading left");
85 l2.setHorizontalTextPosition(SwingConstants.LEADING);
86 l2.setHorizontalAlignment(SwingConstants.LEFT);
88 JButton b1 = new JButton("right left");
89 b1.setIcon(getImage("test2.png"));
91 b1.setHorizontalTextPosition(SwingConstants.RIGHT);
92 b1.setHorizontalAlignment(SwingConstants.LEFT);
99 JCheckBox cb3 = new JCheckBox("leading,left-to-right,rt");
101 cb3.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
102 cb3.setHorizontalTextPosition(SwingConstants.LEADING);
103 cb3.setHorizontalAlignment(SwingConstants.TRAILING);
105 JCheckBox cb4 = new JCheckBox("leading,right-to-left");
107 cb4.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
108 cb4.setHorizontalTextPosition(SwingConstants.LEADING);
110 JCheckBox cb5 = new JCheckBox("trailing,left-to-right");
112 cb5.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
113 cb5.setHorizontalTextPosition(SwingConstants.TRAILING);
115 JRadioButton rb1 = new JRadioButton("trailing,right-to-left");
117 rb1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
118 rb1.setHorizontalTextPosition(SwingConstants.TRAILING);
120 JRadioButton rb2 = new JRadioButton("right,left-to-right");
122 rb2.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
123 rb2.setHorizontalTextPosition(SwingConstants.RIGHT);
125 JRadioButton rb3 = new JRadioButton("right,right-to-left");
127 rb3.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
128 rb3.setHorizontalTextPosition(SwingConstants.RIGHT);
132 firstColumn.add(cb3);
133 firstColumn.add(cb4);
134 firstColumn.add(cb5);
135 firstColumn.add(rb1);
136 firstColumn.add(rb2);
137 firstColumn.add(rb3);
138 firstColumn.setBounds(200, 20, 200, 500);
140 JCheckBoxMenuItem cb3m = new JCheckBoxMenuItem("leading,left-to-right");
142 cb3m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
143 cb3m.setHorizontalTextPosition(SwingConstants.LEADING);
145 JCheckBoxMenuItem cb4m = new JCheckBoxMenuItem("leading,right-to-left");
147 cb4m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
148 cb4m.setHorizontalTextPosition(SwingConstants.LEADING);
150 JCheckBoxMenuItem cb5m = new JCheckBoxMenuItem("trailing,left-to-right");
152 cb5m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
153 cb5m.setHorizontalTextPosition(SwingConstants.TRAILING);
155 JCheckBoxMenuItem cb6m = new JCheckBoxMenuItem("trailing,right-to-left");
157 cb6m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
158 cb6m.setHorizontalTextPosition(SwingConstants.TRAILING);
160 JRadioButtonMenuItem rb1m = new JRadioButtonMenuItem("trailing,right-to-left");
162 rb1m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
163 rb1m.setHorizontalTextPosition(SwingConstants.TRAILING);
165 JRadioButtonMenuItem rb2m = new JRadioButtonMenuItem("right,left-to-right");
167 rb2m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
168 rb2m.setHorizontalTextPosition(SwingConstants.RIGHT);
170 JRadioButtonMenuItem rb3m = new JRadioButtonMenuItem("right,right-to-left");
172 rb3m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
173 rb3m.setHorizontalTextPosition(SwingConstants.RIGHT);
175 JMenu m1 = new JMenu("left");
176 JMenu m2 = new JMenu("right");
187 JPanel theTab = new JPanel();
189 theTab.setLayout(null);
190 theTab.add(firstColumn);
196 private ImageIcon getImage(String name) {
197 ImageIcon icon = new ImageIcon(getClass().getResource(name));
199 while(icon.getImageLoadStatus() == MediaTracker.LOADING)
202 } catch (InterruptedException e) {