updateing a component on AjaxTabbedPanel

2007-08-15 Thread fhagen
Hi there, 

i am very new to wicket an got some problems while using a tree and a 
AjaxTabbedPanel.

I want to update a simple label component at an AjaxTabbedPanel after the 
user click something at the tree.

Here is my code:
public class ConfirmPage extends WebPage{
public ConfirmPage()
{
super();
//user is a simple POJO
User user = new User("test","test");
 
//Elements for the Tree
List consUnits = new ArrayList();
consUnits.add(new ConsUnit("Single"));
consUnits.add(new ConsUnit("General"));
consUnits.add(new ConsUnit());
 
//simple label at the webpage
label = new Label("luname",user.getUsername());
add(label);

//create the tree
TreeModel tm = MyBaseTree.createTreeModel(consUnits);
tree = new MyTree("tree",tm);
add(tree);
tree.getTreeState().collapseAll();
 

   //create the tabs like the sample app
tabs.add(new AbstractTab(new Model("first tab"))
{
public Panel getPanel(String panelId)
{
return new MyPanel(panelId);
}
});
 
tabs.add(new AbstractTab(new Model("second tab"))
{
public Panel getPanel(String panelId)
{
return new MyPanel2(panelId);
}
});
 
tabs.add(new AbstractTab(new Model("third tab"))
{
public Panel getPanel(String panelId)
{
return new MyPanel3(panelId);
}
});
tpanel = new AjaxTabbedPanel("tabs", tabs); 
add(tpanel);
add(new StyleSheetReference("pageCSS", getClass(), 
"css/style.css"));
}

Here is now the code from the tree:

public class MyTree extends LinkTree{

public MyTree(String arg0, TreeModel arg1) {
super(arg0, arg1);
}
 
 
protected void onNodeLinkClicked(javax.swing.tree.TreeNode node, 
BaseTree tree, AjaxRequestTarget target)
{
 
//update the label on ConfimPage
Label label = new Label("luname",node.toString());
label.setOutputMarkupId(true);
page.addOrReplace(label);
target.addComponent(label);

//how to update AjaxTabbedPanel???
}
}

Here the code from MyPanel:

public class MyPanel extends Panel{
 
private Label label;
 
public MyPanel(String id) {
super(id);
 
label = new Label("test", "Text");
label.setOutputMarkupId(true);
this.add(label);
 
} 
}

The label at ConfirmPage is updated via Ajax if the user selects something 
from the tree, but not the label at the AjaxTabbedPanel.
If the user selects something from the tree the label at MyPanel should be 
updated with the value of the tree node.
How do i do this?

With kind regards
Fabian Hagen

S&N AG
Klingenderstr. 5
D 33100 Paderborn

voice +49 5251/1581- 862
fax   +49 5251/1581-71
eMail [EMAIL PROTECTED]
web   http://www.s-und-n.de

Vorstand
Klaus Beverungen
Josef Tillmann 

Vorsitzender des Aufsichtsrates
Heinz-Dieter Wendorff

Handelsregister
Amtsgericht Paderborn HRB 3270 

Re: updateing a component on AjaxTabbedPanel

2007-08-15 Thread [EMAIL PROTECTED]
The ajax tabbed panel should be an instance variable. Then you can use
target.addComponent(tabbedPanel).

2007/8/15, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> Hi there,
>
> i am very new to wicket an got some problems while using a tree and a
> AjaxTabbedPanel.
>
> I want to update a simple label component at an AjaxTabbedPanel after the
> user click something at the tree.
>
> Here is my code:
> public class ConfirmPage extends WebPage{
> public ConfirmPage()
> {
> super();
> //user is a simple POJO
> User user = new User("test","test");
>
> //Elements for the Tree
> List consUnits = new ArrayList();
> consUnits.add(new ConsUnit("Single"));
> consUnits.add(new ConsUnit("General"));
> consUnits.add(new ConsUnit());
>
> //simple label at the webpage
> label = new Label("luname",user.getUsername());
> add(label);
>
> //create the tree
> TreeModel tm = MyBaseTree.createTreeModel(consUnits);
> tree = new MyTree("tree",tm);
> add(tree);
> tree.getTreeState().collapseAll();
>
>
>//create the tabs like the sample app
> tabs.add(new AbstractTab(new Model("first tab"))
> {
> public Panel getPanel(String panelId)
> {
> return new MyPanel(panelId);
> }
> });
>
> tabs.add(new AbstractTab(new Model("second tab"))
> {
> public Panel getPanel(String panelId)
> {
> return new MyPanel2(panelId);
> }
> });
>
> tabs.add(new AbstractTab(new Model("third tab"))
> {
> public Panel getPanel(String panelId)
> {
> return new MyPanel3(panelId);
> }
> });
> tpanel = new AjaxTabbedPanel("tabs", tabs);
> add(tpanel);
> add(new StyleSheetReference("pageCSS", getClass(),
> "css/style.css"));
> }
>
> Here is now the code from the tree:
>
> public class MyTree extends LinkTree{
>
> public MyTree(String arg0, TreeModel arg1) {
> super(arg0, arg1);
> }
>
>
> protected void onNodeLinkClicked(javax.swing.tree.TreeNode node,
> BaseTree tree, AjaxRequestTarget target)
> {
>
> //update the label on ConfimPage
> Label label = new Label("luname",node.toString());
> label.setOutputMarkupId(true);
> page.addOrReplace(label);
> target.addComponent(label);
>
> //how to update AjaxTabbedPanel???
> }
> }
>
> Here the code from MyPanel:
>
> public class MyPanel extends Panel{
>
> private Label label;
>
> public MyPanel(String id) {
> super(id);
>
> label = new Label("test", "Text");
> label.setOutputMarkupId(true);
> this.add(label);
>
> }
> }
>
> The label at ConfirmPage is updated via Ajax if the user selects something
> from the tree, but not the label at the AjaxTabbedPanel.
> If the user selects something from the tree the label at MyPanel should be
> updated with the value of the tree node.
> How do i do this?
>
> With kind regards
> Fabian Hagen
>
> S&N AG
> Klingenderstr. 5
> D 33100 Paderborn
>
> voice +49 5251/1581- 862
> fax   +49 5251/1581-71
> eMail [EMAIL PROTECTED]
> web   http://www.s-und-n.de
>
> Vorstand
> Klaus Beverungen
> Josef Tillmann
>
> Vorsitzender des Aufsichtsrates
> Heinz-Dieter Wendorff
>
> Handelsregister
> Amtsgericht Paderborn HRB 3270

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Antwort: Re: updateing a component on AjaxTabbedPanel

2007-08-15 Thread fhagen
Well ok.
I tried it this way:

public class MyTree extends LinkTree{

public MyTree(String arg0, TreeModel arg1) {
super(arg0, arg1);
}
 
 
protected void onNodeLinkClicked(javax.swing.tree.TreeNode node, 
BaseTree tree, AjaxRequestTarget target)
{
 
Label label = new Label("luname",node.toString());
label.setOutputMarkupId(true);
page.addOrReplace(label);

ConfirmPage page = (ConfirmPage)tree.getWebPage();
AjaxTabbedPanel tpanel = page.getTpanel();
 
MyPanel panel = (MyPanel)tpanel.get("panel");
Label label2 = new Label("test","TestText");
label2.setOutputMarkupId(true);
panel.addOrReplace(label2);
 
target.addComponent(label);
target.addComponent(label2);
}
}

It works so far, but is this really the right way?

How do I access the MyPanel which is included in the AjaxTabbedPanel?
I don't think that MyPanel panel = (MyPanel)tpanel.get("panel");  is the 
best way.

Any suggestions?

Fabian






"[EMAIL PROTECTED]" <[EMAIL PROTECTED]> 
15.08.2007 09:53
Bitte antworten an
users@wicket.apache.org


An
users@wicket.apache.org
Kopie

Thema
Re: updateing a component on AjaxTabbedPanel






The ajax tabbed panel should be an instance variable. Then you can use
target.addComponent(tabbedPanel).

2007/8/15, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> Hi there,
>
> i am very new to wicket an got some problems while using a tree and a
> AjaxTabbedPanel.
>
> I want to update a simple label component at an AjaxTabbedPanel after 
the
> user click something at the tree.
>
> Here is my code:
> public class ConfirmPage extends WebPage{
> public ConfirmPage()
> {
> super();
> //user is a simple POJO
> User user = new User("test","test");
>
> //Elements for the Tree
> List consUnits = new ArrayList();
> consUnits.add(new ConsUnit("Single"));
> consUnits.add(new ConsUnit("General"));
> consUnits.add(new ConsUnit());
>
> //simple label at the webpage
> label = new Label("luname",user.getUsername());
> add(label);
>
> //create the tree
> TreeModel tm = MyBaseTree.createTreeModel(consUnits);
> tree = new MyTree("tree",tm);
> add(tree);
> tree.getTreeState().collapseAll();
>
>
>//create the tabs like the sample app
> tabs.add(new AbstractTab(new Model("first tab"))
> {
> public Panel getPanel(String panelId)
> {
> return new MyPanel(panelId);
> }
> });
>
> tabs.add(new AbstractTab(new Model("second tab"))
> {
> public Panel getPanel(String panelId)
> {
> return new MyPanel2(panelId);
> }
> });
>
> tabs.add(new AbstractTab(new Model("third tab"))
> {
> public Panel getPanel(String panelId)
> {
> return new MyPanel3(panelId);
> }
> });
> tpanel = new AjaxTabbedPanel("tabs", tabs);
> add(tpanel);
> add(new StyleSheetReference("pageCSS", getClass(),
> "css/style.css"));
> }
>
> Here is now the code from the tree:
>
> public class MyTree extends LinkTree{
>
> public MyTree(String arg0, TreeModel arg1) {
> super(arg0, arg1);
> }
>
>
> protected void onNodeLinkClicked(javax.swing.tree.TreeNode node,
> BaseTree tree, AjaxRequestTarget target)
> {
>
> //update the label on ConfimPage
> Label label = new Label("luname",node.toString());
> label.setOutputMarkupId(true);
> page.addOrReplace(label);
> target.addComponent(label);
>
> //how to update AjaxTabbedPanel???
> }
> }
>
> Here the code from MyPanel:
>
> public class MyPanel extends Panel{
>
> private Label label;
>
> public MyPanel(String id) {
> super(id);
>
> label = new Label("test", "Text");
> label.setOutputMarkupId(true);
> this.add(label);
>
> }
> }
>
> T

Re: Re: updateing a component on AjaxTabbedPanel

2007-08-15 Thread Igor Vaynberg
 //simple label at the webpage
label = new Label("luname",user.getUsername());
add(label);

you forgot to call setOutputMarkupId(true) above, wicket ajax debug console
shouldve hinted at that.

-igor


On 8/15/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> Well ok.
> I tried it this way:
>
> public class MyTree extends LinkTree{
>
> public MyTree(String arg0, TreeModel arg1) {
> super(arg0, arg1);
> }
>
>
> protected void onNodeLinkClicked(javax.swing.tree.TreeNode node,
> BaseTree tree, AjaxRequestTarget target)
> {
>
> Label label = new Label("luname",node.toString());
> label.setOutputMarkupId(true);
> page.addOrReplace(label);
>
> ConfirmPage page = (ConfirmPage)tree.getWebPage();
> AjaxTabbedPanel tpanel = page.getTpanel();
>
> MyPanel panel = (MyPanel)tpanel.get("panel");
> Label label2 = new Label("test","TestText");
> label2.setOutputMarkupId(true);
> panel.addOrReplace(label2);
>
> target.addComponent(label);
> target.addComponent(label2);
> }
> }
>
> It works so far, but is this really the right way?
>
> How do I access the MyPanel which is included in the AjaxTabbedPanel?
> I don't think that MyPanel panel = (MyPanel)tpanel.get("panel");  is the
> best way.
>
> Any suggestions?
>
> Fabian
>
>
>
>
>
>
> "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
> 15.08.2007 09:53
> Bitte antworten an
> users@wicket.apache.org
>
>
> An
> users@wicket.apache.org
> Kopie
>
> Thema
> Re: updateing a component on AjaxTabbedPanel
>
>
>
>
>
>
> The ajax tabbed panel should be an instance variable. Then you can use
> target.addComponent(tabbedPanel).
>
> 2007/8/15, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> > Hi there,
> >
> > i am very new to wicket an got some problems while using a tree and a
> > AjaxTabbedPanel.
> >
> > I want to update a simple label component at an AjaxTabbedPanel after
> the
> > user click something at the tree.
> >
> > Here is my code:
> > public class ConfirmPage extends WebPage{
> > public ConfirmPage()
> > {
> > super();
> > //user is a simple POJO
> > User user = new User("test","test");
> >
> > //Elements for the Tree
> > List consUnits = new ArrayList();
> > consUnits.add(new ConsUnit("Single"));
> > consUnits.add(new ConsUnit("General"));
> > consUnits.add(new ConsUnit());
> >
> > //simple label at the webpage
> > label = new Label("luname",user.getUsername());
> > add(label);
> >
> > //create the tree
> > TreeModel tm = MyBaseTree.createTreeModel(consUnits);
> > tree = new MyTree("tree",tm);
> > add(tree);
> > tree.getTreeState().collapseAll();
> >
> >
> >//create the tabs like the sample app
> > tabs.add(new AbstractTab(new Model("first tab"))
> > {
> > public Panel getPanel(String panelId)
> > {
> > return new MyPanel(panelId);
> > }
> > });
> >
> > tabs.add(new AbstractTab(new Model("second tab"))
> > {
> > public Panel getPanel(String panelId)
> > {
> > return new MyPanel2(panelId);
> > }
> > });
> >
> > tabs.add(new AbstractTab(new Model("third tab"))
> > {
> > public Panel getPanel(String panelId)
> > {
> > return new MyPanel3(panelId);
> > }
> > });
> > tpanel = new AjaxTabbedPanel("tabs", tabs);
> > add(tpanel);
> > add(new StyleSheetReference("pageCSS", getClass(),
> > "css/style.css"));
> > }
> >
> > Here is now the code from the tree:
> >
> > public class MyTree extends LinkTree{
> >
> > public MyTree(String arg0, TreeModel arg1) {
> > super(arg0, arg1);
> >