public boolean init(String args[])
   {
      app_instance = this;
      String fpath = parseArgs(args);
      frame = new JFrame();

      // get the static parameters
      os_type = getOSType();
      settings = new Settings();
      settings.load();
/*
      // set the application icon
      final String[] icon_names =
      {
         "jOculus-icon-256.png", "jOculus-icon-128.png",
         "jOculus-icon-96.png", "jOculus-icon-64.png", "jOculus-icon-48.png",
         "jOculus-icon-32.png", "jOculus-icon-16.png"
      };
      ArrayList<BufferedImage> icon_list = new ArrayList<BufferedImage>();
      for (String icon : icon_names)
      {
         BufferedImage i = null;
         try
         {
            i = ImageIO.read(getClass().getClassLoader().getResource("abstrys/joculus/res/" + icon));
         }
         catch (IOException ex)
         {
            showError(ex.getMessage());
         }

         if (i != null)
         {
            icon_list.add(i);
         }
      }

      frame.setIconImage(icon_list.get(3));
*/

      // Create the HTMLPanel, using the last saved window size (if available) to set the size.
      // Otherwise, use the default minimum size.
      Dimension window_size = new Dimension();
      html_panel = new HTMLPanel(settings.window_size_last);

      // Create the action panel.
      action_panel = new ActionPanel(this);

      if (fpath == null)
      {
         JOptionPane.showMessageDialog(
                 frame, UIStrings.ERROR_NO_FILE_SPECIFIED,
                 UIStrings.ERRORMSG_TITLE, JOptionPane.ERROR_MESSAGE);
         return false;
      }

      if (!setFile(fpath))
      {
         // the file was specified, but it could not be loaded. The user has been notified (in the setFile method).
         return false;
      }

      // Set up the application frame.

      Container cp = frame.getContentPane();
      cp.setLayout(new BorderLayout());

      cp.add(html_panel, BorderLayout.CENTER);
      cp.add(action_panel, BorderLayout.SOUTH);

      frame.pack();
      frame.setVisible(true);

      // handle window closing, passing execution to the onExit method.
      frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
      frame.addWindowListener(new WindowAdapter()
      {
         @Override
         public void windowClosing(WindowEvent e)
         {
            onExit();
         }
      });

/*
      frame.addKeyListener(new KeyListener() {

         @Override
         public void keyTyped(KeyEvent ke)
         {
         }

         @Override
         public void keyPressed(KeyEvent ke)
         {
            if(ke.getModifiers() == java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())
            {
               if(ke.getKeyCode() == KeyEvent.VK_O)
               {
                  action_panel.actionOpenFile(app_instance);
               }
               else if(ke.getKeyCode() == KeyEvent.VK_E)
               {
                  action_panel.actionEditFile(app_instance);
               }
            }
         }

         @Override
         public void keyReleased(KeyEvent ke)
         {
         }
      });*/
      return true;
   }