added support to allow re-run of process and report.

This commit is contained in:
Heng Sin Low 2010-07-27 12:05:42 +08:00
parent ffcbd20aaa
commit 07d342ec1d
2 changed files with 441 additions and 430 deletions

View File

@ -173,7 +173,6 @@ public class ProcessDialog extends Window implements EventListener//, ASyncProce
private int m_AD_Process_ID; private int m_AD_Process_ID;
private String m_Name = null; private String m_Name = null;
private boolean m_IsReport = false;
private int[] m_ids = null; private int[] m_ids = null;
private StringBuffer m_messageText = new StringBuffer(); private StringBuffer m_messageText = new StringBuffer();
private String m_ShowHelp = null; // Determine if a Help Process Window is shown private String m_ShowHelp = null; // Determine if a Help Process Window is shown
@ -191,6 +190,7 @@ public class ProcessDialog extends Window implements EventListener//, ASyncProce
private ProcessInfo m_pi = null; private ProcessInfo m_pi = null;
private boolean m_isLocked = false; private boolean m_isLocked = false;
private boolean isParameterPage = true;
private String initialMessage; private String initialMessage;
private BusyDialog progressWindow; private BusyDialog progressWindow;
@ -244,7 +244,6 @@ public class ProcessDialog extends Window implements EventListener//, ASyncProce
if (rs.next()) if (rs.next())
{ {
m_Name = rs.getString(1); m_Name = rs.getString(1);
m_IsReport = rs.getString(4).equals("Y");
m_ShowHelp = rs.getString(5); m_ShowHelp = rs.getString(5);
// //
m_messageText.append("<b>"); m_messageText.append("<b>");
@ -321,10 +320,10 @@ public class ProcessDialog extends Window implements EventListener//, ASyncProce
if (component instanceof Button) { if (component instanceof Button) {
Button element = (Button)component; Button element = (Button)component;
if ("Ok".equalsIgnoreCase(element.getId())) { if ("Ok".equalsIgnoreCase(element.getId())) {
if (element.getLabel().length() > 0) if (isParameterPage)
this.startProcess(); this.startProcess();
else else
this.dispose(); restart();
} else if ("Cancel".equalsIgnoreCase(element.getId())) { } else if ("Cancel".equalsIgnoreCase(element.getId())) {
this.dispose(); this.dispose();
} }
@ -369,7 +368,10 @@ public class ProcessDialog extends Window implements EventListener//, ASyncProce
m_messageText.append(pi.getLogInfo(true)); m_messageText.append(pi.getLogInfo(true));
message.setContent(m_messageText.toString()); message.setContent(m_messageText.toString());
bOK.setLabel(""); bOK.setLabel(Msg.getMsg(Env.getCtx(), "Parameter"));
bOK.setImage("/images/Reset16.png");
isParameterPage = false;
m_ids = pi.getIDs(); m_ids = pi.getIDs();
//move message div to center to give more space to display potentially very long log info //move message div to center to give more space to display potentially very long log info
@ -383,15 +385,38 @@ public class ProcessDialog extends Window implements EventListener//, ASyncProce
Clients.response(new AuEcho(this, "onAfterProcess", null)); Clients.response(new AuEcho(this, "onAfterProcess", null));
} }
private void restart() {
m_messageText = new StringBuffer(initialMessage);
message.setContent(initialMessage);
north.setVisible(true);
messageDiv.detach();
messageDiv.setStyle(MESSAGE_DIV_STYLE);
north.appendChild(messageDiv);
center.appendChild(centerPanel);
isParameterPage = true;
bOK.setLabel(Msg.getMsg(Env.getCtx(), "Start"));
bOK.setImage("/images/Ok16.png");
//recreate process info
m_pi = new WProcessInfo(m_Name, m_AD_Process_ID);
m_pi.setAD_User_ID (Env.getAD_User_ID(Env.getCtx()));
m_pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx()));
parameterPanel.setProcessInfo(m_pi);
m_ids = null;
invalidate();
}
public void onAfterProcess() public void onAfterProcess()
{ {
// //
afterProcessTask(); afterProcessTask();
// Close automatically
if (m_IsReport && !m_pi.isError())
this.dispose();
// If the process is a silent one and no errors occured, close the dialog // If the process is a silent one and no errors occured, close the dialog
if(m_ShowHelp != null && m_ShowHelp.equals("S")) if(m_ShowHelp != null && m_ShowHelp.equals("S"))
this.dispose(); this.dispose();

View File

@ -14,8 +14,6 @@
package org.adempiere.webui.apps; package org.adempiere.webui.apps;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
@ -51,36 +49,39 @@ import org.zkoss.zul.Hbox;
import org.zkoss.zul.Label; import org.zkoss.zul.Label;
/** /**
* Process Parameter Panel, based on existing ProcessParameter dialog. * Process Parameter Panel, based on existing ProcessParameter dialog. -
* - Embedded in ProcessDialog * Embedded in ProcessDialog - checks, if parameters exist and inquires and
* - checks, if parameters exist and inquires and saves them * saves them
* *
* @author Low Heng Sin * @author Low Heng Sin
* @version 2006-12-01 * @version 2006-12-01
*/ */
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class ProcessParameterPanel extends Panel public class ProcessParameterPanel extends Panel implements
implements ValueChangeListener, IProcessParameter ValueChangeListener, IProcessParameter {
{
private String width; private String width;
/** /**
* Dynamic generated Parameter panel. * Dynamic generated Parameter panel.
* @param WindowNo window *
* @param pi process info * @param WindowNo
* window
* @param pi
* process info
*/ */
public ProcessParameterPanel(int WindowNo, ProcessInfo pi) public ProcessParameterPanel(int WindowNo, ProcessInfo pi) {
{
this(WindowNo, pi, "100%"); this(WindowNo, pi, "100%");
} // ProcessParameterPanel } // ProcessParameterPanel
/** /**
* Dynamic generated Parameter panel. * Dynamic generated Parameter panel.
* @param WindowNo window *
* @param pi process info * @param WindowNo
* window
* @param pi
* process info
*/ */
public ProcessParameterPanel(int WindowNo, ProcessInfo pi, String width) public ProcessParameterPanel(int WindowNo, ProcessInfo pi, String width) {
{
// //
m_WindowNo = WindowNo; m_WindowNo = WindowNo;
m_processInfo = pi; m_processInfo = pi;
@ -94,7 +95,7 @@ implements ValueChangeListener, IProcessParameter
centerPanel.setInnerWidth(width); centerPanel.setInnerWidth(width);
this.appendChild(centerPanel); this.appendChild(centerPanel);
//setup columns // setup columns
Columns columns = new Columns(); Columns columns = new Columns();
centerPanel.appendChild(columns); centerPanel.appendChild(columns);
Column col = new Column(); Column col = new Column();
@ -111,11 +112,13 @@ implements ValueChangeListener, IProcessParameter
private int m_WindowNo; private int m_WindowNo;
private ProcessInfo m_processInfo; private ProcessInfo m_processInfo;
/** Logger */ /** Logger */
private static CLogger log = CLogger.getCLogger(ProcessParameterPanel.class); private static CLogger log = CLogger
.getCLogger(ProcessParameterPanel.class);
// //
private ArrayList<WEditor> m_wEditors = new ArrayList<WEditor>(); private ArrayList<WEditor> m_wEditors = new ArrayList<WEditor>();
private ArrayList<WEditor> m_wEditors2 = new ArrayList<WEditor>(); // for ranges private ArrayList<WEditor> m_wEditors2 = new ArrayList<WEditor>(); // for
// ranges
private ArrayList<GridField> m_mFields = new ArrayList<GridField>(); private ArrayList<GridField> m_mFields = new ArrayList<GridField>();
private ArrayList<GridField> m_mFields2 = new ArrayList<GridField>(); private ArrayList<GridField> m_mFields2 = new ArrayList<GridField>();
private ArrayList<Label> m_separators = new ArrayList<Label>(); private ArrayList<Label> m_separators = new ArrayList<Label>();
@ -125,8 +128,7 @@ implements ValueChangeListener, IProcessParameter
/** /**
* Dispose * Dispose
*/ */
public void dispose() public void dispose() {
{
m_wEditors.clear(); m_wEditors.clear();
m_wEditors2.clear(); m_wEditors2.clear();
m_mFields.clear(); m_mFields.clear();
@ -136,23 +138,23 @@ implements ValueChangeListener, IProcessParameter
/** /**
* Read Fields to display * Read Fields to display
*
* @return true if loaded OK * @return true if loaded OK
*/ */
public boolean init() public boolean init() {
{
log.config(""); log.config("");
// ASP // ASP
MClient client = MClient.get(Env.getCtx()); MClient client = MClient.get(Env.getCtx());
String ASPFilter = ""; String ASPFilter = "";
if (client.isUseASP()) if (client.isUseASP())
ASPFilter = ASPFilter = " AND ( p.AD_Process_Para_ID IN ( "
" AND ( p.AD_Process_Para_ID IN ( "
// Just ASP subscribed process parameters for client " // Just ASP subscribed process parameters for client "
+ " SELECT pp.AD_Process_Para_ID " + " SELECT pp.AD_Process_Para_ID "
+ " FROM ASP_Process_Para pp, ASP_Process p, ASP_Level l, ASP_ClientLevel cl " + " FROM ASP_Process_Para pp, ASP_Process p, ASP_Level l, ASP_ClientLevel cl "
+ " WHERE p.ASP_Level_ID = l.ASP_Level_ID " + " WHERE p.ASP_Level_ID = l.ASP_Level_ID "
+ " AND cl.AD_Client_ID = " + client.getAD_Client_ID() + " AND cl.AD_Client_ID = "
+ client.getAD_Client_ID()
+ " AND cl.ASP_Level_ID = l.ASP_Level_ID " + " AND cl.ASP_Level_ID = l.ASP_Level_ID "
+ " AND pp.ASP_Process_ID = p.ASP_Process_ID " + " AND pp.ASP_Process_ID = p.ASP_Process_ID "
+ " AND pp.IsActive = 'Y' " + " AND pp.IsActive = 'Y' "
@ -164,7 +166,8 @@ implements ValueChangeListener, IProcessParameter
// + show ASP exceptions for client // + show ASP exceptions for client
+ " SELECT AD_Process_Para_ID " + " SELECT AD_Process_Para_ID "
+ " FROM ASP_ClientException ce " + " FROM ASP_ClientException ce "
+ " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID() + " WHERE ce.AD_Client_ID = "
+ client.getAD_Client_ID()
+ " AND ce.IsActive = 'Y' " + " AND ce.IsActive = 'Y' "
+ " AND ce.AD_Process_Para_ID IS NOT NULL " + " AND ce.AD_Process_Para_ID IS NOT NULL "
+ " AND ce.AD_Tab_ID IS NULL " + " AND ce.AD_Tab_ID IS NULL "
@ -175,7 +178,8 @@ implements ValueChangeListener, IProcessParameter
// minus hide ASP exceptions for client // minus hide ASP exceptions for client
+ " SELECT AD_Process_Para_ID " + " SELECT AD_Process_Para_ID "
+ " FROM ASP_ClientException ce " + " FROM ASP_ClientException ce "
+ " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID() + " WHERE ce.AD_Client_ID = "
+ client.getAD_Client_ID()
+ " AND ce.IsActive = 'Y' " + " AND ce.IsActive = 'Y' "
+ " AND ce.AD_Process_Para_ID IS NOT NULL " + " AND ce.AD_Process_Para_ID IS NOT NULL "
+ " AND ce.AD_Tab_ID IS NULL " + " AND ce.AD_Tab_ID IS NULL "
@ -193,8 +197,7 @@ implements ValueChangeListener, IProcessParameter
+ "FROM AD_Process_Para p" + "FROM AD_Process_Para p"
+ " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) " + " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) "
+ "WHERE p.AD_Process_ID=?" // 1 + "WHERE p.AD_Process_ID=?" // 1
+ " AND p.IsActive='Y' " + " AND p.IsActive='Y' " + ASPFilter + " ORDER BY SeqNo";
+ ASPFilter + " ORDER BY SeqNo";
else else
sql = "SELECT t.Name, t.Description, t.Help, " sql = "SELECT t.Name, t.Description, t.Help, "
+ "p.AD_Reference_ID, p.AD_Process_Para_ID, " + "p.AD_Reference_ID, p.AD_Process_Para_ID, "
@ -206,28 +209,24 @@ implements ValueChangeListener, IProcessParameter
+ " INNER JOIN AD_Process_Para_Trl t ON (p.AD_Process_Para_ID=t.AD_Process_Para_ID)" + " INNER JOIN AD_Process_Para_Trl t ON (p.AD_Process_Para_ID=t.AD_Process_Para_ID)"
+ " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) " + " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) "
+ "WHERE p.AD_Process_ID=?" // 1 + "WHERE p.AD_Process_ID=?" // 1
+ " AND t.AD_Language='" + Env.getAD_Language(Env.getCtx()) + "'" + " AND t.AD_Language='" + Env.getAD_Language(Env.getCtx())
+ " AND p.IsActive='Y' " + "'" + " AND p.IsActive='Y' " + ASPFilter
+ ASPFilter + " ORDER BY SeqNo"; + " ORDER BY SeqNo";
// Create Fields // Create Fields
boolean hasFields = false; boolean hasFields = false;
Rows rows = new Rows(); Rows rows = new Rows();
try try {
{
PreparedStatement pstmt = DB.prepareStatement(sql, null); PreparedStatement pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, m_processInfo.getAD_Process_ID()); pstmt.setInt(1, m_processInfo.getAD_Process_ID());
ResultSet rs = pstmt.executeQuery(); ResultSet rs = pstmt.executeQuery();
while (rs.next()) while (rs.next()) {
{
hasFields = true; hasFields = true;
createField (rs, rows); createField(rs, rows);
} }
rs.close(); rs.close();
pstmt.close(); pstmt.close();
} } catch (SQLException e) {
catch(SQLException e)
{
log.log(Level.SEVERE, sql, e); log.log(Level.SEVERE, sql, e);
} }
@ -238,33 +237,30 @@ implements ValueChangeListener, IProcessParameter
log.log(Level.SEVERE, "View & Model vector size is different"); log.log(Level.SEVERE, "View & Model vector size is different");
// clean up // clean up
if (hasFields) if (hasFields) {
{
centerPanel.appendChild(rows); centerPanel.appendChild(rows);
dynamicDisplay(); dynamicDisplay();
} } else
else
dispose(); dispose();
return hasFields; return hasFields;
} // initDialog } // initDialog
/** /**
* Create Field. * Create Field. - creates Fields and adds it to m_mFields list - creates
* - creates Fields and adds it to m_mFields list * Editor and adds it to m_vEditors list Handeles Ranges by adding
* - creates Editor and adds it to m_vEditors list * additional mField/vEditor.
* Handeles Ranges by adding additional mField/vEditor.
* <p> * <p>
* mFields are used for default value and mandatory checking; * mFields are used for default value and mandatory checking; vEditors are
* vEditors are used to retrieve the value (no data binding) * used to retrieve the value (no data binding)
* *
* @param rs result set * @param rs
* result set
*/ */
private void createField (ResultSet rs, Rows rows) private void createField(ResultSet rs, Rows rows) {
{
// Create Field // Create Field
GridFieldVO voF = GridFieldVO.createParameter(Env.getCtx(), m_WindowNo, rs); GridFieldVO voF = GridFieldVO.createParameter(Env.getCtx(), m_WindowNo,
GridField mField = new GridField (voF); rs);
GridField mField = new GridField(voF);
m_mFields.add(mField); // add to Fields m_mFields.add(mField); // add to Fields
Row row = new Row(); Row row = new Row();
@ -277,119 +273,106 @@ implements ValueChangeListener, IProcessParameter
mField.addPropertyChangeListener(editor); mField.addPropertyChangeListener(editor);
// Set Default // Set Default
Object defaultObject = mField.getDefault(); Object defaultObject = mField.getDefault();
mField.setValue (defaultObject, true); mField.setValue(defaultObject, true);
//streach component to fill grid cell // streach component to fill grid cell
editor.fillHorizontal(); editor.fillHorizontal();
//setup editor context menu // setup editor context menu
WEditorPopupMenu popupMenu = editor.getPopupMenu(); WEditorPopupMenu popupMenu = editor.getPopupMenu();
if (popupMenu != null) if (popupMenu != null) {
{ popupMenu.addMenuListener((ContextMenuListener) editor);
popupMenu.addMenuListener((ContextMenuListener)editor);
this.appendChild(popupMenu); this.appendChild(popupMenu);
} }
// //
m_wEditors.add (editor); // add to Editors m_wEditors.add(editor); // add to Editors
row.appendChild(editor.getLabel().rightAlign()); row.appendChild(editor.getLabel().rightAlign());
// //
if (voF.isRange) if (voF.isRange) {
{
Hbox box = new Hbox(); Hbox box = new Hbox();
box.appendChild(editor.getComponent()); box.appendChild(editor.getComponent());
// //
GridFieldVO voF2 = GridFieldVO.createParameter(voF); GridFieldVO voF2 = GridFieldVO.createParameter(voF);
GridField mField2 = new GridField (voF2); GridField mField2 = new GridField(voF2);
m_mFields2.add (mField2); m_mFields2.add(mField2);
// The Editor // The Editor
WEditor editor2 = WebEditorFactory.getEditor(mField2, false); WEditor editor2 = WebEditorFactory.getEditor(mField2, false);
// New Field value to be updated to editor // New Field value to be updated to editor
mField2.addPropertyChangeListener(editor2); mField2.addPropertyChangeListener(editor2);
editor2.dynamicDisplay(); editor2.dynamicDisplay();
editor2.fillHorizontal(); editor2.fillHorizontal();
//setup editor context menu // setup editor context menu
popupMenu = editor2.getPopupMenu(); popupMenu = editor2.getPopupMenu();
if (popupMenu != null) if (popupMenu != null) {
{ popupMenu.addMenuListener((ContextMenuListener) editor2);
popupMenu.addMenuListener((ContextMenuListener)editor2);
this.appendChild(popupMenu); this.appendChild(popupMenu);
} }
// Set Default // Set Default
Object defaultObject2 = mField2.getDefault(); Object defaultObject2 = mField2.getDefault();
mField2.setValue (defaultObject2, true); mField2.setValue(defaultObject2, true);
// //
m_wEditors2.add (editor2); m_wEditors2.add(editor2);
Label separator = new Label(" - "); Label separator = new Label(" - ");
m_separators.add(separator); m_separators.add(separator);
box.appendChild(separator); box.appendChild(separator);
box.appendChild(editor2.getComponent()); box.appendChild(editor2.getComponent());
row.appendChild(box); row.appendChild(box);
} } else {
else
{
row.appendChild(editor.getComponent()); row.appendChild(editor.getComponent());
m_mFields2.add (null); m_mFields2.add(null);
m_wEditors2.add (null); m_wEditors2.add(null);
m_separators.add(null); m_separators.add(null);
} }
rows.appendChild(row); rows.appendChild(row);
} // createField } // createField
/** /**
* Save Parameter values * Save Parameter values
*
* @return true if parameters saved * @return true if parameters saved
*/ */
public boolean saveParameters() public boolean saveParameters() {
{
log.config(""); log.config("");
/** /**
* Mandatory fields * Mandatory fields see - MTable.getMandatory
* see - MTable.getMandatory
*/ */
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
int size = m_mFields.size(); int size = m_mFields.size();
for (int i = 0; i < size; i++) for (int i = 0; i < size; i++) {
{ GridField field = (GridField) m_mFields.get(i);
GridField field = (GridField)m_mFields.get(i);
if (field.isMandatory(true)) // check context if (field.isMandatory(true)) // check context
{ {
WEditor wEditor = (WEditor)m_wEditors.get(i); WEditor wEditor = (WEditor) m_wEditors.get(i);
Object data = wEditor.getValue(); Object data = wEditor.getValue();
if (data == null || data.toString().length() == 0) if (data == null || data.toString().length() == 0) {
{ field.setInserting(true); // set editable (i.e. updateable)
field.setInserting (true); // set editable (i.e. updateable) otherwise deadlock // otherwise deadlock
field.setError(true); field.setError(true);
if (sb.length() > 0) if (sb.length() > 0)
sb.append(", "); sb.append(", ");
sb.append(field.getHeader()); sb.append(field.getHeader());
} } else
else
field.setError(false); field.setError(false);
// Check for Range // Check for Range
WEditor wEditor2 = (WEditor)m_wEditors2.get(i); WEditor wEditor2 = (WEditor) m_wEditors2.get(i);
if (wEditor2 != null) if (wEditor2 != null) {
{
Object data2 = wEditor.getValue(); Object data2 = wEditor.getValue();
GridField field2 = (GridField)m_mFields2.get(i); GridField field2 = (GridField) m_mFields2.get(i);
if (data2 == null || data2.toString().length() == 0) if (data2 == null || data2.toString().length() == 0) {
{ field.setInserting(true); // set editable (i.e.
field.setInserting (true); // set editable (i.e. updateable) otherwise deadlock // updateable) otherwise
// deadlock
field2.setError(true); field2.setError(true);
if (sb.length() > 0) if (sb.length() > 0)
sb.append(", "); sb.append(", ");
sb.append(field.getHeader()); sb.append(field.getHeader());
} } else
else
field2.setError(false); field2.setError(false);
} // range field } // range field
} // mandatory } // mandatory
} // field loop } // field loop
if (sb.length() != 0) {
if (sb.length() != 0)
{
FDialog.error(m_WindowNo, this, "FillMandatory", sb.toString()); FDialog.error(m_WindowNo, this, "FillMandatory", sb.toString());
return false; return false;
} }
@ -397,70 +380,64 @@ implements ValueChangeListener, IProcessParameter
/********************************************************************** /**********************************************************************
* Save Now * Save Now
*/ */
for (int i = 0; i < m_mFields.size(); i++) for (int i = 0; i < m_mFields.size(); i++) {
{
// Get Values // Get Values
WEditor editor = (WEditor)m_wEditors.get(i); WEditor editor = (WEditor) m_wEditors.get(i);
WEditor editor2 = (WEditor)m_wEditors2.get(i); WEditor editor2 = (WEditor) m_wEditors2.get(i);
Object result = editor.getValue(); Object result = editor.getValue();
Object result2 = null; Object result2 = null;
if (editor2 != null) if (editor2 != null)
result2 = editor2.getValue(); result2 = editor2.getValue();
// Create Parameter // Create Parameter
MPInstancePara para = new MPInstancePara (Env.getCtx(), m_processInfo.getAD_PInstance_ID(), i); MPInstancePara para = new MPInstancePara(Env.getCtx(),
GridField mField = (GridField)m_mFields.get(i); m_processInfo.getAD_PInstance_ID(), i);
GridField mField = (GridField) m_mFields.get(i);
para.setParameterName(mField.getColumnName()); para.setParameterName(mField.getColumnName());
// Date // Date
if (result instanceof Timestamp || result2 instanceof Timestamp) if (result instanceof Timestamp || result2 instanceof Timestamp) {
{ para.setP_Date((Timestamp) result);
para.setP_Date((Timestamp)result);
if (editor2 != null && result2 != null) if (editor2 != null && result2 != null)
para.setP_Date_To((Timestamp)result2); para.setP_Date_To((Timestamp) result2);
} }
// Integer // Integer
else if (result instanceof Integer || result2 instanceof Integer) else if (result instanceof Integer || result2 instanceof Integer) {
{ if (result != null) {
if (result != null) Integer ii = (Integer) result;
{
Integer ii = (Integer)result;
para.setP_Number(ii.intValue()); para.setP_Number(ii.intValue());
} }
if (editor2 != null && result2 != null) if (editor2 != null && result2 != null) {
{ Integer ii = (Integer) result2;
Integer ii = (Integer)result2;
para.setP_Number_To(ii.intValue()); para.setP_Number_To(ii.intValue());
} }
} }
// BigDecimal // BigDecimal
else if (result instanceof BigDecimal || result2 instanceof BigDecimal) else if (result instanceof BigDecimal
{ || result2 instanceof BigDecimal) {
para.setP_Number ((BigDecimal)result); para.setP_Number((BigDecimal) result);
if (editor2 != null && result2 != null) if (editor2 != null && result2 != null)
para.setP_Number_To ((BigDecimal)result2); para.setP_Number_To((BigDecimal) result2);
} }
// Boolean // Boolean
else if (result instanceof Boolean) else if (result instanceof Boolean) {
{ Boolean bb = (Boolean) result;
Boolean bb = (Boolean)result;
String value = bb.booleanValue() ? "Y" : "N"; String value = bb.booleanValue() ? "Y" : "N";
para.setP_String (value); para.setP_String(value);
// to does not make sense // to does not make sense
} }
// String // String
else else {
{
if (result != null) if (result != null)
para.setP_String (result.toString()); para.setP_String(result.toString());
if (editor2 != null && result2 != null) if (editor2 != null && result2 != null)
para.setP_String_To (result2.toString()); para.setP_String_To(result2.toString());
} }
// Info // Info
para.setInfo (editor.getDisplay()); para.setInfo(editor.getDisplay());
if (editor2 != null) if (editor2 != null)
para.setInfo_To (editor2.getDisplay()); para.setInfo_To(editor2.getDisplay());
// //
para.save(); para.save();
log.fine(para.toString()); log.fine(para.toString());
@ -471,12 +448,12 @@ implements ValueChangeListener, IProcessParameter
/** /**
* Editor Listener * Editor Listener
* @param evt ValueChangeEvent *
* @param evt
* ValueChangeEvent
*/ */
public void valueChange(ValueChangeEvent evt) public void valueChange(ValueChangeEvent evt) {
{
processNewValue(evt.getNewValue(), evt.getPropertyName()); processNewValue(evt.getNewValue(), evt.getPropertyName());
} }
@ -487,11 +464,11 @@ implements ValueChangeListener, IProcessParameter
if (value instanceof String) if (value instanceof String)
Env.setContext(Env.getCtx(), m_WindowNo, name, (String) value); Env.setContext(Env.getCtx(), m_WindowNo, name, (String) value);
else if (value instanceof Integer) else if (value instanceof Integer)
Env.setContext(Env.getCtx(), m_WindowNo, name, ((Integer) value) Env.setContext(Env.getCtx(), m_WindowNo, name,
.intValue()); ((Integer) value).intValue());
else if (value instanceof Boolean) else if (value instanceof Boolean)
Env.setContext(Env.getCtx(), m_WindowNo, name, ((Boolean) value) Env.setContext(Env.getCtx(), m_WindowNo, name,
.booleanValue()); ((Boolean) value).booleanValue());
else if (value instanceof Timestamp) else if (value instanceof Timestamp)
Env.setContext(Env.getCtx(), m_WindowNo, name, (Timestamp) value); Env.setContext(Env.getCtx(), m_WindowNo, name, (Timestamp) value);
else else
@ -501,7 +478,7 @@ implements ValueChangeListener, IProcessParameter
} }
private void dynamicDisplay() { private void dynamicDisplay() {
for(int i = 0; i < m_wEditors.size(); i++) { for (int i = 0; i < m_wEditors.size(); i++) {
WEditor editor = m_wEditors.get(i); WEditor editor = m_wEditors.get(i);
GridField mField = editor.getGridField(); GridField mField = editor.getGridField();
if (mField.isDisplayed(true)) { if (mField.isDisplayed(true)) {
@ -512,7 +489,8 @@ implements ValueChangeListener, IProcessParameter
m_wEditors2.get(i).setVisible(true); m_wEditors2.get(i).setVisible(true);
} }
} }
boolean rw = mField.isEditablePara(true); // r/w - check if field is Editable boolean rw = mField.isEditablePara(true); // r/w - check if
// field is Editable
editor.setReadWrite(rw); editor.setReadWrite(rw);
editor.dynamicDisplay(); editor.dynamicDisplay();
if (mField.getVO().isRange) { if (mField.getVO().isRange) {
@ -531,6 +509,7 @@ implements ValueChangeListener, IProcessParameter
/** /**
* Restore window context. * Restore window context.
*
* @author teo_sarca [ 1699826 ] * @author teo_sarca [ 1699826 ]
* @see org.compiere.model.GridField#restoreValue() * @see org.compiere.model.GridField#restoreValue()
*/ */
@ -544,5 +523,12 @@ implements ValueChangeListener, IProcessParameter
f.restoreValue(); f.restoreValue();
} }
} }
} // ProcessParameterPanel
/**
* @param processInfo
*/
public void setProcessInfo(ProcessInfo processInfo) {
m_processInfo = processInfo;
}
} // ProcessParameterPanel