Package net.sourceforge.ganttproject

Source Code of net.sourceforge.ganttproject.OSXAdapter

package net.sourceforge.ganttproject;

import java.io.IOException;

import net.sourceforge.ganttproject.document.Document;
import net.sourceforge.ganttproject.gui.about.AboutDialog;

import com.apple.eawt.ApplicationAdapter;
import com.apple.eawt.ApplicationEvent;

public class OSXAdapter extends ApplicationAdapter {
  private static OSXAdapter osxAdapter;
  private static com.apple.eawt.Application theApp;
  private GanttProject myProj;

  private OSXAdapter(GanttProject myProj) {
    this.myProj = myProj;
  }

  /*
   * This method handles the case when a file in the Finder is dropped onto
   * the app, or GanttProject is selected via the open-with menu option. The
   * event argument contains the path of the file in either case.
   */
  public void handleOpenFile(ApplicationEvent event) {
    String file;
    Document myDocument;

    if (myProj.checkCurrentProject() == true) {
      file = event.getFilename();
      myDocument = myProj.getDocumentManager().getDocument(file);
      try {
        myProj.getProjectUIFacade().openProject(myDocument,
            myProj.getProject());
      } catch (IOException e) {
        myProj.getUIFacade().showErrorDialog(e);
      }
    }
    event.setHandled(true);
  }

  /*
   * Handle the Mac OSX "about" menu option.
   */

  public void handleAbout(ApplicationEvent event) {
    AboutDialog abd = new AboutDialog(myProj);
    abd.setVisible(true);
    /* Indicate we've handled this event ourselves */
    event.setHandled(true);
  }

  /*
   * Handles the quit menu option (defaults to command-q) the same way
   * choosing Project->Quit does.
   */
  public void handleQuit(ApplicationEvent event) {
    myProj.quitApplication();
    /*
     * Not a typo. Must set handled to false else the app will still quit
     * even if we say "cancel" on confirmation.
     */
    event.setHandled(false);
  }

  public static void registerMacOSXApplication(GanttProject myProj) {
    if (theApp == null) {
      theApp = new com.apple.eawt.Application();
    }

    if (osxAdapter == null) {
      osxAdapter = new OSXAdapter(myProj);
    }

    theApp.addApplicationListener(osxAdapter);
  }
}
TOP

Related Classes of net.sourceforge.ganttproject.OSXAdapter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.