import jalview.javascript.MouseOverStructureListener;
import jalview.structure.SelectionListener;
import jalview.structure.StructureSelectionManager;
+import jalview.util.HttpUtils;
import jalview.util.MessageManager;
import java.applet.Applet;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
*/
URL documentBase = getDocumentBase();
String withDocBase = resolveUrlForLocalOrAbsolute(path, documentBase);
- if (urlExists(withDocBase))
+ if (HttpUtils.isValidUrl(withDocBase))
{
if (debug)
{
URL codeBase = getCodeBase();
String withCodeBase = applet.resolveUrlForLocalOrAbsolute(path,
codeBase);
- if (!withCodeBase.equals(withDocBase) && urlExists(withCodeBase))
+ if (!withCodeBase.equals(withDocBase)
+ && HttpUtils.isValidUrl(withCodeBase))
{
protocol = AppletFormatAdapter.URL;
if (debug)
return false;
}
}
-
- /**
- * If the file is not already in URL format, tries to locate it by resolving
- * as a URL.
- *
- * @param f
- * @return
- */
- String addProtocol(final String f)
- {
- if (f.indexOf("://") != -1)
- {
- // already has URL format
- return f;
- }
-
- /*
- * Try relative to document base
- */
- URL documentBase = getDocumentBase();
- System.err.println("Trying documentbase: " + documentBase);
- String url = applet.resolveUrlForLocalOrAbsolute(f, documentBase);
- if (urlExists(url))
- {
- if (true/* debug */)
- {
- System.err.println("Prepended document base '" + documentBase
- + "' to make: '" + url + "'");
- }
- return url;
- }
-
- /*
- * Try relative to codebase
- */
- URL codeBase = getCodeBase();
- System.err.println("Trying codebase: " + codeBase);
- url = applet.resolveUrlForLocalOrAbsolute(f, codeBase);
- if (urlExists(url))
- {
- if (true/* debug */)
- {
- System.err.println("Prepended codebase '" + codeBase
- + "' to make: '" + url + "'");
- }
- return url;
- }
-
- return f;
- }
-
- /**
- * Returns true if an input stream can be opened on the specified URL, else
- * false.
- *
- * @param url
- * @return
- */
- private boolean urlExists(String url)
- {
- InputStream is = null;
- try
- {
- is = new URL(url).openStream();
- if (is != null)
- {
- return true;
- }
- } catch (Exception x)
- {
- // ignore
- } finally
- {
- if (is != null)
- {
- try
- {
- is.close();
- } catch (IOException e)
- {
- // ignore
- }
- }
- }
- return false;
- }
}
/**
import jalview.structure.StructureMapping;
import jalview.structure.StructureMappingcommandSet;
import jalview.structure.StructureSelectionManager;
+import jalview.util.HttpUtils;
import java.io.IOException;
import java.io.InputStream;
public String resolveModelFile(String file)
{
// TODO reuse JalviewLite.LoadingThread.addProtocol instead
- if (isValidUrl(file))
+ if (HttpUtils.isValidUrl(file))
{
return file;
}
String db = jvlite.getDocumentBase().toString();
db = db.substring(0, db.lastIndexOf("/"));
String docBaseFile = db + "/" + file;
- if (isValidUrl(docBaseFile))
+ if (HttpUtils.isValidUrl(docBaseFile))
{
return docBaseFile;
}
String cb = jvlite.getCodeBase() + file;
- if (isValidUrl(cb))
+ if (HttpUtils.isValidUrl(cb))
{
return cb;
}
return file;
}
- /**
- * Returns true if it is possible to open an input stream at the given URL,
- * else false. The input stream is closed.
- *
- * @param file
- * @return
- */
- private boolean isValidUrl(String file)
- {
- InputStream is = null;
- try
- {
- is = new URL(file).openStream();
- if (is != null)
- {
- return true;
- }
- } catch (IOException x)
- {
- // MalformedURLException, FileNotFoundException
- return false;
- } finally
- {
- if (is != null)
- {
- try
- {
- is.close();
- } catch (IOException e)
- {
- // ignore
- }
- }
- }
- return false;
- }
-
@Override
public String[] getPdbFile()
{
--- /dev/null
+package jalview.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+public class HttpUtils
+{
+
+ /**
+ * Returns true if it is possible to open an input stream at the given URL,
+ * else false. The input stream is closed.
+ *
+ * @param url
+ * @return
+ */
+ public static boolean isValidUrl(String url)
+ {
+ InputStream is = null;
+ try
+ {
+ is = new URL(url).openStream();
+ if (is != null)
+ {
+ return true;
+ }
+ } catch (IOException x)
+ {
+ // MalformedURLException, FileNotFoundException
+ return false;
+ } finally
+ {
+ if (is != null)
+ {
+ try
+ {
+ is.close();
+ } catch (IOException e)
+ {
+ // ignore
+ }
+ }
+ }
+ return false;
+ }
+
+}