X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=9b91255f50ba15bc43994c328c9457f6738509c0;hb=797df64fa2a0a30773d0f48f5494d4155e5a8be3;hp=b658ffb7c7b424b6ef2c2fb84523a91ca226b523;hpb=1b3b9ada9b959de9d66b1d477bb155a0c6668c8e;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index b658ffb..9b91255 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle * * This file is part of Jalview. * @@ -65,12 +65,14 @@ import jalview.schemes.HelixColourScheme; import jalview.schemes.HydrophobicColourScheme; import jalview.schemes.NucleotideColourScheme; import jalview.schemes.PIDColourScheme; +import jalview.schemes.PurinePyrimidineColourScheme; import jalview.schemes.ResidueProperties; import jalview.schemes.StrandColourScheme; import jalview.schemes.TaylorColourScheme; import jalview.schemes.TurnColourScheme; import jalview.schemes.UserColourScheme; import jalview.schemes.ZappoColourScheme; +import jalview.ws.WSMenuEntryProviderI; import jalview.ws.jws1.Discoverer; import jalview.ws.jws2.Jws2Discoverer; @@ -400,7 +402,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, || evt.isShiftDown() || evt.isAltDown()); } break; - + + //case KeyEvent.VK_A: + // if (viewport.cursorMode) + // { + // alignPanel.seqPanel.insertNucAtCursor(false,"A"); + // //System.out.println("A"); + // } + // break; + /* + case KeyEvent.VK_CLOSE_BRACKET: + if (viewport.cursorMode) + { + System.out.println("closing bracket"); + } + break; + */ case KeyEvent.VK_DELETE: case KeyEvent.VK_BACK_SPACE: if (!viewport.cursorMode) @@ -573,6 +590,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } ap.av.updateConservation(ap); ap.av.updateConsensus(ap); + ap.av.updateStrucConsensus(ap); } } @@ -644,11 +662,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, conservationMenuItem.setEnabled(!nucleotide); modifyConservation.setEnabled(!nucleotide); showGroupConservation.setEnabled(!nucleotide); + rnahelicesColour.setEnabled(nucleotide); + purinePyrimidineColour.setEnabled(nucleotide); // Remember AlignFrame always starts as protein - if (!nucleotide) - { - calculateMenu.remove(calculateMenu.getItemCount() - 2); - } + //if (!nucleotide) + // { + // showTr + // calculateMenu.remove(calculateMenu.getItemCount() - 2); + // } } /** @@ -698,7 +719,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, applyToAllGroups.setState(av.colourAppliesToAllGroups); showNpFeatsMenuitem.setSelected(av.isShowNpFeats()); showDbRefsMenuitem.setSelected(av.isShowDbRefs()); - + autoCalculate.setSelected(av.autoCalculateConsensus); + sortByTree.setSelected(av.sortByTree); + listenToViewSelections.setSelected(av.followSelection); + rnahelicesColour.setEnabled(av.alignment.hasRNAStructure()); + rnahelicesColour.setSelected(av.getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour); setShowProductsEnabled(); updateEditMenuBar(); @@ -2964,10 +2989,25 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, changeColour(new NucleotideColourScheme()); } + public void purinePyrimidineColour_actionPerformed(ActionEvent e) + { + changeColour(new PurinePyrimidineColourScheme()); + } + /* + public void covariationColour_actionPerformed(ActionEvent e) + { + changeColour(new CovariationColourScheme(viewport.alignment.getAlignmentAnnotation()[0])); + } + */ public void annotationColour_actionPerformed(ActionEvent e) { new AnnotationColourChooser(viewport, alignPanel); } + + public void rnahelicesColour_actionPerformed(ActionEvent e) + { + new RNAHelicesColourChooser(viewport, alignPanel); + } /** * DOCUMENT ME! @@ -3419,7 +3459,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, .getAlignment().getSequences()); } } + public void sortByTreeOption_actionPerformed(ActionEvent e) + { + viewport.sortByTree = sortByTree.isSelected(); + } + @Override + protected void listenToViewSelections_actionPerformed(ActionEvent e) + { + viewport.followSelection = listenToViewSelections.isSelected(); + } /** * DOCUMENT ME! * @@ -3702,21 +3751,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, for (i = 0; i < treePanels.size(); i++) { - TreePanel tp = (TreePanel) treePanels.elementAt(i); + final TreePanel tp = (TreePanel) treePanels.elementAt(i); final JMenuItem item = new JMenuItem(tp.getTitle()); final NJTree tree = ((TreePanel) treePanels.elementAt(i)).getTree(); item.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { - SequenceI[] oldOrder = viewport.getAlignment() - .getSequencesArray(); - AlignmentSorter.sortByTree(viewport.getAlignment(), tree); - - addHistoryItem(new OrderCommand("Tree Sort", oldOrder, - viewport.alignment)); - - alignPanel.paintAlignment(true); + tp.sortByTree_actionPerformed(null); + addHistoryItem(tp.sortAlignmentIn(alignPanel)); + } }); @@ -3960,17 +4004,26 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // object broker mechanism. final Vector wsmenu = new Vector(); final IProgressIndicator af = me; - if (Cache.getDefault("SHOW_JWS1_SERVICES", true) - && Discoverer.services != null + final JMenu msawsmenu = new JMenu("Alignment"); + final JMenu secstrmenu = new JMenu( + "Secondary Structure Prediction"); + final JMenu seqsrchmenu = new JMenu( + "Sequence Database Search"); + final JMenu analymenu = new JMenu( + "Analysis"); + // JAL-940 - only show secondary structure prediction services from the legacy server + 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 - Vector msaws = (Vector) Discoverer.services.get("MsaWS"); + Vector msaws = null; // (Vector) Discoverer.services.get("MsaWS"); Vector secstrpr = (Vector) Discoverer.services .get("SecStrPred"); - Vector seqsrch = (Vector) Discoverer.services.get("SeqSearch"); + Vector seqsrch = null; // (Vector) Discoverer.services.get("SeqSearch"); // TODO: move GUI generation code onto service implementation - so a // client instance attaches itself to the GUI with method call like // jalview.ws.MsaWSClient.bind(servicehandle, Desktop.instance, @@ -3978,7 +4031,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (msaws != null) { // Add any Multiple Sequence Alignment Services - final JMenu msawsmenu = new JMenu("Alignment"); for (int i = 0, j = msaws.size(); i < j; i++) { final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) msaws @@ -3988,13 +4040,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, impl.attachWSMenuEntry(msawsmenu, me); } - wsmenu.add(msawsmenu); } if (secstrpr != null) { // Add any secondary structure prediction services - final JMenu secstrmenu = new JMenu( - "Secondary Structure Prediction"); for (int i = 0, j = secstrpr.size(); i < j; i++) { final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) secstrpr @@ -4003,13 +4052,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, .getServiceClient(sh); impl.attachWSMenuEntry(secstrmenu, me); } - wsmenu.add(secstrmenu); } if (seqsrch != null) { // Add any sequence search services - final JMenu seqsrchmenu = new JMenu( - "Sequence Database Search"); for (int i = 0, j = seqsrch.size(); i < j; i++) { final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) seqsrch @@ -4018,7 +4064,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, .getServiceClient(sh); impl.attachWSMenuEntry(seqsrchmenu, me); } - wsmenu.add(seqsrchmenu); } } @@ -4030,15 +4075,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { if (jws2servs.hasServices()) { - JMenu jws2men = new JMenu("Jaba Web Services"); - jws2servs.attachWSMenuEntry(jws2men, me); - for (int i = 0, iSize = jws2men.getMenuComponentCount(); i < iSize; i++) - { - wsmenu.add(jws2men.getMenuComponent(i)); - } + jws2servs.attachWSMenuEntry(msawsmenu, me); } } } + // Add all submenus in the order they should appear on the web services menu + wsmenu.add(msawsmenu); + wsmenu.add(secstrmenu); + wsmenu.add(analymenu); + // No search services yet + // wsmenu.add(seqsrchmenu); javax.swing.SwingUtilities.invokeLater(new Runnable() { @@ -4046,9 +4092,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { try { - - resetWebServiceMenu(); - // finally, add the whole shebang onto the webservices menu + webService.removeAll(); + // first, add discovered services onto the webservices menu if (wsmenu.size() > 0) { for (int i = 0, j = wsmenu.size(); i < j; i++) @@ -4058,8 +4103,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } else { - me.webService.add(me.webServiceNoServices); + webService.add(me.webServiceNoServices); } + build_urlServiceMenu(me.webService); + build_fetchdbmenu(webService); } catch (Exception e) { } @@ -4077,17 +4124,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } - /** - * empty the web service menu and add any ad-hoc functions not dynamically - * discovered. - * - */ - private void resetWebServiceMenu() - { - webService.removeAll(); - build_fetchdbmenu(webService); - build_urlServiceMenu(webService); - } /** * construct any groupURL type service menu entries. @@ -4096,11 +4132,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, */ private void build_urlServiceMenu(JMenu webService) { - if (Cache.getDefault("SHOW_ENFIN_SERVICES", true)) - { - jalview.ws.EnfinEnvision2OneWay.getInstance().attachWSMenuEntry( - webService, this); - } // TODO: remove this code when 2.7 is released // DEBUG - alignmentView /* @@ -4116,9 +4147,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // TODO: refactor to RestClient discoverer and merge menu entries for // rest-style services with other types of analysis/calculation service // SHmmr test client - still being implemented. - jalview.ws.rest.RestClient.makeShmmrRestClient().attachWSMenuEntry( - webService, this); // DEBUG - alignmentView + + for (jalview.ws.rest.RestClient client: jalview.ws.rest.RestClient.getRestClients()) { + client.attachWSMenuEntry(JvSwingUtils.findOrCreateMenu(webService, client.getAction()), this); + } + + if (Cache.getDefault("SHOW_ENFIN_SERVICES", true)) + { + jalview.ws.EnfinEnvision2OneWay.getInstance().attachWSMenuEntry( + webService, this); + } } /* @@ -4513,7 +4552,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (pdbfn.length() > 0) { // attempt to find a match in the alignment - SequenceI mtch = idm.findIdMatch(pdbfn); + SequenceI[] mtch = idm.findAllIdMatches(pdbfn); int l = 0, c = pdbfn.indexOf("."); while (mtch == null && c != -1) { @@ -4525,7 +4564,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { pdbfn = pdbfn.substring(0, l); } - mtch = idm.findIdMatch(pdbfn); + mtch = idm.findAllIdMatches(pdbfn); } if (mtch != null) { @@ -4570,17 +4609,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // try and associate // TODO: may want to set a standard ID naming formalism for // associating PDB files which have no IDs. + for (SequenceI toassoc: (SequenceI[])fm[2]) { PDBEntry pe = new AssociatePdbFileWithSeq() .associatePdbWithSeq((String) fm[0], (String) fm[1], - (SequenceI) fm[2], false); + toassoc, false); if (pe != null) { System.err .println("Associated file : " + ((String) fm[0]) + " with " - + ((SequenceI) fm[2]).getDisplayId(true)); + + toassoc.getDisplayId(true)); assocfiles++; } + } alignPanel.paintAlignment(true); } }