Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/VFSBrowserSheetListener.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/VFSBrowserSheetListener.java?rev=1822722&r1=1822721&r2=1822722&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/VFSBrowserSheetListener.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/VFSBrowserSheetListener.java Wed Jan 31 01:35:38 2018 @@ -20,14 +20,58 @@ import org.apache.commons.vfs2.FileObjec import org.apache.commons.vfs2.FileSystemManager; import org.apache.pivot.collections.Sequence; import org.apache.pivot.util.Filter; +import org.apache.pivot.util.ListenerList; /** * Commons VFS browser sheet listener interface. */ public interface VFSBrowserSheetListener { /** + * VFS Browser sheet listeners. + */ + public static class Listeners extends ListenerList<VFSBrowserSheetListener> + implements VFSBrowserSheetListener { + @Override + public void managerChanged(VFSBrowserSheet fileBrowserSheet, + FileSystemManager previousManager) { + forEach(listener -> listener.managerChanged(fileBrowserSheet, previousManager)); + } + + @Override + public void modeChanged(VFSBrowserSheet fileBrowserSheet, VFSBrowserSheet.Mode previousMode) { + forEach(listener -> listener.modeChanged(fileBrowserSheet, previousMode)); + } + + @Override + public void rootDirectoryChanged(VFSBrowserSheet fileBrowserSheet, + FileObject previousRootDirectory) { + forEach(listener -> listener.rootDirectoryChanged(fileBrowserSheet, previousRootDirectory)); + } + + @Override + public void homeDirectoryChanged(VFSBrowserSheet fileBrowserSheet, + FileObject previousHomeDirectory) { + forEach(listener -> listener.homeDirectoryChanged(fileBrowserSheet, previousHomeDirectory)); + } + + @Override + public void selectedFilesChanged(VFSBrowserSheet fileBrowserSheet, + Sequence<FileObject> previousSelectedFiles) { + forEach(listener -> listener.selectedFilesChanged(fileBrowserSheet, previousSelectedFiles)); + } + + @Override + public void disabledFileFilterChanged(VFSBrowserSheet fileBrowserSheet, + Filter<FileObject> previousDisabledFileFilter) { + forEach(listener -> listener.disabledFileFilterChanged(fileBrowserSheet, previousDisabledFileFilter)); + } + } + + /** * Commons VFS browser sheet listener adapter. + * @deprecated Since 2.1 and Java 8 the interface itself has default implementations. */ + @Deprecated public static class Adapter implements VFSBrowserSheetListener { @Override public void managerChanged(VFSBrowserSheet fileBrowserSheet, @@ -72,7 +116,8 @@ public interface VFSBrowserSheetListener * @param fileBrowserSheet The source of this event. * @param previousManager The previous file manager that was set. */ - public void managerChanged(VFSBrowserSheet fileBrowserSheet, FileSystemManager previousManager); + default public void managerChanged(VFSBrowserSheet fileBrowserSheet, FileSystemManager previousManager) { + } /** * Called when a file browser sheet's mode has changed. @@ -80,7 +125,8 @@ public interface VFSBrowserSheetListener * @param fileBrowserSheet The source of this event. * @param previousMode The previous mode for this browser. */ - public void modeChanged(VFSBrowserSheet fileBrowserSheet, VFSBrowserSheet.Mode previousMode); + default public void modeChanged(VFSBrowserSheet fileBrowserSheet, VFSBrowserSheet.Mode previousMode) { + } /** * Called when a file browser sheet's root directory has changed. @@ -88,8 +134,9 @@ public interface VFSBrowserSheetListener * @param fileBrowserSheet The browser sheet that has changed. * @param previousRootDirectory The previously set root directory for this browser. */ - public void rootDirectoryChanged(VFSBrowserSheet fileBrowserSheet, - FileObject previousRootDirectory); + default public void rootDirectoryChanged(VFSBrowserSheet fileBrowserSheet, + FileObject previousRootDirectory) { + } /** * Called when a file browser sheet's home directory has changed. @@ -98,8 +145,9 @@ public interface VFSBrowserSheetListener * @param fileBrowserSheet The browser sheet that has changed. * @param previousHomeDirectory The previously set home directory for this browser. */ - public void homeDirectoryChanged(VFSBrowserSheet fileBrowserSheet, - FileObject previousHomeDirectory); + default public void homeDirectoryChanged(VFSBrowserSheet fileBrowserSheet, + FileObject previousHomeDirectory) { + } /** * Called when a file browser sheet's selection state has been reset. @@ -107,8 +155,9 @@ public interface VFSBrowserSheetListener * @param fileBrowserSheet The source of this event. * @param previousSelectedFiles The previous sequence of selected files. */ - public void selectedFilesChanged(VFSBrowserSheet fileBrowserSheet, - Sequence<FileObject> previousSelectedFiles); + default public void selectedFilesChanged(VFSBrowserSheet fileBrowserSheet, + Sequence<FileObject> previousSelectedFiles) { + } /** * Called when a file browser sheet's disabled file filter has changed. @@ -116,6 +165,7 @@ public interface VFSBrowserSheetListener * @param fileBrowserSheet The source of this event. * @param previousDisabledFileFilter The previous filter for disabled files. */ - public void disabledFileFilterChanged(VFSBrowserSheet fileBrowserSheet, - Filter<FileObject> previousDisabledFileFilter); + default public void disabledFileFilterChanged(VFSBrowserSheet fileBrowserSheet, + Filter<FileObject> previousDisabledFileFilter) { + } }