|
WebObjects 5.2.3 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.webobjects.eoapplication.EOController com.webobjects.eoapplication.EOComponentController com.webobjects.eoapplication.EOArchiveController com.webobjects.eoapplication.EOEntityController com.webobjects.eoapplication.EODocumentController
The EODocumentController class provides behavior for displaying and editing enterprise objects in a user interface. EODocumentController's API is mostly specified by the interfaces EODocument and EOEditable. Additionally, much of the way that EODocumentController works is set up by its superclass, EOEntityController. Since EOEntityControllers use EOEditingContexts and EODisplayGroups to manage and display a set of enterprise objects, EODocumentControllers use them as well. However, in addition to displaying enterprise objects, document controllers also edit the displayed objects. You can insert, update, and delete enterprise objects; undo and redo unsaved changes; and save and revert.
EODocumentController provides several action methods to interact with a user. For example,
the methods revert
and saveIfUserConfirms
open dialogs to confirm
that a user wants to revert or save before performing the action. Also, many of the methods
open dialogs when an error occurs, telling the user what happened.
EODocumentController defines the concept of a root document controller. A document controller is the root document controller if none of its supercontrollers conform to EODocument. A root document controller usually provides the editing context for all its descendent document controllers -- the subcontrollers typically don't create their own. Consequently, the root document controller has responsibilities that non-root document controllers don't have. For example, only the root document controller provides save and revert behavior.
Nested Class Summary |
Nested classes inherited from class com.webobjects.eoapplication.EOComponentController |
EOComponentController.ActionCollector, EOComponentController.Activation, EOComponentController.EndEditing, EOComponentController.Modal, EOComponentController.ResetUserInterface |
Nested classes inherited from class com.webobjects.eoapplication.EOController |
EOController.Enumeration |
Nested classes inherited from class com.webobjects.foundation.NSKeyValueCoding |
NSKeyValueCoding.DefaultImplementation, NSKeyValueCoding.ErrorHandling, NSKeyValueCoding.Null, NSKeyValueCoding.UnknownKeyException, NSKeyValueCoding.Utility, NSKeyValueCoding.ValueAccessor |
Nested classes inherited from class com.webobjects.foundation.NSKeyValueCodingAdditions |
NSKeyValueCodingAdditions.DefaultImplementation, NSKeyValueCodingAdditions.Utility |
Field Summary |
Fields inherited from class com.webobjects.eoapplication.EOEntityController |
NestedEditingContextProviderMethodName, NewDisplayGroupProviderMethodName, NewDisplayGroupUsingOptimisticRefreshProviderMethodName, NewEditingContextProviderMethodName |
Fields inherited from class com.webobjects.eoapplication.EOComponentController |
Bottom, BottomLeft, BottomRight, Center, Left, Right, Top, TopLeft, TopRight |
Fields inherited from class com.webobjects.eoapplication.EOController |
ControllerAndSubcontrollersEnumeration, ControllerAndSupercontrollersEnumeration, SubcontrollersEnumeration, SupercontrollersEnumeration |
Fields inherited from interface com.webobjects.eoapplication.EOEditable |
AlwaysEditable, IfSupercontrollerEditable, NeverEditable |
Fields inherited from interface com.webobjects.foundation.NSKeyValueCoding |
NullValue |
Fields inherited from interface com.webobjects.foundation.NSKeyValueCodingAdditions |
KeyPathSeparator |
Constructor Summary | |
EODocumentController()
Creates a new document controller. |
|
EODocumentController(EOXMLUnarchiver unarchiver)
Creates a new document controller from an EOXMLUnarchiver. |
Method Summary | |
boolean |
canPerformActionNamed(String actionName)
Overridden to handle editing-related action enabling and disabling. |
boolean |
canRedo()
Returns whether the receiver can redo. |
boolean |
canRevert()
Returns whether the receiver can revert. |
boolean |
canSave()
Returns whether the receiver can save. |
boolean |
canUndo()
Returns whether the receiver can undo. |
protected void |
connectionWasEstablished()
Reacts to the connection for the receiver being established, taking care of editability issues in addition to the superclass implementation. |
protected NSArray |
defaultActions()
Adds actions for handling editing (like save, revert) the default actions defined by the superclass, EOEntityController (but only if the receiver is a root document controller and if it's not used in a modal dialog. |
void |
deleteSelectedObjects()
Deletes the objects selected in the receiver's display group and updates the edited status to true . |
void |
dispose()
Prepares the receiver so it is disposed when Java performs garbage collection. |
int |
editability()
Returns the editability of the receiver. |
void |
handleEditingContextNotification(NSNotification notification)
In addition to the superclass implementation, updates the edited state of the receiver based on changes that happened in the receiver's editing context. |
void |
insertObject()
Creates a new enterprise object, inserts it into the receiver's display group and updates the edited status to true . |
boolean |
isDocumentForGlobalID(EOGlobalID globalID,
String entityName)
Conformance to EODocument. |
boolean |
isEditable()
Returns whether the receiver is currently editable. |
boolean |
isEdited()
Returns the receiver's edited state. |
boolean |
isRootDocumentController()
Returns whether the receiver is a root document controller (which is the case if none of the supercontrollers conform to EODocument). |
void |
prepareForNewTask(boolean prepareSubcontrollersForNewTask)
Prepares the receiver for performing a new task by resetting any data and resetting it's edited state. |
void |
redo()
Tells the receiver's editing context to redo the last editing state. |
boolean |
revert()
Reverts the receiver's editing context changes by invoking revertChanges ,
requesting an error dialog upon failure. |
boolean |
revertAndMakeInvisible()
Attempts to revert the receiver's editing context changes and makes the receiver's user interface invisible if the revert succeeded (which usually results in a window closing). |
boolean |
revertChanges(boolean showErrorDialog)
Tells the receiver's editing context to revert changes and updates the receiver's editing state on success. |
protected void |
revertFailed(Exception exception,
boolean showErrorDialog)
Invoked from revertChanges if the revert failed. |
boolean |
save()
Saves the receiver's editing context changes by invoking saveChanges ,
requesting an error dialog upon failure. |
boolean |
saveAndMakeInvisible()
Attempts to save the receiver's editing context changes and makes the receiver's user interface invisible if the save succeeded (which usually results in a window closing). |
boolean |
saveChanges(boolean showErrorDialog,
String saveOperationTitle)
Tells the receiver's editing context to save changes and updates the receiver's editing state on success. |
protected void |
saveFailed(Exception exception,
boolean showErrorDialog,
String saveOperationTitle)
Invoked from saveChanges if the save failed. |
boolean |
saveIfUserConfirms()
Invokes saveIfUserConfirms(boolean, String) with default
values for a normal save operation. |
boolean |
saveIfUserConfirms(String operationTitle,
String message)
Presents an alert panel asking the user whether the receiver's editing context changes should be saved or not ( operationTitle is used as a description
of the operation, message as the question displayed in the alert panel). |
boolean |
saveIfUserConfirmsAndMakeInvisible()
Invokes saveIfUserConfirmsAndMakeInvisible(String, String) with default
values for a normal save & close operation. |
boolean |
saveIfUserConfirmsAndMakeInvisible(String operationTitle,
String message)
Invokes saveIfUserConfirms(boolean, String) and makes
the receiver's user interface invisible if the save succeeded (which
usually results in a window closing). |
void |
setEditability(int editability)
Sets the editability of the receiver to editability . |
void |
setEdited(boolean flag)
Conformance to EODocument. |
void |
supercontrollerEditabilityDidChange()
Invoked to notify the receiver that the editability of its supercontroller changed, giving the receiver the opportunity to update its user interface to match the editability of the supercontroller. |
void |
takeResponsibilityForEditabilityOfAssociation(EOAssociation association)
Invoked when one of the receiver's subcontrollers is disposed as a transient controller. |
String |
toString()
Returns the receiver as a String describing the state of the controller. |
void |
undo()
Tells the receiver's editing context to undo the last editing state. |
protected void |
wasEdited()
Invoked from setEdited to notify the receiver that edited status
has changed, giving the receiver the opportunity to react. |
Methods inherited from class com.webobjects.eoapplication.EOArchiveController |
archiveName, controllerDisplayGroup, hasControllerDisplayGroup, loadArchive, objectWillChange, prepareComponent, setArchiveName, setControllerDisplayGroup, willChange |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.webobjects.eoapplication.EOObjectDisplay |
controllerDisplayGroup, displayGroup, editingContext, entityName |
Constructor Detail |
public EODocumentController()
public EODocumentController(EOXMLUnarchiver unarchiver)
unarchiver
- the unarchiver providing XML attributesMethod Detail |
public boolean canPerformActionNamed(String actionName)
canPerformActionNamed
in interface EOAction.Enabling
canPerformActionNamed
in class EOController
actionName
- the action method name
true
if the action should be enabled; false
otherwiseEOAction.Enabling
public boolean canRedo()
true
if the controller can undo; false
otherwisepublic boolean canRevert()
true
if the controller can revert; false
otherwisepublic boolean canSave()
true
if the controller can save; false
otherwisepublic boolean canUndo()
true
if the controller can undo; false
otherwiseprotected void connectionWasEstablished()
connectionWasEstablished
in class EOEntityController
protected NSArray defaultActions()
defaultActions
in class EOController
EOController.actions()
,
EOController.resetActions()
public void deleteSelectedObjects()
true
.
public void dispose()
dispose
in interface NSDisposable
dispose
in class EOEntityController
public int editability()
EOEditable
EOEditable.IfSupercontrollerEditable
.
editability
in interface EOEditable
EOEditable.NeverEditable
,
EOEditable.AlwaysEditable
, or EOEditable.IfSupercontrollerEditable
public void handleEditingContextNotification(NSNotification notification)
handleEditingContextNotification
in class EOEntityController
notification
- the editing context notificationEOEntityController.startListeningToEditingContext()
public void insertObject()
true
.
public boolean isDocumentForGlobalID(EOGlobalID globalID, String entityName)
globalID
and entityName
.
See the method description of isDocumentForGlobalID
in the interface
specification for EODocument. EODocumentController's default implementation returns
true
if the receiver is a root document controller and receiver's display
group displays only the specified object. Subclasses might have to override this
method to return false
, for example list controllers can't really
be documents for a single object and should return false
.
isDocumentForGlobalID
in interface EODocument
globalID
- the EOGlobalID of the enterprise objectentityName
- the name of the entity of the enterprise object
true
if the receiver is a root document controller and its display group
is displaying only the specified enteprise object; false
otherwiseEODocument.isDocumentForGlobalID(EOGlobalID, String)
public boolean isEditable()
EOEditable
EOEditable.AlwaysEditable
or its editability is
EOEditable.IfSupercontrollerEditable
and sending
EOEditable.isEditable
to the first EOEditable supercontroller
of the receiver returns true
.
isEditable
in interface EOEditable
true
if the controller is currently editable; false
otherwisepublic boolean isEdited()
EODocument
isEdited
in interface EODocument
true
if the controller is edited (and unsaved); false
otherwisepublic boolean isRootDocumentController()
true
if the controller is a root document controller; false
otherwisepublic void prepareForNewTask(boolean prepareSubcontrollersForNewTask)
prepareForNewTask
in class EOEntityController
prepareSubcontrollersForNewTask
- true
if the method should be forwarded
to all subcontrollers; false
otherwisepublic void redo()
public boolean revert()
revertChanges
,
requesting an error dialog upon failure. Returns whether the revert succeeded.
true
if the revert succeeded; false
otherwiserevertChanges(boolean)
public boolean revertAndMakeInvisible()
true
if the save succeeded; false
if the save failed or the user chose to not savepublic boolean revertChanges(boolean showErrorDialog)
revertFailed
to show the reason
for failure. Returns whether the revert succeeded.
showErrorDialog
- true
if the controller should show a dialog if the revert fails;
false
otherwise
true
if the revert succeeded; false
otherwiserevertFailed(Exception, boolean)
protected void revertFailed(Exception exception, boolean showErrorDialog)
revertChanges
if the revert failed.
If showErrorDialog
is true
, brings the receiver's
user interface to the front and opens a dialog displaying
exception's class name and exception message. This method can
be overridden by subclasses to handle revert errors in a
special way.
exception
- the exception causing the save errorshowErrorDialog
- true
if the controller should show an error dialog; false
otherwiserevertChanges(boolean)
public boolean save()
saveChanges
,
requesting an error dialog upon failure. Returns whether the save succeeded.
save
in interface EODocument
true
if the save succeeded; false
otherwisesaveChanges(boolean, String)
public boolean saveAndMakeInvisible()
true
if the save succeeded; false
if the save failed or the user chose to not savepublic boolean saveChanges(boolean showErrorDialog, String saveOperationTitle)
Tells the receiver's editing context to save changes and updates
the receiver's editing state on success. If the save fails, catches
the exception and invokes saveFailed
to show the reason
for failure. Returns whether the save succeeded.
Some applications need to disable undo operations after a save. You can override this method to do so, for example:
public boolean saveChanges(boolean showErrorDialog, String saveOperationTitle) { if (super.saveChanges(showErrorDialog, saveOperationTitle)) { editingContext().undoManager().removeAllActions(); } }
showErrorDialog
- true
if the controller should show a dialog if the save fails;
false
otherwisesaveOperationTitle
- a description of the operation causing the save
true
if the save succeeded; false
otherwisesaveFailed(Exception, boolean, String)
protected void saveFailed(Exception exception, boolean showErrorDialog, String saveOperationTitle)
saveChanges
if the save failed.
If showErrorDialog
is true, brings the receiver's
user interface to the front and opens a dialog displaying
exception's class name and exception message. This method can
be overridden by subclasses to handle save errors in a
special way.
exception
- the exception causing the save errorshowErrorDialog
- true
if the controller should show an error dialog; false
otherwisesaveOperationTitle
- a description of the operation causing the savesaveChanges(boolean, String)
public boolean saveIfUserConfirms(String operationTitle, String message)
operationTitle
is used as a description
of the operation, message
as the question displayed in the alert panel).
The user can choose to save or not to save. Returns whether the changes were
saved successfully.
saveIfUserConfirms
in interface EODocument
operationTitle
- a description of the operationmessage
- a message to be displayed to the user
true
if the save succeeded; false
if the save failed or the user chose to not savesaveChanges(boolean, String)
public boolean saveIfUserConfirms()
saveIfUserConfirms(boolean, String)
with default
values for a normal save operation.
true
if the save succeeded; false
if the save failed or the user chose to not savesaveIfUserConfirms(String, String)
public boolean saveIfUserConfirmsAndMakeInvisible(String operationTitle, String message)
saveIfUserConfirms(boolean, String)
and makes
the receiver's user interface invisible if the save succeeded (which
usually results in a window closing).
operationTitle
- a description of the operationmessage
- a message to be displayed to the user
true
if the save succeeded; false
if the save failed or the user chose to not savesaveIfUserConfirms(String, String)
,
EOComponentController.makeInvisible()
public boolean saveIfUserConfirmsAndMakeInvisible()
saveIfUserConfirmsAndMakeInvisible(String, String)
with default
values for a normal save & close operation.
true
if the save succeeded; false
if the save failed or the user chose to not savesaveIfUserConfirmsAndMakeInvisible(String, String)
public void setEditability(int editability)
EOEditable
editability
.
See the method description of setEditability
in the
interface specification for EOEditable.
setEditability
in interface EOEditable
editability
- the editability, one of EOEditable.NeverEditable
,
EOEditable.AlwaysEditable
, or EOEditable.IfSupercontrollerEditable
public void setEdited(boolean flag)
setEdited
in the interface specification
for EODocument. EODocumentController's default implementation only updates
the edited state of the receiver if it's a root document controller,
otherwise it asks the root document controller to handle the edited state.
setEdited
in interface EODocument
flag
- true
if the controller is edited (and unsaved); false
otherwiseEODocument.setEdited(boolean)
public void supercontrollerEditabilityDidChange()
EOEditable
EOEditable.IfSupercontrollerEditable
.
supercontrollerEditabilityDidChange
in interface EOEditable
public void takeResponsibilityForEditabilityOfAssociation(EOAssociation association)
EOEditable
association
.
takeResponsibilityForEditabilityOfAssociation
in interface EOEditable
association
- the transient subcontroller's associationpublic String toString()
toString
in class EOEntityController
public void undo()
protected void wasEdited()
setEdited
to notify the receiver that edited status
has changed, giving the receiver the opportunity to react.
setEdited(boolean)
|
Last updated Thu Oct 21 15:04:16 PDT 2004. | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |