Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

OOF_mixRepAbstractCellEditor Class Reference
[Report Editing support]

#include <oofrepedit.h>

Inheritance diagram for OOF_mixRepAbstractCellEditor:

Inheritance graph
[legend]
Collaboration diagram for OOF_mixRepAbstractCellEditor:

Collaboration graph
[legend]
List of all members.

Detailed Description

Support typical actions of report editing dialogs.

The idea of the mixin base is to define a common set of controls and their behaviour so an application can subclass with just a few overrides, supporting with whatever dialog class and layout they fancy. This is necessary because application code may have dialogs based on LGADialog or other base classes.

Any buttons not initialised will not be implemented so the entire movement approach can be ignored if desired.

Most of the behaviour is cross platform in OOF_mixRepAbstractCellEditor thanks to the cross-platform GUI interface.


Public Member Functions

virtual void maybeChangeTargetLink (dbFieldLink *)
virtual dbTabletable () const
virtual void subscribeTo (oofBroadcaster *)
virtual void unsubscribe (oofBroadcaster *from=0)
void suspendListening ()
void resumeListening ()
virtual bool receiveMsg (OOFmsgT msg, unsigned long senderDefined)
 The default receiveMsg behaviour is to delete yourself when the broadcaster closes.


Protected Types

enum  movementT {
  eGoFirst, eGoLast, eGoLeft, eGoRight,
  eGoUp, eGoDown
}

Protected Member Functions

 OOF_mixRepAbstractCellEditor ()
virtual ~OOF_mixRepAbstractCellEditor ()
virtual void FinishCreationByLinkingDataModel (oofRepEditingEnv *, oofRepEditLink *)
virtual void UpdateMovementButtons ()
 override to control disabling

virtual void UnableToMoveWarning (movementT, bool movingByCell)
 default beep

virtual void GoToAnotherCell (movementT)
virtual void GoToAnotherItem (movementT)
 Separate out item movement from cell movement because you may wish to implement one but use default for the other.

virtual void LoadCellEditField ()
 Typical reasons to override - want to display location or a different display of the editable state (eg: visible lock icon).

virtual bool AttemptSaveCellEditField ()
void LoadAndUpdate ()
 separation of these three steps, which commonly occurs, is example of the Template Method pattern allowing for overriding of minor points

void EnterLink (oofRepEditLink *)
virtual void maybeDirty (dbFieldLink *)

Protected Attributes

bool mAnyContentDirtied
oofRepEditingEnvmEnv
oofRepEditLinkmCurrentLink
dbGUIAdaptermAdapter
oofBroadcastermListensTo
oofBroadcastermSuspendedListensTo
unsigned short mSuspendCount


Member Enumeration Documentation

enum OOF_mixRepAbstractCellEditor::movementT [protected]
 

Enumeration values:
eGoFirst 
eGoLast 
eGoLeft 
eGoRight 
eGoUp 
eGoDown 


Constructor & Destructor Documentation

OOF_mixRepAbstractCellEditor::OOF_mixRepAbstractCellEditor  )  [protected]
 

OOF_mixRepAbstractCellEditor::~OOF_mixRepAbstractCellEditor  )  [protected, virtual]
 


Member Function Documentation

bool OOF_mixRepAbstractCellEditor::AttemptSaveCellEditField  )  [protected, virtual]
 

void OOF_mixRepAbstractCellEditor::EnterLink oofRepEditLink  )  [protected]
 

void OOF_mixRepAbstractCellEditor::FinishCreationByLinkingDataModel oofRepEditingEnv ,
oofRepEditLink
[protected, virtual]
 

void OOF_mixRepAbstractCellEditor::GoToAnotherCell movementT   )  [protected, virtual]
 

void OOF_mixRepAbstractCellEditor::GoToAnotherItem movementT  inMove  )  [protected, virtual]
 

Separate out item movement from cell movement because you may wish to implement one but use default for the other.

eg: use default moves to items but custom cells because you have fancy report objects in your application.

void OOF_mixRepAbstractCellEditor::LoadAndUpdate  )  [protected]
 

separation of these three steps, which commonly occurs, is example of the Template Method pattern allowing for overriding of minor points

void OOF_mixRepAbstractCellEditor::LoadCellEditField  )  [protected, virtual]
 

Typical reasons to override - want to display location or a different display of the editable state (eg: visible lock icon).

void dbHelper::maybeChangeTargetLink dbFieldLink  )  [virtual, inherited]
 

Reimplemented in dbAbstractEditHelper.

void OOF_mixRepAbstractCellEditor::maybeDirty dbFieldLink  )  [protected, virtual]
 

Reimplemented from dbHelper.

bool oofSingleListener::receiveMsg OOFmsgT  msg,
unsigned long  senderDefined
[virtual, inherited]
 

The default receiveMsg behaviour is to delete yourself when the broadcaster closes.

In many user subclasses oofSingleListener is a mixin and you have a class owned elsewhere, not self-deleting.

Warning:
If a subclass is not self-deleting it MUST override receiveMsg handling of the msg OOFmsg_BroadcasterClosing to prevent runtime error.
However it is still important to set mListensTo=0 otherwise when you finally get around to deleting your oofSingleListener, it will try to update a deleted oofBroadcaster and cause a crash.

Implements oofReceiver.

Reimplemented in dbCloneCleanup, dbRelMaintainer, dbFieldCopier, oofE_Table, dbAbstractBrowseHelper, dbAbstractEditHelper, dbBrowseHelper, dbHierBrowseHelper, dbTableViewDisplay, OOF_recordCacheCopier, dbRelRefBase, and oofRepData.

void oofSingleListener::resumeListening  )  [inherited]
 

void oofSingleListener::subscribeTo oofBroadcaster  )  [virtual, inherited]
 

Reimplemented from oofReceiver.

void oofSingleListener::suspendListening  )  [inherited]
 

dbTable * dbHelper::table  )  const [virtual, inherited]
 

Reimplemented in dbAbstractBrowseHelper, and dbAbstractEditHelper.

void OOF_mixRepAbstractCellEditor::UnableToMoveWarning movementT  ,
bool  movingByCell
[protected, virtual]
 

default beep

You may wish to override with an alert.

void oofSingleListener::unsubscribe oofBroadcaster from = 0  )  [virtual, inherited]
 

Reimplemented from oofReceiver.

void OOF_mixRepAbstractCellEditor::UpdateMovementButtons  )  [protected, virtual]
 

override to control disabling

If you don't want your buttons disabled, don't pass them into the InitMovementControls.

Reimplemented in OOF_mixRepCellEditor.


Member Data Documentation

dbGUIAdapter* OOF_mixRepAbstractCellEditor::mAdapter [protected]
 

bool OOF_mixRepAbstractCellEditor::mAnyContentDirtied [protected]
 

oofRepEditLink* OOF_mixRepAbstractCellEditor::mCurrentLink [protected]
 

oofRepEditingEnv* OOF_mixRepAbstractCellEditor::mEnv [protected]
 

oofBroadcaster* oofSingleListener::mListensTo [protected, inherited]
 

unsigned short oofSingleListener::mSuspendCount [protected, inherited]
 

oofBroadcaster* oofSingleListener::mSuspendedListensTo [protected, inherited]
 


The documentation for this class was generated from the following files:
Generated on Thu Jan 1 21:41:36 2004 for OOFILE by doxygen 1.3.5