@Override public Widget asWidget() { final Window complex = new Window(); complex.setMaximizable(true); complex.setHeadingText("Accordion Window"); complex.setWidth(200); complex.setHeight(350); AccordionLayoutContainer con = new AccordionLayoutContainer(); con.setExpandMode(ExpandMode.SINGLE_FILL); complex.add(con); AccordionLayoutAppearance appearance = GWT.<AccordionLayoutAppearance>create(AccordionLayoutAppearance.class); ContentPanel cp = new ContentPanel(appearance); cp.setAnimCollapse(false); cp.setHeadingText("Online Users"); cp.getHeader().addStyleName(ThemeStyles.getStyle().borderTop()); con.add(cp); con.setActiveWidget(cp); TreeStore<NameImageModel> store = new TreeStore<NameImageModel>(NameImageModel.KP); Tree<NameImageModel, String> tree = new Tree<NameImageModel, String>( store, new ValueProvider<NameImageModel, String>() { @Override public String getValue(NameImageModel object) { return object.getName(); } @Override public void setValue(NameImageModel object, String value) {} @Override public String getPath() { return "name"; } }); tree.setIconProvider( new IconProvider<NameImageModel>() { public ImageResource getIcon(NameImageModel model) { if (null == model.getImage()) { return null; } else if ("user-girl" == model.getImage()) { return ExampleImages.INSTANCE.userFemale(); } else if ("user-kid" == model.getImage()) { return ExampleImages.INSTANCE.userKid(); } else { return ExampleImages.INSTANCE.user(); } } }); NameImageModel m = newItem("Family", null); store.add(m); store.add(m, newItem("Darrell", "user")); store.add(m, newItem("Maro", "user-girl")); store.add(m, newItem("Lia", "user-kid")); store.add(m, newItem("Alec", "user-kid")); store.add(m, newItem("Andrew", "user-kid")); tree.setExpanded(m, true); m = newItem("Friends", null); store.add(m); store.add(m, newItem("Bob", "user")); store.add(m, newItem("Mary", "user-girl")); store.add(m, newItem("Sally", "user-girl")); store.add(m, newItem("Jack", "user")); tree.setExpanded(m, true); cp.add(tree); cp = new ContentPanel(appearance); cp.setAnimCollapse(false); cp.setBodyStyleName("pad-text"); cp.setHeadingText("Settings"); cp.add(new Label(TestData.DUMMY_TEXT_SHORT)); con.add(cp); cp = new ContentPanel(appearance); cp.setAnimCollapse(false); cp.setBodyStyleName("pad-text"); cp.setHeadingText("Stuff"); cp.add(new Label(TestData.DUMMY_TEXT_SHORT)); con.add(cp); cp = new ContentPanel(appearance); cp.setAnimCollapse(false); cp.setBodyStyleName("pad-text"); cp.setHeadingText("More Stuff"); cp.add(new Label(TestData.DUMMY_TEXT_SHORT)); con.add(cp); TextButton b = new TextButton("Open"); b.addSelectHandler( new SelectHandler() { @Override public void onSelect(SelectEvent event) { complex.show(); } }); VerticalPanel vp = new VerticalPanel(); vp.setSpacing(10); vp.add(b); return vp; }