About SpPanelWidgetPresenter window flow #80
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
bug
duplicate
enhancement
help wanted
invalid
linux
macOS
onhold
question
windows
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pharo/Pulsar#80
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
To open a presenter in pulsar, we go through
#asDockableWindow.Then, in
SpPanelWidgetPresenter:and
Because
SpPanelWidgetPresenterinherits fromSpWindowPresenter, we go through:So, questions:
SpPanelWindgetPresenter?If the owner is a window, the presenter already went through
#initializeWindow:(for nothing?)#initializeWindow:with thesuper initializeWindowcall and then#initializePanelWindow:?SpPanelWidgetPresenter?For example, if the presenter were a moose presenter that usually is owned by a
MiWindowPresenterthat has a custom API?#initializeWindow:be the default behavior in#initializePanelWindow:instead?uhm... some answers.
(same way as you create regular windows as
somePresenter asWindow).to fulfil that pattern you need
somePresenterto have an owner. Also, because the POM needs to be always consistent because things can be slightly different depending the POM, e.g.newListcan be instantiated as aSpListPresenterin morphic andSpEasyListViewPresenterin gtk.SIDE NOTE:
asDockableWindowis a bad name, from when I started the mapping. I guess it needs to be renamed asasPanelWidgetto match its presenter.initializeWindow:,initializeDialogWindow:,intiializePopover:andinitializePanelWindow:are intented to initialize your "window" (or "window like", as I call both panel widgets and popovers) or presenters than otherwise can be reused in different ways... each one of them adding extra initialization depending on how will you use it.Said that... you then do not create a
SpPanelWidgetPresenter, you create a presenter and then you callasDockableWindow(to be renamed 😛) on it, the process of creating it will callinitializePanelWindow:in case you need some extra plugging for them. A typical case is hanging on events that are provided by panel widgets and not windows, e.g.you can initialize a PanelWidget outside Pulsar (which is an app), but you cannot initialize if not to be used on a PanelWindow (which is the workspace where you place panel widgest)... so, I think this has been explained in the point 2 ?
you do not call intiializeWindow: or initializePanelWindow:, you override them on your presenters and Spec does the calling when needed.
cheers!
ps: please close this issue if the answers are ok :)
pps: tomorrow I will be around, we can do some pair programming to show you how to do it.