Version without my other customizations - sorry

This commit is contained in:
kthiemann 2006-11-23 14:00:56 +00:00
parent ae24088ba2
commit 9714c3c5c5
1 changed files with 62 additions and 150 deletions

View File

@ -132,8 +132,8 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
/** Logger */ /** Logger */
protected CLogger log = CLogger.getCLogger(getClass()); protected CLogger log = CLogger.getCLogger(getClass());
/************************************************************************** /**************************************************************************
* Tab loader for Tabs > 0 * Tab loader for Tabs > 0
*/ */
@ -285,39 +285,39 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
for (int i = 0; i < list.size(); i++) for (int i = 0; i < list.size(); i++)
m_depOnField.put(list.get(i), field); // ColumnName, Field m_depOnField.put(list.get(i), field); // ColumnName, Field
// Add fields all fields are dependent on // Add fields all fields are dependent on
if (columnName.equals("IsActive") if (columnName.equals("IsActive")
|| columnName.equals("Processed") || columnName.equals("Processed")
|| columnName.equals("Processing")) || columnName.equals("Processing"))
m_depOnField.put(columnName, null); m_depOnField.put(columnName, null);
} }
} // for all fields } // for all fields
// Add Standard Fields // Add Standard Fields
if (m_mTable.getField("Created") == null) if (m_mTable.getField("Created") == null)
{ {
GridField created = new GridField (GridFieldVO.createStdField(m_vo.ctx, GridField created = new GridField (GridFieldVO.createStdField(m_vo.ctx,
m_vo.WindowNo, m_vo.TabNo, m_vo.WindowNo, m_vo.TabNo,
m_vo.AD_Window_ID, m_vo.AD_Tab_ID, false, true, true)); m_vo.AD_Window_ID, m_vo.AD_Tab_ID, false, true, true));
m_mTable.addField(created); m_mTable.addField(created);
} }
if (m_mTable.getField("CreatedBy") == null) if (m_mTable.getField("CreatedBy") == null)
{ {
GridField createdBy = new GridField (GridFieldVO.createStdField(m_vo.ctx, GridField createdBy = new GridField (GridFieldVO.createStdField(m_vo.ctx,
m_vo.WindowNo, m_vo.TabNo, m_vo.WindowNo, m_vo.TabNo,
m_vo.AD_Window_ID, m_vo.AD_Tab_ID, false, true, false)); m_vo.AD_Window_ID, m_vo.AD_Tab_ID, false, true, false));
m_mTable.addField(createdBy); m_mTable.addField(createdBy);
} }
if (m_mTable.getField("Updated") == null) if (m_mTable.getField("Updated") == null)
{ {
GridField updated = new GridField (GridFieldVO.createStdField(m_vo.ctx, GridField updated = new GridField (GridFieldVO.createStdField(m_vo.ctx,
m_vo.WindowNo, m_vo.TabNo, m_vo.WindowNo, m_vo.TabNo,
m_vo.AD_Window_ID, m_vo.AD_Tab_ID, false, false, true)); m_vo.AD_Window_ID, m_vo.AD_Tab_ID, false, false, true));
m_mTable.addField(updated); m_mTable.addField(updated);
} }
if (m_mTable.getField("UpdatedBy") == null) if (m_mTable.getField("UpdatedBy") == null)
{ {
GridField updatedBy = new GridField (GridFieldVO.createStdField(m_vo.ctx, GridField updatedBy = new GridField (GridFieldVO.createStdField(m_vo.ctx,
m_vo.WindowNo, m_vo.TabNo, m_vo.WindowNo, m_vo.TabNo,
m_vo.AD_Window_ID, m_vo.AD_Tab_ID, false, false, false)); m_vo.AD_Window_ID, m_vo.AD_Tab_ID, false, false, false));
m_mTable.addField(updatedBy); m_mTable.addField(updatedBy);
} }
@ -353,7 +353,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
{ {
return m_vo.DisplayLogic; return m_vo.DisplayLogic;
} // getDisplayLogic } // getDisplayLogic
/** /**
* Get TableModel. * Get TableModel.
* <B>Do not directly communicate with the table model, * <B>Do not directly communicate with the table model,
@ -378,7 +378,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
return null; return null;
} // getIcon } // getIcon
/************************************************************************** /**************************************************************************
* Has this field dependents ? * Has this field dependents ?
* @param columnName column name * @param columnName column name
@ -400,7 +400,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
return m_depOnField.getValues(columnName); return m_depOnField.getValues(columnName);
} // getDependentFields } // getDependentFields
/************************************************************************** /**************************************************************************
* Set Query * Set Query
* @param query query * @param query query
@ -485,8 +485,8 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
*/ */
public void query (boolean onlyCurrentRows, int onlyCurrentDays, int maxRows) public void query (boolean onlyCurrentRows, int onlyCurrentDays, int maxRows)
{ {
log.fine("#" + m_vo.TabNo log.fine("#" + m_vo.TabNo
+ " - Only Current Rows=" + onlyCurrentRows + " - Only Current Rows=" + onlyCurrentRows
+ ", Days=" + onlyCurrentDays + ", Detail=" + isDetail()); + ", Days=" + onlyCurrentDays + ", Detail=" + isDetail());
// is it same query? // is it same query?
boolean refresh = m_oldQuery.equals(m_query.getWhereClause()) boolean refresh = m_oldQuery.equals(m_query.getWhereClause())
@ -604,7 +604,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
log.fine("Ignored(Function): " + colName); log.fine("Ignored(Function): " + colName);
return query.getWhereClause(); return query.getWhereClause();
} }
// OK - Query is valid // OK - Query is valid
// Zooms to the same Window (Parents, ..) // Zooms to the same Window (Parents, ..)
String refColName = null; String refColName = null;
@ -622,8 +622,8 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
} }
refColName = null; refColName = null;
} }
// Simple Query. // Simple Query.
if (getField(colName) != null) if (getField(colName) != null)
{ {
log.fine("Field Found: " + colName); log.fine("Field Found: " + colName);
@ -691,7 +691,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
log.log(Level.SEVERE, "Column=" + colName + ", Key=" + tabKeyColumn, e); log.log(Level.SEVERE, "Column=" + colName + ", Key=" + tabKeyColumn, e);
return null; return null;
} }
// Special Reference Handling // Special Reference Handling
if (tabKeyColumn.equals("AD_Reference_ID")) if (tabKeyColumn.equals("AD_Reference_ID"))
{ {
@ -700,13 +700,13 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
int AD_Reference_ID = DB.getSQLValue(null, sql, colName); int AD_Reference_ID = DB.getSQLValue(null, sql, colName);
return "AD_Reference_ID=" + AD_Reference_ID; return "AD_Reference_ID=" + AD_Reference_ID;
} }
// Causes could be functions in query // Causes could be functions in query
// e.g. Column=UPPER(Name), Key=AD_Element_ID, Query=UPPER(AD_Element.Name) LIKE '%CUSTOMER%' // e.g. Column=UPPER(Name), Key=AD_Element_ID, Query=UPPER(AD_Element.Name) LIKE '%CUSTOMER%'
if (tableName == null) if (tableName == null)
{ {
log.info ("Not successfull - Column=" log.info ("Not successfull - Column="
+ colName + ", Key=" + tabKeyColumn + colName + ", Key=" + tabKeyColumn
+ ", Query=" + query); + ", Query=" + query);
return query.getWhereClause(); return query.getWhereClause();
} }
@ -769,7 +769,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
setCurrentRow(row, true); setCurrentRow(row, true);
} // dataRefresh } // dataRefresh
/************************************************************************** /**************************************************************************
* Uncoditionally Save data * Uncoditionally Save data
* @param manualCmd if true, no vetoable PropertyChange will be fired for save confirmation from MTable * @param manualCmd if true, no vetoable PropertyChange will be fired for save confirmation from MTable
@ -826,7 +826,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
log.fine("#" + m_vo.TabNo + "- fini"); log.fine("#" + m_vo.TabNo + "- fini");
} // dataIgnore } // dataIgnore
/** /**
* Create (copy) new Row * Create (copy) new Row
* and process Callouts * and process Callouts
@ -882,7 +882,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
return retValue; return retValue;
} // dataDelete } // dataDelete
/** /**
* Get Name of Tab * Get Name of Tab
* @return name * @return name
@ -1159,14 +1159,14 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
{ {
if (m_vo.IsReadOnly) if (m_vo.IsReadOnly)
return true; return true;
// no restrictions // no restrictions
if (m_vo.ReadOnlyLogic == null || m_vo.ReadOnlyLogic.equals("")) if (m_vo.ReadOnlyLogic == null || m_vo.ReadOnlyLogic.equals(""))
return m_vo.IsReadOnly; return m_vo.IsReadOnly;
// ** dynamic content ** uses get_ValueAsString // ** dynamic content ** uses get_ValueAsString
boolean retValue = Evaluator.evaluateLogic(this, m_vo.ReadOnlyLogic); boolean retValue = Evaluator.evaluateLogic(this, m_vo.ReadOnlyLogic);
log.finest(m_vo.Name log.finest(m_vo.Name
+ " (" + m_vo.ReadOnlyLogic + ") => " + retValue); + " (" + m_vo.ReadOnlyLogic + ") => " + retValue);
return retValue; return retValue;
} // isReadOnly } // isReadOnly
@ -1185,7 +1185,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
} }
return false; return false;
} // isAlwaysUpdateField } // isAlwaysUpdateField
/** /**
* Can we Insert Records? * Can we Insert Records?
* @return true not read only and allowed * @return true not read only and allowed
@ -1205,7 +1205,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
public boolean isDisplayed () public boolean isDisplayed ()
{ {
// no restrictions // no restrictions
String dl = m_vo.DisplayLogic; String dl = m_vo.DisplayLogic;
if (dl == null || dl.equals("")) if (dl == null || dl.equals(""))
return true; return true;
@ -1217,7 +1217,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
log.config(m_vo.Name + " (" + dl + ") => " + retValue); log.config(m_vo.Name + " (" + dl + ") => " + retValue);
return retValue; return retValue;
} // isDisplayed } // isDisplayed
/** /**
* Get Variable Value (Evaluatee) * Get Variable Value (Evaluatee)
* @param variableName name * @param variableName name
@ -1338,7 +1338,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
return m_vo.AD_ColumnSortYesNo_ID; return m_vo.AD_ColumnSortYesNo_ID;
} // getAD_ColumnSortYesNo_ID } // getAD_ColumnSortYesNo_ID
/************************************************************************** /**************************************************************************
* Get extended Where Clause (parent link) * Get extended Where Clause (parent link)
* @return parent link * @return parent link
@ -1373,7 +1373,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
} }
if (m_vo.OrderByClause.length() > 0) if (m_vo.OrderByClause.length() > 0)
return m_vo.OrderByClause; return m_vo.OrderByClause;
// Third Prio: onlyCurrentRows // Third Prio: onlyCurrentRows
m_vo.OrderByClause = "Created"; m_vo.OrderByClause = "Created";
if (onlyCurrentRows && !isDetail()) // first tab only if (onlyCurrentRows && !isDetail()) // first tab only
@ -1381,7 +1381,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
return m_vo.OrderByClause; return m_vo.OrderByClause;
} // getOrderByClause } // getOrderByClause
/************************************************************************** /**************************************************************************
* Transaction support. * Transaction support.
* Depending on Table returns transaction info * Depending on Table returns transaction info
@ -1598,7 +1598,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
return " "; return " ";
} // S_TimeExpense } // S_TimeExpense
// Default - No Trx Info // Default - No Trx Info
return null; return null;
} // getTrxInfo } // getTrxInfo
@ -1638,7 +1638,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
} // loadOrderInfo } // loadOrderInfo
} // loadDependentInfo } // loadDependentInfo
/************************************************************************** /**************************************************************************
* Load Attachments for this table * Load Attachments for this table
*/ */
@ -1796,7 +1796,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
/************************************************************************** /**************************************************************************
* Load Locks for Table and User * Load Locks for Table and User
*/ */
public void loadLocks() public void loadLocks()
{ {
int AD_User_ID = Env.getContextAsInt(Env.getCtx(), "#AD_User_ID"); int AD_User_ID = Env.getContextAsInt(Env.getCtx(), "#AD_User_ID");
@ -1806,7 +1806,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
String sql = "SELECT Record_ID " String sql = "SELECT Record_ID "
+ "FROM AD_Private_Access " + "FROM AD_Private_Access "
+ "WHERE AD_User_ID=? AND AD_Table_ID=? AND IsActive='Y' " + "WHERE AD_User_ID=? AND AD_Table_ID=? AND IsActive='Y' "
+ "ORDER BY Record_ID"; + "ORDER BY Record_ID";
try try
{ {
@ -1832,7 +1832,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
} }
log.fine("#" + m_Lock.size()); log.fine("#" + m_Lock.size());
} // loadLooks } // loadLooks
/** /**
* Record Is Locked * Record Is Locked
* @return true if locked * @return true if locked
@ -1849,7 +1849,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
Integer key = new Integer(m_mTable.getKeyID (m_currentRow)); Integer key = new Integer(m_mTable.getKeyID (m_currentRow));
return m_Lock.contains(key); return m_Lock.contains(key);
} // isLocked } // isLocked
/** /**
* Lock Record * Lock Record
* @param ctx context * @param ctx context
@ -1859,7 +1859,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
public void lock (Properties ctx, int Record_ID, boolean lock) public void lock (Properties ctx, int Record_ID, boolean lock)
{ {
int AD_User_ID = Env.getContextAsInt(ctx, "#AD_User_ID"); int AD_User_ID = Env.getContextAsInt(ctx, "#AD_User_ID");
log.fine("Lock=" + lock + ", AD_User_ID=" + AD_User_ID log.fine("Lock=" + lock + ", AD_User_ID=" + AD_User_ID
+ ", AD_Table_ID=" + m_vo.AD_Table_ID + ", Record_ID=" + Record_ID); + ", AD_Table_ID=" + m_vo.AD_Table_ID + ", Record_ID=" + Record_ID);
MPrivateAccess access = MPrivateAccess.get (ctx, AD_User_ID, m_vo.AD_Table_ID, Record_ID); MPrivateAccess access = MPrivateAccess.get (ctx, AD_User_ID, m_vo.AD_Table_ID, Record_ID);
if (access == null) if (access == null)
@ -1870,7 +1870,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
loadLocks(); loadLocks();
} // lock } // lock
/************************************************************************** /**************************************************************************
* Data Status Listener from MTable. * Data Status Listener from MTable.
* - get raw info and add current row information * - get raw info and add current row information
@ -1943,7 +1943,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
} }
e.setInserting(m_mTable.isInserting()); e.setInserting(m_mTable.isInserting());
// Distribute/fire it // Distribute/fire it
for (int i = 0; i < listeners.length; i++) for (int i = 0; i < listeners.length; i++)
listeners[i].dataStatusChanged(e); listeners[i].dataStatusChanged(e);
// log.fine("fini - " + e.toString()); // log.fine("fini - " + e.toString());
} // fireDataStatusChanged } // fireDataStatusChanged
@ -2121,8 +2121,8 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
// inform APanel/.. -> dataStatus with row updated // inform APanel/.. -> dataStatus with row updated
if (m_DataStatusEvent == null) if (m_DataStatusEvent == null)
m_DataStatusEvent = new DataStatusEvent(this, getRowCount(), m_DataStatusEvent = new DataStatusEvent(this, getRowCount(),
m_mTable.isInserting(), // changed m_mTable.isInserting(), // changed
Env.isAutoCommit(Env.getCtx(), m_vo.WindowNo), m_mTable.isInserting()); Env.isAutoCommit(Env.getCtx(), m_vo.WindowNo), m_mTable.isInserting());
// //
m_DataStatusEvent.setCurrentRow(m_currentRow); m_DataStatusEvent.setCurrentRow(m_currentRow);
@ -2130,28 +2130,19 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
if (status == null || status.length() == 0) if (status == null || status.length() == 0)
m_DataStatusEvent.setInfo("NavigateOrUpdate", null, false,false); m_DataStatusEvent.setInfo("NavigateOrUpdate", null, false,false);
fireDataStatusChanged(m_DataStatusEvent); fireDataStatusChanged(m_DataStatusEvent);
// CHANGED: Vergleich von fpa und selected values BPartnerSelection
if (getName().equalsIgnoreCase("BPartner Selection")) {
BPartnerSelection.compareWithFpaValues(this, null);
return m_currentRow;
}// ende changed
// CHANGED: Vergleich von actual und customer values in OrderLine
else if (getName().equalsIgnoreCase("Order Line")) {
CustomValueComparison.compare(this);
return m_currentRow;
}// ende changed
// CHANGED: checks the total order weight
else if (getName().equalsIgnoreCase("Purchase Order")) {
//besser mit ID - getAD_Tab_ID()
OrderWeightCheck.compare(this);
return m_currentRow;
}// ende changed
return m_currentRow; return m_currentRow;
} // setCurrentRow } // setCurrentRow
/**
* Set current row - used for deleteSelection
* @return current row
*/
public void setCurrentRow(int row){
setCurrentRow(row, false);
}
/************************************************************************** /**************************************************************************
* Get RowCount * Get RowCount
* @return row count * @return row count
@ -2259,7 +2250,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
} }
return "Y".equals(Env.getContext(m_vo.ctx, m_vo.WindowNo, "Processed")); return "Y".equals(Env.getContext(m_vo.ctx, m_vo.WindowNo, "Processed"));
} // isProcessed } // isProcessed
/** /**
* Process Field Change - evaluate Dependencies and process Callouts. * Process Field Change - evaluate Dependencies and process Callouts.
* *
@ -2300,7 +2291,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
// if the lookup is dynamic (i.e. contains this columnName as variable) // if the lookup is dynamic (i.e. contains this columnName as variable)
if (mLookup.getValidation().indexOf("@"+columnName+"@") != -1) if (mLookup.getValidation().indexOf("@"+columnName+"@") != -1)
{ {
log.fine(columnName + " changed - " log.fine(columnName + " changed - "
+ dependentField.getColumnName() + " set to null"); + dependentField.getColumnName() + " set to null");
// invalidate current selection // invalidate current selection
setValue(dependentField, null); setValue(dependentField, null);
@ -2309,7 +2300,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
} // for all dependent fields } // for all dependent fields
} // processDependencies } // processDependencies
/************************************************************************** /**************************************************************************
* Process Callout(s). * Process Callout(s).
* <p> * <p>
@ -2363,10 +2354,10 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
if (call == null || method == null || method.length() == 0) if (call == null || method == null || method.length() == 0)
return "Callout Invalid: " + method; return "Callout Invalid: " + method;
String retValue = ""; String retValue = "";
try try
{ {
retValue = call.start(m_vo.ctx, method, m_vo.WindowNo, this, field, value, oldValue); retValue = call.start(m_vo.ctx, method, m_vo.WindowNo, this, field, value, oldValue);
} }
catch (Exception e) catch (Exception e)
@ -2436,7 +2427,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
return retValue; return retValue;
} // toString } // toString
/************************************************************************** /**************************************************************************
* @param l listener * @param l listener
*/ */
@ -2466,85 +2457,6 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
{ {
m_listenerList.add(DataStatusListener.class, l); m_listenerList.add(DataStatusListener.class, l);
} }
// CHANGED: Eigene Methode - für das Umsortieren der Tabellenzeilen
/**
* Vertauscht zwei Zeilen einer Tabelle.
*
* @author Karsten Thiemann
* @param from
* Index der Zeile die verschoben wird
* @param to
* Index der Zielzeile
*/
public void moveRow(int from, int to) {
// nothing to do
if (from == to) {
log.fine("nothing to do - from == to");
return;
}
// Row range check
int nextRow = verifyRow(to);
if (nextRow == -1) {
log.fine("Row range check - return");
return;
}
// Check, if we have old uncommitted data
m_mTable.dataSave(nextRow, false);
int lineCol = m_mTable.findColumn("Line");
if (lineCol == -1) {
lineCol = m_mTable.findColumn("SeqNo");
}
Integer lineNoCurrentRow = null;
Integer lineNoNextRow = null;
if (m_mTable.getValueAt(from, lineCol) instanceof Integer) {
// die verschiedenen Ansichten (Tabelle/Grid) liefern verschiedene
// Typen...
lineNoCurrentRow = (Integer) m_mTable.getValueAt(from, lineCol);
lineNoNextRow = (Integer) m_mTable.getValueAt(nextRow, lineCol);
} else if (m_mTable.getValueAt(from, lineCol) instanceof BigDecimal) {
lineNoCurrentRow = new Integer(((BigDecimal) m_mTable.getValueAt(from, lineCol))
.intValue());
lineNoNextRow = new Integer(((BigDecimal) m_mTable.getValueAt(nextRow, lineCol))
.intValue());
} else {
log.fine("unknown value format - return");
return;
}
if (lineNoCurrentRow == Constants.FREIGHTCOST_LINENO
|| lineNoNextRow == Constants.FREIGHTCOST_LINENO) {
return; // Versandkosten nicht mitsortieren!
}
log.fine("LineIndex from: " + from + " LineIndex to: " + nextRow);
log.fine("lineNoCurrentRow: " + lineNoCurrentRow + " lineNoNextRow: " + lineNoNextRow);
// switch the lineNo's
m_mTable.setValueAt(new Integer(-10), from, lineCol); // wegen der
// Dateiumbenennung
// (als
// Zwischenspeicher)
log.fine("LineNo der Zeile " + from + " auf -10 gesetzt.");
log.fine("aktueller Wert von LineNo: " + m_mTable.getValueAt(from, lineCol).toString());
setCurrentRow(nextRow, false);// speichert alle Werte der Zeile
// (fehlerfrei!)
m_mTable.dataSave(true);
m_mTable.setValueAt(lineNoCurrentRow, nextRow, lineCol);
log.fine("LineNo der Zeile " + nextRow + " auf " + lineNoCurrentRow + " gesetzt.");
log.fine("aktueller Wert von LineNo: " + m_mTable.getValueAt(nextRow, lineCol).toString());
setCurrentRow(from, false);
m_mTable.dataSave(true);
m_mTable.setValueAt(lineNoNextRow, from, lineCol);
log.fine("LineNo der Zeile " + from + " auf " + lineNoNextRow + " gesetzt.");
log.fine("aktueller Wert von LineNo: " + m_mTable.getValueAt(from, lineCol).toString());
setCurrentRow(nextRow, false);
m_mTable.dataSave(true);
m_mTable.sort(lineCol, true);
navigate(nextRow);
}
public void setCurrentRow(int row){
setCurrentRow(row, false);
}
} // MTab } // MTab