Class ActionExample4
java.lang.Object
org.jdesktop.application.AbstractBean
org.jdesktop.application.Application
examples.ActionExample4
An
@Action that executes a background Task.
This example demonstates the use of a background Task.
If an @Action returns a Task, it's executed
on a worker thread, and monitored by the application framework.
When executed, the ListFilesTask Task class
recursively lists all of the files beginning with some root, and
publishes the files it finds, 10 at a time. A
private subclass of ListFilesTask overrides the
Task.process method to update a JList's ListModel with the new
files:
private class DoListFiles extends ListFilesTask {
public DoListFiles(File root) {
super(root);
listModel.clear();
}
@Override protected void process(List<File> files) {
if (!isCancelled()) {
listModel.addAll(files);
}
}
}
The example's go @Action, keeps a reference to the
DoListFiles background Task
so that the stop @Action can cancel it:
private Task doListFiles = null;
@Action public Task go() {
stop(); // maybe cancel pending Task
doListFiles = new DoListFiles(getRootFile());
setStopEnabled(true);
return doListFiles;
}
@Action(enabledProperty = "stopEnabled") public void stop() {
if ((doListFiles != null) invalid input: '&'invalid input: '&' (doListFiles.cancel(true))) {
setStopEnabled(false);
}
}
The Action's resources are initialized from a
ResourceBundle, as with ActionExample2.
Additionally, the ListFilesTask's title and
description properties are initialized from the
resources/ListFilesTask.properties ResourceBundle:
ListFilesTask.title = List Files
ListFilesTask.description = List all of the files accessible from some root directory
ListFilesTask.directoryMessage = Listing files in {0}
The directoryMessage resource is used by ListFilesTask
to format a message each time a new directory is listed.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class Application
Application.ExitListener -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongo()Thego@Action.booleanstatic voidvoidsetStopEnabled(boolean stopEnabled) protected voidstartup()Responsible for starting the application; for creating and showing the initial GUI.voidstop()Thestop@Action.Methods inherited from class Application
addExitListener, end, exit, exit, getContext, getExitListeners, getInstance, getInstance, hide, initialize, launch, quit, ready, removeExitListener, show, shutdown
-
Constructor Details
-
ActionExample4
public ActionExample4()
-
-
Method Details
-
go
-
stop
Thestop@Action.Cancel the pending DoListFiles Task, if there is one.
- See Also:
-
isStopEnabled
public boolean isStopEnabled() -
setStopEnabled
public void setStopEnabled(boolean stopEnabled) -
startup
protected void startup()Description copied from class:ApplicationResponsible for starting the application; for creating and showing the initial GUI.This method is called by the static
launchmethod, subclasses must override it. It runs on the event dispatching thread.- Specified by:
startupin classApplication- See Also:
-
main
-