package org.jboss.as.console.client; import com.google.gwt.dom.client.Style; import com.google.gwt.user.client.ui.DockLayoutPanel; import com.google.gwt.user.client.ui.SplitLayoutPanel; import com.google.gwt.user.client.ui.TabLayoutPanel; import com.google.gwt.user.client.ui.Widget; import com.gwtplatform.mvp.client.ViewImpl; import org.jboss.as.console.client.samples.FormSample; import org.jboss.as.console.client.samples.Sample; import org.jboss.as.console.client.samples.TableSample; import org.jboss.as.console.client.samples.WindowSample; import java.util.ArrayList; import java.util.List; /** * @author Heiko Braun * @date 7/12/11 */ public class WidgetView extends ViewImpl implements WidgetPresenter.MyView { private WidgetPresenter presenter; private TabLayoutPanel content; private List<Sample> samples = new ArrayList<Sample>(); private String selectedId; public WidgetView() { samples.add(new TableSample()); samples.add(new WindowSample()); samples.add(new FormSample()); } @Override public void selectSample(String sampleId) { this.selectedId = sampleId; if(content!=null) showSample(sampleId); } @Override public Widget asWidget() { SplitLayoutPanel layout = new SplitLayoutPanel(); // nav Navigation nav = new Navigation(samples); // tabs content = new TabLayoutPanel(25, Style.Unit.PX); content.addStyleName("default-tabpanel"); showSample(selectedId); // assembly layout.addWest( nav.asWidget(), 180); layout.add(content); return layout; } private void showSample(String id) { Sample match = null; for(Sample candidate : samples) { if(id.equals(candidate.getId())) { match = candidate; break; } } if(null==match) throw new RuntimeException("No matching sample: "+id); content.clear(); content.add(match.asWidget(), match.getName()); content.selectTab(0); } @Override public void setPresenter(WidgetPresenter presenter) { this.presenter = presenter; } }