| |
- 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)
| |