private boolean hasChange(DataGrid grid, HashMap<Guid, RelationOrder> relationOrders) { if (grid.get_BindingSource() == null || grid.getRowCount() != relationOrders.size()) { return true; } else { int openOrderSummaryColumn = -1; for (int column = 0; column < grid.getColumnModel().getColumnCount(); column++) { if (grid.getColumnModel() .getColumn(column) .getIdentifier() .equals(OutstandingOrderColKey.OpenOrderSummary)) { openOrderSummaryColumn = column; break; } } for (int row = 0; row < grid.getRowCount(); row++) { RelationOrder realtionOrder = (RelationOrder) grid.getObject(row); Guid openOrderId = realtionOrder.get_OpenOrderId(); RelationOrder realtionOrder2 = relationOrders.get(openOrderId); if (realtionOrder2 == null || realtionOrder2.getAvailableCloseLot().compareTo(realtionOrder.getAvailableCloseLot()) != 0 || (openOrderSummaryColumn > -1 && !realtionOrder2 .get_OpenOrderSummary() .equals(grid.getValueAt(row, openOrderSummaryColumn).toString()))) { return true; } } } return false; }