public WizardPageSelector( ArrayList<WizardPage<I, T>> pages, final CommandWithArg<WizardPage<I, T>> onSelected) { onSelected_ = onSelected; WizardResources res = WizardResources.INSTANCE; WizardResources.Styles styles = res.styles(); FlowPanel pageSelectorPanel = new FlowPanel(); pageSelectorPanel.addStyleName(styles.wizardPageSelector()); pageSelectorPanel.setSize("100%", "100%"); for (int i = 0; i < pages.size(); i++) { final WizardPage<I, T> page = pages.get(i); PageSelectorItem pageSelector = new PageSelectorItem( page, new ClickHandler() { @Override public void onClick(ClickEvent event) { onSelected_.execute(page); } }); if (i == 0) pageSelector.addStyleName(styles.wizardPageSelectorItemFirst()); if (i == (pages.size() - 1)) pageSelector.addStyleName(styles.wizardPageSelectorItemLast()); pageSelectorPanel.add(pageSelector); } initWidget(pageSelectorPanel); }