package com.sksamuel.jqm4gwt.examples.collapsible; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.sksamuel.jqm4gwt.JQMPage; import com.sksamuel.jqm4gwt.button.JQMButton; import com.sksamuel.jqm4gwt.html.Paragraph; import com.sksamuel.jqm4gwt.layout.JQMCollapsible; import com.sksamuel.jqm4gwt.layout.JQMCollapsibleSet; import com.sksamuel.jqm4gwt.toolbar.JQMHeader; /** * @author Stephen K Samuel samspade79@gmail.com 10 Jul 2011 23:23:36 * */ public class DynamicCollapsibleDemoPage extends JQMPage { private JQMCollapsibleSet set; private static int count = 0; public DynamicCollapsibleDemoPage() { JQMHeader h = new JQMHeader("Dynamic Collapsible"); h.setBackButton(true); add(h); add(new Paragraph( "This page shows how a JQM Collapsible can be combined with an event handler to dynamically add new collapsibles. " + "Each collapsible here is placed inside a collapsible set.")); JQMButton addBtn = new JQMButton("Add new collapsible"); addBtn.setInline(true); addBtn.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { addCollapsible(); } }); add(addBtn); JQMButton expandBtn = new JQMButton("Expand last collapsible"); expandBtn.setInline(true); expandBtn.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int cnt = set.getCollapsibleCount(); if (cnt > 0) set.getCollapsible(cnt - 1).expand(); } }); add(expandBtn); JQMButton collapseBtn = new JQMButton("Collapse last collapsible"); collapseBtn.setInline(true); collapseBtn.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int cnt = set.getCollapsibleCount(); if (cnt > 0) set.getCollapsible(cnt - 1).collapse(); } }); add(collapseBtn); set = new JQMCollapsibleSet(); add(set); addCollapsible(); addCollapsible(); } protected void addCollapsible() { JQMCollapsible c = new JQMCollapsible("Expand me!"); c.setContainerId(String.valueOf(count++)); c.add(new Paragraph("some content in the collapsible")); JQMCollapsible nested = new JQMCollapsible("A nested collapsible"); nested.add(new Paragraph("some content in the nested collapsible")); c.setContainerId(String.valueOf(count++)); c.add(nested); set.add(c); set.refresh(); } }