/**
   * Get the contents of a URL and return it as an image.
   *
   * @return a String representing the path the file was actually saved to, or empty string if
   *     something failed.
   */
  public static String loadWebImageToLinkedFiles(String address, String sFileName, String sPath)
      throws Exception {

    ProjectCompendium.APP.setWaitCursor();

    File newFile = new File(sPath + sFileName);

    String imgAddress = address.toLowerCase();

    if ((imgAddress.startsWith("www")
            || imgAddress.startsWith("http")
            || imgAddress.startsWith("https")) // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
        && isImage(imgAddress)) { // $NON-NLS-1$

      if (newFile.exists()) {
        int response =
            JOptionPane.showConfirmDialog(
                ProjectCompendium.APP,
                LanguageProperties.getString(
                        LanguageProperties.UI_GENERAL_BUNDLE, "UIImages.nameExistsMessage1a")
                    + "\n"
                    + //$NON-NLS-1$ //$NON-NLS-2$
                    LanguageProperties.getString(
                        LanguageProperties.UI_GENERAL_BUNDLE, "UIImages.nameExistsMessage1b")
                    + "\n\n"
                    + //$NON-NLS-1$ //$NON-NLS-2$
                    "("
                    + LanguageProperties.getString(
                        LanguageProperties.UI_GENERAL_BUNDLE, "UIImages.nameExistsMessage1c")
                    + ")\n\n", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
                LanguageProperties.getString(
                    LanguageProperties.UI_GENERAL_BUNDLE, "UIImages.externalDragAndDrop"),
                JOptionPane.YES_NO_OPTION); // $NON-NLS-1$

        if (response == JOptionPane.YES_OPTION) {

          UIFileChooser fileDialog = new UIFileChooser();
          fileDialog.setDialogType(JFileChooser.SAVE_DIALOG);
          fileDialog.setDialogTitle(
              LanguageProperties.getString(
                  LanguageProperties.UI_GENERAL_BUNDLE, "UIImages.changeFileName")); // $NON-NLS-1$
          fileDialog.setApproveButtonText(
              LanguageProperties.getString(
                  LanguageProperties.UI_GENERAL_BUNDLE, "UIImages.saveButton")); // $NON-NLS-1$
          fileDialog.setCurrentDirectory(new File(newFile.getParent() + ProjectCompendium.sFS));
          fileDialog.setSelectedFile(newFile);
          UIUtilities.centerComponent(fileDialog, ProjectCompendium.APP);
          int retval = fileDialog.showSaveDialog(ProjectCompendium.APP);
          if (retval == JFileChooser.APPROVE_OPTION) {
            if ((fileDialog.getSelectedFile()) != null) {

              String fileName2 = fileDialog.getSelectedFile().getName();
              if (fileName2 != null) {
                sFileName = fileName2;
                File fileDir = fileDialog.getCurrentDirectory();

                if (ProjectCompendium.isMac)
                  sPath = fileDir.getAbsolutePath() + ProjectCompendium.sFS;
                else sPath = fileDir.getPath();
              }
            }
          } else {
            return new String(""); // $NON-NLS-1$
          }
        }
      }

      URL url = new URL(address);
      URLConnection conn = url.openConnection();
      conn.connect();

      DataInputStream stream = new DataInputStream(new BufferedInputStream(conn.getInputStream()));
      FileOutputStream output = new FileOutputStream(sPath + sFileName);
      int count = conn.getContentLength();
      if (count > 0) {
        for (int i = 0; i < count; i++) {
          output.write(stream.read());
        }
      } else {
        sFileName = ""; // $NON-NLS-1$
      }

      stream.close();
      output.flush();
      output.close();

      ProjectCompendium.APP.setDefaultCursor();
      return sPath + sFileName;

    } else {
      ProjectCompendium.APP.setDefaultCursor();
      return new String(""); // $NON-NLS-1$
    }
  }