X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Frbvi%2Fchimera%2FChimeraListener.java;h=af31b78a39596def8b820c1edacae23a8fe80793;hb=cd669a0e8c7b91b379bca8fe6e702cf0fcbd1ce0;hp=2882cb5ec3318794eda08041a81e805b00362270;hpb=2150df780eddbdf72013d29ee8eabb0f235c7bb4;p=jalview.git diff --git a/src/jalview/ext/rbvi/chimera/ChimeraListener.java b/src/jalview/ext/rbvi/chimera/ChimeraListener.java index 2882cb5..af31b78 100644 --- a/src/jalview/ext/rbvi/chimera/ChimeraListener.java +++ b/src/jalview/ext/rbvi/chimera/ChimeraListener.java @@ -1,13 +1,33 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.ext.rbvi.chimera; +import jalview.httpserver.AbstractRequestHandler; +import jalview.structure.SelectionSource; + import java.net.BindException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import jalview.httpserver.AbstractRequestHandler; -import jalview.structure.SelectionSource; - /** * This is a simple Http handler that can listen for selections in Chimera. *

@@ -19,7 +39,8 @@ import jalview.structure.SelectionSource; *

  • Start the ChimeraListener, get the URL it is listening on
  • *
  • The first listener started will start the singleton HttpServer
  • *
  • Send a 'listen' command to Chimera with the URL of the listener
  • - *
  • When Jalview's Chimera window is closed, shut down the ChimeraListener
  • + *
  • When Jalview's Chimera window is closed, shut down the + * ChimeraListener
  • *
  • Multiple linked Chimera instances will each have a separate listener (but * share one Http server)
  • * @@ -27,8 +48,8 @@ import jalview.structure.SelectionSource; * @author gmcarstairs * */ -public class ChimeraListener extends AbstractRequestHandler implements - SelectionSource +public class ChimeraListener extends AbstractRequestHandler + implements SelectionSource { /* * Chimera notification parameter name @@ -76,8 +97,7 @@ public class ChimeraListener extends AbstractRequestHandler implements * @throws BindException * if no free port can be assigned */ - public ChimeraListener(JalviewChimeraBinding binding) - throws BindException + public ChimeraListener(JalviewChimeraBinding binding) throws BindException { myChimeraId = chimeraId++; this.chimeraBinding = binding; @@ -94,28 +114,36 @@ public class ChimeraListener extends AbstractRequestHandler implements { // dumpRequest(request); String message = request.getParameter(CHIMERA_NOTIFICATION); - if (SELECTION_CHANGED.equals(message)) - { - this.chimeraBinding.highlightChimeraSelection(); - } - else if (message != null && message.startsWith(MODEL_CHANGED)) + if (message == null) { - processModelChanged(message.substring(MODEL_CHANGED.length())); + message = request.getParameter("chimerax_notification"); } - else + if (message != null) { - System.err.println("Unexpected chimeraNotification: " + message); + if (message.startsWith("SelectionChanged")) + { + this.chimeraBinding.highlightChimeraSelection(); + } + else if (message.startsWith(MODEL_CHANGED)) + { + jalview.bin.Console.errPrintln(message); + processModelChanged(message.substring(MODEL_CHANGED.length())); + } + else + { + jalview.bin.Console.errPrintln("Unexpected chimeraNotification: " + message); + } } } /** - * Handler a ModelChanged notification from Chimera + * Handle a ModelChanged notification from Chimera * * @param substring */ protected void processModelChanged(String message) { - // System.out.println(message + " (not implemented in Jalview)"); + // jalview.bin.Console.outPrintln(message + " (not implemented in Jalview)"); } /**