package com.trsst.ui;
import com.apple.eawt.AboutHandler;
import com.apple.eawt.AppEvent.AboutEvent;
import com.apple.eawt.AppEvent.OpenFilesEvent;
import com.apple.eawt.AppEvent.OpenURIEvent;
import com.apple.eawt.AppEvent.PreferencesEvent;
import com.apple.eawt.AppEvent.PrintFilesEvent;
import com.apple.eawt.AppEvent.QuitEvent;
import com.apple.eawt.Application;
import com.apple.eawt.OpenFilesHandler;
import com.apple.eawt.OpenURIHandler;
import com.apple.eawt.PreferencesHandler;
import com.apple.eawt.PrintFilesHandler;
import com.apple.eawt.QuitHandler;
import com.apple.eawt.QuitResponse;
/**
* Custom handlers for OS X launch services; allows us to be registered as an
* system feed reader.
*
* @author mpowers
*
*/
public class AppleEvents implements OpenURIHandler, OpenFilesHandler,
PreferencesHandler, PrintFilesHandler, QuitHandler, AboutHandler,
Runnable {
public AppleEvents() {
// NOTE: need to invoke application here to collect launch events
Application.getApplication().setDockIconBadge("...");
}
public void run() {
// NOTE: if these are invoked earlier, jfx disrupts them or something
Application.getApplication().setDockIconBadge("");
Application.getApplication().setOpenURIHandler(this);
Application.getApplication().setOpenFileHandler(this);
log.info("Now receiving OSX events");
}
private final static org.slf4j.Logger log = org.slf4j.LoggerFactory
.getLogger(AppleEvents.class);
public void openURI(OpenURIEvent e) {
// Application.getApplication().setDockIconBadge("URI");
log.info("openURI: " + e.getURI());
AppMain.getInstance().openURI(e.getURI());
}
public void handleAbout(AboutEvent e) {
log.info("handleAbout: ");
// Application.getApplication().setDockIconBadge("About");
}
public void handleQuitRequestWith(QuitEvent e, QuitResponse arg1) {
log.info("handleQuitRequestWith: ");
// Application.getApplication().setDockIconBadge("Quit");
}
public void printFiles(PrintFilesEvent e) {
log.info("printFiles: ");
// Application.getApplication().setDockIconBadge("Print");
}
public void handlePreferences(PreferencesEvent e) {
log.info("handlePreferences: ");
// Application.getApplication().setDockIconBadge("Prefs");
}
public void openFiles(OpenFilesEvent e) {
// Application.getApplication().setDockIconBadge("File");
log.info("openFiles: " + e.getSearchTerm() + " : " + e.getFiles());
AppMain.getInstance().openFiles(e.getFiles());
}
}