|
From: <max...@us...> - 2009-08-26 10:14:47
|
Revision: 3870
http://uni-d.svn.sourceforge.net/uni-d/?rev=3870&view=rev
Author: max_brod
Date: 2009-08-26 10:14:33 +0000 (Wed, 26 Aug 2009)
Log Message:
-----------
No more using a separate js script file for Master detail components key navigation.
Modified Paths:
--------------
trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailComponent.script
Removed Paths:
-------------
trunk/Uni-d/template/src/main/webapp/MasterDetail.js
Modified: trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailComponent.script
===================================================================
--- trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailComponent.script 2009-08-25 16:15:34 UTC (rev 3869)
+++ trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailComponent.script 2009-08-26 10:14:33 UTC (rev 3870)
@@ -23,4 +23,108 @@
]]>
</unique>
</body>
+ <initialization>
+ <![CDATA[
+ function getMasterDetailParent(elem)
+ {
+ var parent=elem
+ do
+ {
+ if (parent.className=="detailRow")
+ {
+ return parent;
+ }
+ if (parent.className!=null && parent.className.indexOf("tabset_content")==0)
+ {
+ return parent;
+ }
+ if (parent.tagName=="TR")
+ {
+ var trs=parent.parentNode.getElementsByTagName("TR");
+ if (trs[0].className=="detailRow")
+ {
+ for (i=0; i<trs.length; i++)
+ {
+ if (trs[i]==parent && i>0 && trs[i-1].className=="detailRow")
+ {
+ return trs[i-1];
+ }
+ }
+ }
+ }
+ parent=parent.parentNode
+ }
+ while (parent!=null);
+ return parent
+ }
+
+
+ function gotoDetailLine (previousDetailLine, form) {
+ var targetTr=null
+ var i=0
+ var foundPrevious=false
+ for (i=0; i<form.elements.length; i++)
+ {
+ var elem=form.elements[i];
+ var mdParent=getMasterDetailParent(elem)
+
+ if (mdParent!=null && mdParent.className=="detailRow" && !foundPrevious )
+ {
+ if (previousDetailLine==null || mdParent==previousDetailLine)
+ {
+ foundPrevious=true;
+ }
+ }
+ if (foundPrevious && mdParent!=previousDetailLine)
+ {
+ if (mdParent==null)
+ {
+ var addButton=document.getElementById("addMoreDetailLines");
+ if (addButton!=null) addButton.click()
+ }
+ if (((elem.tagName=="INPUT" ) && ((elem.type=="text") || (elem.type=="checkbox"))) || (elem.tagName=="SELECT"))
+ {
+ if ((elem.style.display!="none") && (elem.disabled==false) && (elem.className!="displayNone"))
+ {
+ td=elem.parentNode;
+ tr=td.parentNode;
+ tbody=tr.parentNode;
+ if ((td.style.display!="none") && (td.className!="displayNone") && (tr.style.display!="none") && (tr.className!="displayNone") && (tbody.style.display!="none") && (tbody.className!="displayNone"))
+ {
+ elem.focus();
+ if (elem.tagName=="INPUT") elem.select();
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ function shortcutkey_handler_end(event)
+ {
+ /*
+ pressing end should go:
+ - from anywhere in header to the first field on the first line
+ - from anywhere in a detail line to the begining of the next detail line
+ - from the last detail line to the add button
+ */
+ if (event.keyCode==35)
+ {
+ var mdParent=getMasterDetailParent(event.target);
+ if (mdParent==null) return;
+ if (mdParent.className=="detailRow")
+ {
+ gotoDetailLine(mdParent, event.target.form);
+ }
+ else
+ {
+ gotoDetailLine(null, event.target.form);
+ }
+ }
+ }
+
+ document.addEventListener('keypress', shortcutkey_handler_end, true);
+ ]]>
+ </initialization>
</script>
Deleted: trunk/Uni-d/template/src/main/webapp/MasterDetail.js
===================================================================
--- trunk/Uni-d/template/src/main/webapp/MasterDetail.js 2009-08-25 16:15:34 UTC (rev 3869)
+++ trunk/Uni-d/template/src/main/webapp/MasterDetail.js 2009-08-26 10:14:33 UTC (rev 3870)
@@ -1,103 +0,0 @@
-function getMasterDetailParent(elem)
-{
- var parent=elem
- do
- {
- if (parent.className=="detailRow")
- {
- return parent;
- }
- if (parent.className!=null && parent.className.indexOf("tabset_content")==0)
- {
- return parent;
- }
- if (parent.tagName=="TR")
- {
- var trs=parent.parentNode.getElementsByTagName("TR");
- if (trs[0].className=="detailRow")
- {
- for (i=0; i<trs.length; i++)
- {
- if (trs[i]==parent && i>0 && trs[i-1].className=="detailRow")
- {
- return trs[i-1];
- }
- }
- }
- }
- parent=parent.parentNode
- }
- while (parent!=null);
- return parent
- }
-
-
- function gotoDetailLine (previousDetailLine, form) {
- var targetTr=null
- var i=0
- var foundPrevious=false
- for (i=0; i<form.elements.length; i++)
- {
- var elem=form.elements[i];
- var mdParent=getMasterDetailParent(elem)
-
- if (mdParent!=null && mdParent.className=="detailRow" && !foundPrevious )
- {
- if (previousDetailLine==null || mdParent==previousDetailLine)
- {
- foundPrevious=true;
- }
- }
- if (foundPrevious && mdParent!=previousDetailLine)
- {
- if (mdParent==null)
- {
- var addButton=document.getElementById("addMoreDetailLines");
- if (addButton!=null) addButton.click()
- }
- if (((elem.tagName=="INPUT" ) && ((elem.type=="text") || (elem.type=="checkbox"))) || (elem.tagName=="SELECT"))
- {
- if ((elem.style.display!="none") && (elem.disabled==false) && (elem.className!="displayNone"))
- {
- td=elem.parentNode;
- tr=td.parentNode;
- tbody=tr.parentNode;
- if ((td.style.display!="none") && (td.className!="displayNone") && (tr.style.display!="none") && (tr.className!="displayNone") && (tbody.style.display!="none") && (tbody.className!="displayNone"))
- {
- elem.focus();
- if (elem.tagName=="INPUT") elem.select();
- break;
- }
- }
- }
- }
- }
- }
-
-
-
- function shortcutkey_handler_end(event)
- {
- /*
- pressing end should go:
- - from anywhere in header to the first field on the first line
- - from anywhere in a detail line to the begining of the next detail line
- - from the last detail line to the add button
- */
- if (event.keyCode==35)
- {
- var mdParent=getMasterDetailParent(event.target);
- if (mdParent==null) return;
- if (mdParent.className=="detailRow")
- {
- gotoDetailLine(mdParent, event.target.form);
- }
- else
- {
- gotoDetailLine(null, event.target.form);
- }
- }
- }
-
- document.addEventListener('keypress', shortcutkey_handler_end, true);
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|