updateing a component on AjaxTabbedPanel
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
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
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
//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); > >