public void docActionStatusChanged(DocActionStatusEvent event) { // Evento: Impresión fiscal de documento. if (event.getDocActionStatus() == DocActionStatusEvent.ST_FISCAL_PRINT_DOCUMENT) { PO document = (PO) event.getSource(); // Se obtiene el nombre del tipo de documento. Integer docTypeID = (Integer) document.get_Value("C_DocTypeTarget_ID"); String docTypeName = ""; if (docTypeID != null && docTypeID > 0) { MDocType docType = MDocType.get(Env.getCtx(), docTypeID); docTypeName = " - " + docType.getPrintName(); } // Se crea la ventana que muestra el estado de la impresora fiscal. final AInfoFiscalPrinter infoFiscalPrinter = new AInfoFiscalPrinter( null, m_pi.getWindowNo(), Msg.parseTranslation(Env.getCtx(), "@PrintingFiscalDocument@" + docTypeName)); FiscalDocumentPrint fdp = (FiscalDocumentPrint) event.getParameter(0); // Se setea la ventana de información tanto como listener de estado de la // impresora como el estado de la impresión del documento. fdp.addDocumentPrintListener(infoFiscalPrinter); fdp.setPrinterEventListener(infoFiscalPrinter); // Se efectúa la referencia cruzada entre el Impresor y la // ventana de información. infoFiscalPrinter.setFiscalDocumentPrint(fdp); // Se muestra la ventana en el thread de Swing. SwingUtilities.invokeLater( new Runnable() { public void run() { infoFiscalPrinter.setVisible(true); } }); } }