|
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.
|