Hidden representatives moved from sequence to viewport
[jalview.git] / src / jalview / gui / FeatureSettings.java
index 0398c71..a3a2396 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
  *\r
  * This program is free software; you can redistribute it and/or\r
  * modify it under the terms of the GNU General Public License\r
@@ -35,11 +35,12 @@ import java.awt.Color;
 public class FeatureSettings extends JPanel\r
 {\r
   DasSourceBrowser dassourceBrowser;\r
+  jalview.io.DasSequenceFeatureFetcher dasFeatureFetcher;\r
   JPanel settingsPane = new JPanel();\r
   JPanel dasSettingsPane = new JPanel();\r
 \r
   final FeatureRenderer fr;\r
-  final AlignFrame af;\r
+  public final AlignFrame af;\r
   Object [][] originalData;\r
   final JInternalFrame frame;\r
   JScrollPane scrollPane = new JScrollPane();\r
@@ -217,8 +218,8 @@ public class FeatureSettings extends JPanel
   }\r
 \r
      resetTable(false);\r
-     if (groupPanel != null)\r
-       groupPanel.validate();\r
+\r
+     validate();\r
   }\r
 \r
 \r
@@ -293,6 +294,13 @@ public class FeatureSettings extends JPanel
       data[dataIndex][0] = type;\r
 \r
       data[dataIndex][1] = fr.getColour(type);\r
+      if (data[dataIndex][1] == null)\r
+      {\r
+        //"Colour has been updated in another view!!"\r
+        fr.renderOrder = null;\r
+        return;\r
+      }\r
+\r
       data[dataIndex][2] = new Boolean(true);\r
       dataIndex++;\r
     }\r
@@ -450,6 +458,7 @@ public class FeatureSettings extends JPanel
   JPanel dasButtonPanel = new JPanel();\r
   JButton fetchDAS = new JButton();\r
   JButton saveDAS = new JButton();\r
+  JButton cancelDAS = new JButton();\r
   private void jbInit()\r
       throws Exception\r
   {\r
@@ -532,8 +541,17 @@ public class FeatureSettings extends JPanel
     });\r
     dasButtonPanel.setBorder(BorderFactory.createEtchedBorder());\r
     dasSettingsPane.setBorder(null);\r
+    cancelDAS.setEnabled(false);\r
+    cancelDAS.setText("Cancel Fetch");\r
+    cancelDAS.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        cancelDAS_actionPerformed(e);\r
+      }\r
+    });\r
     this.add(tabbedPane, java.awt.BorderLayout.CENTER);\r
-    tabbedPane.addTab("Display Settings", settingsPane );\r
+    tabbedPane.addTab("Feature Settings", settingsPane );\r
     tabbedPane.addTab("DAS Settings", dasSettingsPane);\r
     bigPanel.add(transPanel, java.awt.BorderLayout.SOUTH);\r
     transPanel.add(transparency);\r
@@ -545,6 +563,7 @@ public class FeatureSettings extends JPanel
     bigPanel.add(scrollPane, java.awt.BorderLayout.CENTER);\r
     dasSettingsPane.add(dasButtonPanel, java.awt.BorderLayout.SOUTH);\r
     dasButtonPanel.add(fetchDAS);\r
+    dasButtonPanel.add(cancelDAS);\r
     dasButtonPanel.add(saveDAS);\r
     settingsPane.add(bigPanel, java.awt.BorderLayout.CENTER);\r
     settingsPane.add(buttonPanel, java.awt.BorderLayout.SOUTH);\r
@@ -552,15 +571,17 @@ public class FeatureSettings extends JPanel
 \r
   public void fetchDAS_actionPerformed(ActionEvent e)\r
   {\r
+    fetchDAS.setEnabled(false);\r
+    cancelDAS.setEnabled(true);\r
     Vector selectedSources = dassourceBrowser.getSelectedSources();\r
 \r
     SequenceI [] dataset, seqs ;\r
     int iSize;\r
 \r
     if(af.getViewport().getSelectionGroup()!=null\r
-      && af.getViewport().getSelectionGroup().getSize(false)>0)\r
+      && af.getViewport().getSelectionGroup().getSize()>0)\r
     {\r
-      iSize = af.getViewport().getSelectionGroup().getSize(false);\r
+      iSize = af.getViewport().getSelectionGroup().getSize();\r
       dataset = new SequenceI[iSize];\r
       seqs = af.getViewport().getSelectionGroup().\r
           getSequencesInOrder(\r
@@ -578,9 +599,10 @@ public class FeatureSettings extends JPanel
       dataset[i] = seqs[i].getDatasetSequence();\r
     }\r
 \r
-    new jalview.io.DasSequenceFeatureFetcher(\r
+    dasFeatureFetcher =\r
+        new jalview.io.DasSequenceFeatureFetcher(\r
         dataset,\r
-        af,\r
+        this,\r
         selectedSources);\r
 \r
     af.getViewport().setShowSequenceFeatures(true);\r
@@ -592,6 +614,19 @@ public class FeatureSettings extends JPanel
     dassourceBrowser.saveProperties(jalview.bin.Cache.applicationProperties);\r
   }\r
 \r
+  public void complete()\r
+  {\r
+    fetchDAS.setEnabled(true);\r
+    cancelDAS.setEnabled(false);\r
+  }\r
+\r
+  public void cancelDAS_actionPerformed(ActionEvent e)\r
+  {\r
+    dasFeatureFetcher.cancel();\r
+    fetchDAS.setEnabled(true);\r
+    cancelDAS.setEnabled(false);\r
+  }\r
+\r
   /////////////////////////////////////////////////////////////////////////\r
   // http://java.sun.com/docs/books/tutorial/uiswing/components/table.html\r
   /////////////////////////////////////////////////////////////////////////\r