package javaforce.webui;
/** Popup Panel (or Window)
*
* @author pquiring
*/
public class PopupPanel extends Panel {
private TitleBar titleBar;
private Block block;
private boolean modal;
public PopupPanel(String title) {
titleBar = new TitleBar(title, this);
add(titleBar);
setClass("popuppanel");
display = "inline-flex";
modal = false;
block = new Block();
block.setClass("modal");
}
/** Modal windows block all other windows underneath it. */
public void setModal(boolean state) {
modal = state;
}
public String html() {
StringBuffer sb = new StringBuffer();
if (modal) {
sb.append(block.html());
}
sb.append("<div" + getAttrs() + "'>");
int cnt = count();
for(int a=0;a<cnt;a++) {
sb.append(get(a).html());
}
sb.append("</div>");
return sb.toString();
}
public void setVisible(boolean state) {
if (modal) {
if (state) {
client.sendEvent(block.id, "setzindex", new String[] {"idx=" + getClient().getZIndex()});
} else {
getClient().releaseZIndex();
}
block.setVisible(state);
}
if (state) {
sendEvent("setzindex", new String[] {"idx=" + getClient().getZIndex()});
} else {
getClient().releaseZIndex();
}
super.setVisible(state);
}
public void setClient(WebUIClient client) {
super.setClient(client);
titleBar.setClient(client);
block.setClient(client);
}
public void setTitleBarSize(String sz) {
titleBar.setHeight(sz);
}
}