package com.constellio.app.ui.framework.components;
import com.constellio.app.services.factories.ConstellioFactories;
import com.constellio.app.ui.application.ConstellioUI;
import com.constellio.app.ui.pages.base.SessionContext;
import com.vaadin.ui.Component;
import com.vaadin.ui.JavaScript;
import com.vaadin.ui.Window;
public class BaseWindow extends Window {
public static final int OVER_ADVANCED_SEARCH_FORM_Z_INDEX = 20001;
private Integer zIndex = null;
public BaseWindow() {
}
public BaseWindow(String caption) {
super(caption);
}
public BaseWindow(String caption, Component content) {
super(caption, content);
}
public final Integer getZIndex() {
return zIndex;
}
public final void setZIndex(Integer zIndex) {
this.zIndex = zIndex;
}
@Override
public void attach() {
super.attach();
if (zIndex != null) {
executeZIndexAdjustJavascript(zIndex);
}
}
public static void executeZIndexAdjustJavascript(int zIndex) {
String jsVarName = "var_" + ((int) (Math.random() * 1000)) + "_" + System.currentTimeMillis();
StringBuffer zIndexFixJS = new StringBuffer();
zIndexFixJS.append("var " + jsVarName + " = document.getElementsByClassName('v-window');\n");
zIndexFixJS.append("for (i = 0; i < " + jsVarName + ".length; i++) {\n");
zIndexFixJS.append(" " + jsVarName + "[i].style.zIndex=" + zIndex + ";\n");
zIndexFixJS.append("}");
JavaScript.getCurrent().execute(zIndexFixJS.toString());
}
public SessionContext getSessionContext() {
return ConstellioUI.getCurrentSessionContext();
}
public ConstellioFactories getConstellioFactories() {
return ConstellioFactories.getInstance();
}
}