2 import jalview.gui.Desktop;
3 import jalview.gui.JvOptionPane;
4 import jalview.util.MessageManager;
6 import java.awt.BorderLayout;
7 import java.awt.ComponentOrientation;
8 import java.awt.Container;
9 import java.awt.Dimension;
11 import java.awt.GridLayout;
12 import java.awt.MediaTracker;
14 import java.text.DecimalFormat;
15 import java.util.HashMap;
16 import java.util.Locale;
19 import javax.swing.ImageIcon;
20 import javax.swing.JButton;
21 import javax.swing.JCheckBox;
22 import javax.swing.JCheckBoxMenuItem;
23 import javax.swing.JFrame;
24 import javax.swing.JLabel;
25 import javax.swing.JMenu;
26 import javax.swing.JMenuBar;
27 import javax.swing.JPanel;
28 import javax.swing.JRadioButton;
29 import javax.swing.JRadioButtonMenuItem;
30 import javax.swing.SwingConstants;
31 import javax.swing.WindowConstants;
32 import javax.swing.border.TitledBorder;
35 * A class with a main method entry point for ad hoc tests of JalviewJS
36 * behaviour. The J2S transpiler should generate an html entry point for this
37 * class, allowing comparison between Java and Javascript execution.
39 public class JalviewJSTest extends JPanel
41 public static void main(String[] args)
43 new JalviewJSTest().doTest5();
47 * Dialog message truncation
51 JFrame main = new JFrame();
52 main.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
53 main.setContentPane(new JPanel());
54 main.setMinimumSize(new Dimension(100, 100));
56 main.setVisible(true);
59 * like AlignFrame.delete_actionPerformed()
60 * except here it works fine, also in JS
62 JvOptionPane dialog = JvOptionPane.newOptionDialog(null);
63 Object[] options = new Object[] { "OK", "Cancel" };
64 String msg = "<html>Deleting all sequences will close the alignment window.<br>Confirm deletion or Cancel.";
65 dialog.showDialog(msg, "", JvOptionPane.DEFAULT_OPTION, JvOptionPane.PLAIN_MESSAGE, null, options, options[0]);
71 Float fl = new Float(0f);
72 System.out.println(fl.isInfinite());
73 System.out.println(fl.isNaN());
75 System.out.println(Float.isInfinite(0f));
76 System.out.println(Float.isFinite(0f));
77 System.out.println(Float.isNaN(0f));
82 System.out.println("Mungo".toLowerCase(Locale.getDefault()));
83 System.out.println("Mungo".toLowerCase(Locale.ENGLISH));
84 System.out.println("Mungo".toLowerCase(Locale.ROOT));
88 Map<File, String> map = new HashMap<>();
89 File f1 = new File("/var/folders/y/xyz");
90 File f2 = new File("/var/folders/y/xyz");
91 map.put(f1, "hello world");
92 System.out.println("f1.equals(f2) = " + f1.equals(f2));
93 System.out.println("f1 hashCode = " + f1.hashCode());
94 System.out.println("f2 hashCode = " + f2.hashCode());
95 System.out.println(map.get(f2));
99 * Put some content in a JFrame and show it
103 System.out.println("ab;c;".split(";"));
104 new DecimalFormat("###,###").format((Integer) 1);
105 JFrame main = new JFrame();
106 main.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
107 JMenu menu = new JMenu("testing");
108 menu.setHorizontalAlignment(SwingConstants.RIGHT);
109 main.setContentPane(getVisualPaneContent(menu));
110 main.setJMenuBar(new JMenuBar());
111 main.getJMenuBar().add(menu);
113 main.setVisible(true);
117 * Builds a cut-down 'Preferences Visual tab' for a minimal test of layout
121 Container getVisualPaneContent(JMenu menu)
123 JPanel panel = new JPanel();
124 panel.setPreferredSize(new Dimension(400, 500));
125 panel.setOpaque(true);
126 panel.setLayout(new BorderLayout());
128 JPanel firstColumn = new JPanel();
129 firstColumn.setLayout(new GridLayout(10, 1));
130 firstColumn.setBorder(new TitledBorder("column 1"));
134 * - checkbox label and text extend outside the enclosing panel in JS
136 Font font = new Font("Verdana", Font.PLAIN, 11);
138 JLabel l1 = new JLabel(getImage("test2.png"));
139 l1.setText("trailing right");
140 l1.setHorizontalTextPosition(SwingConstants.TRAILING);
141 l1.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
142 l1.setHorizontalAlignment(SwingConstants.RIGHT);
144 JLabel l2 = new JLabel(getImage("test2.png"));
145 l2.setText("leading left");
147 l2.setHorizontalTextPosition(SwingConstants.LEADING);
148 l2.setHorizontalAlignment(SwingConstants.LEFT);
150 JButton b1 = new JButton("right left");
151 b1.setIcon(getImage("test2.png"));
153 b1.setHorizontalTextPosition(SwingConstants.RIGHT);
154 b1.setHorizontalAlignment(SwingConstants.LEFT);
161 JCheckBox cb3 = new JCheckBox("leading,left-to-right,rt");
163 cb3.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
164 cb3.setHorizontalTextPosition(SwingConstants.LEADING);
165 cb3.setHorizontalAlignment(SwingConstants.TRAILING);
167 JCheckBox cb4 = new JCheckBox("leading,right-to-left");
169 cb4.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
170 cb4.setHorizontalTextPosition(SwingConstants.LEADING);
172 JCheckBox cb5 = new JCheckBox("trailing,left-to-right");
174 cb5.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
175 cb5.setHorizontalTextPosition(SwingConstants.TRAILING);
177 JRadioButton rb1 = new JRadioButton("trailing,right-to-left");
179 rb1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
180 rb1.setHorizontalTextPosition(SwingConstants.TRAILING);
182 JRadioButton rb2 = new JRadioButton("right,left-to-right");
184 rb2.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
185 rb2.setHorizontalTextPosition(SwingConstants.RIGHT);
187 JRadioButton rb3 = new JRadioButton("right,right-to-left");
189 rb3.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
190 rb3.setHorizontalTextPosition(SwingConstants.RIGHT);
194 firstColumn.add(cb3);
195 firstColumn.add(cb4);
196 firstColumn.add(cb5);
197 firstColumn.add(rb1);
198 firstColumn.add(rb2);
199 firstColumn.add(rb3);
200 firstColumn.setBounds(200, 20, 200, 500);
202 JCheckBoxMenuItem cb3m = new JCheckBoxMenuItem("leading,left-to-right");
204 cb3m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
205 cb3m.setHorizontalTextPosition(SwingConstants.LEADING);
207 JCheckBoxMenuItem cb4m = new JCheckBoxMenuItem("leading,right-to-left");
209 cb4m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
210 cb4m.setHorizontalTextPosition(SwingConstants.LEADING);
212 JCheckBoxMenuItem cb5m = new JCheckBoxMenuItem("trailing,left-to-right");
214 cb5m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
215 cb5m.setHorizontalTextPosition(SwingConstants.TRAILING);
217 JCheckBoxMenuItem cb6m = new JCheckBoxMenuItem("trailing,right-to-left");
219 cb6m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
220 cb6m.setHorizontalTextPosition(SwingConstants.TRAILING);
222 JRadioButtonMenuItem rb1m = new JRadioButtonMenuItem("trailing,right-to-left");
224 rb1m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
225 rb1m.setHorizontalTextPosition(SwingConstants.TRAILING);
227 JRadioButtonMenuItem rb2m = new JRadioButtonMenuItem("right,left-to-right");
229 rb2m.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
230 rb2m.setHorizontalTextPosition(SwingConstants.RIGHT);
232 JRadioButtonMenuItem rb3m = new JRadioButtonMenuItem("right,right-to-left");
234 rb3m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
235 rb3m.setHorizontalTextPosition(SwingConstants.RIGHT);
237 JMenu m1 = new JMenu("left");
238 JMenu m2 = new JMenu("right");
249 JPanel theTab = new JPanel();
251 theTab.setLayout(null);
252 theTab.add(firstColumn);
258 private ImageIcon getImage(String name) {
259 ImageIcon icon = new ImageIcon(getClass().getResource(name));
261 while(icon.getImageLoadStatus() == MediaTracker.LOADING)
264 } catch (InterruptedException e) {