X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=ca4b88073df161ebf2b91432c43de04fd2f90fdc;hb=6486a5333807ca300db4a28a6bf9899f5dddf5a6;hp=87776d30399b229c783508f3c7e28717652449a1;hpb=6b544d4a85673db44b7f75f40c22d9b7425d444e;p=jalview.git
diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java
index 87776d3..ca4b880 100755
--- a/src/jalview/gui/AlignFrame.java
+++ b/src/jalview/gui/AlignFrame.java
@@ -30,6 +30,7 @@ import javax.swing.*;
import javax.swing.event.MenuEvent;
import jalview.analysis.*;
+import jalview.bin.Cache;
import jalview.commands.*;
import jalview.datamodel.*;
import jalview.io.*;
@@ -514,25 +515,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
/* Set up intrinsic listeners for dynamically generated GUI bits. */
private void addServiceListeners()
{
- final java.beans.PropertyChangeListener thisListener, thatListener;
- // Do this once to get current state
- BuildWebServiceMenu();
- Desktop.discoverer
- .addPropertyChangeListener(thisListener = new java.beans.PropertyChangeListener()
+ final java.beans.PropertyChangeListener thisListener;
+ Desktop.instance.addJalviewPropertyChangeListener("services",
+ thisListener = new java.beans.PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent evt)
{
- // System.out.println("Discoverer property change.");
- if (evt.getPropertyName().equals("services"))
+ // // System.out.println("Discoverer property change.");
+ // if (evt.getPropertyName().equals("services"))
{
SwingUtilities.invokeLater(new Runnable()
{
- @Override
public void run()
{
System.err
- .println("Change support JWS1: build services again.");
+ .println("Rebuild WS Menu for service change");
BuildWebServiceMenu();
}
@@ -540,29 +538,25 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
}
}
});
- jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
- .addPropertyChangeListener(
- thatListener = new java.beans.PropertyChangeListener()
- {
- public void propertyChange(PropertyChangeEvent evt)
- {
- System.err
- .println("Change support JWS2: build services again.");
- BuildWebServiceMenu();
- }
- });
addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
{
public void internalFrameClosed(
javax.swing.event.InternalFrameEvent evt)
{
- // System.out.println("deregistering discoverer listener");
- Desktop.discoverer.removePropertyChangeListener(thisListener);
- jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
- .removePropertyChangeListener(thatListener);
+ System.out.println("deregistering discoverer listener");
+ Desktop.instance.removeJalviewPropertyChangeListener("services",
+ thisListener);
closeMenuItem_actionPerformed(true);
};
});
+ // Finally, build the menu once to get current service state
+ new Thread(new Runnable()
+ {
+ public void run()
+ {
+ BuildWebServiceMenu();
+ }
+ }).start();
}
public void setGUINucleotide(boolean nucleotide)
@@ -705,8 +699,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
public void actionPerformed(ActionEvent e)
{
handler.cancelActivity(id);
- us.setProgressBar("Cancelled "
- + ((JLabel) progressPanel.getComponent(0)).getText(), id);
+ us.setProgressBar(
+ "Cancelled "
+ + ((JLabel) progressPanel.getComponent(0))
+ .getText(), id);
}
});
progressPanel.add(cancel, BorderLayout.EAST);
@@ -844,8 +840,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
*/
public void saveAs_actionPerformed(ActionEvent e)
{
- JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache
- .getProperty("LAST_DIRECTORY"),
+ JalviewFileChooser chooser = new JalviewFileChooser(
+ jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
jalview.io.AppletFormatAdapter.WRITABLE_EXTENSIONS,
jalview.io.AppletFormatAdapter.WRITABLE_FNAMES,
currentFileFormat, false);
@@ -1015,11 +1011,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
CutAndPasteTransfer cap = new CutAndPasteTransfer();
cap.setForInput(null);
- Desktop.addInternalFrame(cap, "Alignment output - "
- + e.getActionCommand(), 600, 500);
- cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(),
- viewport.alignment, omitHidden, viewport.colSel));
+ try
+ {
+ cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(),
+ viewport.alignment, omitHidden, viewport.colSel));
+ Desktop.addInternalFrame(cap,
+ "Alignment output - " + e.getActionCommand(), 600, 500);
+ } catch (OutOfMemoryError oom)
+ {
+ new OOMWarning("Outputting alignment as " + e.getActionCommand(), oom);
+ cap.dispose();
+ }
+
}
/**
@@ -1030,9 +1034,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
*/
protected void htmlMenuItem_actionPerformed(ActionEvent e)
{
- new HTMLOutput(alignPanel, alignPanel.seqPanel.seqCanvas
- .getSequenceRenderer(), alignPanel.seqPanel.seqCanvas
- .getFeatureRenderer());
+ new HTMLOutput(alignPanel,
+ alignPanel.seqPanel.seqCanvas.getSequenceRenderer(),
+ alignPanel.seqPanel.seqCanvas.getFeatureRenderer());
}
public void createImageMap(File file, String image)
@@ -1088,7 +1092,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
public void exportAnnotations_actionPerformed(ActionEvent e)
{
- new AnnotationExporter().exportAnnotations(alignPanel,
+ new AnnotationExporter().exportAnnotations(
+ alignPanel,
viewport.showAnnotation ? viewport.alignment
.getAlignmentAnnotation() : null, viewport.alignment
.getGroups(),
@@ -1098,8 +1103,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
public void associatedData_actionPerformed(ActionEvent e)
{
// Pick the tree file
- JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache
- .getProperty("LAST_DIRECTORY"));
+ JalviewFileChooser chooser = new JalviewFileChooser(
+ jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle("Load Jalview Annotations or Features File");
chooser.setToolTipText("Load Jalview Annotations / Features file");
@@ -1539,11 +1544,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
jalview.gui.Desktop.internalCopy = true;
// Its really worth setting the clipboard contents
// to empty before setting the large StringSelection!!
- Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
- new StringSelection(""), null);
+ Toolkit.getDefaultToolkit().getSystemClipboard()
+ .setContents(new StringSelection(""), null);
- Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,
- Desktop.instance);
+ Toolkit.getDefaultToolkit().getSystemClipboard()
+ .setContents(ss, Desktop.instance);
} catch (OutOfMemoryError er)
{
new OOMWarning("copying region", er);
@@ -1806,8 +1811,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
}
buildSortByAnnotationScoresMenu();
}
- viewport.firePropertyChange("alignment", null, alignment
- .getSequences());
+ viewport.firePropertyChange("alignment", null,
+ alignment.getSequences());
}
else
@@ -2704,8 +2709,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
}
pos = npos + 1;
} while (npos != -1);
- contents
- .append("
" + key + " | " + val + " |
");
+ contents.append("" + key + " | " + val + " |
");
}
contents.append("");
}
@@ -2733,19 +2737,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
JInternalFrame frame = new JInternalFrame();
OverviewPanel overview = new OverviewPanel(alignPanel);
frame.setContentPane(overview);
- Desktop.addInternalFrame(frame, "Overview " + this.getTitle(), frame
- .getWidth(), frame.getHeight());
+ Desktop.addInternalFrame(frame, "Overview " + this.getTitle(),
+ frame.getWidth(), frame.getHeight());
frame.pack();
frame.setLayer(JLayeredPane.PALETTE_LAYER);
- frame
- .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
- {
- public void internalFrameClosed(
- javax.swing.event.InternalFrameEvent evt)
- {
- alignPanel.setOverviewPanel(null);
- };
- });
+ frame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
+ {
+ public void internalFrameClosed(
+ javax.swing.event.InternalFrameEvent evt)
+ {
+ alignPanel.setOverviewPanel(null);
+ };
+ });
alignPanel.setOverviewPanel(overview);
}
@@ -2775,8 +2778,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
public void clustalColour_actionPerformed(ActionEvent e)
{
changeColour(new ClustalxColourScheme(
- viewport.alignment.getSequences(), viewport.alignment
- .getWidth()));
+ viewport.alignment.getSequences(),
+ viewport.alignment.getWidth()));
}
/**
@@ -2914,8 +2917,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
Alignment al = (Alignment) viewport.alignment;
Conservation c = new Conservation("All",
- ResidueProperties.propHash, 3, al.getSequences(), 0, al
- .getWidth() - 1);
+ ResidueProperties.propHash, 3, al.getSequences(), 0,
+ al.getWidth() - 1);
c.calculate();
c.verdict(false, viewport.ConsPercGaps);
@@ -2951,8 +2954,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
if (cs instanceof ClustalxColourScheme)
{
- sg.cs = new ClustalxColourScheme(sg
- .getSequences(viewport.hiddenRepSequences), sg.getWidth());
+ sg.cs = new ClustalxColourScheme(
+ sg.getSequences(viewport.hiddenRepSequences),
+ sg.getWidth());
}
else if (cs instanceof UserColourScheme)
{
@@ -2974,9 +2978,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
{
sg.cs.setThreshold(threshold, viewport.getIgnoreGapsConsensus());
- sg.cs.setConsensus(AAFrequency.calculate(sg
- .getSequences(viewport.hiddenRepSequences), sg
- .getStartRes(), sg.getEndRes() + 1));
+ sg.cs.setConsensus(AAFrequency.calculate(
+ sg.getSequences(viewport.hiddenRepSequences),
+ sg.getStartRes(), sg.getEndRes() + 1));
}
else
{
@@ -2986,9 +2990,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
if (viewport.getConservationSelected())
{
Conservation c = new Conservation("Group",
- ResidueProperties.propHash, 3, sg
- .getSequences(viewport.hiddenRepSequences), sg
- .getStartRes(), sg.getEndRes() + 1);
+ ResidueProperties.propHash, 3,
+ sg.getSequences(viewport.hiddenRepSequences),
+ sg.getStartRes(), sg.getEndRes() + 1);
c.calculate();
c.verdict(false, viewport.ConsPercGaps);
sg.cs.setConservation(c);
@@ -3019,8 +3023,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
if (viewport.getAbovePIDThreshold()
&& viewport.globalColourScheme != null)
{
- SliderPanel.setPIDSliderSource(alignPanel, viewport
- .getGlobalColourScheme(), "Background");
+ SliderPanel.setPIDSliderSource(alignPanel,
+ viewport.getGlobalColourScheme(), "Background");
SliderPanel.showPIDSlider();
}
}
@@ -3130,8 +3134,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
if (evt.isControlDown()
|| SwingUtilities.isRightMouseButton(evt))
{
- radioItem
- .removeActionListener(radioItem.getActionListeners()[0]);
+ radioItem.removeActionListener(radioItem.getActionListeners()[0]);
int option = JOptionPane.showInternalConfirmDialog(
jalview.gui.Desktop.desktop,
@@ -3505,8 +3508,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
public void actionPerformed(ActionEvent e)
{
SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
- AlignmentSorter.sortByAnnotationScore(scoreLabel, viewport
- .getAlignment());// ,viewport.getSelectionGroup());
+ AlignmentSorter.sortByAnnotationScore(scoreLabel,
+ viewport.getAlignment());// ,viewport.getSelectionGroup());
addHistoryItem(new OrderCommand("Sort by " + scoreLabel, oldOrder,
viewport.alignment));
alignPanel.paintAlignment(true);
@@ -3554,8 +3557,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
Enumeration labels = scoreSorts.keys();
while (labels.hasMoreElements())
{
- addSortByAnnotScoreMenuItem(sortByAnnotScore, (String) labels
- .nextElement());
+ addSortByAnnotScoreMenuItem(sortByAnnotScore,
+ (String) labels.nextElement());
}
sortByAnnotScore.setVisible(scoreSorts.size() > 0);
scoreSorts.clear();
@@ -3710,8 +3713,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
protected void LoadtreeMenuItem_actionPerformed(ActionEvent e)
{
// Pick the tree file
- JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache
- .getProperty("LAST_DIRECTORY"));
+ JalviewFileChooser chooser = new JalviewFileChooser(
+ jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle("Select a newick-like tree file");
chooser.setToolTipText("Load a tree file");
@@ -3735,8 +3738,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
}
if (fin != null && fin.hasWarningMessage())
{
- JOptionPane.showMessageDialog(Desktop.desktop, fin
- .getWarningMessage(), "Possible problem with tree file",
+ JOptionPane.showMessageDialog(Desktop.desktop,
+ fin.getWarningMessage(), "Possible problem with tree file",
JOptionPane.WARNING_MESSAGE);
}
}
@@ -3828,7 +3831,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
}
;
}
+ final AlignFrame me = this;
buildingMenu = true;
+ new Thread(new Runnable() {
+ public void run() {
try
{
System.err
@@ -3841,9 +3847,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
// TODO: add in rediscovery GUI function to restart discoverer
// TODO: group services by location as well as function and/or introduce
// object broker mechanism.
- Vector wsmenu = new Vector();
- final IProgressIndicator af = this;
- if ((Discoverer.services != null) && (Discoverer.services.size() > 0))
+ final Vector wsmenu = new Vector();
+ final IProgressIndicator af = me;
+ if (Cache.getDefault("SHOW_JWS1_SERVICES", true)
+ && Discoverer.services != null
+ && (Discoverer.services.size() > 0))
{
// TODO: refactor to allow list of AbstractName/Handler bindings to be
// stored or retrieved from elsewhere
@@ -3864,7 +3872,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
.get(i);
jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
.getServiceClient(sh);
- impl.attachWSMenuEntry(msawsmenu, this);
+ impl.attachWSMenuEntry(msawsmenu, me);
}
wsmenu.add(msawsmenu);
@@ -3880,7 +3888,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
.get(i);
jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
.getServiceClient(sh);
- impl.attachWSMenuEntry(secstrmenu, this);
+ impl.attachWSMenuEntry(secstrmenu, me);
}
wsmenu.add(secstrmenu);
}
@@ -3894,13 +3902,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
.elementAt(i);
jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
.getServiceClient(sh);
- impl.attachWSMenuEntry(seqsrchmenu, this);
+ impl.attachWSMenuEntry(seqsrchmenu, me);
}
wsmenu.add(seqsrchmenu);
}
}
// TODO: move into separate menu builder class.
+ if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
{
Jws2Discoverer jws2servs = Jws2Discoverer.getDiscoverer();
if (jws2servs != null)
@@ -3908,18 +3917,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
if (jws2servs.hasServices())
{
JMenu jws2men = new JMenu("Jalview 2 Services");
- jws2servs.attachWSMenuEntry(jws2men, this);
- wsmenu.add(jws2men);
- }
- else
- {
- if (!jws2servs.isRunning())
+ jws2servs.attachWSMenuEntry(jws2men, me);
+ for (int i = 0, iSize = jws2men.getMenuComponentCount(); i < iSize; i++)
{
- new Thread(jws2servs).start();
+ wsmenu.add(jws2men.getMenuComponent(i));
}
}
}
}
+
+ javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() {
+ try {
+
resetWebServiceMenu();
// finally, add the whole shebang onto the webservices menu
if (wsmenu.size() > 0)
@@ -3931,13 +3940,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
}
else
{
- this.webService.add(this.webServiceNoServices);
+ me.webService.add(me.webServiceNoServices);
}
+ } catch (Exception e)
+ {
+ }
+ ;
+ }
+ });
} catch (Exception e)
{
}
;
+
buildingMenu = false;
+ }}).start();
+
}
/**
@@ -3959,8 +3977,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
*/
private void build_urlServiceMenu(JMenu webService)
{
- jalview.ws.EnfinEnvision2OneWay.getInstance().attachWSMenuEntry(
- webService, this);
+ if (Cache.getDefault("SHOW_ENFIN_SERVICES", true))
+ {
+ jalview.ws.EnfinEnvision2OneWay.getInstance().attachWSMenuEntry(
+ webService, this);
+ }
}
/*
@@ -4045,8 +4066,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
} catch (Exception e)
{
jalview.bin.Cache.log
- .warn(
- "canTranslate threw an exception - please report to help@jalview.org",
+ .warn("canTranslate threw an exception - please report to help@jalview.org",
e);
return false;
}
@@ -4136,13 +4156,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
// old way
try
{
- return (jalview.analysis.Dna.canTranslate(selection, viewport
- .getViewAsVisibleContigs(true)));
+ return (jalview.analysis.Dna.canTranslate(selection,
+ viewport.getViewAsVisibleContigs(true)));
} catch (Exception e)
{
jalview.bin.Cache.log
- .warn(
- "canTranslate threw an exception - please report to help@jalview.org",
+ .warn("canTranslate threw an exception - please report to help@jalview.org",
e);
return false;
}
@@ -4231,9 +4250,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
boolean featuresFile = false;
try
{
- featuresFile = new FeaturesFile(file, type).parse(viewport.alignment
- .getDataset(), alignPanel.seqPanel.seqCanvas
- .getFeatureRenderer().featureColours, false);
+ featuresFile = new FeaturesFile(file, type)
+ .parse(viewport.alignment.getDataset(),
+ alignPanel.seqPanel.seqCanvas.getFeatureRenderer().featureColours,
+ false);
} catch (Exception ex)
{
ex.printStackTrace();
@@ -4373,8 +4393,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
{
jalview.io.JPredFile predictions = new jalview.io.JPredFile(file,
protocol);
- new JnetAnnotationMaker().add_annotation(predictions, viewport
- .getAlignment(), 0, false);
+ new JnetAnnotationMaker().add_annotation(predictions,
+ viewport.getAlignment(), 0, false);
isAnnotation = true;
}
else
@@ -4515,13 +4535,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
// preferences and have checkboxes.. rather than individual sources selected
// here
JMenu rfetch = new JMenu("Fetch DB References");
- rfetch
- .setToolTipText("Retrieve and parse sequence database records for the alignment or the currently selected sequences");
+ rfetch.setToolTipText("Retrieve and parse sequence database records for the alignment or the currently selected sequences");
webService.add(rfetch);
JMenuItem fetchr = new JMenuItem("Standard Databases");
- fetchr
- .setToolTipText("Fetch from EMBL/EMBLCDS or Uniprot/PDB and any selected DAS sources");
+ fetchr.setToolTipText("Fetch from EMBL/EMBLCDS or Uniprot/PDB and any selected DAS sources");
fetchr.addActionListener(new ActionListener()
{
@@ -4704,8 +4722,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
if (viewport.getSelectionGroup() != null)
{
SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom(
- viewport.getSequenceSelection(), viewport.getAlignmentView(
- true).getSequenceStrings(viewport.getGapCharacter()),
+ viewport.getSequenceSelection(),
+ viewport.getAlignmentView(true).getSequenceStrings(
+ viewport.getGapCharacter()),
viewport.alignment.getGroups());
viewport.alignment.deleteAllGroups();
viewport.sequenceColours = null;
@@ -4716,8 +4735,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
gps[g].setShowNonconserved(viewport.getShowUnconserved());
gps[g].setshowSequenceLogo(viewport.isShowSequenceLogo());
viewport.alignment.addGroup(gps[g]);
- Color col = new Color((int) (Math.random() * 255), (int) (Math
- .random() * 255), (int) (Math.random() * 255));
+ Color col = new Color((int) (Math.random() * 255),
+ (int) (Math.random() * 255), (int) (Math.random() * 255));
col = col.brighter();
for (Enumeration sq = gps[g].getSequences(null).elements(); sq
.hasMoreElements(); viewport.setSequenceColour(