JAL-1353 test demonstrating the freeze with minimal jalview code dependency
authorJim Procter <jprocter@compbio.dundee.ac.uk>
Tue, 20 Aug 2013 16:27:16 +0000 (17:27 +0100)
committerJim Procter <jprocter@compbio.dundee.ac.uk>
Tue, 20 Aug 2013 16:27:16 +0000 (17:27 +0100)
test/jalview/gui/JAL1353bugdemo.java [new file with mode: 0644]

diff --git a/test/jalview/gui/JAL1353bugdemo.java b/test/jalview/gui/JAL1353bugdemo.java
new file mode 100644 (file)
index 0000000..486c098
--- /dev/null
@@ -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) {}
+    }
+  }
+
+}