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

OOF_mixRepCellEditor Class Reference
[Report Editing supportMac Specific]

#include <oofrepeditMac.h>

Inheritance diagram for OOF_mixRepCellEditor:

Inheritance graph
[legend]
Collaboration diagram for OOF_mixRepCellEditor:

Collaboration graph
[legend]
List of all members.

Detailed Description

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_mixRepCellEditor ()
virtual void InitMovementControls (LControl *inFirst, LControl *inLast, LControl *inUp, LControl *inDown, LControl *inLeft, LControl *inRight, LControl *inPrevItem=NULL, LControl *inNextItem=NULL)
virtual void InitEditControls (dbGUIAdapter *adoptedContentAdapter, LControl *inOK=NULL, LControl *inCancel=NULL)
virtual void UpdateMovementButtons ()
 We are initialised with a cell position and maintain it ourselves so can query the link and enable buttons to suit.

virtual void FinishCreationByLinkingDataModel (oofRepEditingEnv *, oofRepEditLink *)
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

LControl * mOKButton
LControl * mCancelButton
LControl * mGoFirstButton
LControl * mGoLastButton
LControl * mGoUpButton
LControl * mGoDownButton
LControl * mGoLeftButton
LControl * mGoRightCellButton
LControl * mGoPrevItemButton
LControl * mGoNextItemButton
bool mAnyContentDirtied
oofRepEditingEnvmEnv
oofRepEditLinkmCurrentLink
dbGUIAdaptermAdapter
oofBroadcastermListensTo
oofBroadcastermSuspendedListensTo
unsigned short mSuspendCount


Member Enumeration Documentation

enum OOF_mixRepAbstractCellEditor::movementT [protected, inherited]
 

Enumeration values:
eGoFirst 
eGoLast 
eGoLeft 
eGoRight 
eGoUp 
eGoDown 


Constructor & Destructor Documentation

OOF_mixRepCellEditor::OOF_mixRepCellEditor  )  [protected]
 


Member Function Documentation

bool OOF_mixRepAbstractCellEditor::AttemptSaveCellEditField  )  [protected, virtual, inherited]
 

void OOF_mixRepAbstractCellEditor::EnterLink oofRepEditLink  )  [protected, inherited]
 

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

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

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

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_mixRepCellEditor::InitEditControls dbGUIAdapter adoptedContentAdapter,
LControl *  inOK = NULL,
LControl *  inCancel = NULL
[protected, virtual]
 

void OOF_mixRepCellEditor::InitMovementControls LControl *  inFirst,
LControl *  inLast,
LControl *  inUp,
LControl *  inDown,
LControl *  inLeft,
LControl *  inRight,
LControl *  inPrevItem = NULL,
LControl *  inNextItem = NULL
[protected, virtual]
 

void OOF_mixRepAbstractCellEditor::LoadAndUpdate  )  [protected, inherited]
 

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, inherited]
 

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, inherited]
 

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, inherited]
 

default beep

You may wish to override with an alert.

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

Reimplemented from oofReceiver.

void OOF_mixRepCellEditor::UpdateMovementButtons  )  [protected, virtual]
 

We are initialised with a cell position and maintain it ourselves so can query the link and enable buttons to suit.

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

Reimplemented from OOF_mixRepAbstractCellEditor.


Member Data Documentation

dbGUIAdapter* OOF_mixRepAbstractCellEditor::mAdapter [protected, inherited]
 

bool OOF_mixRepAbstractCellEditor::mAnyContentDirtied [protected, inherited]
 

LControl* OOF_mixRepCellEditor::mCancelButton [protected]
 

oofRepEditLink* OOF_mixRepAbstractCellEditor::mCurrentLink [protected, inherited]
 

oofRepEditingEnv* OOF_mixRepAbstractCellEditor::mEnv [protected, inherited]
 

LControl* OOF_mixRepCellEditor::mGoDownButton [protected]
 

LControl* OOF_mixRepCellEditor::mGoFirstButton [protected]
 

LControl* OOF_mixRepCellEditor::mGoLastButton [protected]
 

LControl* OOF_mixRepCellEditor::mGoLeftButton [protected]
 

LControl* OOF_mixRepCellEditor::mGoNextItemButton [protected]
 

LControl* OOF_mixRepCellEditor::mGoPrevItemButton [protected]
 

LControl* OOF_mixRepCellEditor::mGoRightCellButton [protected]
 

LControl* OOF_mixRepCellEditor::mGoUpButton [protected]
 

oofBroadcaster* oofSingleListener::mListensTo [protected, inherited]
 

LControl* OOF_mixRepCellEditor::mOKButton [protected]
 

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:42 2004 for OOFILE by doxygen 1.3.5