From: Ole Streicher <olebole@debian.org>
Date: Mon, 9 Jan 2017 21:55:49 +0100
Subject: Remove SOG references

SoG -- Son of GAIA -- is an extension of ESO JSkycat which can display
the HDX/NDX format, as well as FITS and NDF images.

SOG is optional in topcat and is removed to reduce the dependencies.
---
 build.xml                                          | 51 +++++++++++++++-------
 src/docs/sun253.xml                                | 19 +-------
 src/main/uk/ac/starlink/topcat/TopcatJELUtils.java |  4 --
 src/main/uk/ac/starlink/topcat/TopcatUtils.java    | 19 +-------
 src/main/uk/ac/starlink/topcat/UrlOptions.java     |  5 +--
 .../starlink/topcat/activate/ActivationWindow.java |  2 -
 src/main/uk/ac/starlink/topcat/func/Image.java     |  7 +--
 .../starlink/topcat/interop/SampImageActivity.java |  9 ----
 8 files changed, 40 insertions(+), 76 deletions(-)

diff --git a/build.xml b/build.xml
index 3401311..fc8ba09 100644
--- a/build.xml
+++ b/build.xml
@@ -442,6 +442,10 @@
       <exclude name="uk/ac/starlink/topcat/interop/SelectivePlasticListModel.java"/>
       <exclude name="uk/ac/starlink/topcat/interop/TopcatTransmitter.java"/>
       <exclude name="uk/ac/starlink/topcat/interop/PlasticImageActivity.java"/>
+      <exclude name="uk/ac/starlink/topcat/func/Sog.java"/>
+      <exclude name="uk/ac/starlink/topcat/activate/ViewImageActivationType.java"/>
+      <exclude name="uk/ac/starlink/topcat/activate/RegionViewImageActivationType.java"/>
+      <exclude name="uk/ac/starlink/topcat/activate/GenericViewImageActivationType.java"/>
    </javac>
 
     <!-- Copy extra files that should live with packages classes
@@ -508,10 +512,13 @@
              failonerror="true"
              public="true"
              destdir="${build.javadocs}"
-             sourcepath="${java.dir}"
-             packagenames="uk.ac.starlink.topcat.func"
              classpathref="classpath"
-             source="${source.version}"/>
+             source="${source.version}">
+      <fileset dir="${java.dir}/uk/ac/starlink/topcat/func/" defaultexcludes="yes">
+        <include name="*.java"/>
+        <exclude name="Sog.java"/>
+      </fileset>
+    </javadoc>
 
      <antcall target="build_demo"/>
   </target>
@@ -1215,6 +1222,7 @@
 	 <exclude name="uk/ac/starlink/topcat/interop/SelectivePlasticListModel.java"/>
 	 <exclude name="uk/ac/starlink/topcat/interop/TopcatTransmitter.java"/>
 	 <exclude name="uk/ac/starlink/topcat/interop/PlasticImageActivity.java"/>
+	 <exclude name="uk/ac/starlink/topcat/func/Sog.java"/>
       </fileset>
 
       <!-- Link to the full Java API at SUNs website -->
@@ -1472,38 +1480,49 @@
              failonerror="true"
              public="true"
              additionalparam="-gen -o ${build.docs}/general-javadocs.xml" 
-             sourcepath="${ttools.java}"
-             packagenames="uk.ac.starlink.ttools.func"
              classpathref="classpath"
-             source="${source.version}"/>
+             source="${source.version}">
+      <fileset dir="${java.dir}/uk/ac/starlink/topcat/func/" defaultexcludes="yes">
+        <include name="*.java"/>
+        <exclude name="Sog.java"/>
+      </fileset>
+    </javadoc>
     <javadoc doclet="uk.ac.starlink.topcat.doc.TopcatXmlDoclet"
              docletpathref="docs-classpath"
              failonerror="true"
              public="true"
              additionalparam="-act -o ${build.docs}/activation-javadocs.xml" 
-             sourcepath="${java.dir}"
-             packagenames="uk.ac.starlink.topcat.func"
              classpathref="classpath"
-             source="${source.version}"/>
+             source="${source.version}">
+      <fileset dir="${java.dir}/uk/ac/starlink/topcat/func/" defaultexcludes="yes">
+        <include name="*.java"/>
+        <exclude name="Sog.java"/>
+      </fileset>
+    </javadoc>
     <javadoc doclet="uk.ac.starlink.topcat.doc.TopcatXmlDoclet"
              docletpathref="docs-classpath"
              failonerror="true"
              public="true"
              additionalparam="-gen -headonly -o ${build.docs}/general-classes-javadocs.xml"
-             sourcepath="${ttools.java}"
-             packagenames="uk.ac.starlink.ttools.func"
              classpathref="classpath"
-             source="${source.version}"/>
+             source="${source.version}">
+      <fileset dir="${java.dir}/uk/ac/starlink/topcat/func/" defaultexcludes="yes">
+        <include name="*.java"/>
+        <exclude name="Sog.java"/>
+      </fileset>
+    </javadoc>
     <javadoc doclet="uk.ac.starlink.topcat.doc.TopcatXmlDoclet"
              docletpathref="docs-classpath"
              failonerror="true"
              public="true"
              additionalparam="-act -headonly -o ${build.docs}/activation-classes-javadocs.xml"
-             sourcepath="${java.dir}"
-             packagenames="uk.ac.starlink.topcat.func"
              classpathref="classpath"
-             source="${source.version}"/>
-
+             source="${source.version}">
+      <fileset dir="${java.dir}/uk/ac/starlink/topcat/func/" defaultexcludes="yes">
+        <include name="*.java"/>
+        <exclude name="Sog.java"/>
+      </fileset>
+    </javadoc>
     <!-- Construct topcat usage message in XML. -->
     <property name="topcat.usage" value="${build.docs}/topcat.usage"/>
     <echo message="&lt;![CDATA[" file="${topcat.usage}" append="no"/>
diff --git a/src/docs/sun253.xml b/src/docs/sun253.xml
index 35a7100..3513dae 100644
--- a/src/docs/sun253.xml
+++ b/src/docs/sun253.xml
@@ -22570,23 +22570,8 @@ option in one of the DataLink-related actions,
 TOPCAT will try to display an image in an internal image viewer.
 </p>
 
-<p>The default image viewer is 
-<webref plaintextref="yes" url="http://www.starlink.ac.uk/sog/">SoG</webref>,
-an astronomical image viewer based on JSky, which offers 
-colourmap manipulation, image zooming, graphics overlays, and other features.
-For this to work JAI, otherwise known as
-<webref plaintextref="yes" url="http://java.sun.com/products/java-media/jai/"
-        >Java Advanced Imaging</webref> must be installed.
-JAI is a free component available from Sun, but not a part of the Java 2
-Standard Edition by default.  In operation, SoG looks like this:
-</p>
-
-<figure>
-<caption><px>SoG Image Viewer</px></caption>
-<figureimage src="&FIG.SoG;"/>
-</figure>
-
-<p>If JAI or the SoG classes themselves are absent, a fallback viewer
+<p><em>On Debian, the default image viewer (SoG) is not available
+and the fallback viewer is used,</em>
 which just displays the given image in a basic graphics window 
 with no manipulation facilities is used.
 The fallback image viewer looks like this:
diff --git a/src/main/uk/ac/starlink/topcat/TopcatJELUtils.java b/src/main/uk/ac/starlink/topcat/TopcatJELUtils.java
index 88c57eb..9d1f434 100644
--- a/src/main/uk/ac/starlink/topcat/TopcatJELUtils.java
+++ b/src/main/uk/ac/starlink/topcat/TopcatJELUtils.java
@@ -26,7 +26,6 @@ import uk.ac.starlink.topcat.func.Image;
 import uk.ac.starlink.topcat.func.Mgc;
 import uk.ac.starlink.topcat.func.Output;
 import uk.ac.starlink.topcat.func.Sdss;
-import uk.ac.starlink.topcat.func.Sog;
 import uk.ac.starlink.topcat.func.SuperCosmos;
 import uk.ac.starlink.topcat.func.TwoQZ;
 import uk.ac.starlink.topcat.plot2.GuiCoordContent;
@@ -140,9 +139,6 @@ public class TopcatJELUtils extends JELUtils {
             classList.add( uk.ac.starlink.topcat.func.System.class );
             classList.add( Image.class );
             classList.add( BasicImageDisplay.class );
-            if ( TopcatUtils.canSog() ) { 
-                classList.add( Sog.class );
-            }
             classList.add( Browsers.class );
             classList.add( Mgc.class );
             classList.add( Sdss.class );
diff --git a/src/main/uk/ac/starlink/topcat/TopcatUtils.java b/src/main/uk/ac/starlink/topcat/TopcatUtils.java
index f636985..3323bb1 100644
--- a/src/main/uk/ac/starlink/topcat/TopcatUtils.java
+++ b/src/main/uk/ac/starlink/topcat/TopcatUtils.java
@@ -407,24 +407,7 @@ public class TopcatUtils {
     public static boolean canSog() {
         if ( canSog_ == null ) {
             synchronized ( TopcatUtils.class ) {
-                try {
-
-                    /* Check for SOG classes themselves. */
-                    Class.forName( "uk.ac.starlink.sog.SOG" );
-
-                    /* Check for JAI.  Use this class because it's lightweight
-                     * and won't cause a whole cascade of other classes
-                     * to be loaded. */
-                    Class.forName( "javax.media.jai.util.CaselessStringKey" );
-
-                    /* If we've got this far, we're OK. */
-                    canSog_ = Boolean.TRUE;
-                }
-                catch ( Throwable th ) {
-                    logger_.info( "No SoG: " + th );
-                    logger_.log( Level.CONFIG, "SoG load error", th );
-                    canSog_ = Boolean.FALSE;
-                }
+		canSog_ = Boolean.FALSE;
             }
         }
         return canSog_.booleanValue();
diff --git a/src/main/uk/ac/starlink/topcat/UrlOptions.java b/src/main/uk/ac/starlink/topcat/UrlOptions.java
index a09f5e2..3da1c1c 100644
--- a/src/main/uk/ac/starlink/topcat/UrlOptions.java
+++ b/src/main/uk/ac/starlink/topcat/UrlOptions.java
@@ -18,7 +18,6 @@ import uk.ac.starlink.topcat.activate.SampSender;
 import uk.ac.starlink.topcat.activate.ViewDatalinkActivationType;
 import uk.ac.starlink.topcat.func.BasicImageDisplay;
 import uk.ac.starlink.topcat.func.Browsers;
-import uk.ac.starlink.topcat.func.Sog;
 import uk.ac.starlink.topcat.plot2.PlotWindowType;
 import uk.ac.starlink.topcat.plot2.TablePlotDisplay;
 import uk.ac.starlink.util.DataSource;
@@ -237,9 +236,7 @@ public class UrlOptions {
             public Outcome invokeUrl( URL url ) {
                 String loc = url.toString();
                 String label = "Image";
-                String msg = TopcatUtils.canSog()
-                           ? Sog.sog( label, loc )
-                           : BasicImageDisplay.displayBasicImage( label, loc );
+                String msg = BasicImageDisplay.displayBasicImage( label, loc );
                 return Outcome.success( msg );
             }
         };
diff --git a/src/main/uk/ac/starlink/topcat/activate/ActivationWindow.java b/src/main/uk/ac/starlink/topcat/activate/ActivationWindow.java
index 8d3f97f..10ca437 100644
--- a/src/main/uk/ac/starlink/topcat/activate/ActivationWindow.java
+++ b/src/main/uk/ac/starlink/topcat/activate/ActivationWindow.java
@@ -901,8 +901,6 @@ public class ActivationWindow extends AuxWindow {
             new SendHips2fitsActivationType(),
             new InvokeDatalinkActivationType(),
             new ViewDatalinkActivationType(),
-            new ViewImageActivationType(),
-            new RegionViewImageActivationType(),
             new ServiceActivationType(),
             new LoadTableActivationType(),
             new PlotTableActivationType(),
diff --git a/src/main/uk/ac/starlink/topcat/func/Image.java b/src/main/uk/ac/starlink/topcat/func/Image.java
index 8b44dd3..b174ceb 100644
--- a/src/main/uk/ac/starlink/topcat/func/Image.java
+++ b/src/main/uk/ac/starlink/topcat/func/Image.java
@@ -39,11 +39,6 @@ public class Image {
      * @return  short log message
      */
     public static String displayImage( String label, String location ) {
-        if ( TopcatUtils.canSog() ) {
-            return Sog.sog( label, location );
-        }
-        else {
-            return BasicImageDisplay.displayBasicImage( label, location );
-        }
+	return BasicImageDisplay.displayBasicImage( label, location );
     }
 }
diff --git a/src/main/uk/ac/starlink/topcat/interop/SampImageActivity.java b/src/main/uk/ac/starlink/topcat/interop/SampImageActivity.java
index b513763..2e727bf 100644
--- a/src/main/uk/ac/starlink/topcat/interop/SampImageActivity.java
+++ b/src/main/uk/ac/starlink/topcat/interop/SampImageActivity.java
@@ -21,7 +21,6 @@ import org.astrogrid.samp.gui.GuiHubConnector;
 import org.astrogrid.samp.gui.SubscribedClientListModel;
 import uk.ac.starlink.topcat.TopcatUtils;
 import uk.ac.starlink.topcat.func.BasicImageDisplay;
-import uk.ac.starlink.topcat.func.Sog;
 import uk.ac.starlink.util.URLUtils;
 
 /**
@@ -177,14 +176,6 @@ public class SampImageActivity implements ImageActivity {
                         return true;
                     }
                 } );
-                if ( TopcatUtils.canSog() ) {
-                    viewerList.add( new DefaultImageViewer( "SoG (internal)" ) {
-                        public boolean viewImage( String label, String loc ) {
-                            Sog.sog( label, loc );
-                            return true;
-                        }
-                    } );
-                }
             }
             final MessageFactory mfact = mfactMap_.get( format );
             if ( mfact != null ) {
