|
From: <die...@us...> - 2012-01-17 12:05:25
|
Revision: 3734
http://openutils.svn.sourceforge.net/openutils/?rev=3734&view=rev
Author: diego_schivo
Date: 2012-01-17 12:05:14 +0000 (Tue, 17 Jan 2012)
Log Message:
-----------
CONTROLS-42 adjustRowCount
Modified Paths:
--------------
trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGrid.java
Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGrid.java
===================================================================
--- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGrid.java 2012-01-16 11:04:00 UTC (rev 3733)
+++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGrid.java 2012-01-17 12:05:14 UTC (rev 3734)
@@ -24,6 +24,7 @@
import info.magnolia.cms.util.NodeDataUtil;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -88,6 +89,11 @@
String value = getValue();
if (value != null)
{
+ int rows = NumberUtils.toInt(String.valueOf(getConfigValue("rows")), -1);
+ if (rows > 0)
+ {
+ value = adjustRowCount(value, rows);
+ }
List<String[]> columns = DialogGridSaveHandler.valueToColumns(value);
int colIndex = 0;
for (String[] column : columns)
@@ -104,35 +110,28 @@
}
colIndex++;
}
- int rows = NumberUtils.toInt(String.valueOf(parameters.get("rows")), -1);
- if (rows > 0)
- {
- while (columns.size() < rows)
- {
- columns.add(new String[0]);
- }
- while (columns.size() > rows)
- {
- boolean empty = true;
- for (String token : columns.get(columns.size() - 1))
- {
- if (!StringUtils.isEmpty(token))
- {
- empty = false;
- break;
- }
- }
- if (!empty)
- {
- // non-empty line: do not remove it
- break;
- }
- columns.remove(columns.size() - 1);
- }
- }
value = DialogGridSaveHandler.columnsToValue(columns);
}
parameters.put("gridValue", value);
}
+ protected String adjustRowCount(String value, int count)
+ {
+ List<String> rows = new ArrayList<String>(Arrays.asList(StringUtils.splitPreserveAllTokens(value, '\n')));
+ while (rows.size() < count)
+ {
+ rows.add(StringUtils.EMPTY);
+ }
+ while (rows.size() > count)
+ {
+ String row = StringUtils.removeEnd(rows.get(rows.size() - 1), "\r");
+ if (!StringUtils.isEmpty(StringUtils.remove(row, '\t')))
+ {
+ // non-empty line: do not remove it
+ break;
+ }
+ rows.remove(rows.size() - 1);
+ }
+ return StringUtils.join(rows, '\n');
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|