[richfaces-svn-commits] JBoss Rich Faces SVN: r2288 - in trunk: samples/modalpanel-sample/src/main/webapp/pages and 1 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Thu Aug 16 08:04:31 EDT 2007
Author: pyaschenko
Date: 2007-08-16 08:04:31 -0400 (Thu, 16 Aug 2007)
New Revision: 2288
Modified:
trunk/samples/modalpanel-sample/src/main/java/org/richfaces/Bean.java
trunk/samples/modalpanel-sample/src/main/webapp/pages/index.jsp
trunk/ui/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js
trunk/ui/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanelBorders.js
Log:
RF-483 fixed
Modified: trunk/samples/modalpanel-sample/src/main/java/org/richfaces/Bean.java
===================================================================
--- trunk/samples/modalpanel-sample/src/main/java/org/richfaces/Bean.java 2007-08-16 10:57:29 UTC (rev 2287)
+++ trunk/samples/modalpanel-sample/src/main/java/org/richfaces/Bean.java 2007-08-16 12:04:31 UTC (rev 2288)
@@ -47,4 +47,12 @@
public void setContainerRendered(boolean containerRendered) {
this.containerRendered = containerRendered;
}
+
+ private int counter = 0;
+
+ public int getCounter() {
+ counter++;
+ System.out.println(counter);
+ return counter;
+ }
}
\ No newline at end of file
Modified: trunk/samples/modalpanel-sample/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/samples/modalpanel-sample/src/main/webapp/pages/index.jsp 2007-08-16 10:57:29 UTC (rev 2287)
+++ trunk/samples/modalpanel-sample/src/main/webapp/pages/index.jsp 2007-08-16 12:04:31 UTC (rev 2288)
@@ -23,7 +23,7 @@
<body style="text-align: center;">
<f:view>
<h:form id="_form">
-
+
<h:selectOneMenu>
<f:selectItem itemLabel="item1" itemValue="item1" />
<f:selectItem itemLabel="item2" itemValue="item2" />
Modified: trunk/ui/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js
===================================================================
--- trunk/ui/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js 2007-08-16 10:57:29 UTC (rev 2287)
+++ trunk/ui/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js 2007-08-16 12:04:31 UTC (rev 2288)
@@ -9,6 +9,20 @@
sizeA = 4;
sizeB = 40;
+function discardElement(element) {
+ var garbageBin = document.getElementById('IELeakGarbageBin');
+ if (!garbageBin) {
+ garbageBin = document.createElement('DIV');
+ garbageBin.id = 'IELeakGarbageBin';
+ garbageBin.style.display = 'none';
+ document.body.appendChild(garbageBin);
+ }
+
+ // move the element to the garbage bin
+ garbageBin.appendChild(element);
+ garbageBin.innerHTML = '';
+}
+
ModalPanel = Class.create();
{
@@ -39,9 +53,7 @@
while (i < ModalPanel.panels.length) {
var panel = ModalPanel.panels[i];
- var elt = $(panel.markerId);
-
- if (Element.isUninitialized(elt)) {
+ if (Element.isUninitialized(panel.markerId)) {
panel.destroy();
ModalPanel.panels.splice(i, 1);
@@ -92,8 +104,9 @@
ModalPanel.prototype = {
initialize: function(id, options) {
- this.markerId = id;
+ this.markerId = $(id);
+
this.id = id + "Container";
this.options = options;
@@ -132,7 +145,7 @@
this.header = new ModalPanel.Border(id + "Header", this, "move", ModalPanel.Header);
}
- $(this.id).modalPanel = this;
+ this.markerId.modalPanel = this;
var eDiv = $(this.div);
if (eDiv.style.setExpression)
@@ -169,8 +182,8 @@
this.eventFirstOnfocus = this.firstOnfocus.bindAsEventListener(this);
this.eventLastOnfocus = this.lastOnfocus.bindAsEventListener(this);
- this.firstHref = this.markerId + "FirstHref";
- this.lastHref = this.markerId + "LastHref";
+ this.firstHref = this.id + "FirstHref";
+ this.lastHref = this.id + "LastHref";
this.selectBehavior = options.selectBehavior;
},
@@ -178,14 +191,30 @@
destroy: function() {
this.traverseSelects(true);
+
+ this.parent = null;
+ this.firstOutside = null;
+ this.lastOutside = null;
+ if (this.header) {
+ this.header.destroy();
+ this.header=null;
+ }
+ for (var k = 0; k < this.borders.length; k++ ) {
+ this.borders[k].destroy();
+ }
+ this.borders = null;
+
if (this.floatedToBody) {
var element = $(this.id);
var parent = element.parentNode;
if (parent) {
parent.removeChild(element);
+ discardElement(element);
}
}
+ this.markerId.modalPanel = null;
+ this.markerId = null;
},
initIframe : function() {
@@ -413,17 +442,18 @@
var eIframe;
if (ModalPanel.disableSelects && !this.iframe) {
new Insertion.Top(eCdiv,
- "<iframe src=\"javascript:''\" frameborder=\"0\" scrolling=\"no\" id=\"" + this.markerId + "IFrame\"" +
+ "<iframe src=\"javascript:''\" frameborder=\"0\" scrolling=\"no\" id=\"" + this.id + "IFrame\"" +
"style=\"position: absolute; width: 1px; height: 1px; background-color: white; overflow-y: hidden; z-index: 1;\">" +
"</iframe>");
- this.iframe = this.markerId + "IFrame";
+ this.iframe = this.id + "IFrame";
eIframe = $(this.iframe);
//alert("IFrame:" + eIframe + "created!");
- eIframe.onload = this.initIframe.bind(eIframe);
+ //eIframe.onload = this.initIframe.bind(eIframe);
+ Event.observe(eIframe, 'load', this.initIframe.bindAsEventListener(eIframe));
}
var options = {};
@@ -772,8 +802,8 @@
if (e && target) {
var input = document.createElement("input");
input.type = "hidden";
- input.id = this.markerId + "OpenedState";
- input.name = this.markerId + "OpenedState";
+ input.id = this.id + "OpenedState";
+ input.name = this.id + "OpenedState";
input.value = this.shown ? "true" : "false";
target.appendChild(input);
@@ -782,8 +812,8 @@
for (var i = 0; i < keys.length; i++) {
input = document.createElement("input");
input.type = "hidden";
- input.id = this.markerId + "StateOption_" + keys[i];
- input.name = this.markerId + "StateOption_" + keys[i];
+ input.id = this.id + "StateOption_" + keys[i];
+ input.name = this.id + "StateOption_" + keys[i];
input.value = this.userOptions[keys[i]];
target.appendChild(input);
@@ -802,14 +832,14 @@
for (var i = 0; i < ModalPanel.panels.length; i++ ) {
var pnl = ModalPanel.panels[i];
if (pnl && pnl.markerId) {
- var pnlId = pnl.markerId;
+ var pnlId = pnl.markerId.id;
if (pnlId) {
//try to match ids
if (pnlId.length >= prefId.length) {
var substr = pnlId.substring(pnlId.length - prefId.length, pnlId.length);
if (substr == prefId) {
- return pnl.id;
+ return pnl.markerId;
}
}
}
@@ -819,17 +849,17 @@
}
Richfaces.showModalPanel = function (id, opts) {
- var panel = $(id + "Container");
+ var panel = $(id);
if (!panel) {
- panel = $(Richfaces.findModalPanel(id));
+ panel = Richfaces.findModalPanel(id);
}
panel.modalPanel.show(opts);
}
Richfaces.hideModalPanel = function (id, opts) {
- var panel = $(id + "Container");
+ var panel = $(id);
if (!panel) {
- panel = $(Richfaces.findModalPanel(id));
+ panel = Richfaces.findModalPanel(id);
}
panel.modalPanel.hide(opts);
}
Modified: trunk/ui/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanelBorders.js
===================================================================
--- trunk/ui/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanelBorders.js 2007-08-16 10:57:29 UTC (rev 2287)
+++ trunk/ui/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanelBorders.js 2007-08-16 12:04:31 UTC (rev 2288)
@@ -6,7 +6,8 @@
var element = $(id);
element.style.cursor = cursor;
- $(id).onmousedown = this.startDrag.bindAsEventListener(this);
+ //$(id).onmousedown = this.startDrag.bindAsEventListener(this);
+ Event.observe($(id), 'mousedown', this.startDrag.bindAsEventListener(this));
this.modalPanel = modalPanel;
this.sizer = sizer;
@@ -14,6 +15,11 @@
this.boundDoDrag = this.doDrag.bindAsEventListener(this);
this.boundEndDrag = this.endDrag.bindAsEventListener(this);
},
+
+ destroy: function()
+ {
+ this.modalPanel=null;
+ },
show: function() {
Element.show(this.id);
@@ -107,6 +113,7 @@
$(this.modalPanel.cursorDiv).style.zIndex = -200;
document.onselectstart = this.onselectStartHandler;
+ this.onselectStartHandler = null;
},
doPosition: function() {
More information about the richfaces-svn-commits
mailing list