merge with 81f5fd4a0e55
This commit is contained in:
commit
9c7234f3d1
|
@ -19,8 +19,12 @@ package org.compiere.apps;
|
||||||
|
|
||||||
import static org.compiere.model.SystemIDs.PROCESS_AD_CHANGELOG_REDO;
|
import static org.compiere.model.SystemIDs.PROCESS_AD_CHANGELOG_REDO;
|
||||||
import static org.compiere.model.SystemIDs.PROCESS_AD_CHANGELOG_UNDO;
|
import static org.compiere.model.SystemIDs.PROCESS_AD_CHANGELOG_UNDO;
|
||||||
|
import static org.compiere.model.SystemIDs.REFERENCE_DOCUMENTACTION;
|
||||||
|
import static org.compiere.model.SystemIDs.REFERENCE_PAYMENTRULE;
|
||||||
|
import static org.compiere.model.SystemIDs.REFERENCE_POSTED;
|
||||||
|
|
||||||
import java.awt.BorderLayout;
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Cursor;
|
import java.awt.Cursor;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
|
@ -33,6 +37,9 @@ import java.awt.event.ActionListener;
|
||||||
import java.awt.event.InputEvent;
|
import java.awt.event.InputEvent;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -46,13 +53,16 @@ import java.util.logging.Level;
|
||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import javax.swing.BorderFactory;
|
import javax.swing.BorderFactory;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JDialog;
|
import javax.swing.JDialog;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
import javax.swing.JList;
|
import javax.swing.JList;
|
||||||
import javax.swing.JMenu;
|
import javax.swing.JMenu;
|
||||||
import javax.swing.JMenuBar;
|
import javax.swing.JMenuBar;
|
||||||
|
import javax.swing.JMenuItem;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.JPopupMenu;
|
||||||
import javax.swing.JScrollPane;
|
import javax.swing.JScrollPane;
|
||||||
import javax.swing.JTabbedPane;
|
import javax.swing.JTabbedPane;
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
|
@ -62,6 +72,8 @@ import javax.swing.ListSelectionModel;
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.event.ChangeEvent;
|
import javax.swing.event.ChangeEvent;
|
||||||
import javax.swing.event.ChangeListener;
|
import javax.swing.event.ChangeListener;
|
||||||
|
import javax.swing.event.PopupMenuEvent;
|
||||||
|
import javax.swing.event.PopupMenuListener;
|
||||||
|
|
||||||
import org.adempiere.util.Callback;
|
import org.adempiere.util.Callback;
|
||||||
import org.adempiere.util.IProcessUI;
|
import org.adempiere.util.IProcessUI;
|
||||||
|
@ -87,6 +99,7 @@ import org.compiere.model.GridWindow;
|
||||||
import org.compiere.model.GridWindowVO;
|
import org.compiere.model.GridWindowVO;
|
||||||
import org.compiere.model.GridWorkbench;
|
import org.compiere.model.GridWorkbench;
|
||||||
import org.compiere.model.Lookup;
|
import org.compiere.model.Lookup;
|
||||||
|
import org.compiere.model.MLookup;
|
||||||
import org.compiere.model.MLookupFactory;
|
import org.compiere.model.MLookupFactory;
|
||||||
import org.compiere.model.MProcess;
|
import org.compiere.model.MProcess;
|
||||||
import org.compiere.model.MQuery;
|
import org.compiere.model.MQuery;
|
||||||
|
@ -104,9 +117,11 @@ import org.compiere.swing.CPanel;
|
||||||
import org.compiere.util.CLogMgt;
|
import org.compiere.util.CLogMgt;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
|
import org.compiere.util.DisplayType;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Language;
|
import org.compiere.util.Language;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
|
import org.compiere.util.NamePair;
|
||||||
import org.compiere.util.Util;
|
import org.compiere.util.Util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -258,7 +273,7 @@ public final class APanel extends CPanel
|
||||||
// Prepare GC
|
// Prepare GC
|
||||||
this.removeAll();
|
this.removeAll();
|
||||||
} // dispose
|
} // dispose
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Layout.
|
* The Layout.
|
||||||
*/
|
*/
|
||||||
|
@ -308,7 +323,8 @@ public final class APanel extends CPanel
|
||||||
aNew, aCopy, aDelete, aPrint, aPrintPreview,
|
aNew, aCopy, aDelete, aPrint, aPrintPreview,
|
||||||
aExport = null,
|
aExport = null,
|
||||||
aRefresh, aHistory, aAttachment, aChat, aMulti, aFind,
|
aRefresh, aHistory, aAttachment, aChat, aMulti, aFind,
|
||||||
aWorkflow, aZoomAcross, aRequest, aWinSize, aArchive;
|
aWorkflow, aZoomAcross, aRequest, aWinSize, aArchive,
|
||||||
|
aProcess;
|
||||||
/** Ignore Button */
|
/** Ignore Button */
|
||||||
public AppsAction aIgnore;
|
public AppsAction aIgnore;
|
||||||
/** Save Button */
|
/** Save Button */
|
||||||
|
@ -482,6 +498,9 @@ public final class APanel extends CPanel
|
||||||
aOnline = addAction("Online", mHelp, null, false);
|
aOnline = addAction("Online", mHelp, null, false);
|
||||||
aMailSupport = addAction("EMailSupport", mHelp, null, false);
|
aMailSupport = addAction("EMailSupport", mHelp, null, false);
|
||||||
aAbout = addAction("About", mHelp, null, false);
|
aAbout = addAction("About", mHelp, null, false);
|
||||||
|
|
||||||
|
//
|
||||||
|
aProcess=addAction("Process",null,null,false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ToolBar
|
* ToolBar
|
||||||
|
@ -495,6 +514,7 @@ public final class APanel extends CPanel
|
||||||
toolBar.add(aDeleteSelection.getButton());
|
toolBar.add(aDeleteSelection.getButton());
|
||||||
toolBar.add(aSave.getButton());
|
toolBar.add(aSave.getButton());
|
||||||
toolBar.add(aSaveAndCreate.getButton());
|
toolBar.add(aSaveAndCreate.getButton());
|
||||||
|
toolBar.add(aProcess.getButton());
|
||||||
toolBar.addSeparator();
|
toolBar.addSeparator();
|
||||||
toolBar.add(aRefresh.getButton()); // F5
|
toolBar.add(aRefresh.getButton()); // F5
|
||||||
toolBar.add(aFind.getButton());
|
toolBar.add(aFind.getButton());
|
||||||
|
@ -1573,7 +1593,20 @@ public final class APanel extends CPanel
|
||||||
aRefresh.setEnabled(true);
|
aRefresh.setEnabled(true);
|
||||||
aAttachment.setEnabled(true);
|
aAttachment.setEnabled(true);
|
||||||
aChat.setEnabled(true);
|
aChat.setEnabled(true);
|
||||||
|
|
||||||
|
// IDEMPIERE-587 - Swing: Toolbar Button to start Process from button fields
|
||||||
|
// tbayen - 2013-01-22
|
||||||
|
GridField[] fields = m_curGC.getMTab().getFields();
|
||||||
|
boolean processEnabled=false;
|
||||||
|
for(GridField field:fields){
|
||||||
|
if (field.isToolbarButton() && field.isDisplayed()){
|
||||||
|
processEnabled=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
aProcess.setEnabled(processEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
m_curWinTab.requestFocusInWindow();
|
m_curWinTab.requestFocusInWindow();
|
||||||
setBusy(false, true);
|
setBusy(false, true);
|
||||||
|
@ -1725,6 +1758,8 @@ public final class APanel extends CPanel
|
||||||
cmd_find();
|
cmd_find();
|
||||||
else if (m_isPersonalLock && cmd.equals(aLock.getName()))
|
else if (m_isPersonalLock && cmd.equals(aLock.getName()))
|
||||||
cmd_lock();
|
cmd_lock();
|
||||||
|
else if (cmd.equals(aProcess.getName()))
|
||||||
|
cmd_process();
|
||||||
// View
|
// View
|
||||||
else if (cmd.equals(aAttachment.getName()))
|
else if (cmd.equals(aAttachment.getName()))
|
||||||
cmd_attachment();
|
cmd_attachment();
|
||||||
|
@ -2088,6 +2123,143 @@ public final class APanel extends CPanel
|
||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private long m_popup_closingtime=0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* opens a pulldown menu to start processes from "Button" type fields.
|
||||||
|
*/
|
||||||
|
// IDEMPIERE-587 - Swing: Toolbar Button to start Process from button fields
|
||||||
|
// tbayen - 2013-01-22
|
||||||
|
public void cmd_process() {
|
||||||
|
if(System.currentTimeMillis()-m_popup_closingtime<200)
|
||||||
|
return; // closed through the same click - user has clicked to close the menu
|
||||||
|
GridField[] fields = m_curGC.getMTab().getFields();
|
||||||
|
final ArrayList<GridField> processFields = new ArrayList<GridField>();
|
||||||
|
for (GridField field : fields) {
|
||||||
|
if (field.isToolbarButton() && field.isDisplayed()) {
|
||||||
|
processFields.add(field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JPopupMenu popup = new JPopupMenu();
|
||||||
|
popup.addPopupMenuListener(new PopupMenuListener() {
|
||||||
|
@Override
|
||||||
|
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
|
||||||
|
m_popup_closingtime=System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void popupMenuWillBecomeVisible(PopupMenuEvent e) {}
|
||||||
|
@Override public void popupMenuCanceled(PopupMenuEvent e) {}
|
||||||
|
});
|
||||||
|
|
||||||
|
for (GridField field : processFields) {
|
||||||
|
if (field.isDisplayed(true)) {
|
||||||
|
ImageIcon icon = Env.getImageIcon2("Process16");
|
||||||
|
String text = field.getHeader();
|
||||||
|
Color color = null;
|
||||||
|
// preparing data like lookup tables
|
||||||
|
// code to find the text and icons to display is shameless
|
||||||
|
// stolen from org.compiere.grid.ed.VButton
|
||||||
|
MLookup m_lookup = null;
|
||||||
|
// Record_ID for Zoom Buttons (see
|
||||||
|
// http://www.adempiere.com/Entering_Data_-_Fields_and_Buttons#Button)
|
||||||
|
if (field.getColumnName().endsWith("_ID")
|
||||||
|
&& !field.getColumnName().equals("Record_ID")) {
|
||||||
|
m_lookup = MLookupFactory.get(Env.getCtx(),
|
||||||
|
field.getWindowNo(), 0, field.getAD_Column_ID(),
|
||||||
|
DisplayType.Search);
|
||||||
|
} else if (field.getAD_Reference_Value_ID() != 0) {
|
||||||
|
// Assuming List
|
||||||
|
m_lookup = MLookupFactory.get(Env.getCtx(),
|
||||||
|
field.getWindowNo(), 0, field.getAD_Column_ID(),
|
||||||
|
DisplayType.List);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Special Buttons
|
||||||
|
int AD_Reference_ID = -1;
|
||||||
|
String columnName = field.getColumnName();
|
||||||
|
if (columnName.equals("PaymentRule")) {
|
||||||
|
AD_Reference_ID = REFERENCE_PAYMENTRULE;
|
||||||
|
color = Color.blue;
|
||||||
|
icon = Env.getImageIcon("Payment16.gif"); // 29*14
|
||||||
|
} else if (columnName.equals("DocAction")) {
|
||||||
|
AD_Reference_ID = REFERENCE_DOCUMENTACTION;
|
||||||
|
color = Color.blue;
|
||||||
|
icon = Env.getImageIcon("Process16.gif"); // 16*16
|
||||||
|
} else if (columnName.equals("CreateFrom")) {
|
||||||
|
icon = Env.getImageIcon("Copy16.gif"); // 16*16
|
||||||
|
} else if (columnName.equals("Record_ID")) {
|
||||||
|
icon = Env.getImageIcon("Zoom16.gif"); // 16*16
|
||||||
|
text = Msg.getMsg(Env.getCtx(), "ZoomDocument");
|
||||||
|
} else if (columnName.equals("Posted")) {
|
||||||
|
AD_Reference_ID = REFERENCE_POSTED;
|
||||||
|
color = Color.magenta;
|
||||||
|
icon = Env.getImageIcon("InfoAccount16.gif"); // 16*16
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, String> values = null;
|
||||||
|
if (AD_Reference_ID > 0) {
|
||||||
|
values = new HashMap<String, String>();
|
||||||
|
String SQL;
|
||||||
|
if (Env.isBaseLanguage(Env.getCtx(), "AD_Ref_List"))
|
||||||
|
SQL = "SELECT Value, Name FROM AD_Ref_List WHERE AD_Reference_ID=?";
|
||||||
|
else
|
||||||
|
SQL = "SELECT l.Value, t.Name FROM AD_Ref_List l, AD_Ref_List_Trl t "
|
||||||
|
+ "WHERE l.AD_Ref_List_ID=t.AD_Ref_List_ID"
|
||||||
|
+ " AND t.AD_Language='"
|
||||||
|
+ Env.getAD_Language(Env.getCtx())
|
||||||
|
+ "'"
|
||||||
|
+ " AND l.AD_Reference_ID=?";
|
||||||
|
try {
|
||||||
|
PreparedStatement pstmt = DB
|
||||||
|
.prepareStatement(SQL, null);
|
||||||
|
pstmt.setInt(1, AD_Reference_ID);
|
||||||
|
ResultSet rs = pstmt.executeQuery();
|
||||||
|
while (rs.next()) {
|
||||||
|
String value = rs.getString(1);
|
||||||
|
String name = rs.getString(2);
|
||||||
|
values.put(value, name);
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
pstmt.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.log(Level.SEVERE, SQL, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nothing to show or Record_ID
|
||||||
|
if (field.getValue() == null
|
||||||
|
|| field.getColumnName().equals("Record_ID"))
|
||||||
|
;
|
||||||
|
else if (values != null)
|
||||||
|
text = (String) values.get(field.getValue());
|
||||||
|
else if (m_lookup != null) {
|
||||||
|
NamePair pp = m_lookup.get(field.getValue());
|
||||||
|
if (pp != null)
|
||||||
|
text = pp.getName();
|
||||||
|
}
|
||||||
|
// Display it
|
||||||
|
} // setValue
|
||||||
|
|
||||||
|
JMenuItem item = new JMenuItem(text, icon);
|
||||||
|
item.setForeground(color);
|
||||||
|
item.setName(field.getColumnName());
|
||||||
|
popup.add(item);
|
||||||
|
item.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
JMenuItem menuItem = ((JMenuItem)e.getSource());
|
||||||
|
String columnName=menuItem.getName();
|
||||||
|
GridField callingField = m_curTab.getField(columnName);
|
||||||
|
//
|
||||||
|
setStatusLine(m_curTab.processCallout(callingField), true);
|
||||||
|
actionButtonCleanUp(menuItem.getName(),
|
||||||
|
callingField.getAD_Process_ID(), callingField.getHeader());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
popup.show(aProcess.getButton(), -1, aProcess.getButton().getHeight());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ignore
|
* Ignore
|
||||||
*/
|
*/
|
||||||
|
@ -2469,9 +2641,16 @@ public final class APanel extends CPanel
|
||||||
* Start Button Process
|
* Start Button Process
|
||||||
* @param vButton button
|
* @param vButton button
|
||||||
*/
|
*/
|
||||||
private void actionButton (VButton vButton)
|
private void actionButton (VButton vButton){
|
||||||
{
|
|
||||||
log.info(vButton.toString());
|
log.info(vButton.toString());
|
||||||
|
String title = vButton.getDescription();
|
||||||
|
if (title == null || title.length() == 0)
|
||||||
|
title = vButton.getName();
|
||||||
|
actionButtonCleanUp(vButton.getColumnName(), vButton.getProcess_ID(), title);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void actionButtonCleanUp(String columnName, int processID, String title)
|
||||||
|
{
|
||||||
|
|
||||||
if (m_curTab.hasChangedCurrentTabAndParents()) {
|
if (m_curTab.hasChangedCurrentTabAndParents()) {
|
||||||
String msg = CLogger.retrieveErrorString("Please ReQuery Window");
|
String msg = CLogger.retrieveErrorString("Please ReQuery Window");
|
||||||
|
@ -2481,7 +2660,7 @@ public final class APanel extends CPanel
|
||||||
|
|
||||||
boolean startWOasking = false;
|
boolean startWOasking = false;
|
||||||
// boolean batch = false;
|
// boolean batch = false;
|
||||||
String col = vButton.getColumnName();
|
String col = columnName;
|
||||||
|
|
||||||
// Zoom
|
// Zoom
|
||||||
if (col.equals("Record_ID"))
|
if (col.equals("Record_ID"))
|
||||||
|
@ -2512,7 +2691,7 @@ public final class APanel extends CPanel
|
||||||
record_ID = Env.getContextAsInt (m_ctx, m_curWindowNo, "AD_Language_ID");
|
record_ID = Env.getContextAsInt (m_ctx, m_curWindowNo, "AD_Language_ID");
|
||||||
// Record_ID - Change Log ID
|
// Record_ID - Change Log ID
|
||||||
if (record_ID == -1
|
if (record_ID == -1
|
||||||
&& (vButton.getProcess_ID() == PROCESS_AD_CHANGELOG_UNDO || vButton.getProcess_ID() == PROCESS_AD_CHANGELOG_REDO))
|
&& (processID == PROCESS_AD_CHANGELOG_UNDO || processID == PROCESS_AD_CHANGELOG_REDO))
|
||||||
{
|
{
|
||||||
Integer id = (Integer)m_curTab.getValue("AD_ChangeLog_ID");
|
Integer id = (Integer)m_curTab.getValue("AD_ChangeLog_ID");
|
||||||
record_ID = id.intValue();
|
record_ID = id.intValue();
|
||||||
|
@ -2529,7 +2708,7 @@ public final class APanel extends CPanel
|
||||||
if (col.equals("DocAction"))
|
if (col.equals("DocAction"))
|
||||||
{
|
{
|
||||||
isProcessMandatory = true;
|
isProcessMandatory = true;
|
||||||
VDocAction vda = new VDocAction(m_curWindowNo, m_curTab, vButton, record_ID);
|
VDocAction vda = new VDocAction(m_curWindowNo, m_curTab, null, record_ID);
|
||||||
// Something to select from?
|
// Something to select from?
|
||||||
if (vda.getNumberOfOptions() == 0)
|
if (vda.getNumberOfOptions() == 0)
|
||||||
{
|
{
|
||||||
|
@ -2552,7 +2731,7 @@ public final class APanel extends CPanel
|
||||||
else if (col.equals("CreateFrom") || col.equals("X_CreateFromBatch"))
|
else if (col.equals("CreateFrom") || col.equals("X_CreateFromBatch"))
|
||||||
{
|
{
|
||||||
// Run form only if the button has no process defined - teo_sarca [ 1974354 ]
|
// Run form only if the button has no process defined - teo_sarca [ 1974354 ]
|
||||||
if (vButton.getProcess_ID() <= 0)
|
if (processID <= 0)
|
||||||
{
|
{
|
||||||
ICreateFrom cf = VCreateFromFactory.create(m_curTab, col);
|
ICreateFrom cf = VCreateFromFactory.create(m_curTab, col);
|
||||||
if(cf != null)
|
if(cf != null)
|
||||||
|
@ -2628,8 +2807,8 @@ public final class APanel extends CPanel
|
||||||
* or invoke user form
|
* or invoke user form
|
||||||
*/
|
*/
|
||||||
|
|
||||||
log.config("Process_ID=" + vButton.getProcess_ID() + ", Record_ID=" + record_ID);
|
log.config("Process_ID=" + processID + ", Record_ID=" + record_ID);
|
||||||
if (vButton.getProcess_ID() == 0)
|
if (processID == 0)
|
||||||
{
|
{
|
||||||
if (isProcessMandatory)
|
if (isProcessMandatory)
|
||||||
{
|
{
|
||||||
|
@ -2643,7 +2822,7 @@ public final class APanel extends CPanel
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// call form
|
// call form
|
||||||
MProcess pr = new MProcess(m_ctx, vButton.getProcess_ID(), null);
|
MProcess pr = new MProcess(m_ctx, processID, null);
|
||||||
int form_ID = pr.getAD_Form_ID();
|
int form_ID = pr.getAD_Form_ID();
|
||||||
if (form_ID != 0 )
|
if (form_ID != 0 )
|
||||||
{
|
{
|
||||||
|
@ -2653,10 +2832,7 @@ public final class APanel extends CPanel
|
||||||
return;
|
return;
|
||||||
|
|
||||||
FormFrame ff = new FormFrame(getGraphicsConfiguration());
|
FormFrame ff = new FormFrame(getGraphicsConfiguration());
|
||||||
String title = vButton.getDescription();
|
ProcessInfo pi = new ProcessInfo (title, processID, table_ID, record_ID);
|
||||||
if (title == null || title.length() == 0)
|
|
||||||
title = vButton.getName();
|
|
||||||
ProcessInfo pi = new ProcessInfo (title, vButton.getProcess_ID(), table_ID, record_ID);
|
|
||||||
pi.setAD_User_ID (Env.getAD_User_ID(m_ctx));
|
pi.setAD_User_ID (Env.getAD_User_ID(m_ctx));
|
||||||
pi.setAD_Client_ID (Env.getAD_Client_ID(m_ctx));
|
pi.setAD_Client_ID (Env.getAD_Client_ID(m_ctx));
|
||||||
ff.setProcessInfo(pi);
|
ff.setProcessInfo(pi);
|
||||||
|
@ -2667,7 +2843,7 @@ public final class APanel extends CPanel
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ProcessModalDialog dialog = new ProcessModalDialog(m_ctx, AEnv.getWindow(m_curWindowNo), Env.getHeader(m_ctx, m_curWindowNo),
|
ProcessModalDialog dialog = new ProcessModalDialog(m_ctx, AEnv.getWindow(m_curWindowNo), Env.getHeader(m_ctx, m_curWindowNo),
|
||||||
this, m_curWindowNo, vButton.getProcess_ID(), table_ID,
|
this, m_curWindowNo, processID, table_ID,
|
||||||
record_ID, startWOasking);
|
record_ID, startWOasking);
|
||||||
if (dialog.isValidDialog())
|
if (dialog.isValidDialog())
|
||||||
{
|
{
|
||||||
|
|
|
@ -415,7 +415,12 @@ public class GridController extends CPanel
|
||||||
for (int i = 0; i < size; i++)
|
for (int i = 0; i < size; i++)
|
||||||
{
|
{
|
||||||
GridField mField = m_mTab.getField(i);
|
GridField mField = m_mTab.getField(i);
|
||||||
if (mField.isDisplayed())
|
if (mField.isDisplayed()
|
||||||
|
// IDEMPIERE-587 Swing: Toolbar Button to start Process from button fields
|
||||||
|
&& !(
|
||||||
|
mField.getDisplayType()==DisplayType.Button
|
||||||
|
&& mField.isToolbarButton())
|
||||||
|
)
|
||||||
{
|
{
|
||||||
VEditor vEditor = VEditorFactory.getEditor(m_mTab, mField, false);
|
VEditor vEditor = VEditorFactory.getEditor(m_mTab, mField, false);
|
||||||
if (vEditor == null)
|
if (vEditor == null)
|
||||||
|
|
Loading…
Reference in New Issue