package com.smartgwt.sample.showcase.client.layout;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.DragAppearance;
import com.smartgwt.client.types.EdgeName;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.sample.showcase.client.PanelFactory;
import com.smartgwt.sample.showcase.client.ShowcasePanel;
public class UserSizingSample extends ShowcasePanel {
private static final String DESCRIPTION = "Resize the outer frame to watch \"Member 1\" and \"Member 2\" split the space. Now resize either member " +
"and resize the outer frame again. Layouts track sizes which have been set by user action and respect the user's settings.";
public static class Factory implements PanelFactory {
private String id;
public ShowcasePanel create() {
UserSizingSample panel = new UserSizingSample();
id = panel.getID();
return panel;
}
public String getID() {
return id;
}
public String getDescription() {
return DESCRIPTION;
}
}
public Canvas getViewPanel() {
VLayout layout = new VLayout(15);
final HLayout mainLayout = new HLayout();
mainLayout.setWidth(350);
mainLayout.setShowEdges(true);
mainLayout.setEdgeImage("edges/custom/sharpframe_10.png");
mainLayout.setDragAppearance(DragAppearance.TARGET);
mainLayout.setOverflow(Overflow.HIDDEN);
mainLayout.setCanDragResize(true);
mainLayout.setResizeFrom(EdgeName.L, EdgeName.R);
mainLayout.setLayoutMargin(10);
mainLayout.setMembersMargin(10);
mainLayout.setMinWidth(100);
mainLayout.setMinHeight(50);
final Label member1 = new Label();
member1.setContents("Member 1");
member1.setOverflow(Overflow.HIDDEN);
member1.setShowEdges(true);
member1.setCanDragResize(true);
member1.setResizeFrom(EdgeName.L, EdgeName.R);
member1.setAlign(Alignment.CENTER);
Label member2 = new Label();
member2.setContents("Member 2");
member2.setOverflow(Overflow.HIDDEN);
member2.setShowEdges(true);
member2.setCanDragResize(true);
member2.setResizeFrom(EdgeName.L, EdgeName.R);
member2.setAlign(Alignment.CENTER);
mainLayout.addMember(member1);
mainLayout.addMember(member2);
mainLayout.setHeight(100);
HLayout buttonLayout = new HLayout(15);
final IButton removeMember = new IButton("Remove Member 1");
removeMember.setWidth(140);
final IButton addMember = new IButton("Add Member 1");
addMember.setDisabled(true);
removeMember.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
mainLayout.removeChild(member1);
removeMember.disable();
addMember.enable();
}
});
buttonLayout.addMember(removeMember);
addMember.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
mainLayout.addMember(member1);
addMember.disable();
removeMember.enable();
}
});
buttonLayout.addMember(addMember);
layout.addMember(mainLayout);
layout.addMember(buttonLayout);
return layout;
}
public String getIntro() {
return DESCRIPTION;
}
}