UOCL-285: payment screen hanging (#41)

This commit is contained in:
hugh-unicenta
2025-01-05 16:30:07 +00:00
committed by GitHub
parent 3b6829e181
commit a038cc2282
@@ -19,6 +19,7 @@
package com.unicenta.pos.payment;
import com.unicenta.basic.BasicException;
import com.unicenta.format.Formats;
import com.unicenta.pos.customers.CustomerInfoExt;
import com.unicenta.pos.customers.DataLogicCustomers;
@@ -26,19 +27,22 @@ import com.unicenta.pos.forms.AppLocal;
import com.unicenta.pos.forms.AppView;
import com.unicenta.pos.forms.DataLogicSales;
import com.unicenta.pos.forms.DataLogicSystem;
import lombok.extern.slf4j.Slf4j;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.JFrame;
import javax.swing.SwingWorker;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.swing.*;
/**
*
* @author adrianromero
*/
@Slf4j
public abstract class JPaymentSelect extends javax.swing.JDialog
implements JPaymentNotifier {
@@ -720,27 +724,37 @@ public abstract class JPaymentSelect extends javax.swing.JDialog
private void m_jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_m_jButtonOKActionPerformed
SwingWorker worker = new SwingWorker() {
@Override
protected Object doInBackground() throws Exception {
m_jButtonOK.setEnabled(false);
setReturnPayment(((JPaymentInterface) m_jTabPayment.getSelectedComponent()).executePayment());
return null;
}
ExecutorService customExecutor = Executors.newCachedThreadPool();
@Override
public void done() {
m_jButtonOK.setEnabled(true);
m_jButtonCancel.setEnabled(true);
if (returnPayment != null) {
m_aPaymentInfo.add(returnPayment);
accepted = true;
dispose();
try {
SwingWorker worker = new SwingWorker() {
@Override
protected Object doInBackground() {
m_jButtonOK.setEnabled(false);
setReturnPayment(((JPaymentInterface) m_jTabPayment.getSelectedComponent()).executePayment());
return null;
}
}
};
worker.execute();
@Override
public void done() {
m_jButtonOK.setEnabled(true);
m_jButtonCancel.setEnabled(true);
if (returnPayment != null) {
m_aPaymentInfo.add(returnPayment);
accepted = true;
dispose();
}
}
};
//worker.execute();
customExecutor.execute(worker);
}
catch (Exception ex) {
System.out.println(ex.getMessage());
}
}//GEN-LAST:event_m_jButtonOKActionPerformed
private void m_jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_m_jButtonCancelActionPerformed