From: Jim Procter Date: Tue, 20 Aug 2013 16:27:16 +0000 (+0100) Subject: JAL-1353 test demonstrating the freeze with minimal jalview code dependency X-Git-Tag: Jalview_2_9~223^2~2^2 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=fdf3e97f5e1100fcd499f76023bb5d293ff10d5e;p=jalview.git JAL-1353 test demonstrating the freeze with minimal jalview code dependency --- diff --git a/test/jalview/gui/JAL1353bugdemo.java b/test/jalview/gui/JAL1353bugdemo.java new file mode 100644 index 0000000..486c098 --- /dev/null +++ b/test/jalview/gui/JAL1353bugdemo.java @@ -0,0 +1,127 @@ +package jalview.gui; + +import static org.junit.Assert.*; +import jalview.bin.Cache; + +import java.awt.Component; +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; + +import javax.swing.JDesktopPane; +import javax.swing.JFrame; +import javax.swing.JInternalFrame; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JPanel; +import javax.swing.JTextArea; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +public class JAL1353bugdemo +{ + + @BeforeClass + public static void setUpBeforeClass() throws Exception + { + } + + @AfterClass + public static void tearDownAfterClass() throws Exception + { + } + volatile boolean finish=false; + + @Test + public void test() + { + Cache.initLogger(); + // final Desktop foo = new Desktop(); + final JFrame cfoo = new JFrame("Crash Java"); + final JDesktopPane foo=new JDesktopPane(); + foo.setPreferredSize(new Dimension(600,800)); + cfoo.setSize(600, 800); + final JInternalFrame cont = new JInternalFrame("My Frame"); + JTextArea evt; + cont.setPreferredSize(new Dimension(400, 300)); + cont.add(evt=new JTextArea("Click here and drag text over this window to freeze java.\n\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\n")); + cont.pack(); + foo.add("A frame",cont); + foo.setVisible(true); + foo.setEnabled(true); + foo.doLayout(); + cfoo.add(foo); + final JMenu jm = new JMenu("Do"); + JMenuItem jmi=new JMenuItem("this"); + jm.add(jmi); + evt.addMouseListener(new MouseListener() + { + + @Override + public void mouseReleased(MouseEvent e) + { + } + + @Override + public void mousePressed(MouseEvent e) + { + // TODO Auto-generated method stub + + } + + @Override + public void mouseExited(MouseEvent e) + { + // TODO Auto-generated method stub + + } + + @Override + public void mouseEntered(MouseEvent e) + { + // TODO Auto-generated method stub + + } + + @Override + public void mouseClicked(MouseEvent e) + { +// JFrame parent = new JFrame(); +// parent.setBounds(foo.getBounds()); +// JPanel oo = new JPanel(); +// parent.add(oo); +// oo.setVisible(true); +// parent.setVisible(true); + EditNameDialog end =new EditNameDialog("Sequence Name", "Sequence Description","label 1", "Label 2", "Try and drag between the two text fields", foo);//);cont.getRootPane()); + assert(end!=null); + finish=true; + } + }); + cont.setVisible(true); + + jmi.addActionListener(new ActionListener() + { + + @Override + public void actionPerformed(ActionEvent arg0) + { + EditNameDialog end =new EditNameDialog("Sequence Name", "Sequence Description","label 1", "Label 2", "Try and drag between the two text fields", cont); + assert(end!=null); + finish=true; + } + }); + foo.setVisible(true); + cfoo.setVisible(true); + while (!finish) + { + try { + Thread.sleep(100); + } catch (InterruptedException x) {} + } + } + +}