X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=ba112b85781dbd6ac2791d92bb9869226131f36f;hb=7dd9c4874042f584dc1feb6a345fe929a8509e2b;hp=f79afcad614c08e79052ce9048539d0909eca740;hpb=a9514dd266ef856c485fd8f9108a3797b87add3f;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index f79afca..ba112b8 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -71,6 +71,7 @@ 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; @@ -754,7 +755,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, progressBars.put(lId, progressPanel); } // update GUI - setMenusForViewport(); + // setMenusForViewport(); validate(); } @@ -3723,18 +3724,20 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, sortByTreeMenu.add(item); } } + public boolean sortBy(AlignmentOrder alorder, String undoname) { - SequenceI[] oldOrder = viewport.getAlignment() - .getSequencesArray(); + SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); AlignmentSorter.sortBy(viewport.getAlignment(), alorder); - if (undoname!=null) + if (undoname != null) { - addHistoryItem(new OrderCommand(undoname, oldOrder, viewport.alignment)); + addHistoryItem(new OrderCommand(undoname, oldOrder, + viewport.alignment)); } alignPanel.paintAlignment(true); return true; } + /** * Work out whether the whole set of sequences or just the selected set will * be submitted for multiple alignment. @@ -3958,6 +3961,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // object broker mechanism. final Vector wsmenu = new Vector(); final IProgressIndicator af = me; + 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( + "Analyse Alignment"); + if (Cache.getDefault("SHOW_JWS1_SERVICES", true) && Discoverer.services != null && (Discoverer.services.size() > 0)) @@ -3976,7 +3987,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 @@ -3986,13 +3996,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 @@ -4001,13 +4008,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 @@ -4016,7 +4020,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, .getServiceClient(sh); impl.attachWSMenuEntry(seqsrchmenu, me); } - wsmenu.add(seqsrchmenu); } } @@ -4029,14 +4032,22 @@ 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); +// for (int i = 0, iSize = jws2men.getMenuComponentCount(); i < iSize; i++) +// { +// msawsmenu.add(jws2men.getMenuComponent(i)); +// } } } } + if (msawsmenu.getMenuComponentCount()>0) + wsmenu.add(msawsmenu); + if (secstrmenu.getMenuComponentCount()>0) + wsmenu.add(secstrmenu); + if (analymenu.getMenuComponentCount()>0) + wsmenu.add(analymenu); + if (seqsrchmenu.getMenuComponentCount()>0) + wsmenu.add(seqsrchmenu); javax.swing.SwingUtilities.invokeLater(new Runnable() { @@ -4114,8 +4125,10 @@ 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); + + for (jalview.ws.rest.RestClient client: jalview.ws.rest.RestClient.getRestClients()) { + client.attachWSMenuEntry(JvSwingUtils.findOrCreateMenu(webService, client.getAction()), this); + } // DEBUG - alignmentView } @@ -4388,7 +4401,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, featuresFile = new FeaturesFile(file, type) .parse(viewport.alignment.getDataset(), alignPanel.seqPanel.seqCanvas.getFeatureRenderer().featureColours, - false,jalview.bin.Cache.getDefault("RELAXEDSEQIDMATCHING", false)); + false, jalview.bin.Cache.getDefault( + "RELAXEDSEQIDMATCHING", false)); } catch (Exception ex) { ex.printStackTrace(); @@ -4510,19 +4524,19 @@ 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) { - while ((c = pdbfn.indexOf(".", l)) > l) + do { l = c; - } + } while ((c = pdbfn.indexOf(".", l)) > l); if (l > -1) { pdbfn = pdbfn.substring(0, l); } - mtch = idm.findIdMatch(pdbfn); + mtch = idm.findAllIdMatches(pdbfn); } if (mtch != null) { @@ -4567,17 +4581,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); } } @@ -5041,6 +5057,26 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, alignPanel.paintAlignment(true); } } + + /** + * make the given alignmentPanel the currently selected tab + * + * @param alignmentPanel + */ + public void setDisplayedView(AlignmentPanel alignmentPanel) + { + if (!viewport.getSequenceSetId().equals( + alignmentPanel.av.getSequenceSetId())) + { + throw new Error( + "Implementation error: cannot show a view from another alignment in an AlignFrame."); + } + if (tabbedPane != null + & alignPanels.indexOf(alignmentPanel) != tabbedPane.getSelectedIndex()) + { + tabbedPane.setSelectedIndex(alignPanels.indexOf(alignmentPanel)); + } + } } class PrintThread extends Thread