public synchronized void handleOpenFile(com.apple.eawt.ApplicationEvent ev) {
    Application.debug("handleOpenFile event, filename: " + ev.getFilename());

    // open file
    String fileName = ev.getFilename();

    if (fileName != null) {
      File openFile = new File(fileName);
      if (openFile.exists()) {
        // get application instance
        GeoGebraFrame ggb = getGGBInstance();
        Application app = ggb.getApplication();

        // open file
        File[] files = {openFile};
        boolean openInThisWindow = app.getCurrentFile() == null;
        app.getGuiManager().doOpenFiles(files, openInThisWindow);

        // make sure window is visible
        if (openInThisWindow) ggb.setVisible(true);
      }
    }
  }