From: <max...@us...> - 2009-08-26 14:21:56
|
Revision: 3871 http://uni-d.svn.sourceforge.net/uni-d/?rev=3871&view=rev Author: max_brod Date: 2009-08-26 14:21:29 +0000 (Wed, 26 Aug 2009) Log Message: ----------- [UNI-472] Changes for MasterDetail components: instead of the buttons Insert and Delete, keys INS and DEL will work on the currently focused line. Other small improvements. Modified Paths: -------------- trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/components/masterDetail/main/MasterDetailBaseComponent.java trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/components/masterDetail/main/MasterDetailMainComponentContainer.java trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/masterDetail/MasterDetailBasePage.java trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailBaseComponent.html trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailComponent.script Modified: trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/components/masterDetail/main/MasterDetailBaseComponent.java =================================================================== --- trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/components/masterDetail/main/MasterDetailBaseComponent.java 2009-08-26 10:14:33 UTC (rev 3870) +++ trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/components/masterDetail/main/MasterDetailBaseComponent.java 2009-08-26 14:21:29 UTC (rev 3871) @@ -67,8 +67,8 @@ @Parameter( name = "showAddLines", defaultValue = "true" ) public abstract boolean isShowAddLines(); - @Parameter( name = "showLinesSelector", defaultValue = "false" ) - public abstract boolean isShowLinesSelector(); + @Parameter( name = "showDetailLinesIndices", defaultValue = "false" ) + public abstract boolean isShowDetailLinesIndices(); @Parameter( name = "showBaseButtons", defaultValue = "true" ) public abstract boolean isShowBaseButtons(); @@ -196,7 +196,7 @@ public int noOfDetailLines() { return getDetailParameters().size(); } - public boolean isShowSelectedLines() { return isEditMode() && isShowLinesSelector() && noOfDetailLines() > 0; } + public boolean isShowLinesIndices() { return isEditMode() && isShowDetailLinesIndices() && noOfDetailLines() > 0; } public boolean isShowSaveButton() { return isEditMode() && isShowBaseButtons(); } Modified: trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/components/masterDetail/main/MasterDetailMainComponentContainer.java =================================================================== --- trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/components/masterDetail/main/MasterDetailMainComponentContainer.java 2009-08-26 10:14:33 UTC (rev 3870) +++ trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/components/masterDetail/main/MasterDetailMainComponentContainer.java 2009-08-26 14:21:29 UTC (rev 3871) @@ -34,7 +34,7 @@ "showRemove = isShowRemove()", "showAddLines = isShowAddLines()", "showBaseButtons = isShowBaseButtons()", - "showLinesSelector = isShowLinesSelectors()", + "showDetailLinesIndices = isShowDetailLinesIndices()", "showCreateTemplateFull = isShowCreateTemplateFull()", "deleteEntity = isShowDeleteEntity()" } ) @@ -70,7 +70,7 @@ public abstract boolean isShowCreateTemplateFull(); - public abstract boolean isShowLinesSelectors(); + public abstract boolean isShowDetailLinesIndices(); public abstract boolean isShowDeleteEntity(); } Modified: trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/masterDetail/MasterDetailBasePage.java =================================================================== --- trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/masterDetail/MasterDetailBasePage.java 2009-08-26 10:14:33 UTC (rev 3870) +++ trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/masterDetail/MasterDetailBasePage.java 2009-08-26 14:21:29 UTC (rev 3871) @@ -77,7 +77,7 @@ return false; } - public boolean isShowLinesSelectors() + public boolean isShowDetailLinesIndices() { return false; } Modified: trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailBaseComponent.html =================================================================== --- trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailBaseComponent.html 2009-08-26 10:14:33 UTC (rev 3870) +++ trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailBaseComponent.html 2009-08-26 14:21:29 UTC (rev 3871) @@ -54,7 +54,7 @@ <table class="detailTable" name="detailTable" align="center" border="0" cellpadding="0" cellspacing="2" width="100%"> <tr class="detailRow"> - <span jwcid="@If" condition='prop:showSelectedLines'><th class="detailHeaderCell" width="10px"></th></span> + <span jwcid="@If" condition='prop:showLinesIndices'><th class="detailHeaderCell" width="10px"></th></span> <!-- detail header block --> <span jwcid="detailHeaderRenderBlock" width="100%"/> <!-- insert/remove button headers --> @@ -66,7 +66,7 @@ <span jwcid="foreachDetail"> <span jwcid="@Any" id="prop:foreachSpanId"> <tr class="detailRow"> - <span jwcid="@If" condition='prop:showSelectedLines'><td class="detailValueCell" width="10px"> + <span jwcid="@If" condition='prop:showLinesIndices'><td class="detailValueCell" width="10px"> <input jwcid="@Insert" value="prop:incrementedDetailIndex"/>. </td></span> <!-- detail block --> @@ -112,8 +112,9 @@ title="prop:addLinesButtonTitle" /> </span> - <span jwcid="@If" condition='prop:showSelectedLines'> - | <span jwcid="@Insert" value="message:masterDetail.label.selectLineNumber"/> <span jwcid="selectLineNumber" size="1"/> + <span jwcid="@If" condition='prop:editMode'> + <span class="displayNone"> + <span jwcid="selectLineNumber" size="1"/> <input jwcid="insertSelectedLine@Submit" onclick="clearValidation(this)" action="listener:insertSelectedLine" value="prop:insertLineButtonLabel" @@ -124,6 +125,7 @@ value="prop:removeLineButtonLabel" title="prop:removeLineButtonTitle" /> + </span> </span> <span jwcid="addLinesExtraRenderBlock"/> 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-26 10:14:33 UTC (rev 3870) +++ trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/components/masterDetail/main/MasterDetailComponent.script 2009-08-26 14:21:29 UTC (rev 3871) @@ -58,7 +58,36 @@ return parent } + function getLineIndex( detailLine, form) + { + var i=0, j=0; + var previousDetailLine=null; + for (i=0; i<form.elements.length; i++) + { + var elem=form.elements[i]; + var mdParent=getMasterDetailParent(elem) + + if (mdParent!=null && mdParent.className=="detailRow" ) + { + if (mdParent==detailLine) + { + return j; + } + else + { + if (mdParent!=previousDetailLine) + { + previousDetailLine=mdParent; + j++; + } + } + } + } + return -1; + } + + function gotoDetailLine (previousDetailLine, form) { var targetTr=null var i=0 @@ -108,6 +137,10 @@ - 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 + + pressing del should delete current line + + pressing ins should insert a new line */ if (event.keyCode==35) { @@ -122,6 +155,50 @@ gotoDetailLine(null, event.target.form); } } + if (event.keyCode==46) + { + //delete + var mdParent=getMasterDetailParent(event.target); + if (mdParent==null) return; + if (mdParent.className!="detailRow") return; + var index=getLineIndex(mdParent, event.target.form); + if (index==-1) return; + var selectLineNumber=document.getElementById("selectLineNumber"); + if (selectLineNumber==null) return; + for (i=0;i<selectLineNumber.options.length;i++) + { + if (selectLineNumber.options[i].value*1==index) + { + selectLineNumber.options[i].selected=true; + var button=document.getElementById("deleteSelectedLine"); + button.click(); + return false; + } + } + + } + if (event.keyCode==45) + { + //insert + var mdParent=getMasterDetailParent(event.target); + if (mdParent==null) return; + if (mdParent.className!="detailRow") return; + var index=getLineIndex(mdParent, event.target.form); + if (index==-1) return; + var selectLineNumber=document.getElementById("selectLineNumber"); + if (selectLineNumber==null) return; + for (i=0;i<selectLineNumber.options.length;i++) + { + if (selectLineNumber.options[i].value*1==index) + { + selectLineNumber.options[i].selected=true; + var button=document.getElementById("insertSelectedLine"); + button.click(); + return false; + } + } + } + } 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. |