Both your problems are easily solveable by using the page instance as
"context".
The TabbedPanel is an instance of a Java object that is somewhere inside of
an instance of a Page.

Wicket provides org.apache.wicket.ajax.AjaxNewWindowNotifyingBehavior that
can be used to notify the page that it is opened in a second browser
tab/window.
In its #onNewWindow() you can do something like:
setResponsePage(getPage().getPageClass(), getPage().getPageParameters()).
This will render a *new* instance of this page with its own TabbedPanel
where you will have different state.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, Dec 7, 2016 at 2:13 PM, Urbani, Edmund <[email protected]>
wrote:

> What I am missing (and what my original question was referring to) is a
> per-tab context to put things. Think eg. of a page with a data table and
> some filters. The user applies filters, clicks on one of the found items
> (navigating to a different page), edits, saves (sends the user back to the
> page with the table) and expects the filter criteria to still be intact. In
> a single-tab scenario the filter criteria can be stored in the session - no
> problem.
>
> Now think of a user who uses multiple tabs with different filter criteria
> in each. This is where some sort of per-tab context/store would come in
> handy.
>
> Kind regards,
>  Edmund
>
> PS: I don't see this problem in single-page application though. The page
> state itself can represent the state of the tab.
>
>
> On 12/07/2016 01:45 PM, Martin Grigorov wrote:
>
>> Could you please expand on
>> "and you do not want to make custom logic to allow multi
>> window/tab (in browser)" ?
>>
>> How exactly Wicket prevents the "multi browser tabs/windows" ?
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>>
>> On Wed, Dec 7, 2016 at 1:37 PM, Martin Makundi <
>> [email protected]> wrote:
>>
>> If one makes a single-page application that has multiple tabs (within one
>>> browser window), and you do not want to make custom logic to allow multi
>>> window/tab (in browser) management into session, it would work best if
>>> there was separate "session" for each browser tab/window inside wicket.
>>>
>>> Simplest example is that session has variable "currentlySelectedTab" if
>>> you
>>> have two browser windows open both will be racing for this same variable
>>> unless sessions are separated.
>>>
>>> So from developer's perspective, would be simplest if wicket
>>> transparently
>>> separates sessions for each browser window/tab.
>>>
>>> **
>>> Martin
>>>
>>>
>>>
>>> 2016-12-07 14:19 GMT+02:00 Martin Grigorov <[email protected]>:
>>>
>>> Hi,
>>>>
>>>> What kind of problem exactly you try to solve there ?
>>>> What kind of issues do you face ?
>>>>
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>>
>>>> On Wed, Dec 7, 2016 at 12:07 PM, Martin Makundi <
>>>> [email protected]> wrote:
>>>>
>>>> This should be built into wicket core, automatic session management.
>>>>>
>>>> Login
>>>>
>>>>> once and enable multiple tabs and a new sub-session for each tab.
>>>>>
>>>>> If user logs out from any of the sessions, all would be invalidated.
>>>>>
>>>>> Not sure if this exists yet, but would be needed.
>>>>>
>>>>> **
>>>>> Martin
>>>>>
>>>>> 2016-12-07 12:59 GMT+02:00 Urbani, Edmund <[email protected]
>>>>>
>>>> :
>>>>
>>>>> Ok, but how do you create a session per tab? Also, I would at least
>>>>>>
>>>>> need
>>>>
>>>>> to login the authenticated user in the new session.
>>>>>>
>>>>>>
>>>>>> On 12/07/2016 11:43 AM, Martin Makundi wrote:
>>>>>>
>>>>>> We have noticed that most robust if you can get different session for
>>>>>>
>>>>> each
>>>>>
>>>>>> tab because the session shares models and will easily conflict if
>>>>>>
>>>>> session
>>>>
>>>>> is not distinct for each tab.
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2016-12-07 12:42 GMT+02:00 Urbani, Edmund <
>>>>>>
>>>>> [email protected]>
>>>
>>>> <
>>>>
>>>>> [email protected]>:
>>>>>
>>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I have a some questions about the current state of this feature.
>>>>>>
>>>>>> Firstly, how reliable is it? (Works on all/current browsers? Can
>>>>>>
>>>>> still
>>>
>>>> break under certain circumstances?)
>>>>>>
>>>>>> And secondly, how would I store my own state information per
>>>>>>
>>>>> tab/window?
>>>>
>>>>> The session context seems too broad because it is shared by all tabs
>>>>>>
>>>>> and
>>>>
>>>>> the page context is too limited.
>>>>>>
>>>>>> I could make it work with the session anyway, if I can somehow
>>>>>>
>>>>> identify
>>>
>>>> the current browser tab and put things into a map accordingly. Or I
>>>>>>
>>>>> could
>>>>
>>>>> pass on all required info from page to page which would be quite
>>>>>>
>>>>> cumbersome
>>>>>
>>>>>> and conflict with my approach to use bookmarkable URLs wherever
>>>>>>
>>>>> possible.
>>>>
>>>>> Kind regards,
>>>>>>   Edmund
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------
>>>>>>
>>>>> ---------
>>>
>>>> To unsubscribe, e-mail: [email protected]
>>>>>> For additional commands, e-mail: [email protected]
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Edmund Urbani
>>>>>> Liland IT Team
>>>>>>
>>>>>> Email: [email protected] <[email protected]>
>>>>>>
>>>>>> Liland IT GmbH ...does IT better
>>>>>> Tel: +43 463 220111
>>>>>> Fax: +43 463 220111-33
>>>>>> Tel(GER): +49 221 65028588
>>>>>>
>>>>>> Find us at Facebook http://facebook.com/Lilandit
>>>>>> http://iventcloud.com
>>>>>> http://Lilandit.com
>>>>>>
>>>>>> <http://www.LilandIT.com> <http://www.LilandIT.com>
>>>>>>
>>>>>> Copyright © 2016, Liland IT GmbH
>>>>>>
>>>>>> Diese Mail enthaelt vertrauliche und/oder rechtlich geschuetzte
>>>>>> Informationen.
>>>>>> Wenn Sie nicht der richtige Adressat sind oder diese Email
>>>>>>
>>>>> irrtuemlich
>>>
>>>> erhalten haben, informieren Sie bitte sofort den Absender und
>>>>>>
>>>>> vernichten
>>>>
>>>>> Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
>>>>>>
>>>>> Weitergabe
>>>
>>>> dieser Mail ist nicht gestattet.
>>>>>>
>>>>>> This email may contain confidential and/or privileged information.
>>>>>> If you are not the intended recipient (or have received this email in
>>>>>> error) please notify the sender immediately and destroy this email.
>>>>>>
>>>>> Any
>>>
>>>> unauthorised copying, disclosure or distribution of the material in
>>>>>>
>>>>> this
>>>>
>>>>> email is strictly forbidden.
>>>>>>
>>>>>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to