From 271966a54705b92f8c05573a58bd9c8f08737641 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 14 Jan 2008 02:26:50 +0000 Subject: [PATCH] [ 1805503 ] UI allows changing record while new record not saved --- base/src/org/compiere/model/GridTab.java | 13 +++++++++++-- base/src/org/compiere/model/GridTable.java | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/base/src/org/compiere/model/GridTab.java b/base/src/org/compiere/model/GridTab.java index 19f319ea73..d625ecd5d1 100644 --- a/base/src/org/compiere/model/GridTab.java +++ b/base/src/org/compiere/model/GridTab.java @@ -2065,10 +2065,19 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable // Row range check int newRow = verifyRow(targetRow); - + // Check, if we have old uncommitted data - m_mTable.dataSave(newRow, false); + if (m_mTable.dataSave(newRow, false) == false) + return m_currentRow; + //remove/ignore new and unchange row + if (m_mTable.isInserting()) + { + if (newRow > m_currentRow) + newRow--; + dataIgnore(); + } + // new position return setCurrentRow(newRow, true); } // navigate diff --git a/base/src/org/compiere/model/GridTable.java b/base/src/org/compiere/model/GridTable.java index b69697fb87..71dfbd2403 100644 --- a/base/src/org/compiere/model/GridTable.java +++ b/base/src/org/compiere/model/GridTable.java @@ -870,7 +870,8 @@ public class GridTable extends AbstractTableModel // Can we edit? if (!m_open || m_readOnly // not accessible || row < 0 || col < 0 // invalid index - || m_rowCount == 0) // no rows + || m_rowCount == 0 // no rows + || row >= m_rowCount ) //invalid row { log.finest("r=" + row + " c=" + col + " - R/O=" + m_readOnly + ", Rows=" + m_rowCount + " - Ignored"); return;