com.github.somi92.seecsk.gui.FInvoice.java Source code

Java tutorial

Introduction

Here is the source code for com.github.somi92.seecsk.gui.FInvoice.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.github.somi92.seecsk.gui;

import com.github.somi92.seecsk.data.Sesija;
import com.github.somi92.seecsk.data.report.NalogZaUplatu;
import com.github.somi92.seecsk.data.report.ReportGenerator;
import com.github.somi92.seecsk.util.email.EmailContainer;
import com.github.somi92.seecskcommon.domain.Clan;
import com.github.somi92.seecskcommon.domain.Clanarina;
import com.github.somi92.seecskcommon.util.Config;
import com.github.somi92.seecskcommon.util.Constants;
import java.awt.Component;
import java.awt.Container;
import java.awt.event.MouseMotionListener;
import java.beans.PropertyVetoException;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.List;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.plaf.basic.BasicInternalFrameUI;
import net.sf.jasperreports.engine.JRException;
import org.apache.pdfbox.pdfviewer.PDFPagePanel;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

/**
 *
 * @author milos
 */
public class FInvoice extends javax.swing.JDialog {

    private Clan clan;
    private List<Clanarina> clanarine;
    private String uplatnicaFile;

    /**
     * Creates new form FInvoice
     */
    public FInvoice(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        clan = (Clan) Sesija.vratiInstancu().vratiMapuSesije().get(Sesija.CLAN);
        clanarine = (List<Clanarina>) Sesija.vratiInstancu().vratiMapuSesije().get(Sesija.LISTA);
        Sesija.vratiInstancu().vratiMapuSesije().put(Sesija.CLAN, null);
        Sesija.vratiInstancu().vratiMapuSesije().put(Sesija.LISTA, null);
        initForm();
        //        jpnlUplatnica.setVisible(false);
        //        setSize(getSize().width, getSize().height-320);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jcmbClanarina = new javax.swing.JComboBox();
        jtxtIznos = new javax.swing.JTextField();
        jtxtZiroRacun = new javax.swing.JTextField();
        jtxtModel = new javax.swing.JTextField();
        jtxtPozivNaBroj = new javax.swing.JTextField();
        jbtnKreirajUplatnicu = new javax.swing.JButton();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jtxtSvrhaUplate = new javax.swing.JTextArea();
        jScrollPane2 = new javax.swing.JScrollPane();
        jtxtPrimalac = new javax.swing.JTextArea();
        jScrollPane3 = new javax.swing.JScrollPane();
        jtxtUplatilac = new javax.swing.JTextArea();
        jPanel2 = new javax.swing.JPanel();
        jpnlUplatnica = new javax.swing.JPanel();
        jbtnPosalji = new javax.swing.JButton();
        jbtnNazad = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Kreiraj uplatnicu");
        setResizable(false);

        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabel1.setText("Za ?lanarinu:");

        jLabel2.setText("Iznos:");

        jLabel3.setText("iro ra?un:");

        jLabel4.setText("Model:");

        jLabel5.setText("Poziv na broj:");

        jcmbClanarina.setModel(
                new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        jcmbClanarina.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jcmbClanarinaActionPerformed(evt);
            }
        });

        jtxtIznos.setHorizontalAlignment(javax.swing.JTextField.TRAILING);

        jtxtZiroRacun.setHorizontalAlignment(javax.swing.JTextField.CENTER);

        jtxtModel.setHorizontalAlignment(javax.swing.JTextField.CENTER);

        jtxtPozivNaBroj.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        jtxtPozivNaBroj.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtxtPozivNaBrojActionPerformed(evt);
            }
        });

        jbtnKreirajUplatnicu.setText("Kreiraj uplatnicu");
        jbtnKreirajUplatnicu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnKreirajUplatnicuActionPerformed(evt);
            }
        });

        jLabel6.setText("Uplatilac:");

        jLabel7.setText("Svrha uplate:");

        jLabel8.setText("Primalac:");

        jtxtSvrhaUplate.setColumns(20);
        jtxtSvrhaUplate.setLineWrap(true);
        jtxtSvrhaUplate.setRows(5);
        jtxtSvrhaUplate.setWrapStyleWord(true);
        jScrollPane1.setViewportView(jtxtSvrhaUplate);

        jtxtPrimalac.setColumns(20);
        jtxtPrimalac.setLineWrap(true);
        jtxtPrimalac.setRows(5);
        jtxtPrimalac.setWrapStyleWord(true);
        jScrollPane2.setViewportView(jtxtPrimalac);

        jtxtUplatilac.setColumns(20);
        jtxtUplatilac.setLineWrap(true);
        jtxtUplatilac.setRows(5);
        jtxtUplatilac.setWrapStyleWord(true);
        jScrollPane3.setViewportView(jtxtUplatilac);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(jPanel1Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout
                        .createSequentialGroup().addContainerGap()
                        .addGroup(
                                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, 112,
                                                Short.MAX_VALUE)
                                        .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, 112,
                                                Short.MAX_VALUE)
                                        .addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, 112,
                                                Short.MAX_VALUE)
                                        .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 225,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addGroup(jPanel1Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addComponent(jtxtZiroRacun, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        278, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(jLabel3)
                                                .addComponent(jtxtIznos, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        223, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(jLabel2)))
                                .addComponent(jcmbClanarina, javax.swing.GroupLayout.PREFERRED_SIZE, 170,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 225,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addGroup(jPanel1Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(jLabel4).addComponent(jtxtModel,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 71,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGroup(jPanel1Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addGroup(jPanel1Layout.createSequentialGroup().addGap(57, 57, 57)
                                                        .addComponent(jbtnKreirajUplatnicu,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE, 154,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addGroup(jPanel1Layout.createSequentialGroup().addGap(18, 18, 18)
                                                        .addComponent(jtxtPozivNaBroj,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE, 193,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                                        jPanel1Layout.createSequentialGroup().addPreferredGap(
                                                                javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                .addComponent(jLabel5))))
                                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 225,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap(33, Short.MAX_VALUE)));
        jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup().addGap(15, 15, 15).addComponent(jLabel1)
                                .addGap(39, 39, 39).addComponent(jLabel6))
                        .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
                                .addGroup(jPanel1Layout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                        .addGroup(jPanel1Layout.createSequentialGroup()
                                                .addComponent(jcmbClanarina, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addGap(18, 18, 18).addComponent(jScrollPane3,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 57,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel2)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jtxtIznos, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGroup(jPanel1Layout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(jPanel1Layout.createSequentialGroup().addGap(33, 33, 33)
                                                .addComponent(jLabel7).addGap(49, 49, 49).addComponent(jLabel8))
                                        .addGroup(jPanel1Layout.createSequentialGroup()
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        57, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        57, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGroup(jPanel1Layout.createSequentialGroup()
                                                .addPreferredGap(
                                                        javax.swing.LayoutStyle.ComponentPlacement.UNRELATED,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 15,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jtxtZiroRacun, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addGroup(jPanel1Layout
                                                        .createParallelGroup(
                                                                javax.swing.GroupLayout.Alignment.LEADING)
                                                        .addGroup(jPanel1Layout.createSequentialGroup()
                                                                .addGap(78, 78, 78)
                                                                .addComponent(jbtnKreirajUplatnicu))
                                                        .addGroup(jPanel1Layout.createSequentialGroup()
                                                                .addGap(18, 18, 18)
                                                                .addGroup(jPanel1Layout.createParallelGroup(
                                                                        javax.swing.GroupLayout.Alignment.BASELINE)
                                                                        .addComponent(jLabel4)
                                                                        .addComponent(jLabel5))
                                                                .addPreferredGap(
                                                                        javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                .addGroup(jPanel1Layout.createParallelGroup(
                                                                        javax.swing.GroupLayout.Alignment.BASELINE)
                                                                        .addComponent(jtxtModel,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                        .addComponent(jtxtPozivNaBroj,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE))))))))
                        .addContainerGap(16, Short.MAX_VALUE)));

        jPanel2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));

        jpnlUplatnica.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        javax.swing.GroupLayout jpnlUplatnicaLayout = new javax.swing.GroupLayout(jpnlUplatnica);
        jpnlUplatnica.setLayout(jpnlUplatnicaLayout);
        jpnlUplatnicaLayout.setHorizontalGroup(jpnlUplatnicaLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE));
        jpnlUplatnicaLayout.setVerticalGroup(jpnlUplatnicaLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 345, Short.MAX_VALUE));

        jbtnPosalji.setText("Poalji uplatnicu");
        jbtnPosalji.setEnabled(false);
        jbtnPosalji.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnPosaljiActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(jPanel2Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jpnlUplatnica, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGroup(jPanel2Layout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE)
                                        .addComponent(jbtnPosalji, javax.swing.GroupLayout.PREFERRED_SIZE, 155,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addContainerGap()));
        jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap()
                        .addComponent(jpnlUplatnica, javax.swing.GroupLayout.DEFAULT_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jbtnPosalji).addContainerGap(16, Short.MAX_VALUE)));

        jbtnNazad.setText("Nazad");
        jbtnNazad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnNazadActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup().addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                        layout.createSequentialGroup()
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jbtnNazad, javax.swing.GroupLayout.PREFERRED_SIZE, 155,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap()));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup().addContainerGap()
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jbtnNazad).addContainerGap(9, Short.MAX_VALUE)));

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jtxtPozivNaBrojActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtxtPozivNaBrojActionPerformed

    }//GEN-LAST:event_jtxtPozivNaBrojActionPerformed

    private void jcmbClanarinaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcmbClanarinaActionPerformed
        popuniSvrhuUplate();
    }//GEN-LAST:event_jcmbClanarinaActionPerformed

    private void jbtnKreirajUplatnicuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnKreirajUplatnicuActionPerformed
        try {
            String uplatilac = jtxtUplatilac.getText().trim();
            String svrhaUplate = jtxtSvrhaUplate.getText().trim();
            String primalac = jtxtPrimalac.getText().trim();
            String ziroRacun = jtxtZiroRacun.getText().trim();
            String model = jtxtModel.getText().trim();
            String poziv = jtxtPozivNaBroj.getText().trim();
            double iznos = Double.parseDouble(jtxtIznos.getText().trim());

            if (uplatilac == null || uplatilac.isEmpty() || svrhaUplate == null || svrhaUplate.isEmpty()
                    || primalac == null || primalac.isEmpty() || ziroRacun == null || ziroRacun.isEmpty()
                    || model == null || model.isEmpty() || poziv == null || poziv.isEmpty()) {
                JOptionPane.showMessageDialog(this, "Sva polja moraju biti popunjena!");
                return;
            }

            NalogZaUplatu n = new NalogZaUplatu();
            n.setId(clan.getIdClan());
            n.setUplatilac(uplatilac);
            n.setPrimalac(primalac);
            n.setSvrhaUplate(svrhaUplate);
            n.setIznos(iznos);
            n.setRacunPrimaoca(ziroRacun);
            n.setModel(model);
            n.setPozivNaBroj(poziv);

            ReportGenerator.generateInvoice(n);

            //            dispose();

            //            jpnlUplatnica.setVisible(true);
            //            setSize(getSize().width, getSize().height+320);

            uplatnicaFile = Constants.LocationConfigKeys.TEMP_INVOICE_LOCATION + "uplatnica_" + clan.getIdClan()
                    + ".pdf";
            File pdfFile = new File(uplatnicaFile);
            PDDocument doc = PDDocument.load(pdfFile);
            List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
            PDPage page = (PDPage) pages.get(0);

            PDFPagePanel pdfPanel = new PDFPagePanel();
            pdfPanel.setPage(page);

            JInternalFrame iFrame = new JInternalFrame();

            BasicInternalFrameUI ui = (BasicInternalFrameUI) iFrame.getUI();
            Component np = ui.getNorthPane();
            Container cont = (Container) np;
            cont.remove(0);
            cont.validate();
            cont.repaint();
            MouseMotionListener[] mmlisteners = (MouseMotionListener[]) np.getListeners(MouseMotionListener.class);
            for (MouseMotionListener mml : mmlisteners) {
                np.removeMouseMotionListener(mml);
            }
            iFrame.setEnabled(false);

            iFrame.setBounds(0, 0, jpnlUplatnica.getWidth(), jpnlUplatnica.getHeight());
            jpnlUplatnica.add(iFrame);
            iFrame.add(pdfPanel);
            iFrame.setVisible(true);
            iFrame.setResizable(false);
            iFrame.setSelected(false);

            pdfPanel.setVisible(true);
            jbtnPosalji.setEnabled(true);

        } catch (NumberFormatException e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(this, "Neispravno unet iznos.", "Greka", JOptionPane.ERROR_MESSAGE);
        } catch (PropertyVetoException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(this, "Sistem ne moe u?itati uplatnicu (PVE).", "Greka",
                    JOptionPane.ERROR_MESSAGE);
        } catch (IOException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(this, "Sistem ne moe u?itati uplatnicu (IO).", "Greka",
                    JOptionPane.ERROR_MESSAGE);
        } catch (JRException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(this, "Sistem ne moe u?itati uplatnicu (JRE).", "Greka",
                    JOptionPane.ERROR_MESSAGE);
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(this, "Sistem ne moe u?itati uplatnicu (CNF).", "Greka",
                    JOptionPane.ERROR_MESSAGE);
        } catch (RuntimeException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(this, ex.getMessage(), "Greka", JOptionPane.ERROR_MESSAGE);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }//GEN-LAST:event_jbtnKreirajUplatnicuActionPerformed

    private void jbtnPosaljiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnPosaljiActionPerformed
        EmailContainer ec = new EmailContainer();
        ec.setToEmail(clan.getEmail());
        ec.setFromEmail(Config.vratiInstancu().vratiVrednost(Constants.OrgInfoConfigKeys.ORGANISATION_EMAIL));
        ec.setSubject(Config.vratiInstancu().vratiVrednost(Constants.OrgInfoConfigKeys.ORGANISATION_NAME)
                + " - Podsetnik za ?lanarinu");
        ec.setMessage((clan.getPol() == 'M' ? "Potovani" : "Potovana")
                + ", \n\nObavetavamo Vas da imate neizmirena dugovanja za ?lanarinu. U prilogu ove poruke"
                + " imate primer ispravno popunjene uplatnice sa detaljnijim informacijama o dugovanju. "
                + "Molimo Vas da u najkraem roku izvrite uplatu. Vie informacija moete dobiti na email"
                + " " + Config.vratiInstancu().vratiVrednost(Constants.OrgInfoConfigKeys.ORGANISATION_EMAIL)
                + " ili " + "pozivom na broj "
                + Config.vratiInstancu().vratiVrednost(Constants.OrgInfoConfigKeys.ORGANISATION_PHONE_NUMBER)
                + ".\n\nSrda?an pozdrav,\n"
                + Config.vratiInstancu().vratiVrednost(Constants.OrgInfoConfigKeys.ORGANISATION_NAME));
        ec.setAttachmentPath(uplatnicaFile);
        Sesija.vratiInstancu().vratiMapuSesije().put(Sesija.EMAIL, ec);
        FEmailSender femail = new FEmailSender(null, true);
        femail.setVisible(true);
        boolean res = femail.getReturnValue();
        if (res) {
            dispose();
        }
    }//GEN-LAST:event_jbtnPosaljiActionPerformed

    private void jbtnNazadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnNazadActionPerformed
        dispose();
    }//GEN-LAST:event_jbtnNazadActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JButton jbtnKreirajUplatnicu;
    private javax.swing.JButton jbtnNazad;
    private javax.swing.JButton jbtnPosalji;
    private javax.swing.JComboBox jcmbClanarina;
    private javax.swing.JPanel jpnlUplatnica;
    private javax.swing.JTextField jtxtIznos;
    private javax.swing.JTextField jtxtModel;
    private javax.swing.JTextField jtxtPozivNaBroj;
    private javax.swing.JTextArea jtxtPrimalac;
    private javax.swing.JTextArea jtxtSvrhaUplate;
    private javax.swing.JTextArea jtxtUplatilac;
    private javax.swing.JTextField jtxtZiroRacun;
    // End of variables declaration//GEN-END:variables

    private void initForm() {

        setTitle("Uplatnica za: " + clan.getImePrezime());

        jcmbClanarina.removeAllItems();
        jcmbClanarina.addItem("Sve ?lanarine");
        for (Clanarina clanarina : clanarine) {
            jcmbClanarina.addItem(clanarina);
        }
        jtxtZiroRacun.setText("321-1199232593211-32");
        jtxtModel.setText("93");
        //        jtxtPozivNaBroj.setText("442133214");
        String pozivNaBroj = "01125";
        pozivNaBroj = clan.getIdClan() + pozivNaBroj;
        int rest = 12 - pozivNaBroj.length();
        if (rest > 0) {
            for (int i = 0; i < rest; i++) {
                pozivNaBroj = "0" + pozivNaBroj;
            }
        }
        jtxtPozivNaBroj.setText(pozivNaBroj);
        jtxtIznos.setText("2000.0");

        jtxtUplatilac.setText(clan.getImePrezime() + ", " + clan.getAdresa());
        jtxtPrimalac.setText(Config.vratiInstancu().vratiVrednost(Constants.OrgInfoConfigKeys.ORGANISATION_NAME)
                + ", " + Config.vratiInstancu().vratiVrednost(Constants.OrgInfoConfigKeys.ORGANISATION_ADDRESS));

        popuniSvrhuUplate();
    }

    private void popuniSvrhuUplate() {
        if (clanarine != null) {
            Object o = jcmbClanarina.getSelectedItem();
            if (o != null) {
                SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy.");
                if (jcmbClanarina.getSelectedItem() instanceof String) {
                    jtxtSvrhaUplate.setText("lanarina za period " + sdf.format(clanarine.get(0).getDatumOd())
                            + " - " + sdf.format(clanarine.get(clanarine.size() - 1).getDatumDo()));
                } else {
                    Clanarina c = (Clanarina) jcmbClanarina.getSelectedItem();
                    jtxtSvrhaUplate.setText("lanarina za period " + sdf.format(c.getDatumOd()) + " - "
                            + sdf.format(c.getDatumDo()));
                }
            }
        }
    }
}