Better treatment of error states and cancellability in wsclient.
[jalview.git] / src / jalview / gui / Desktop.java
index 4b0ffee..95c08a1 100755 (executable)
@@ -12,14 +12,13 @@ package jalview.gui;
 import jalview.gui.*;\r
 import jalview.io.*;\r
 import jalview.datamodel.*;\r
-import jalview.schemes.*;\r
 import javax.swing.*;\r
 import java.awt.*;\r
 import java.awt.event.*;\r
 import java.awt.dnd.*;\r
 import javax.swing.*;\r
 import java.awt.datatransfer.*;\r
-import java.io.*;\r
+import jalview.bin.Cache;\r
 \r
 \r
 public class Desktop extends jalview.jbgui.GDesktop implements DropTargetListener\r
@@ -171,6 +170,7 @@ this.setDropTarget(new java.awt.dnd.DropTarget(desktop, this));
    }catch(Exception ex){ex.printStackTrace();}\r
   }\r
 \r
+\r
  public void inputLocalFileMenuItem_actionPerformed(ActionEvent e)\r
  {\r
    JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY"),\r
@@ -190,32 +190,57 @@ this.setDropTarget(new java.awt.dnd.DropTarget(desktop, this));
 \r
  public void LoadFile(String file, String protocol,  String format)\r
  {\r
-   SequenceI [] sequences = null;\r
+   LoadingThread loader = new LoadingThread(file, protocol, format);\r
+   loader.start();\r
+ }\r
 \r
-   if (FormatProperties.contains(format))\r
-       sequences = FormatAdapter.read(file, protocol, format);\r
+ class LoadingThread extends Thread\r
+ {\r
+   String file, protocol, format;\r
 \r
-   if (sequences != null && sequences.length>0)\r
+   public LoadingThread(String file, String protocol,  String format)\r
    {\r
-     AlignFrame af = new AlignFrame(new Alignment(sequences));\r
-     addInternalFrame(af, file, AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT);\r
-     af.statusBar.setText("Successfully loaded file " + file);\r
-\r
+     this.file = file;\r
+     this.protocol = protocol;\r
+     this.format = format;\r
    }\r
-   else\r
-     JOptionPane.showInternalMessageDialog(Desktop.desktop,  "Couldn't open file.\n"\r
-                          + "Formats currently supported are\n"\r
-                          + "Fasta, MSF, Clustal, BLC, PIR, MSP or PFAM" // JBPNote - message should be generated through FormatAdapter!\r
-                          ,"Error loading file",\r
-                                   JOptionPane.WARNING_MESSAGE);\r
+   public void run()\r
+   {\r
+     SequenceI [] sequences = null;\r
+\r
+     if (FormatAdapter.formats.contains(format))\r
+         sequences = FormatAdapter.readFile(file, protocol, format);\r
+\r
+     if (sequences != null && sequences.length>0)\r
+     {\r
+       AlignFrame af = new AlignFrame(new Alignment(sequences));\r
+       addInternalFrame(af, file, AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT);\r
+       af.statusBar.setText("Successfully loaded file " + file);\r
+       try{\r
+           af.setMaximum(Preferences.showFullscreen);\r
+       }catch(Exception ex){}\r
+\r
+     }\r
+     else\r
+       JOptionPane.showInternalMessageDialog(Desktop.desktop,  "Couldn't open file.\n"\r
+                            + "Formats currently supported are\n"\r
+                            + "Fasta, MSF, Clustal, BLC, PIR, MSP or PFAM" // JBPNote - message should be generated through FormatAdapter!\r
+                            ,"Error loading file",\r
+                                     JOptionPane.WARNING_MESSAGE);\r
 \r
+   }\r
  }\r
 \r
+\r
  public void inputURLMenuItem_actionPerformed(ActionEvent e)\r
  {\r
+   JOptionPane op = new JOptionPane();\r
+\r
    String url = JOptionPane.showInternalInputDialog(Desktop.desktop,"Enter url of input file",\r
                                             "Input alignment from URL",\r
-                                            JOptionPane.QUESTION_MESSAGE);\r
+                                            JOptionPane.QUESTION_MESSAGE,\r
+                                            null, null,\r
+                                            "http://www.").toString();\r
    if (url == null)\r
      return;\r
 \r
@@ -247,8 +272,8 @@ this.setDropTarget(new java.awt.dnd.DropTarget(desktop, this));
     String format = IdentifyFile.Identify(cap.getText(), "Paste");\r
     SequenceI [] sequences = null;\r
 \r
-    if (FormatProperties.contains( format ))\r
-      sequences = FormatAdapter.read(cap.getText(), "Paste", format);\r
+    if (FormatAdapter.formats.contains( format ))\r
+      sequences = FormatAdapter.readFile(cap.getText(), "Paste", format);\r
 \r
 \r
       if(sequences!=null)\r
@@ -313,4 +338,12 @@ this.setDropTarget(new java.awt.dnd.DropTarget(desktop, this));
      ex.printStackTrace();\r
    }\r
  }\r
+\r
+ protected void preferences_actionPerformed(ActionEvent e)\r
+ {\r
+   Preferences pref = new Preferences();\r
+ }\r
+\r
 }\r
+\r
+\r