class IDEDesktopSupport implements AboutHandler, PreferencesHandler, QuitHandler, OpenFilesHandler {

  public static List<File> filesToOpen = null;
  public static boolean showAbout = true;
  public static boolean showPrefs = true;
  public static boolean showQuit = true;

  public static void init() {<FILL_FUNCTION_BODY>}

  @Override
  public void handleAbout(AboutEvent e) {
    //TODO about dialog
//    new SXDialog("sxideabout", SikulixIDE.getWindowTop(), SXDialog.POSITION.TOP).run();
  }

  @Override
  public void handlePreferences(PreferencesEvent e) {
    SikulixIDE.get().showPreferencesWindow();
  }

  @Override
  public void handleQuitRequestWith(QuitEvent e, QuitResponse response) {
    if (!SikulixIDE.get().terminate()) {
      response.cancelQuit();
    } else {
      response.performQuit();
    }
  }

  @Override
  public void openFiles(OpenFilesEvent e) {
    filesToOpen = e.getFiles();
    for (File f : filesToOpen) {
      //TODO DesktopAction :: openFiles
    }
  }
}


    if(Taskbar.isTaskbarSupported()) {
      Taskbar taskbar = Taskbar.getTaskbar();

      if (taskbar.isSupported(Taskbar.Feature.ICON_IMAGE)) {
        taskbar.setIconImage(Toolkit.getDefaultToolkit().createImage(
            SikulixIDE.class.getResource("/icons/sikulix-icon.png")));
      }
    }

    if (Desktop.isDesktopSupported()) {
      IDEDesktopSupport support = new IDEDesktopSupport();
      Desktop desktop = Desktop.getDesktop();

      if (desktop.isSupported(Desktop.Action.APP_ABOUT)) {
        desktop.setAboutHandler(support);
        showAbout = false;
      }

      if (desktop.isSupported(Desktop.Action.APP_PREFERENCES)) {
        desktop.setPreferencesHandler(support);
        showPrefs = false;
      }

      if (desktop.isSupported(Desktop.Action.APP_QUIT_HANDLER)) {
        desktop.setQuitHandler(support);
        showQuit = false;
      }

      if (desktop.isSupported(Desktop.Action.APP_OPEN_FILE)) {
        desktop.setOpenFileHandler(support);
      }
    }
  
<no_super_class>