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});"
+ "}");
Activity
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assignee | Yip Ng [ yip.ng ] |
Ken Fyten
made changes -
Fix Version/s | 1.8 [ 10161 ] | |
Assignee Priority | P2 |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #18172 | Wed Jan 14 13:06:35 MST 2009 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_cust_properties/cust-panelpopup-props.xml
|
yip.ng
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #18169 | Wed Jan 14 10:20:26 MST 2009 | yip.ng | Added ability for ice:panelPopup to center itself once when it loads, but not ever again. |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/GroupRenderer.java
MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/panelpopup/PanelPopupRenderer.java MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/panelpopup/PanelPopup.java MODIFY /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_cust_properties/cust-panelpopup-props.xml |
Ken Fyten
made changes -
Fix Version/s | 1.8DR#3 [ 10143 ] |
Ken Fyten
made changes -
Affects | [Documentation (User Guide, Ref. Guide, etc.)] |
Ken Fyten
made changes -
Assignee Priority | P2 | |
Assignee | Ken Fyten [ ken.fyten ] | Yip Ng [ yip.ng ] |
Ken Fyten
made changes -
Assignee | Ken Fyten [ ken.fyten ] |
Tyler Johnson
made changes -
Attachment | SC7845.war [ 11413 ] |
Tyler Johnson
made changes -
Description |
Philip has the following application level code which will implement this functionality. Would be nice to have feature if it were incorporated in our code base. 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});" + "}"); |
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});" + "}"); |
Tyler Johnson
made changes -
Field | Original Value | New Value |
---|---|---|
Salesforce Case | [50070000007Z87m] |
Tyler Johnson
created issue -
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.