Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.7.2 SP1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:All
-
ICEsoft Forum Reference:
-
Affects:Documentation (User Guide, Ref. Guide, etc.)
Description
Philip has the following application level code which will implement this functionality. There is a request for it to be added to the component code base, perhaps as a new attribute on panelPopup.
String panelPopupClientId = "...";
JavascriptContext
.addJavascriptCall(
FacesContext.getCurrentInstance(),
"var div = document.getElementById('" + panelPopupClientId + "');"
+ "if (div) {"
+ "var x = Math.round((Element.getWidth(document.body) - Element.getWidth(div)) / 2 + scrollX);"
+ "if (x < 0) x = 0;"
+ "var y = Math.round(((window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight) - Element.getHeight(div)) / 2 + scrollY);"
+ "if (y < 0) y = 0;"
+ "x = x + 'px';"
+ "y = y + 'px';"
+ "Element.setStyle(div, {position:'absolute'});"
+ "Element.setStyle(div, {left: x});"
+ "Element.setStyle(div, {top:y});"
+ "}");
String panelPopupClientId = "...";
JavascriptContext
.addJavascriptCall(
FacesContext.getCurrentInstance(),
"var div = document.getElementById('" + panelPopupClientId + "');"
+ "if (div) {"
+ "var x = Math.round((Element.getWidth(document.body) - Element.getWidth(div)) / 2 + scrollX);"
+ "if (x < 0) x = 0;"
+ "var y = Math.round(((window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight) - Element.getHeight(div)) / 2 + scrollY);"
+ "if (y < 0) y = 0;"
+ "x = x + 'px';"
+ "y = y + 'px';"
+ "Element.setStyle(div, {position:'absolute'});"
+ "Element.setStyle(div, {left: x});"
+ "Element.setStyle(div, {top:y});"
+ "}");
Added attribute "positionOnLoadOnly" to control centering or positioning popup once on load only.
Added internal flag to check when drag has been done and not render code for auto centering or auto positioning.