import jalview.analysis.NJTree;
import jalview.analysis.ParseProperties;
import jalview.analysis.SequenceIdMatcher;
+import jalview.api.AlignViewControllerI;
import jalview.bin.Cache;
import jalview.commands.CommandI;
import jalview.commands.EditCommand;
import jalview.util.MessageManager;
import jalview.ws.jws1.Discoverer;
import jalview.ws.jws2.Jws2Discoverer;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.seqfetcher.DbSourceProxy;
import java.awt.BorderLayout;
public AlignmentPanel alignPanel;
AlignViewport viewport;
+
+ public AlignViewControllerI avc;
+
Vector alignPanels = new Vector();
*/
void init()
{
+ avc = new jalview.controller.AlignViewController(viewport, alignPanel);
if (viewport.getAlignmentConservationAnnotation() == null)
{
BLOSUM62Colour.setEnabled(false);
}
addKeyListener();
-
+
}
/**
public void addAlignmentPanel(final AlignmentPanel ap, boolean newPanel)
{
ap.alignFrame = this;
+ avc = new jalview.controller.AlignViewController(viewport, alignPanel);
alignPanels.addElement(ap);
rnahelicesColour
.setSelected(av.getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour);
setShowProductsEnabled();
-
updateEditMenuBar();
}
@Override
protected void deleteGroups_actionPerformed(ActionEvent e)
{
- viewport.getAlignment().deleteAllGroups();
- viewport.sequenceColours = null;
- viewport.setSelectionGroup(null);
- PaintRefresher.Refresh(this, viewport.getSequenceSetId());
- alignPanel.updateAnnotation();
- alignPanel.paintAlignment(true);
+ if (avc.deleteGroups()) {
+ PaintRefresher.Refresh(this, viewport.getSequenceSetId());
+ alignPanel.updateAnnotation();
+ alignPanel.paintAlignment(true);
+ }
}
/**
@Override
public void run()
{
+ final List<JMenuItem> legacyItems=new ArrayList<JMenuItem>();
try
{
System.err.println("Building ws menu again "
// TODO: refactor to allow list of AbstractName/Handler bindings to
// be
// stored or retrieved from elsewhere
- Vector msaws = null; // (Vector) Discoverer.services.get("MsaWS");
+ // No MSAWS used any more:
+ // Vector msaws = null; // (Vector) Discoverer.services.get("MsaWS");
Vector secstrpr = (Vector) Discoverer.services
.get("SecStrPred");
- 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,
- // alignframe)
- if (msaws != null)
- {
- // Add any Multiple Sequence Alignment Services
- for (int i = 0, j = msaws.size(); i < j; i++)
- {
- final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) msaws
- .get(i);
- jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
- .getServiceClient(sh);
- impl.attachWSMenuEntry(msawsmenu, me);
-
- }
- }
if (secstrpr != null)
{
// Add any secondary structure prediction services
.get(i);
jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
.getServiceClient(sh);
+ int p=secstrmenu.getItemCount();
impl.attachWSMenuEntry(secstrmenu, me);
- }
- }
- if (seqsrch != null)
- {
- // Add any sequence search services
- for (int i = 0, j = seqsrch.size(); i < j; i++)
- {
- final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) seqsrch
- .elementAt(i);
- jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
- .getServiceClient(sh);
- impl.attachWSMenuEntry(seqsrchmenu, me);
+ int q=secstrmenu.getItemCount();
+ for (int litm=p;litm<q; litm++)
+ {
+ legacyItems.add(secstrmenu.getItem(litm));
+ }
}
}
}
-
+
// Add all submenus in the order they should appear on the web
// services menu
wsmenu.add(msawsmenu);
wsmenu.add(secstrmenu);
wsmenu.add(dismenu);
wsmenu.add(analymenu);
- // final ArrayList<JMenu> submens=new ArrayList<JMenu>();
- // submens.add(msawsmenu);
- // submens.add(secstrmenu);
- // submens.add(dismenu);
- // submens.add(analymenu);
-
// No search services yet
// wsmenu.add(seqsrchmenu);
webService.add(me.webServiceNoServices);
}
// TODO: move into separate menu builder class.
+ boolean new_sspred=false;
if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
{
Jws2Discoverer jws2servs = Jws2Discoverer.getDiscoverer();
if (jws2servs.hasServices())
{
jws2servs.attachWSMenuEntry(webService, me);
+ for (Jws2Instance sv:jws2servs.getServices()) {
+ if (sv.description.toLowerCase().contains("jpred"))
+ {
+ for (JMenuItem jmi:legacyItems)
+ {
+ jmi.setVisible(false);
+ }
+ }
+ }
+
}
if (jws2servs.isRunning())
{
}
}
}
-
build_urlServiceMenu(me.webService);
build_fetchdbmenu(webService);
for (JMenu item : wsmenu)
{
alignPanel = (AlignmentPanel) alignPanels.elementAt(index);
viewport = alignPanel.av;
+ avc.setViewportAndAlignmentPanel(viewport, alignPanel);
setMenusFromViewport(viewport);
}
}
@Override
protected void makeGrpsFromSelection_actionPerformed(ActionEvent e)
{
- if (viewport.getSelectionGroup() != null)
- {
- SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom(
- viewport.getSequenceSelection(),
- viewport.getAlignmentView(true).getSequenceStrings(
- viewport.getGapCharacter()), viewport.getAlignment()
- .getGroups());
- viewport.getAlignment().deleteAllGroups();
- viewport.sequenceColours = null;
- viewport.setSelectionGroup(null);
- // set view properties for each group
- for (int g = 0; g < gps.length; g++)
- {
- gps[g].setShowNonconserved(viewport.getShowUnconserved());
- gps[g].setshowSequenceLogo(viewport.isShowSequenceLogo());
- viewport.getAlignment().addGroup(gps[g]);
- Color col = new Color((int) (Math.random() * 255),
- (int) (Math.random() * 255), (int) (Math.random() * 255));
- col = col.brighter();
- for (SequenceI s : gps[g].getSequences())
- viewport.setSequenceColour(s, col);
- }
+ if (avc.makeGroupsFromSelection()) {
PaintRefresher.Refresh(this, viewport.getSequenceSetId());
alignPanel.updateAnnotation();
alignPanel.paintAlignment(true);
}
}
+ @Override
+ protected void createGroup_actionPerformed(ActionEvent e)
+ {
+ if (avc.createGroup())
+ {
+ alignPanel.alignmentChanged();
+ }
+ }
+
+ @Override
+ protected void unGroup_actionPerformed(ActionEvent e)
+ {
+ if (avc.unGroup())
+ {
+ alignPanel.alignmentChanged();
+ }
+ }
+
/**
* make the given alignmentPanel the currently selected tab
*