blob: d2d9575ec0b1583586aa8a6d556099c5779ae39c [file] [log] [blame]
/*
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.apple.eawt;
import java.io.File;
import java.net.URI;
import java.util.*;
import java.awt.Window;
/**
* AppEvents are sent to listeners and handlers installed on the {@link Application}.
*
* @since Java for Mac OS X 10.6 Update 3
* @since Java for Mac OS X 10.5 Update 8
*/
public abstract class AppEvent extends EventObject {
AppEvent() {
super(Application.getApplication());
}
/**
* Contains a list of files.
*/
public abstract static class FilesEvent extends AppEvent {
final List<File> files;
FilesEvent(final List<File> files) {
this.files = files;
}
/**
* @return the list of files
*/
public List<File> getFiles() {
return files;
}
}
/**
* Event sent when the app is asked to open a list of files.
*
* @see OpenFilesHandler#openFiles(OpenFilesEvent)
*/
public static class OpenFilesEvent extends FilesEvent {
final String searchTerm;
OpenFilesEvent(final List<File> files, final String searchTerm) {
super(files);
this.searchTerm = searchTerm;
}
/**
* If the files were opened using the Spotlight search menu or a Finder search window, this method obtains the search term used to find the files.
* This is useful for highlighting the search term in the documents when they are opened.
* @return the search term used to find the files
*/
public String getSearchTerm() {
return searchTerm;
}
}
/**
* Event sent when the app is asked to print a list of files.
*
* @see PrintFilesHandler#printFiles(PrintFilesEvent)
*/
public static class PrintFilesEvent extends FilesEvent {
PrintFilesEvent(final List<File> files) {
super(files);
}
}
/**
* Event sent when the app is asked to open a URI.
*
* @see OpenURIHandler#openURI(OpenURIEvent)
*/
public static class OpenURIEvent extends AppEvent {
final URI uri;
OpenURIEvent(final URI uri) {
this.uri = uri;
}
/**
* @return the URI the app was asked to open
*/
public URI getURI() {
return uri;
}
}
/**
* Event sent when the application is asked to open it's about window.
*
* @see AboutHandler#handleAbout()
*/
public static class AboutEvent extends AppEvent { AboutEvent() { } }
/**
* Event sent when the application is asked to open it's preferences window.
*
* @see PreferencesHandler#handlePreferences()
*/
public static class PreferencesEvent extends AppEvent { PreferencesEvent() { } }
/**
* Event sent when the application is asked to quit.
*
* @see QuitHandler#handleQuitRequestWith(QuitEvent, QuitResponse)
*/
public static class QuitEvent extends AppEvent { QuitEvent() { } }
/**
* Event sent when the application is asked to re-open itself.
*
* @see AppReOpenedListener#appReOpened(AppReOpenedEvent)
*/
public static class AppReOpenedEvent extends AppEvent { AppReOpenedEvent() { } }
/**
* Event sent when the application has become the foreground app, and when it has resigned being the foreground app.
*
* @see AppForegroundListener#appRaisedToForeground(AppForegroundEvent)
* @see AppForegroundListener#appMovedToBackground(AppForegroundEvent)
*/
public static class AppForegroundEvent extends AppEvent { AppForegroundEvent() { } }
/**
* Event sent when the application has been hidden or shown.
*
* @see AppHiddenListener#appHidden(AppHiddenEvent)
* @see AppHiddenListener#appUnhidden(AppHiddenEvent)
*/
public static class AppHiddenEvent extends AppEvent { AppHiddenEvent() { } }
/**
* Event sent when the user session has been changed via Fast User Switching.
*
* @see UserSessionListener#userSessionActivated(UserSessionEvent)
* @see UserSessionListener#userSessionDeactivated(UserSessionEvent)
*/
public static class UserSessionEvent extends AppEvent { UserSessionEvent() { } }
/**
* Event sent when the displays attached to the system enter and exit power save sleep.
*
* @see ScreenSleepListener#screenAboutToSleep(ScreenSleepEvent)
* @see ScreenSleepListener#screenAwoke(ScreenSleepEvent)
*/
public static class ScreenSleepEvent extends AppEvent { ScreenSleepEvent() { } }
/**
* Event sent when the system enters and exits power save sleep.
*
* @see SystemSleepListener#systemAboutToSleep(SystemSleepEvent)
* @see SystemSleepListener#systemAwoke(SystemSleepEvent)
*/
public static class SystemSleepEvent extends AppEvent { SystemSleepEvent() { } }
/**
* Event sent when a window is entering/exiting or has entered/exited full screen state.
*
* @see FullScreenUtilities
*
* @since Java for Mac OS X 10.7 Update 1
*/
public static class FullScreenEvent extends AppEvent {
final Window window;
FullScreenEvent(final Window window) {
this.window = window;
}
/**
* @return window transitioning between full screen states
*/
public Window getWindow() {
return window;
}
}
}