diff --git a/client/src/org/compiere/grid/VCreateFrom.java b/client/src/org/compiere/grid/VCreateFrom.java
index 86ab087d8f..c399765fd4 100644
--- a/client/src/org/compiere/grid/VCreateFrom.java
+++ b/client/src/org/compiere/grid/VCreateFrom.java
@@ -37,6 +37,9 @@ import org.compiere.util.*;
*
* @author Jorg Janke
* @version $Id: VCreateFrom.java,v 1.4 2006/10/11 09:52:23 comdivision Exp $
+ *
+ * @author Teo Sarca, SC ARHIPAC SERVICE SRL
+ *
FR [ 1794050 ] Usability: VCreateFrom OK button always enabled
*/
public abstract class VCreateFrom extends CDialog
implements ActionListener, TableModelListener
@@ -134,7 +137,7 @@ public abstract class VCreateFrom extends CDialog
private CPanel southPanel = new CPanel();
private BorderLayout southLayout = new BorderLayout();
private ConfirmPanel confirmPanel = new ConfirmPanel(true);
- protected StatusBar statusBar = new StatusBar();
+ private StatusBar statusBar = new StatusBar();
protected MiniTable dataTable = new MiniTable();
protected JLabel locatorLabel = new JLabel();
protected VLocator locatorField = new VLocator();
@@ -514,5 +517,21 @@ public abstract class VCreateFrom extends CDialog
// Table UI
dataTable.autoSize();
} // loadOrder
+
+ /**
+ * Set form status line.
+ * Please note, will enable/disable the OK button if the selectedRowCount > 0.
+ * @param selectedRowCount number of selected lines
+ * @param text additional text
+ */
+ protected void setStatusLine(int selectedRowCount, String text) {
+ StringBuffer sb = new StringBuffer(String.valueOf(selectedRowCount));
+ if (text != null && text.trim().length() > 0) {
+ sb.append(" - ").append(text);
+ }
+ statusBar.setStatusLine(sb.toString());
+ //
+ confirmPanel.getOKButton().setEnabled(selectedRowCount > 0);
+ }
} // VCreateFrom
diff --git a/client/src/org/compiere/grid/VCreateFromInvoice.java b/client/src/org/compiere/grid/VCreateFromInvoice.java
index ba47bcfafa..578cf8df8a 100644
--- a/client/src/org/compiere/grid/VCreateFromInvoice.java
+++ b/client/src/org/compiere/grid/VCreateFromInvoice.java
@@ -266,7 +266,7 @@ public class VCreateFromInvoice extends VCreateFrom implements VetoableChangeLis
if (((Boolean)model.getValueAt(i, 0)).booleanValue())
count++;
}
- statusBar.setStatusLine(String.valueOf(count));
+ setStatusLine(count, null);
} // infoInvoice
/**
diff --git a/client/src/org/compiere/grid/VCreateFromShipment.java b/client/src/org/compiere/grid/VCreateFromShipment.java
index 123dd931aa..6bdaf3b796 100644
--- a/client/src/org/compiere/grid/VCreateFromShipment.java
+++ b/client/src/org/compiere/grid/VCreateFromShipment.java
@@ -479,7 +479,7 @@ public class VCreateFromShipment extends VCreateFrom implements VetoableChangeLi
if (((Boolean) model.getValueAt(i, 0)).booleanValue())
count++;
}
- statusBar.setStatusLine(String.valueOf(count));
+ setStatusLine(count, null);
} // info
/**
diff --git a/client/src/org/compiere/grid/VCreateFromStatement.java b/client/src/org/compiere/grid/VCreateFromStatement.java
index 1dcc25369b..8ed8c12cea 100644
--- a/client/src/org/compiere/grid/VCreateFromStatement.java
+++ b/client/src/org/compiere/grid/VCreateFromStatement.java
@@ -211,7 +211,7 @@ public class VCreateFromStatement extends VCreateFrom implements VetoableChangeL
count++;
}
}
- statusBar.setStatusLine(String.valueOf(count) + " - " + Msg.getMsg(Env.getCtx(), "Sum") + " " + format.format(total));
+ setStatusLine(count, Msg.getMsg(Env.getCtx(), "Sum") + " " + format.format(total));
} // infoStatement
/**