wxoo.table.collectionview
index
p:\wxproperties\wxoo\table\collectionview.py

Multi-object Grid view with sequence editing and factory support

 
Modules
       
clip_dndc
cmndlgsc
controls2c
controlsc
eventsc
filesysc
fontsc
framesc
gdic
wxPython.gridc
wxoo.gridselectionset
wxoo.table.gridview
imagec
mdic
misc2c
miscc
wxoo.table.ootable
printfwc
wxoo.sequenceeditor
sizersc
stattoolc
streamsc
sys
types
utilsc
windows2c
windows3c
windowsc
wxPython.wx
wxPython.wxc

 
Classes
       
GridView(wxPanel)
CollectionView(ItemFactoryMixIn, SequenceEditor, GridView)
ItemFactoryMixIn
CollectionView(ItemFactoryMixIn, SequenceEditor, GridView)
SequenceEditor
CollectionView(ItemFactoryMixIn, SequenceEditor, GridView)

 
class CollectionView(ItemFactoryMixIn, SequenceEditor, GridView)
    Multi-object Grid view with sequence editing and factory support
 
The CollectionView allows you to view a collection of propertied
objects as a spreadsheet-like grid of viewing and editing cells.
 
The CollectionView uses wxoo.prop.collectionadapter and the
wxoo.table.ootable CollectionTable classes to do most of the
actual work.  Basically the View is just interested in the
sequence-editing bridging.
 
 
Method resolution order:
CollectionView
ItemFactoryMixIn
SequenceEditor
GridView
wxPanel
wxPanelPtr
wxWindowPtr
wxEvtHandlerPtr
wxObjectPtr

Methods defined here:
BuildPrimaryControl(self)
Customisation Point: Build the primary editing/viewing control
GetCurrentSelection(self)
Return indices of currently "selected" objects in the collection
GetCurrentSelectionObjects(self)
Return the actual objects in the collection for the current selection
OnAddItemNew(self, value)
Customization Point: Add constructed value to your collection
 
default implementation:
        collection.append(value)
        then uses index to select the object
RefreshView(self)
Override to force a re-display of all values in your primary control (items may have been added/removed/changed)
SetCurrentSelection(self, indices)
Set the current selection programmatically
SetValue(self, object)
Set the current value (collection) to be edited by the view

Data and other attributes defined here:
tableClass = <class wxoo.table.ootable.CollectionTable at 0x01C810F0>
Allows you to manage properties of a collection of like objects
 
This looks like a spread-sheet with attribute editors at each
cell in the grid for the properties of individual objects.

Methods inherited from ItemFactoryMixIn:
AddFactory(self, child)
Add a Factory to the list of available factories
ConfigureFactories(self, collection)
Create the sequence of factories appropriate for a given collection
FactoriesForCollection(self, collection)
Customisation point: return tuple of factories for instance in the collection
 
The default implementation searches for a factory source in this order:
 
        collection.Factories
        collection.factories
        self.Factories
        self.factories
 
And adds all of the results together to get the final list of sources.
Each item may be either a tuple or a method taking 0 arguments and
returning a tuple.  By convention, Factories should be the methods and
factories the static tuples.
OnItemNew(self, event)
Primary event handler for the ItemFactory
Remove(self, child)
Remove a Factory from the list of available factories
SetupFactories(self)
Must be called during initialisation

Data and other attributes inherited from ItemFactoryMixIn:
factories = ()

Methods inherited from SequenceEditor:
AppendItem(self, item)
Override to accomplish the appending of an item to the collection
 
default implementation is to call self.collection.append( item )
BeforeDelete(self, indices)
Customisation point, called before delete begins deletion, if you don't want to allow the delete, return a false value
BuildControls(self, style=0)
Layout internal controls (and initialise all internal structures)
BuildToolbar(self, parent)
### Primary Customisation Points for End-User classes
ConfigureForObject(self, object)
Customisation point, configure the control for editing a given object
 
By default, we configure factories (if available),
then tell the toolbar to configure itself (enable/
disable buttons).
ConfigureForSelection(self)
Graphically configure the control for the selection of index
 
Should enable/disable appropriate controls
Should update status text to reflect selection
DeleteItem(self, index)
Override to accomplish the deletion of an item from the collection (default implementation does del collection[index])
EnableDelete(self, value)
EnableDown(self, value)
EnableEdit(self, value)
EnableNew(self, value)
EnableUp(self, value)
GetCollection(self)
Override to return a pointer to the current collection/value
InsertItem(self, index, item)
Override to accomplish the insertion of an item into the collection
 
default implementation is to call self.collection.insert( index, item )
OnItemDelete(self, event)
Handle the deletion of an object from the collection
OnItemDown(self, event)
Shift the currently selected objects downward (toward higher indices)
OnItemEdit(self, event)
Override to take an action when user requests that an item be "edited" (clicks "edit" button)
OnItemUp(self, event)
Shift the currently selected objects upward (toward lower indices)
OnSelectionChanged(self, event)
Map your primary control's "selection-changed" event here.
 
The event need only arive, we will use the direct-get API to
access the new selection-set (this allows the same selection-changed handler
to work for a number of different types of controls w/out an extra
overriding point).
SetCollection(self, object)
Set the current value (collection) to be edited by the view
ShiftItems(self, originalPositions, newPositions)
Override to shift items from original to new positions (user clicks on up/down arrow)

Data and other attributes inherited from SequenceEditor:
ALLOW_DELETE = 1
ALLOW_EDIT = 1
ALLOW_NEW = 1
ALLOW_REORDER = 1

Methods inherited from GridView:
BuildGrid(self)
Build the grid control
 
This uses gridClass(self, -1) to create the grid
then sets the default row and column size to be 1.5
times normal.  Then it turns off "cell overflow" to
avoid rendering problems.
BuildTable(self, grid)
Customisation point: override to use a different method for creating table object
 
Default operation simply uses self.tableClass to create
the table, then calls grid.SetTable on the new table object
returning the new table object.
CreateActionContext(self, event=None, action=None, *arguments, **namedarguments)
Create a suitable action-context for given action and event
 
This will need such information as:
 
        window -- self (can get almost everything from this :) ).
        action -- given
        event -- given
GetAdapter(self)
Get our table's current adapter or None
GetProperties(self)
Get property-definition list from table's adapter
 
Returns [] if no table or no adapter, can return ()
if the adapter currently has no properties
GetValue(self)
Returns the object currently being edited (from the adapter)
OnPropertyRefresh(self, event=None)
Handle a property-refresh request from the application
RegisterProperties(self, properties)
Register each property with our grid
 
Each property definition defines a SetupType(grid)
method which registers the property's data type
for grid viewer and editors.
ResetView(self)
Reset the view (re-calculate grid size and refresh all values)
SetAdapter(self, adapter)
Explicitly set the current adapter object
 
This mechanism allows you to replace the entire
adapter object, including its value and properties.
 
SetProperties will be called in order to update
the display with the new adapter's properties
(and object).
SetProperties(self, value=None)
Set the current adapter's property list
 
value -- list of property definition objects or
        None to attempt to automatically calculate
        property set.
 
This is passed on to the adapter, we also register
the new property set with our grid.
__init__(self, parent, id=-1, pos=wxPoint(-1, -1), size=wxSize(-1, -1), style=524288, name='propertyview', adapter=None, properties=None, value=None, refresh=1, tableClass=None)
Initialize the grid view
 
parent, id, pos, size, style, name -- passed to the panel initializer
 
adapter -- optional instantiated adapter object which will mediate
        between the ootable and the underlying storage/modeling environment.
        If None, then we will create a new adapter object by calling
        adapterClass(value, properties)
 
value, properties -- optional values to be passed to the adapter
 
refresh -- whether to register for wxoo.prop refresh updates
 
tableClass -- overrides the default tableClass if present to allow
        for a non-default table-type to be used by this grid.

Data and other attributes inherited from GridView:
adapter = None
adapterClass = None
gridClass = <class wxoo.table.gridview._PropertyGrid at 0x01C81120>
Internal grid sub-class which stores an explicit
reference to the table at the python level to work around
a bug in wxPython

Methods inherited from wxPanelPtr:
Create(self, *_args, **_kwargs)
InitDialog(self, *_args, **_kwargs)
__repr__(self)

Methods inherited from wxWindowPtr:
AcceptsFocus(self, *_args, **_kwargs)
AddChild(self, *_args, **_kwargs)
CaptureMouse(self, *_args, **_kwargs)
Center(self, *_args, **_kwargs)
CenterOnParent(self, *_args, **_kwargs)
CenterOnScreen(self, *_args, **_kwargs)
Centre(self, *_args, **_kwargs)
CentreOnParent(self, *_args, **_kwargs)
CentreOnScreen(self, *_args, **_kwargs)
Clear(self, *_args, **_kwargs)
ClientToScreen(self, *_args, **_kwargs)
ClientToScreenXY(self, *_args, **_kwargs)
Close(self, *_args, **_kwargs)
ConvertDialogPointToPixels(self, *_args, **_kwargs)
ConvertDialogSizeToPixels(self, *_args, **_kwargs)
ConvertPixelPointToDialog(self, *_args, **_kwargs)
ConvertPixelSizeToDialog(self, *_args, **_kwargs)
DLG_PNT(self, *_args, **_kwargs)
DLG_SZE(self, *_args, **_kwargs)
Destroy(self, *_args, **_kwargs)
DestroyChildren(self, *_args, **_kwargs)
Disable(self, *_args, **_kwargs)
DragAcceptFiles(self, *_args, **_kwargs)
Enable(self, *_args, **_kwargs)
FindWindowById(self, *_args, **_kwargs)
FindWindowByName(self, *_args, **_kwargs)
Fit(self, *_args, **_kwargs)
FitInside(self, *_args, **_kwargs)
Freeze(self, *_args, **_kwargs)
GetAcceleratorTable(self, *_args, **_kwargs)
GetAdjustedBestSize(self, *_args, **_kwargs)
GetAutoLayout(self, *_args, **_kwargs)
GetBackgroundColour(self, *_args, **_kwargs)
GetBestSize(self, *_args, **_kwargs)
GetBestVirtualSize(self, *_args, **_kwargs)
GetBorder(self, *_args, **_kwargs)
GetCaret(self, *_args, **_kwargs)
# replaces broken shadow method
GetCharHeight(self, *_args, **_kwargs)
GetCharWidth(self, *_args, **_kwargs)
GetChildren(self, *_args, **_kwargs)
GetClientAreaOrigin(self, *_args, **_kwargs)
GetClientRect(self, *_args, **_kwargs)
GetClientSize(self, *_args, **_kwargs)
GetClientSizeTuple(self, *_args, **_kwargs)
GetConstraints(self, *_args, **_kwargs)
GetContainingSizer(self, *_args, **_kwargs)
GetCursor(self, *_args, **_kwargs)
GetDefaultItem(self, *_args, **_kwargs)
GetDropTarget(self, *_args, **_kwargs)
GetEventHandler(self, *_args, **_kwargs)
GetFont(self, *_args, **_kwargs)
GetForegroundColour(self, *_args, **_kwargs)
GetFullTextExtent(self, *_args, **_kwargs)
GetGrandParent(self, *_args, **_kwargs)
GetHandle(self, *_args, **_kwargs)
GetHelpText(self, *_args, **_kwargs)
GetId(self, *_args, **_kwargs)
GetLabel(self, *_args, **_kwargs)
GetMaxSize(self, *_args, **_kwargs)
GetName(self, *_args, **_kwargs)
GetParent(self, *_args, **_kwargs)
GetPosition(self, *_args, **_kwargs)
GetPositionTuple(self, *_args, **_kwargs)
GetRect(self, *_args, **_kwargs)
GetScrollPos(self, *_args, **_kwargs)
GetScrollRange(self, *_args, **_kwargs)
GetScrollThumb(self, *_args, **_kwargs)
GetSize(self, *_args, **_kwargs)
GetSizeTuple(self, *_args, **_kwargs)
GetSizer(self, *_args, **_kwargs)
GetTextExtent(self, *_args, **_kwargs)
GetThemeEnabled(self, *_args, **_kwargs)
GetTitle(self, *_args, **_kwargs)
GetToolTip(self, *_args, **_kwargs)
GetUpdateRegion(self, *_args, **_kwargs)
GetValidator(self, *_args, **_kwargs)
GetVirtualSize(self, *_args, **_kwargs)
GetVirtualSizeTuple(self, *_args, **_kwargs)
GetWindowStyleFlag(self, *_args, **_kwargs)
HasCapture(self, *_args, **_kwargs)
HasScrollbar(self, *_args, **_kwargs)
Hide(self, *_args, **_kwargs)
HitTest(self, *_args, **_kwargs)
IsBeingDeleted(self, *_args, **_kwargs)
IsEnabled(self, *_args, **_kwargs)
IsExposed(self, *_args, **_kwargs)
IsExposedPoint(self, *_args, **_kwargs)
IsExposedRect(self, *_args, **_kwargs)
IsRetained(self, *_args, **_kwargs)
IsShown(self, *_args, **_kwargs)
IsTopLevel(self, *_args, **_kwargs)
Layout(self, *_args, **_kwargs)
LineDown(self, *_args, **_kwargs)
LineUp(self, *_args, **_kwargs)
Lower(self, *_args, **_kwargs)
MakeModal(self, *_args, **_kwargs)
Move(self, *_args, **_kwargs)
MoveXY(self, *_args, **_kwargs)
OnPaint(self, *_args, **_kwargs)
PageDown(self, *_args, **_kwargs)
PageUp(self, *_args, **_kwargs)
PopEventHandler(self, *_args, **_kwargs)
PopupMenu(self, *_args, **_kwargs)
PopupMenuXY(self, *_args, **_kwargs)
PushEventHandler(self, *_args, **_kwargs)
Raise(self, *_args, **_kwargs)
Refresh(self, *_args, **_kwargs)
RefreshRect(self, *_args, **_kwargs)
ReleaseMouse(self, *_args, **_kwargs)
RemoveChild(self, *_args, **_kwargs)
RemoveEventHandler(self, *_args, **_kwargs)
Reparent(self, *_args, **_kwargs)
ScreenToClient(self, *_args, **_kwargs)
ScreenToClientXY(self, *_args, **_kwargs)
ScrollLines(self, *_args, **_kwargs)
ScrollPages(self, *_args, **_kwargs)
ScrollWindow(self, *_args, **_kwargs)
SetAcceleratorTable(self, *_args, **_kwargs)
SetAutoLayout(self, *_args, **_kwargs)
SetBackgroundColour(self, *_args, **_kwargs)
SetCaret(self, *_args, **_kwargs)
SetClientSize(self, *_args, **_kwargs)
SetClientSizeWH(self, *_args, **_kwargs)
SetConstraints(self, *_args, **_kwargs)
SetContainingSizer(self, *_args, **_kwargs)
SetCursor(self, *_args, **_kwargs)
SetDefaultItem(self, *_args, **_kwargs)
SetDimensions(self, *_args, **_kwargs)
SetDropTarget(self, *_args, **_kwargs)
SetEventHandler(self, *_args, **_kwargs)
SetExtraStyle(self, *_args, **_kwargs)
SetFocus(self, *_args, **_kwargs)
SetFocusFromKbd(self, *_args, **_kwargs)
SetFont(self, *_args, **_kwargs)
SetForegroundColour(self, *_args, **_kwargs)
SetHelpText(self, *_args, **_kwargs)
SetHelpTextForId(self, *_args, **_kwargs)
SetId(self, *_args, **_kwargs)
SetLabel(self, *_args, **_kwargs)
SetName(self, *_args, **_kwargs)
SetPosition(self, *_args, **_kwargs)
SetRect(self, *_args, **_kwargs)
SetScrollPos(self, *_args, **_kwargs)
SetScrollbar(self, *_args, **_kwargs)
SetSize(self, *_args, **_kwargs)
SetSizeHints(self, *_args, **_kwargs)
SetSizer(self, *_args, **_kwargs)
SetSizerAndFit(self, *_args, **_kwargs)
SetThemeEnabled(self, *_args, **_kwargs)
SetTitle(self, *_args, **_kwargs)
SetTmpDefaultItem(self, *_args, **_kwargs)
SetToolTip(self, *_args, **_kwargs)
SetToolTipString(self, *_args, **_kwargs)
SetValidator(self, *_args, **_kwargs)
SetVirtualSize(self, *_args, **_kwargs)
SetVirtualSizeHints(self, *_args, **_kwargs)
SetVirtualSizeWH(self, *_args, **_kwargs)
SetWindowStyle(self, *_args, **_kwargs)
SetWindowStyleFlag(self, *_args, **_kwargs)
Show(self, *_args, **_kwargs)
Thaw(self, *_args, **_kwargs)
TransferDataFromWindow(self, *_args, **_kwargs)
TransferDataToWindow(self, *_args, **_kwargs)
UnsetConstraints(self, *_args, **_kwargs)
Update(self, *_args, **_kwargs)
UpdateWindowUI(self, *_args, **_kwargs)
Validate(self, *_args, **_kwargs)
WarpPointer(self, *_args, **_kwargs)

Methods inherited from wxEvtHandlerPtr:
AddPendingEvent(self, *_args, **_kwargs)
Connect(self, *_args, **_kwargs)
Disconnect(self, *_args, **_kwargs)
GetEvtHandlerEnabled(self, *_args, **_kwargs)
GetNextHandler(self, *_args, **_kwargs)
GetPreviousHandler(self, *_args, **_kwargs)
ProcessEvent(self, *_args, **_kwargs)
SetEvtHandlerEnabled(self, *_args, **_kwargs)
SetNextHandler(self, *_args, **_kwargs)
SetPreviousHandler(self, *_args, **_kwargs)

Methods inherited from wxObjectPtr:
GetClassName(self, *_args, **_kwargs)

 
Data
        cvar = <Global variables>
wxEVT_GRID_CELL_CHANGE = 10162
wxEVT_GRID_CELL_LEFT_CLICK = 10151
wxEVT_GRID_CELL_LEFT_DCLICK = 10153
wxEVT_GRID_CELL_RIGHT_CLICK = 10152
wxEVT_GRID_CELL_RIGHT_DCLICK = 10154
wxEVT_GRID_COL_SIZE = 10160
wxEVT_GRID_EDITOR_CREATED = 10166
wxEVT_GRID_EDITOR_HIDDEN = 10165
wxEVT_GRID_EDITOR_SHOWN = 10164
wxEVT_GRID_LABEL_LEFT_CLICK = 10155
wxEVT_GRID_LABEL_LEFT_DCLICK = 10157
wxEVT_GRID_LABEL_RIGHT_CLICK = 10156
wxEVT_GRID_LABEL_RIGHT_DCLICK = 10158
wxEVT_GRID_RANGE_SELECT = 10161
wxEVT_GRID_ROW_SIZE = 10159
wxEVT_GRID_SELECT_CELL = 10163
wxGRIDTABLE_NOTIFY_COLS_APPENDED = 2006
wxGRIDTABLE_NOTIFY_COLS_DELETED = 2007
wxGRIDTABLE_NOTIFY_COLS_INSERTED = 2005
wxGRIDTABLE_NOTIFY_ROWS_APPENDED = 2003
wxGRIDTABLE_NOTIFY_ROWS_DELETED = 2004
wxGRIDTABLE_NOTIFY_ROWS_INSERTED = 2002
wxGRIDTABLE_REQUEST_VIEW_GET_VALUES = 2000
wxGRIDTABLE_REQUEST_VIEW_SEND_VALUES = 2001
wxGRID_VALUE_BOOL = 'bool'
wxGRID_VALUE_CHOICE = 'choice'
wxGRID_VALUE_CHOICEINT = 'choiceint'
wxGRID_VALUE_DATETIME = 'datetime'
wxGRID_VALUE_FLOAT = 'double'
wxGRID_VALUE_LONG = 'long'
wxGRID_VALUE_NUMBER = 'long'
wxGRID_VALUE_STRING = 'string'
wxGRID_VALUE_TEXT = 'string'
wxGridNoCellCoords = wxGridCellCoords(-1, -1)
wxGridNoCellRect = wxRect(-1, -1, -1, -1)