Class DocumentExample
The application's state is defined by two read-only bound properties:
- File
file
- The current text File being edited.
- boolean
#isModified
- True if the current file needs to be saved.
The application is launched
in the
main method on the "main" thread. All the work of actually
constructing, intializing
, and
starting
the application actually
happens on the EDT.
The resources for this Application are defined in
resources/DocumentExample.properties
.
This application defines a small set of actions for opening
and saving files: open
, save
,
and saveAs
. It inherits
cut/copy/paste/delete
ProxyActions from the
Application
class. The ProxyActions perform their
action not on the component they're bound to (menu items and
toolbar buttons), but on the component that currently
has the keyboard focus. Their enabled state tracks the
selection value of the component with the keyboard focus,
as well as the contents of the system clipboard.
The action code that reads and writes files, runs asynchronously
on background threads. The open
, save
,
and saveAs
actions all return a Task object which
encapsulates the work that will be done on a background thread.
The showAboutBox
and
closeAboutBox
actions do their work
synchronously.
Warning: this application is intended as a simple example, not as a robust text editor. Read it, don't use it.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jdesktop.application.Application
Application.ExitListener
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Close the about box dialog.getFile()
The File currently being edited.protected void
initialize
(String[] args) Responsible for initializations that must occur before the GUI is constructed bystartup
.boolean
True if the file value has been modified but not saved.static void
Launch the application on the EDT.open()
Prompt the user for a filename and then attempt to load the file.protected void
ready()
Called after the startup() method has returned and there are no more events on thesystem event queue
.save()
Save the contents of the textArea to the currentfile
.saveAs()
Save the contents of the textArea to the current file.void
Show the about box dialog.protected void
startup()
Responsible for starting the application; for creating and showing the initial GUI.Methods inherited from class org.jdesktop.application.SingleFrameApplication
configureWindow, getMainFrame, getMainView, setMainFrame, show, show, show, show, shutdown
Methods inherited from class org.jdesktop.application.Application
addExitListener, end, exit, exit, getContext, getExitListeners, getInstance, getInstance, hide, launch, quit, removeExitListener
Methods inherited from class org.jdesktop.application.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Constructor Details
-
DocumentExample
public DocumentExample()
-
-
Method Details
-
getFile
The File currently being edited. The default value of this property is "untitled.txt".This is a bound read-only property. It is never null.
- Returns:
- the value of the file property.
- See Also:
-
isModified
public boolean isModified()True if the file value has been modified but not saved. The default value of this property is false.This is a bound read-only property.
- Returns:
- the value of the modified property.
- See Also:
-
open
Prompt the user for a filename and then attempt to load the file.The file is loaded on a worker thread because we don't want to block the EDT while the file system is accessed. To do that, this Action method returns a new LoadFileTask instance, if the user confirms selection of a file. The task is executed when the "open" Action's actionPerformed method runs. The LoadFileTask is responsible for updating the GUI after it has successfully completed loading the file.
- Returns:
- a new LoadFileTask or null
-
save
Save the contents of the textArea to the currentfile
.The text is written to the file on a worker thread because we don't want to block the EDT while the file system is accessed. To do that, this Action method returns a new SaveFileTask instance. The task is executed when the "save" Action's actionPerformed method runs. The SaveFileTask is responsible for updating the GUI after it has successfully completed saving the file.
- See Also:
-
saveAs
Save the contents of the textArea to the current file.This action is nearly identical to
open
. In this case, if the user chooses a file, aSaveFileTask
is returned. Note that the selected file only becomes the value of thefile
property if the file is saved successfully. -
showAboutBox
Show the about box dialog. -
closeAboutBox
Close the about box dialog. -
initialize
Description copied from class:Application
Responsible for initializations that must occur before the GUI is constructed bystartup
.This method is called by the static
launch
method, beforestartup
is called. Subclasses that want to do any initialization work beforestartup
must override it. Theinitialize
method runs on the event dispatching thread.By default initialize() does nothing.
- Overrides:
initialize
in classApplication
- Parameters:
args
- the main method's arguments.- See Also:
-
startup
protected void startup()Description copied from class:Application
Responsible for starting the application; for creating and showing the initial GUI.This method is called by the static
launch
method, subclasses must override it. It runs on the event dispatching thread.- Specified by:
startup
in classApplication
- See Also:
-
ready
protected void ready()Description copied from class:Application
Called after the startup() method has returned and there are no more events on thesystem event queue
. When this method is called, the application's GUI is ready to use.It's usually important for an application to start up as quickly as possible. Applications can override this method to do some additional start up work, after the GUI is up and ready to use.
- Overrides:
ready
in classApplication
- See Also:
-
main
Launch the application on the EDT.- See Also:
-