/**
   * Creates a new SshToolsApplication object.
   *
   * @param panelClass
   * @param defaultContainerClass
   */
  public SshToolsApplication(Class panelClass, Class defaultContainerClass) {
    this.panelClass = panelClass;
    this.defaultContainerClass = defaultContainerClass;
    additionalOptionsTabs = new java.util.ArrayList();

    try {
      if (System.getSecurityManager() != null) {
        AccessController.checkPermission(new FilePermission("<<ALL FILES>>", "write"));
      }

      File a = getApplicationPreferencesDirectory();

      if (a == null) {
        throw new AccessControlException("Application preferences directory not specified.");
      }

      InputStream in = null;
      MRUList mru = new MRUList();

      try {
        File f = new File(a, getApplicationName() + ".mru");

        if (f.exists()) {
          if (log.isDebugEnabled()) {
            log.debug("Loading MRU from " + f.getAbsolutePath());
          }

          in = new FileInputStream(f);
          mru.reload(in);
        } else {
          if (log.isDebugEnabled()) {
            log.debug("MRU file " + f.getAbsolutePath() + " doesn't exist, creating empty list");
          }
        }
      } catch (Exception e) {
        log.error("Could not load MRU list.", e);
      } finally {
        IOUtil.closeStream(in);
      }

      mruModel = new MRUListModel();
      mruModel.setMRUList(mru);
    } catch (AccessControlException ace) {
      log.error("Could not load MRU.", ace);
    }
  }