package com.smartgwt.sample.showcase.client.windows;
import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLPane;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.events.CloseClickEvent;
import com.smartgwt.client.widgets.events.CloseClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.DateItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.layout.HStack;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.sample.showcase.client.PanelFactory;
import com.smartgwt.sample.showcase.client.ShowcasePanel;
public class WindowModalitySample extends ShowcasePanel {
private static final String DESCRIPTION = "<p>Click on \"Show Window\" to show a modal window.</p><p>Note that the \"Touch This\" button no "
+ "longer shows rollovers or an interactive cursor, nothing outside the window can be clicked, clicks outside the window cause "
+ "the window to flash, and tabbing remains in a closed loop cycling through only the contents of the window.</p>";
public static class Factory implements PanelFactory {
private String id;
public ShowcasePanel create() {
WindowModalitySample panel = new WindowModalitySample();
id = panel.getID();
return panel;
}
public String getID() {
return id;
}
public String getDescription() {
return DESCRIPTION;
}
}
public Canvas getViewPanel() {
final IButton buttonTouchThis = new IButton("Touch This");
buttonTouchThis.setAutoFit(true);
buttonTouchThis.setShowRollOver(true);
buttonTouchThis.setShowDown(true);
buttonTouchThis.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
buttonTouchThis.focus();
}
});
HTMLPane paneLink = new HTMLPane();
paneLink.setContents("<a href=\"http://google.com\" target=\"_blank\">Open Google</a>");
IButton buttonShowWindow = new IButton("Show Window");
buttonShowWindow.setShowRollOver(true);
buttonShowWindow.setShowDown(true);
buttonShowWindow.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
buttonTouchThis.setTitle("Can't Touch This");
final Window winModal = new Window();
winModal.setWidth(360);
winModal.setHeight(115);
winModal.setTitle("Modal Window");
winModal.setShowMinimizeButton(false);
winModal.setIsModal(true);
winModal.setShowModalMask(true);
winModal.centerInPage();
winModal.addCloseClickHandler(new CloseClickHandler() {
public void onCloseClick(CloseClickEvent event) {
buttonTouchThis.setTitle("Touch This");
winModal.destroy();
}
});
DynamicForm form = new DynamicForm();
form.setHeight100();
form.setWidth100();
form.setPadding(5);
form.setLayoutAlign(VerticalAlignment.BOTTOM);
TextItem textItem = new TextItem();
textItem.setTitle("Text");
DateItem dateItem = new DateItem();
dateItem.setTitle("Date");
DateItem dateItem2 = new DateItem();
dateItem2.setTitle("Date");
dateItem2.setUseTextField(true);
form.setFields(textItem, dateItem, dateItem2);
winModal.addItem(form);
winModal.show();
}
});
HStack layoutTopRow = new HStack(10);
layoutTopRow.setHeight(50);
layoutTopRow.addMember(buttonTouchThis);
layoutTopRow.addMember(paneLink);
VLayout layoutMain = new VLayout();
layoutMain.addMember(layoutTopRow);
layoutMain.addMember(buttonShowWindow);
return layoutMain;
}
public String getIntro() {
return DESCRIPTION;
}
}