X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FFeatureSettings.java;h=a3a23964579116ad01f4bb1881014106f729d703;hb=70521510729fc31f12b71b4ae82586f72103057f;hp=ef688f7b6327f695b76c1f89f75844cbdb25245f;hpb=ae3b7664d0d98f376b1f636edc34aaff6b8a914a;p=jalview.git diff --git a/src/jalview/gui/FeatureSettings.java b/src/jalview/gui/FeatureSettings.java index ef688f7..a3a2396 100755 --- a/src/jalview/gui/FeatureSettings.java +++ b/src/jalview/gui/FeatureSettings.java @@ -35,11 +35,12 @@ import java.awt.Color; public class FeatureSettings extends JPanel { DasSourceBrowser dassourceBrowser; + jalview.io.DasSequenceFeatureFetcher dasFeatureFetcher; JPanel settingsPane = new JPanel(); JPanel dasSettingsPane = new JPanel(); final FeatureRenderer fr; - final AlignFrame af; + public final AlignFrame af; Object [][] originalData; final JInternalFrame frame; JScrollPane scrollPane = new JScrollPane(); @@ -293,6 +294,13 @@ public class FeatureSettings extends JPanel data[dataIndex][0] = type; data[dataIndex][1] = fr.getColour(type); + if (data[dataIndex][1] == null) + { + //"Colour has been updated in another view!!" + fr.renderOrder = null; + return; + } + data[dataIndex][2] = new Boolean(true); dataIndex++; } @@ -450,6 +458,7 @@ public class FeatureSettings extends JPanel JPanel dasButtonPanel = new JPanel(); JButton fetchDAS = new JButton(); JButton saveDAS = new JButton(); + JButton cancelDAS = new JButton(); private void jbInit() throws Exception { @@ -532,6 +541,15 @@ public class FeatureSettings extends JPanel }); dasButtonPanel.setBorder(BorderFactory.createEtchedBorder()); dasSettingsPane.setBorder(null); + cancelDAS.setEnabled(false); + cancelDAS.setText("Cancel Fetch"); + cancelDAS.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + cancelDAS_actionPerformed(e); + } + }); this.add(tabbedPane, java.awt.BorderLayout.CENTER); tabbedPane.addTab("Feature Settings", settingsPane ); tabbedPane.addTab("DAS Settings", dasSettingsPane); @@ -545,6 +563,7 @@ public class FeatureSettings extends JPanel bigPanel.add(scrollPane, java.awt.BorderLayout.CENTER); dasSettingsPane.add(dasButtonPanel, java.awt.BorderLayout.SOUTH); dasButtonPanel.add(fetchDAS); + dasButtonPanel.add(cancelDAS); dasButtonPanel.add(saveDAS); settingsPane.add(bigPanel, java.awt.BorderLayout.CENTER); settingsPane.add(buttonPanel, java.awt.BorderLayout.SOUTH); @@ -552,15 +571,17 @@ public class FeatureSettings extends JPanel public void fetchDAS_actionPerformed(ActionEvent e) { + fetchDAS.setEnabled(false); + cancelDAS.setEnabled(true); Vector selectedSources = dassourceBrowser.getSelectedSources(); SequenceI [] dataset, seqs ; int iSize; if(af.getViewport().getSelectionGroup()!=null - && af.getViewport().getSelectionGroup().getSize(false)>0) + && af.getViewport().getSelectionGroup().getSize()>0) { - iSize = af.getViewport().getSelectionGroup().getSize(false); + iSize = af.getViewport().getSelectionGroup().getSize(); dataset = new SequenceI[iSize]; seqs = af.getViewport().getSelectionGroup(). getSequencesInOrder( @@ -578,9 +599,10 @@ public class FeatureSettings extends JPanel dataset[i] = seqs[i].getDatasetSequence(); } - new jalview.io.DasSequenceFeatureFetcher( + dasFeatureFetcher = + new jalview.io.DasSequenceFeatureFetcher( dataset, - af, + this, selectedSources); af.getViewport().setShowSequenceFeatures(true); @@ -592,6 +614,19 @@ public class FeatureSettings extends JPanel dassourceBrowser.saveProperties(jalview.bin.Cache.applicationProperties); } + public void complete() + { + fetchDAS.setEnabled(true); + cancelDAS.setEnabled(false); + } + + public void cancelDAS_actionPerformed(ActionEvent e) + { + dasFeatureFetcher.cancel(); + fetchDAS.setEnabled(true); + cancelDAS.setEnabled(false); + } + ///////////////////////////////////////////////////////////////////////// // http://java.sun.com/docs/books/tutorial/uiswing/components/table.html /////////////////////////////////////////////////////////////////////////