package com.siemens.client.aui.panels; import com.siemens.client.aui.main.AUILog; import com.siemens.client.aui.main.AUIStarter; import com.siemens.client.aui.panels.dett.AbstractDettRecordPanel; import com.siemens.client.aui.panels.dett.DettRecordPanelFactory; import com.siemens.client.aui.panels.util.AUIPanelUtilities; import com.siemens.client.aui.panels.util.AUIResultTable; import com.siemens.client.aui.panels.util.ResultTableFactory; import com.siemens.client.aui.sql.AUIResultSet; import com.siemens.client.aui.print.PDFCreator; import com.siemens.client.aui.print.CSVCreator; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; /** * Pannello contenente l'applicazione di reportistica AUI. Quindi la parte di ricerca * dati e visualizzazione, ad esclusione del menu di navigazione */ public class AUIAppPanel extends JPanel { private PannelloRiepilogo pannelloRiepilogo; private PannelloRicerca pannelloRicerca; private AUIResultTable tabellaRisultati; private JScrollPane pannelloTabella; private PannelloStampaSalva panStampaSalva; private AbstractDettRecordPanel panDett; /** Creates a new instance of ApplicationPanel */ public AUIAppPanel() { /* * Instanziazione variabili di classe */ pannelloRicerca = new PannelloRicerca(this); tabellaRisultati = ResultTableFactory.getResultTable(AUIResultTable.AUI_COMMON_RESULT, this); pannelloTabella = new JScrollPane(tabellaRisultati); pannelloTabella.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); pannelloRiepilogo = new PannelloRiepilogo(); panStampaSalva = new PannelloStampaSalva(this); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); // Aggiunta componenti setVistaRicerca(); } private void setVistaRicerca() { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { removeAll(); add(pannelloRicerca); add(pannelloTabella); add(panStampaSalva); add(pannelloRiepilogo); revalidate(); repaint(); } }); } public void setVistaDettaglioRecord(int codRecordAUI, int id_progr) { panDett = DettRecordPanelFactory.getDettRecordPanelInstance(codRecordAUI, id_progr); if (panDett == null) { JOptionPane.showMessageDialog(this, "Richiesta di dettaglio impossibile", "Attenzione", JOptionPane.WARNING_MESSAGE); return; } java.awt.EventQueue.invokeLater(new Runnable() { public void run() { removeAll(); JPanel panTitolo = new JPanel(new FlowLayout(FlowLayout.CENTER)); panTitolo.add(new JLabel("Visualizzazione di dettaglio: "+panDett.getNomeElemento())); panTitolo.setBackground(AUIPanelUtilities.getColoreBluChiaro()); panTitolo.setMaximumSize(new Dimension(AUIPanelUtilities.MAXIMUM_WIDTH, 30)); add(panTitolo); JScrollPane scrollPane = new JScrollPane(panDett); add(scrollPane); JPanel panBottoni = new JPanel(); panBottoni.setLayout(new FlowLayout(FlowLayout.CENTER)); panBottoni.setBackground(AUIPanelUtilities.getColoreBluChiaro()); JButton indietro = new JButton("Indietro"); indietro.setPreferredSize(new Dimension(90,19)); indietro.setBackground(AUIPanelUtilities.getColoreBottoni()); indietro.setFont(AUIPanelUtilities.getFontBottoni()); indietro.setForeground(Color.WHITE); indietro.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setVistaRicerca(); } }); panBottoni.add(indietro); JButton salva = new JButton("Salva"); salva.setPreferredSize(new Dimension(90,19)); salva.setBackground(AUIPanelUtilities.getColoreBottoni()); salva.setFont(AUIPanelUtilities.getFontBottoni()); salva.setForeground(Color.WHITE); salva.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { avviaSalvataggioDettaglio(); } }); panBottoni.add(salva); JButton stampa = new JButton("Stampa"); stampa.setPreferredSize(new Dimension(90,19)); stampa.setBackground(AUIPanelUtilities.getColoreBottoni()); stampa.setFont(AUIPanelUtilities.getFontBottoni()); stampa.setForeground(Color.WHITE); stampa.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { avviaStampaDettaglio(); } }); panBottoni.add(stampa); add(panBottoni); revalidate(); repaint(); } }); } public void startElaborazione() { pannelloRiepilogo.startElaborazione(); } public void stopElaborazione() { pannelloRiepilogo.stopElaborazione(); } /** * Per impostare che tipo di tabella visualizzare (eg: se per la linea, conensatori, ecc). * @param tableType Codice che indica il tipo di tabella. */ public void setResultTableType(int tableType) { tabellaRisultati = ResultTableFactory.getResultTable(tableType, this); java.awt.EventQueue.invokeLater(new Runnable() { public void run() { pannelloTabella.setViewportView(tabellaRisultati); revalidate(); } }); } /** * Per impostare che tipo di tabella visualizzare (eg: se per la linea, conensatori, ecc). * @param descrizioneTipo Descrizione del tipo di tabella da visualizzare */ public void setResultTableType(String descrizioneTipo) { int codice = AUIResultTable.getCodiceElemento(descrizioneTipo); setResultTableType(codice); } /** * Imposta i dati risultanti da una query nella tabella dei risultati. * @param auiRS AUIResultSet contenente il risultato della query. */ public void setNewTableData(final int recordCount, final AUIResultSet auiRS) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { if (auiRS != null) { tabellaRisultati.setNuoviDati(auiRS.getTuttiDati()); pannelloRiepilogo.setRecordCount(recordCount, auiRS.getRowCount()); } else { tabellaRisultati.setNuoviDati(new Object[][] {}); pannelloRiepilogo.setRecordCount(recordCount, 0); } } }); } public void avviaStampaDettaglio() { new PDFCreator(panDett.getXMLData(), PDFCreator.PDF_TYPE_DETTAGLIO).makePDF(); } public void avviaSalvataggioDettaglio() { new CSVCreator(panDett.getCSVData()).makeCSV(); } public void avviaStampa() { Runnable stampa = new Runnable() { public void run() { try { startElaborazione(); String xml = tabellaRisultati.getXMLData(); new PDFCreator(xml, PDFCreator.PDF_TYPE_TABELLA).makePDF(); } catch (Exception ex) {AUILog.error(ex.toString(), ex);} stopElaborazione(); } }; Thread stampaThread = new Thread(stampa); stampaThread.setName(AUIStarter.AUI_THREAD_PREFIX + "stampa Thread"); stampaThread.start(); } public void avviaSalvataggio() { String csv = tabellaRisultati.getCSVData(); new CSVCreator(csv).makeCSV(); } }