JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / src / jalview / ext / rbvi / chimera / ChimeraListener.java
index c9ec136..979955a 100644 (file)
@@ -1,14 +1,33 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 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 <http://www.gnu.org/licenses/>.
+ * 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.httpserver.HttpServer;
-import jalview.structure.SelectionSource;
-
 /**
  * This is a simple Http handler that can listen for selections in Chimera.
  * <p/>
@@ -31,10 +50,19 @@ import jalview.structure.SelectionSource;
 public class ChimeraListener extends AbstractRequestHandler implements
         SelectionSource
 {
+  /*
+   * Chimera notification parameter name
+   */
   private static final String CHIMERA_NOTIFICATION = "chimeraNotification";
 
+  /*
+   * Chimera model changed notifications start with this
+   */
   private static final String MODEL_CHANGED = "ModelChanged: ";
 
+  /*
+   * Chimera selection changed notification message
+   */
   private static final String SELECTION_CHANGED = "SelectionChanged: selection changed\n";
 
   /*
@@ -45,9 +73,9 @@ public class ChimeraListener extends AbstractRequestHandler implements
   private static int chimeraId = 0;
 
   /*
-   * Path below context root that identifies this handler
+   * Prefix for path below context root (myChimeraId is appended)
    */
-  private static final String LISTENER_PATH = "chimera";
+  private static final String PATH_PREFIX = "chimera";
 
   /*
    * Value of chimeraId (0, 1, 2...) for this instance
@@ -59,13 +87,8 @@ public class ChimeraListener extends AbstractRequestHandler implements
    */
   private JalviewChimeraBinding chimeraBinding;
 
-  /*
-   * The URI of this listener
-   */
-  private String uri;
-
   /**
-   * Constructor that also registers this as an Http request handler on path
+   * Constructor that registers this as an Http request handler on path
    * /chimeraN, where N is incremented for each instance. Call getUri to get the
    * resulting URI for this handler.
    * 
@@ -78,18 +101,8 @@ public class ChimeraListener extends AbstractRequestHandler implements
   {
     myChimeraId = chimeraId++;
     this.chimeraBinding = binding;
-    final String path = LISTENER_PATH + myChimeraId;
-    this.uri = HttpServer.getInstance().registerHandler(path, this);
-  }
-
-  /**
-   * Returns the URI on which we are listening
-   * 
-   * @return
-   */
-  public String getUri()
-  {
-    return this.uri;
+    setPath(PATH_PREFIX + myChimeraId);
+    registerHandler();
   }
 
   /**
@@ -126,20 +139,11 @@ public class ChimeraListener extends AbstractRequestHandler implements
   }
 
   /**
-   * Deregister this listener and close it down
-   * 
-   * @throws Exception
+   * Returns a display name for this service
    */
-  public void shutdown()
+  @Override
+  public String getName()
   {
-    try
-    {
-      HttpServer.getInstance().removeHandler(this);
-      stop();
-    } catch (Exception e)
-    {
-      System.err.println("Error stopping chimera listener: "
-              + e.getMessage());
-    }
+    return "ChimeraListener";
   }
 }