forme.FrmPocetna.java Source code

Java tutorial

Introduction

Here is the source code for forme.FrmPocetna.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 forme;

import com.sun.org.apache.bcel.internal.generic.AALOAD;
import domen.Korisnik;
import domen.Kosarkas;
import domen.TipUcinka;
import domen.UcinakKosarkasa;
import domen.Utakmica;
import forme.komponente.TblModelPrikazUcinaka;
import java.awt.Desktop;
import java.awt.Image;
import java.awt.LayoutManager;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.DefaultCellEditor;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import komunikacija.KlijentKomunikacija;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import transfer.TransferObjekatOdgovor;
import transfer.TransferObjekatZahtev;
import util.Konstante;

/**
 *
 * @author Marko
 */
public class FrmPocetna extends javax.swing.JFrame {

    SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy.");
    TransferObjekatZahtev toZahtev = new TransferObjekatZahtev();
    TransferObjekatOdgovor toOdgovor = new TransferObjekatOdgovor();
    Korisnik ulogovaniKorisnik;

    /**
     * Creates new form FrmPocetna
     */
    public FrmPocetna() {
        initComponents();
        maksimizirajDimenzijeForme();
        postaviIkonicu();

        napuniListuUtakmica();
        jpnlGlavni.setVisible(false);
    }

    public FrmPocetna(Korisnik k) {
        initComponents();
        maksimizirajDimenzijeForme();
        postaviIkonicu();

        napuniListuUtakmica();
        jpnlGlavni.setVisible(false);
        this.ulogovaniKorisnik = k;
    }

    /**
     * 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() {

        jPopupMenu1 = new javax.swing.JPopupMenu();
        jmiDodajKosarkasa = new javax.swing.JMenuItem();
        jmiDodajTim = new javax.swing.JMenuItem();
        jmitemDodajUtakmicu = new javax.swing.JMenuItem();
        jmitemDodajUcinak = new javax.swing.JMenuItem();
        jmitemPronadjiKosarkasa = new javax.swing.JMenuItem();
        jmitemPronadjiTim = new javax.swing.JMenuItem();
        jpnlLevo = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jlistUtakmice = new javax.swing.JList();
        jpnlGlavni = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jlblDomacin = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jlblGost = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jlblDatum = new javax.swing.JLabel();
        jlblHala = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jlblDomacinPoeni = new javax.swing.JLabel();
        jlblGostPoeni = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jbtnDodajNoveUcinke = new javax.swing.JButton();
        jLabel7 = new javax.swing.JLabel();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel1 = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        jtblUcinci = new javax.swing.JTable();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jtxtAreaUcinci = new javax.swing.JTextArea();
        jcomboIgraci = new javax.swing.JComboBox();
        jButton1 = new javax.swing.JButton();
        jLabel8 = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jmiUnosKosarkasa = new javax.swing.JMenuItem();
        jmiUnosTima = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jmiIzmenaKosarkasa = new javax.swing.JMenuItem();
        jmiIzmenaTima = new javax.swing.JMenuItem();
        jMenu4 = new javax.swing.JMenu();
        jMenu5 = new javax.swing.JMenu();
        jmiPronadjiKosarkasa = new javax.swing.JMenuItem();
        jmiPronadjiTim = new javax.swing.JMenuItem();
        jMenu6 = new javax.swing.JMenu();
        jmiObrisiKosarkasa = new javax.swing.JMenuItem();
        jmiObrisiTim = new javax.swing.JMenuItem();
        jMenu9 = new javax.swing.JMenu();
        jmiDodajUtakmicu = new javax.swing.JMenuItem();
        jMenu7 = new javax.swing.JMenu();
        jMenu8 = new javax.swing.JMenu();
        jmiDodajTipUcinka = new javax.swing.JMenuItem();
        jmiPRegledTipova = new javax.swing.JMenuItem();
        jmiDodajUcinak = new javax.swing.JMenuItem();
        jmenuRadSaKorisnicima = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();
        jmiApp = new javax.swing.JMenuItem();
        jmiAutor = new javax.swing.JMenuItem();

        jmiDodajKosarkasa.setText("Dodaj koarkaa");
        jmiDodajKosarkasa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiDodajKosarkasaActionPerformed(evt);
            }
        });
        jPopupMenu1.add(jmiDodajKosarkasa);

        jmiDodajTim.setText("DodajTim");
        jmiDodajTim.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiDodajTimActionPerformed(evt);
            }
        });
        jPopupMenu1.add(jmiDodajTim);

        jmitemDodajUtakmicu.setText("Dodaj utakmicu");
        jmitemDodajUtakmicu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmitemDodajUtakmicuActionPerformed(evt);
            }
        });
        jPopupMenu1.add(jmitemDodajUtakmicu);

        jmitemDodajUcinak.setText("Dodaj u?inak");
        jmitemDodajUcinak.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmitemDodajUcinakActionPerformed(evt);
            }
        });
        jPopupMenu1.add(jmitemDodajUcinak);

        jmitemPronadjiKosarkasa.setText("Pronai koarkaa");
        jmitemPronadjiKosarkasa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmitemPronadjiKosarkasaActionPerformed(evt);
            }
        });
        jPopupMenu1.add(jmitemPronadjiKosarkasa);

        jmitemPronadjiTim.setText("Pronai tim");
        jmitemPronadjiTim.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmitemPronadjiTimActionPerformed(evt);
            }
        });
        jPopupMenu1.add(jmitemPronadjiTim);

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Evidencija u?inka koarkaa");
        setResizable(false);
        addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(java.awt.event.MouseEvent evt) {
                formMousePressed(evt);
            }

            public void mouseReleased(java.awt.event.MouseEvent evt) {
                formMouseReleased(evt);
            }
        });
        addWindowFocusListener(new java.awt.event.WindowFocusListener() {
            public void windowGainedFocus(java.awt.event.WindowEvent evt) {
                formWindowGainedFocus(evt);
            }

            public void windowLostFocus(java.awt.event.WindowEvent evt) {
            }
        });
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        jpnlLevo.setBorder(javax.swing.BorderFactory.createMatteBorder(0, 0, 0, 3, new java.awt.Color(0, 0, 0)));

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel1.setText("Utakmice");

        jlistUtakmice
                .setBorder(javax.swing.BorderFactory.createMatteBorder(2, 2, 2, 2, new java.awt.Color(51, 0, 255)));
        jlistUtakmice.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };

            public int getSize() {
                return strings.length;
            }

            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        jScrollPane1.setViewportView(jlistUtakmice);

        javax.swing.GroupLayout jpnlLevoLayout = new javax.swing.GroupLayout(jpnlLevo);
        jpnlLevo.setLayout(jpnlLevoLayout);
        jpnlLevoLayout
                .setHorizontalGroup(jpnlLevoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jpnlLevoLayout.createSequentialGroup().addContainerGap()
                                .addComponent(jScrollPane1).addContainerGap())
                        .addGroup(jpnlLevoLayout.createSequentialGroup().addGap(128, 128, 128).addComponent(jLabel1)
                                .addContainerGap(157, Short.MAX_VALUE)));
        jpnlLevoLayout
                .setVerticalGroup(jpnlLevoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jpnlLevoLayout.createSequentialGroup().addGap(31, 31, 31).addComponent(jLabel1)
                                .addGap(18, 18, 18).addComponent(jScrollPane1)));

        jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel2.setText("Domain:");

        jlblDomacin.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel4.setText("Gost:");

        jlblGost.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        jLabel6.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel6.setText("Datum:");

        jlblDatum.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        jlblHala.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        jLabel9.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel9.setText("Hala:");

        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel3.setText("Rezultat:");

        jlblDomacinPoeni.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        jlblGostPoeni.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        jLabel5.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        jLabel5.setText(":");

        jbtnDodajNoveUcinke.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jbtnDodajNoveUcinke.setText("Dodaj nove u?inke za ovu utakmicu");
        jbtnDodajNoveUcinke.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnDodajNoveUcinkeActionPerformed(evt);
            }
        });

        jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/forme/slika.jpg"))); // NOI18N

        jtblUcinci
                .setModel(new javax.swing.table.DefaultTableModel(
                        new Object[][] { { null, null, null, null }, { null, null, null, null },
                                { null, null, null, null }, { null, null, null, null } },
                        new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
        jScrollPane2.setViewportView(jtblUcinci);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(jPanel1Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addContainerGap(35, Short.MAX_VALUE).addComponent(jScrollPane2,
                                javax.swing.GroupLayout.PREFERRED_SIZE, 679, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(36, 36, 36)));
        jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                        jPanel1Layout.createSequentialGroup()
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 328,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(99, 99, 99)));

        jTabbedPane1.addTab("Tabela", jPanel1);

        jtxtAreaUcinci.setColumns(20);
        jtxtAreaUcinci.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jtxtAreaUcinci.setRows(5);
        jtxtAreaUcinci
                .setBorder(javax.swing.BorderFactory.createMatteBorder(2, 2, 2, 2, new java.awt.Color(51, 0, 255)));
        jScrollPane3.setViewportView(jtxtAreaUcinci);

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

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(jPanel2Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 750, Short.MAX_VALUE)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap()
                                .addComponent(jcomboIgraci, javax.swing.GroupLayout.PREFERRED_SIZE, 312,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 143,
                                        Short.MAX_VALUE)
                                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 275,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap())));
        jPanel2Layout
                .setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGap(0, 366, Short.MAX_VALUE)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap()
                                        .addGroup(jPanel2Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        300, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(jcomboIgraci, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))));

        jTabbedPane1.addTab("Lista", jPanel2);

        jButton1.setText("Preuzmi Excel fajl");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel8.setFont(new java.awt.Font("Tahoma", 1, 8)); // NOI18N
        jLabel8.setText("* NP - nema podataka");

        javax.swing.GroupLayout jpnlGlavniLayout = new javax.swing.GroupLayout(jpnlGlavni);
        jpnlGlavni.setLayout(jpnlGlavniLayout);
        jpnlGlavniLayout.setHorizontalGroup(
                jpnlGlavniLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(
                                javax.swing.GroupLayout.Alignment.TRAILING,
                                jpnlGlavniLayout
                                        .createSequentialGroup()
                                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(jbtnDodajNoveUcinke).addGap(232, 232, 232))
                        .addGroup(jpnlGlavniLayout.createSequentialGroup().addGap(54, 54, 54)
                                .addGroup(jpnlGlavniLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(jpnlGlavniLayout
                                                .createSequentialGroup().addComponent(jLabel8)
                                                .addPreferredGap(
                                                        javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                                .addComponent(jButton1))
                                        .addGroup(jpnlGlavniLayout.createSequentialGroup().addGroup(jpnlGlavniLayout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addGroup(jpnlGlavniLayout.createSequentialGroup()
                                                        .addGroup(jpnlGlavniLayout
                                                                .createParallelGroup(
                                                                        javax.swing.GroupLayout.Alignment.LEADING)
                                                                .addGroup(jpnlGlavniLayout.createSequentialGroup()
                                                                        .addComponent(jLabel2,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                77,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                        .addGap(18, 18, 18)
                                                                        .addComponent(jlblDomacin,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                266,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                                .addGroup(jpnlGlavniLayout.createSequentialGroup()
                                                                        .addComponent(jLabel4,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                77,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                        .addGap(18, 18, 18).addComponent(
                                                                                jlblGost,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                266,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                                .addGroup(jpnlGlavniLayout.createSequentialGroup()
                                                                        .addComponent(jLabel6,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                77,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                        .addGap(18, 18, 18).addComponent(
                                                                                jlblDatum,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                266,
                                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                                .addGroup(jpnlGlavniLayout
                                                                        .createSequentialGroup()
                                                                        .addGroup(jpnlGlavniLayout
                                                                                .createParallelGroup(
                                                                                        javax.swing.GroupLayout.Alignment.LEADING)
                                                                                .addComponent(
                                                                                        jLabel9,
                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                        77,
                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                                .addComponent(jLabel3))
                                                                        .addGap(18, 18, 18)
                                                                        .addGroup(jpnlGlavniLayout
                                                                                .createParallelGroup(
                                                                                        javax.swing.GroupLayout.Alignment.LEADING)
                                                                                .addComponent(jlblHala,
                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                        266,
                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                                .addGroup(jpnlGlavniLayout
                                                                                        .createSequentialGroup()
                                                                                        .addGap(27, 27, 27)
                                                                                        .addComponent(
                                                                                                jlblDomacinPoeni,
                                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                                51,
                                                                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                                        .addGap(18, 18, 18)
                                                                                        .addComponent(jLabel5,
                                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                                17,
                                                                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                                        .addGap(32, 32, 32)
                                                                                        .addComponent(jlblGostPoeni,
                                                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                                51,
                                                                                                javax.swing.GroupLayout.PREFERRED_SIZE)))))
                                                        .addGap(73, 73, 73).addComponent(jLabel7,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE, 321,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        755, javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addGap(0, 0, Short.MAX_VALUE)))));
        jpnlGlavniLayout.setVerticalGroup(jpnlGlavniLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jpnlGlavniLayout.createSequentialGroup().addGap(41, 41, 41).addGroup(jpnlGlavniLayout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jpnlGlavniLayout
                                .createSequentialGroup()
                                .addGroup(jpnlGlavniLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(jlblDomacin, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addGap(18, 18, 18)
                                .addGroup(jpnlGlavniLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                        .addComponent(jlblGost, javax.swing.GroupLayout.PREFERRED_SIZE, 17,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jLabel4))
                                .addGap(18, 18, 18)
                                .addGroup(jpnlGlavniLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(jlblDatum, javax.swing.GroupLayout.PREFERRED_SIZE, 17,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(19, 19, 19)
                                .addGroup(jpnlGlavniLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(jlblHala, javax.swing.GroupLayout.PREFERRED_SIZE, 17,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(jpnlGlavniLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(jpnlGlavniLayout.createSequentialGroup().addGap(34, 34, 34)
                                                .addComponent(jLabel3))
                                        .addGroup(jpnlGlavniLayout.createSequentialGroup().addGap(18, 18, 18)
                                                .addComponent(jlblDomacinPoeni,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 59,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGroup(jpnlGlavniLayout.createSequentialGroup().addGap(18, 18, 18)
                                                .addComponent(jlblGostPoeni, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        59, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGroup(jpnlGlavniLayout.createSequentialGroup().addGap(35, 35, 35)
                                                .addComponent(jLabel5))))
                        .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 197,
                                javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 63, Short.MAX_VALUE)
                        .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 394,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jpnlGlavniLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jButton1).addComponent(jLabel8))
                        .addGap(9, 9, 9).addComponent(jbtnDodajNoveUcinke).addContainerGap()));

        jMenu1.setText("Unos");

        jmiUnosKosarkasa.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_K,
                java.awt.event.InputEvent.CTRL_MASK));
        jmiUnosKosarkasa.setText("Kreiraj novog koarkaa");
        jmiUnosKosarkasa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiUnosKosarkasaActionPerformed(evt);
            }
        });
        jMenu1.add(jmiUnosKosarkasa);

        jmiUnosTima.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T,
                java.awt.event.InputEvent.CTRL_MASK));
        jmiUnosTima.setText("Kreiraj novi tim");
        jmiUnosTima.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiUnosTimaActionPerformed(evt);
            }
        });
        jMenu1.add(jmiUnosTima);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Izmena");

        jmiIzmenaKosarkasa.setText("Izmeni koarkaa");
        jmiIzmenaKosarkasa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiIzmenaKosarkasaActionPerformed(evt);
            }
        });
        jMenu2.add(jmiIzmenaKosarkasa);

        jmiIzmenaTima.setText("Izmeni tim");
        jmiIzmenaTima.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiIzmenaTimaActionPerformed(evt);
            }
        });
        jMenu2.add(jmiIzmenaTima);

        jMenuBar1.add(jMenu2);

        jMenu4.setText("Alatke");

        jMenu5.setText("Pronai");

        jmiPronadjiKosarkasa.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_K,
                java.awt.event.InputEvent.ALT_MASK));
        jmiPronadjiKosarkasa.setText(" Pronai koarkaa");
        jmiPronadjiKosarkasa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiPronadjiKosarkasaActionPerformed(evt);
            }
        });
        jMenu5.add(jmiPronadjiKosarkasa);

        jmiPronadjiTim.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T,
                java.awt.event.InputEvent.ALT_MASK));
        jmiPronadjiTim.setText("Pronai tim");
        jmiPronadjiTim.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiPronadjiTimActionPerformed(evt);
            }
        });
        jMenu5.add(jmiPronadjiTim);

        jMenu4.add(jMenu5);

        jMenu6.setText("Obrii");

        jmiObrisiKosarkasa.setText("Obrii koarkaa");
        jmiObrisiKosarkasa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiObrisiKosarkasaActionPerformed(evt);
            }
        });
        jMenu6.add(jmiObrisiKosarkasa);

        jmiObrisiTim.setText("Obrii tim");
        jmiObrisiTim.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiObrisiTimActionPerformed(evt);
            }
        });
        jMenu6.add(jmiObrisiTim);

        jMenu4.add(jMenu6);

        jMenuBar1.add(jMenu4);

        jMenu9.setText(" Utakmica");

        jmiDodajUtakmicu.setText("Dodaj novu utakmicu");
        jmiDodajUtakmicu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiDodajUtakmicuActionPerformed(evt);
            }
        });
        jMenu9.add(jmiDodajUtakmicu);

        jMenuBar1.add(jMenu9);

        jMenu7.setText("Evidencija");

        jMenu8.setText("Tip u?inka");

        jmiDodajTipUcinka.setText("Dodaj tip u?inka");
        jmiDodajTipUcinka.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiDodajTipUcinkaActionPerformed(evt);
            }
        });
        jMenu8.add(jmiDodajTipUcinka);

        jmiPRegledTipova.setText("Pregled tipova");
        jmiPRegledTipova.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiPRegledTipovaActionPerformed(evt);
            }
        });
        jMenu8.add(jmiPRegledTipova);

        jMenu7.add(jMenu8);

        jmiDodajUcinak.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U,
                java.awt.event.InputEvent.CTRL_MASK));
        jmiDodajUcinak.setText("Unesi u?inke");
        jmiDodajUcinak.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiDodajUcinakActionPerformed(evt);
            }
        });
        jMenu7.add(jmiDodajUcinak);

        jMenuBar1.add(jMenu7);

        jmenuRadSaKorisnicima.setText("Rad sa korisnicima");

        jMenuItem1.setText("Dodaj korisnika");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jmenuRadSaKorisnicima.add(jMenuItem1);

        jMenuItem2.setText(" Promeni lozinku");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jmenuRadSaKorisnicima.add(jMenuItem2);

        jMenuBar1.add(jmenuRadSaKorisnicima);

        jMenu3.setText("Informacije");

        jmiApp.setText("O aplikaciji");
        jmiApp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiAppActionPerformed(evt);
            }
        });
        jMenu3.add(jmiApp);

        jmiAutor.setText("O autoru");
        jmiAutor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiAutorActionPerformed(evt);
            }
        });
        jMenu3.add(jmiAutor);

        jMenuBar1.add(jMenu3);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                        .addComponent(jpnlLevo, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jpnlGlavni, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jpnlLevo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                        Short.MAX_VALUE)
                .addComponent(jpnlGlavni, javax.swing.GroupLayout.DEFAULT_SIZE,
                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));

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

    private void jmiUnosTimaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiUnosTimaActionPerformed
        FrmTimUnos forma = new FrmTimUnos(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiUnosTimaActionPerformed

    private void jmiUnosKosarkasaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiUnosKosarkasaActionPerformed
        FrmKosarkasUnos forma = new FrmKosarkasUnos(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiUnosKosarkasaActionPerformed

    private void jmiPronadjiKosarkasaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiPronadjiKosarkasaActionPerformed
        FrmPrikazKosarkasa forma = new FrmPrikazKosarkasa(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiPronadjiKosarkasaActionPerformed

    private void jmiPronadjiTimActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiPronadjiTimActionPerformed
        FrmPrikazTima forma = new FrmPrikazTima(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiPronadjiTimActionPerformed

    private void jmiAppActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiAppActionPerformed
        JOptionPane.showMessageDialog(this,
                "Naziv: Softverski sistem za evidenciju u?inka koarkaa" + "\n" + "Verzija: 1.0",
                "O aplikaciji", JOptionPane.INFORMATION_MESSAGE);
    }//GEN-LAST:event_jmiAppActionPerformed

    private void jmiAutorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiAutorActionPerformed
        JOptionPane.showMessageDialog(this, "Ime i prezime: Marko Savi" + "\n" + "Broj indeksa: 38/12" + "\n"
                + "E-mail: savicmarko993@gmail.com", "O autoru", JOptionPane.INFORMATION_MESSAGE);
    }//GEN-LAST:event_jmiAutorActionPerformed

    private void jmiDodajUtakmicuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiDodajUtakmicuActionPerformed
        FrmDodajUtakmicu forma = new FrmDodajUtakmicu(this, true, ulogovaniKorisnik);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiDodajUtakmicuActionPerformed

    private void formWindowGainedFocus(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowGainedFocus
        napuniListuUtakmica();
    }//GEN-LAST:event_formWindowGainedFocus

    private void jmiObrisiKosarkasaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiObrisiKosarkasaActionPerformed
        FrmPrikazKosarkasa forma = new FrmPrikazKosarkasa(this, true, "Brisanje koarkaa");
        forma.setVisible(true);
    }//GEN-LAST:event_jmiObrisiKosarkasaActionPerformed

    private void jmiObrisiTimActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiObrisiTimActionPerformed
        FrmPrikazTima forma = new FrmPrikazTima(this, true, "Brisanje tima");
        forma.setVisible(true);
    }//GEN-LAST:event_jmiObrisiTimActionPerformed

    private void jmiIzmenaKosarkasaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiIzmenaKosarkasaActionPerformed
        FrmPrikazKosarkasa forma = new FrmPrikazKosarkasa(this, true, "Izmena koarkaa");
        forma.setVisible(true);
    }//GEN-LAST:event_jmiIzmenaKosarkasaActionPerformed

    private void jmiIzmenaTimaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiIzmenaTimaActionPerformed
        FrmPrikazTima forma = new FrmPrikazTima(this, true, "Izmena tima");
        forma.setVisible(true);
    }//GEN-LAST:event_jmiIzmenaTimaActionPerformed

    private void jbtnDodajNoveUcinkeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnDodajNoveUcinkeActionPerformed
        FrmDodajUcinak forma = new FrmDodajUcinak(this, true, (Utakmica) jlistUtakmice.getSelectedValue(),
                ulogovaniKorisnik);
        forma.setVisible(true);
        jpnlGlavni.setVisible(false);
    }//GEN-LAST:event_jbtnDodajNoveUcinkeActionPerformed

    private void jmiDodajTipUcinkaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiDodajTipUcinkaActionPerformed
        FrmDodajTipUcinka forma = new FrmDodajTipUcinka(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiDodajTipUcinkaActionPerformed

    private void jmiDodajUcinakActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiDodajUcinakActionPerformed
        FrmIzborUtakmice forma = new FrmIzborUtakmice(this, true, ulogovaniKorisnik);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiDodajUcinakActionPerformed

    private void jmiPRegledTipovaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiPRegledTipovaActionPerformed
        FrmPregledTipovaUcinaka forma = new FrmPregledTipovaUcinaka(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiPRegledTipovaActionPerformed

    private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
        int odluka = JOptionPane.showConfirmDialog(this, "Da li zaista elite da napustite program?", "Izlaz",
                JOptionPane.YES_NO_OPTION);
        if (odluka == 0) {
            toZahtev.setOperacija(Konstante.IZLOGUJ_SE);
            toZahtev.setParametar(ulogovaniKorisnik);
            KlijentKomunikacija.getInstance().posaljiZahtev(toZahtev);
            try {
                toOdgovor = KlijentKomunikacija.getInstance().primiOdgovor();
            } catch (IOException | ClassNotFoundException ex) {
                Logger.getLogger(FrmPocetna.class.getName()).log(Level.SEVERE, null, ex);
            }
            if (toOdgovor.getIzuzetak() != null) {
                try {
                    throw (Exception) toOdgovor.getIzuzetak();
                } catch (Exception ex) {
                    Logger.getLogger(FrmLogovanje.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            System.exit(0);
        } else {
            return;
        }
    }//GEN-LAST:event_formWindowClosing

    private void jmiDodajKosarkasaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiDodajKosarkasaActionPerformed
        FrmKosarkasUnos forma = new FrmKosarkasUnos(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiDodajKosarkasaActionPerformed

    private void jmiDodajTimActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiDodajTimActionPerformed
        FrmTimUnos forma = new FrmTimUnos(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmiDodajTimActionPerformed

    private void jmitemDodajUtakmicuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmitemDodajUtakmicuActionPerformed
        FrmDodajUtakmicu forma = new FrmDodajUtakmicu(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmitemDodajUtakmicuActionPerformed

    private void jmitemDodajUcinakActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmitemDodajUcinakActionPerformed
        FrmDodajUcinak forma = new FrmDodajUcinak(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmitemDodajUcinakActionPerformed

    private void jmitemPronadjiKosarkasaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmitemPronadjiKosarkasaActionPerformed
        FrmPrikazKosarkasa forma = new FrmPrikazKosarkasa(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmitemPronadjiKosarkasaActionPerformed

    private void jmitemPronadjiTimActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmitemPronadjiTimActionPerformed
        FrmPrikazTima forma = new FrmPrikazTima(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jmitemPronadjiTimActionPerformed

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
        FrmDodajKorisnika forma = new FrmDodajKorisnika(this, true);
        forma.setVisible(true);
    }//GEN-LAST:event_jMenuItem1ActionPerformed

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
        FrmPromeniLozinku forma = new FrmPromeniLozinku(this, true, this);
        forma.setVisible(true);
    }//GEN-LAST:event_jMenuItem2ActionPerformed

    private void formMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMousePressed
        if (evt.isPopupTrigger()) {
            showPopupMenu(evt);
        }
    }//GEN-LAST:event_formMousePressed

    private void formMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseReleased
        if (evt.isPopupTrigger()) {
            showPopupMenu(evt);
        }
    }//GEN-LAST:event_formMouseReleased

    private void jcomboIgraciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcomboIgraciActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jcomboIgraciActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        XSSFWorkbook wb = new XSSFWorkbook();
        XSSFSheet ws = wb.createSheet();

        TreeMap<String, Object[]> data = new TreeMap<>();
        TblModelPrikazUcinaka dtm = (TblModelPrikazUcinaka) jtblUcinci.getModel();

        Object[] array = new Object[dtm.getColumnCount()];
        for (int i = 0; i < dtm.getColumnCount(); i++) {
            array[i] = dtm.getColumnName(i);
        }
        data.put("0", array);

        for (int i = 0; i < dtm.getRowCount(); i++) {
            Object[] niz = new Object[dtm.getColumnCount()];
            for (int j = 0; j < dtm.getColumnCount(); j++) {
                niz[j] = dtm.getValueAt(i, j);
            }
            int rb = i + 1;
            data.put("" + rb, niz);
        }

        Set<String> ids = data.keySet();
        XSSFRow row;
        int rowID = 0;

        for (String key : ids) {
            row = ws.createRow(rowID++);

            Object[] values = data.get(key);
            int cellID = 0;
            for (Object o : values) {
                Cell cell = row.createCell(cellID++);
                cell.setCellValue(o.toString());
            }

        }

        try {
            FileOutputStream out = new FileOutputStream(new File("../Export/"
                    + ((Utakmica) jlistUtakmice.getSelectedValue()).getDomacin().getNaziv()
                    + ((Utakmica) jlistUtakmice.getSelectedValue()).getGost().getNaziv()
                    + ((Utakmica) jlistUtakmice.getSelectedValue()).getDatumOdigravanja().toString() + ".xlsx"));
            wb.write(out);
            out.close();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(FrmPocetna.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(FrmPocetna.class.getName()).log(Level.SEVERE, null, ex);
        }

        JOptionPane.showMessageDialog(this, "Excel fajl uspeno sa?uvan na vaem kompjuteru!",
                "Preuzimanje dovreno", JOptionPane.INFORMATION_MESSAGE);
        try {
            Runtime.getRuntime().exec("cmd.exe /C start ../Export/"
                    + ((Utakmica) jlistUtakmice.getSelectedValue()).getDomacin().getNaziv()
                    + ((Utakmica) jlistUtakmice.getSelectedValue()).getGost().getNaziv()
                    + ((Utakmica) jlistUtakmice.getSelectedValue()).getDatumOdigravanja().toString() + ".xlsx");
            System.out.println("Otvorio");
        } catch (IOException ex) {
            Logger.getLogger(FrmPocetna.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton1ActionPerformed

    /**
     * @param args the command line arguments
     */
    //    public static void main(String args[]) {
    //        /* Set the Nimbus look and feel */
    //        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    //        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
    //         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    //         */
    //        try {
    //            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
    //                if ("Nimbus".equals(info.getName())) {
    //                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
    //                    break;
    //                }
    //            }
    //        } catch (ClassNotFoundException ex) {
    //            java.util.logging.Logger.getLogger(FrmPocetna.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    //        } catch (InstantiationException ex) {
    //            java.util.logging.Logger.getLogger(FrmPocetna.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    //        } catch (IllegalAccessException ex) {
    //            java.util.logging.Logger.getLogger(FrmPocetna.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    //        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
    //            java.util.logging.Logger.getLogger(FrmPocetna.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    //        }
    //        //</editor-fold>
    //        //</editor-fold>
    //
    //        /* Create and display the form */
    //        java.awt.EventQueue.invokeLater(new Runnable() {
    //            public void run() {
    //                new FrmPocetna().setVisible(true);
    //            }
    //        });
    //    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    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.JLabel jLabel9;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenu jMenu5;
    private javax.swing.JMenu jMenu6;
    private javax.swing.JMenu jMenu7;
    private javax.swing.JMenu jMenu8;
    private javax.swing.JMenu jMenu9;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPopupMenu jPopupMenu1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JButton jbtnDodajNoveUcinke;
    private javax.swing.JComboBox jcomboIgraci;
    private javax.swing.JLabel jlblDatum;
    private javax.swing.JLabel jlblDomacin;
    private javax.swing.JLabel jlblDomacinPoeni;
    private javax.swing.JLabel jlblGost;
    private javax.swing.JLabel jlblGostPoeni;
    private javax.swing.JLabel jlblHala;
    private javax.swing.JList jlistUtakmice;
    private javax.swing.JMenu jmenuRadSaKorisnicima;
    private javax.swing.JMenuItem jmiApp;
    private javax.swing.JMenuItem jmiAutor;
    private javax.swing.JMenuItem jmiDodajKosarkasa;
    private javax.swing.JMenuItem jmiDodajTim;
    private javax.swing.JMenuItem jmiDodajTipUcinka;
    private javax.swing.JMenuItem jmiDodajUcinak;
    private javax.swing.JMenuItem jmiDodajUtakmicu;
    private javax.swing.JMenuItem jmiIzmenaKosarkasa;
    private javax.swing.JMenuItem jmiIzmenaTima;
    private javax.swing.JMenuItem jmiObrisiKosarkasa;
    private javax.swing.JMenuItem jmiObrisiTim;
    private javax.swing.JMenuItem jmiPRegledTipova;
    private javax.swing.JMenuItem jmiPronadjiKosarkasa;
    private javax.swing.JMenuItem jmiPronadjiTim;
    private javax.swing.JMenuItem jmiUnosKosarkasa;
    private javax.swing.JMenuItem jmiUnosTima;
    private javax.swing.JMenuItem jmitemDodajUcinak;
    private javax.swing.JMenuItem jmitemDodajUtakmicu;
    private javax.swing.JMenuItem jmitemPronadjiKosarkasa;
    private javax.swing.JMenuItem jmitemPronadjiTim;
    private javax.swing.JPanel jpnlGlavni;
    private javax.swing.JPanel jpnlLevo;
    private javax.swing.JTable jtblUcinci;
    private javax.swing.JTextArea jtxtAreaUcinci;
    // End of variables declaration//GEN-END:variables

    private void maksimizirajDimenzijeForme() {
        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
    }

    private void postaviIkonicu() {
        java.net.URL url = ClassLoader.getSystemResource("forme/ikonica.jpg");
        Toolkit kit = Toolkit.getDefaultToolkit();
        Image myImg = kit.createImage(url);

        this.setIconImage(myImg);
    }

    private void napuniListuUtakmica() {
        DefaultListModel dlm = new DefaultListModel();
        toZahtev.setOperacija(Konstante.VRATI_UTAKMICE);
        toZahtev.setParametar(null);
        KlijentKomunikacija.getInstance().posaljiZahtev(toZahtev);
        try {
            toOdgovor = KlijentKomunikacija.getInstance().primiOdgovor();
        } catch (IOException | ClassNotFoundException ex) {
            Logger.getLogger(FrmIzborUtakmice.class.getName()).log(Level.SEVERE, null, ex);
        }
        if (toOdgovor.getIzuzetak() != null) {
            try {
                throw (Exception) toOdgovor.getIzuzetak();
            } catch (Exception ex) {
                Logger.getLogger(FrmLogovanje.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        List<Utakmica> lista = (List<Utakmica>) toOdgovor.getRezultat();

        for (Utakmica u : lista) {
            dlm.addElement(u);
        }

        jlistUtakmice.setModel(dlm);

        jlistUtakmice.addMouseListener(new MouseListener() {

            @Override
            public void mouseClicked(MouseEvent e) {
                jtxtAreaUcinci.setText("");
                jpnlGlavni.setVisible(true);
                Utakmica izabranaUtakmica = (Utakmica) jlistUtakmice.getSelectedValue();
                //System.out.println("Utakmica: " + izabranaUtakmica.getDomacin() + izabranaUtakmica.getGost());
                jlblDomacin.setText(izabranaUtakmica.getDomacin().getNaziv());
                jlblGost.setText(izabranaUtakmica.getGost().getNaziv());
                jlblDatum.setText(sdf.format(izabranaUtakmica.getDatumOdigravanja()));
                jlblHala.setText(izabranaUtakmica.getDomacin().getNazivHale() + " ("
                        + izabranaUtakmica.getDomacin().getGrad() + " )");
                jlblDomacinPoeni.setText("" + izabranaUtakmica.getPoeniDomacin());
                jlblGostPoeni.setText("" + izabranaUtakmica.getPoeniGost());

                napuniListuIgraca(izabranaUtakmica);

            }

            @Override
            public void mousePressed(MouseEvent e) {
                // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            @Override
            public void mouseEntered(MouseEvent e) {
                // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            @Override
            public void mouseExited(MouseEvent e) {
                //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            private void napuniListuIgraca(Utakmica izabranaUtakmica) {
                List<Kosarkas> kosarkasi = new ArrayList<>();
                DefaultComboBoxModel dlm = new DefaultComboBoxModel();
                toZahtev.setOperacija(Konstante.VRATI_KOSARKASE_IZ_JEDNOG_TIMA);
                toZahtev.setParametar(izabranaUtakmica.getDomacin());
                KlijentKomunikacija.getInstance().posaljiZahtev(toZahtev);
                try {
                    toOdgovor = KlijentKomunikacija.getInstance().primiOdgovor();
                } catch (IOException | ClassNotFoundException ex) {
                    Logger.getLogger(FrmDodajUcinak.class.getName()).log(Level.SEVERE, null, ex);
                }
                if (toOdgovor.getIzuzetak() != null) {
                    try {
                        throw (Exception) toOdgovor.getIzuzetak();
                    } catch (Exception ex) {
                        Logger.getLogger(FrmLogovanje.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }

                for (Kosarkas k : (List<Kosarkas>) toOdgovor.getRezultat()) {
                    dlm.addElement(k);
                    kosarkasi.add(k);
                }

                toZahtev.setOperacija(Konstante.VRATI_KOSARKASE_IZ_JEDNOG_TIMA);
                toZahtev.setParametar(izabranaUtakmica.getGost());
                KlijentKomunikacija.getInstance().posaljiZahtev(toZahtev);
                try {
                    toOdgovor = KlijentKomunikacija.getInstance().primiOdgovor();
                } catch (IOException | ClassNotFoundException ex) {
                    Logger.getLogger(FrmDodajUcinak.class.getName()).log(Level.SEVERE, null, ex);
                }
                if (toOdgovor.getIzuzetak() != null) {
                    try {
                        throw (Exception) toOdgovor.getIzuzetak();
                    } catch (Exception ex) {
                        Logger.getLogger(FrmLogovanje.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }

                for (Kosarkas k : (List<Kosarkas>) toOdgovor.getRezultat()) {
                    dlm.addElement(k);
                    kosarkasi.add(k);
                }

                jcomboIgraci.setModel(dlm);

                TblModelPrikazUcinaka model = new TblModelPrikazUcinaka(vratiTipoveUcinaka(),
                        vratiSveUcinkeSaUtakmice(kosarkasi, izabranaUtakmica), kosarkasi);
                jtblUcinci.setModel(model);

                jcomboIgraci.addActionListener(new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {
                        jtxtAreaUcinci.setText("");
                        Utakmica u = (Utakmica) jlistUtakmice.getSelectedValue();
                        Kosarkas k = (Kosarkas) jcomboIgraci.getSelectedItem();
                        unesiVrednostiUTekstualnoPolje(u, k);
                    }

                    private void unesiVrednostiUTekstualnoPolje(Utakmica u, Kosarkas k) {
                        toZahtev.setOperacija(Konstante.VRATI_UCINKE_ODREDJENOG_IGRACA_NA_UTAKMICI);
                        Object[] niz = new Object[2];
                        niz[0] = k;
                        niz[1] = u;
                        toZahtev.setParametar(niz);
                        KlijentKomunikacija.getInstance().posaljiZahtev(toZahtev);
                        try {
                            toOdgovor = KlijentKomunikacija.getInstance().primiOdgovor();
                        } catch (IOException | ClassNotFoundException ex) {
                            Logger.getLogger(FrmPocetna.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        if (toOdgovor.getIzuzetak() != null) {
                            try {
                                throw (Exception) toOdgovor.getIzuzetak();
                            } catch (Exception ex) {
                                Logger.getLogger(FrmLogovanje.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }

                        List<UcinakKosarkasa> lista = (List<UcinakKosarkasa>) toOdgovor.getRezultat();
                        List<UcinakKosarkasa> jedinstvenaListaUcinaka = new ArrayList<>();
                        if (lista == null || lista.isEmpty()) {
                            jtxtAreaUcinci.setText("\n  Nema zabeleenih u?inaka za ovog koarkaa!");
                            return;
                        }
                        for (UcinakKosarkasa ucinak : lista) {
                            //System.out.println( ucinak.getKosarkas().getPrezime()+" # "+ucinak.getTipUcinka().getNaziv() + ": " + ucinak.getVrednost() + "\n");
                            if (!jedinstvenaListaUcinaka.contains(ucinak)) {
                                jedinstvenaListaUcinaka.add(ucinak);
                            } else {
                                for (UcinakKosarkasa ju : jedinstvenaListaUcinaka) {
                                    if (ju.equals(ucinak)) {
                                        ju.setVrednost(ju.getVrednost() + ucinak.getVrednost());
                                        break;
                                    }
                                }
                            }
                        }
                        jtxtAreaUcinci.append("\n");
                        for (UcinakKosarkasa ucinak : jedinstvenaListaUcinaka) {
                            jtxtAreaUcinci.append(
                                    " " + ucinak.getTipUcinka().getNaziv() + ": " + ucinak.getVrednost() + "\n");
                        }
                    }
                });
            }

        });

    }

    private void showPopupMenu(MouseEvent e) {
        jPopupMenu1.show(this, e.getX(), e.getY());
    }

    private List<TipUcinka> vratiTipoveUcinaka() {
        toZahtev.setOperacija(Konstante.VRATI_TIPOVE_UCINAKA);
        toZahtev.setParametar(null);
        KlijentKomunikacija.getInstance().posaljiZahtev(toZahtev);
        try {
            toOdgovor = KlijentKomunikacija.getInstance().primiOdgovor();
        } catch (IOException | ClassNotFoundException ex) {
            Logger.getLogger(FrmDodajUcinak.class.getName()).log(Level.SEVERE, null, ex);
        }
        if (toOdgovor.getIzuzetak() != null) {
            try {
                throw (Exception) toOdgovor.getIzuzetak();
            } catch (Exception ex) {
                Logger.getLogger(FrmLogovanje.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        return (List<TipUcinka>) toOdgovor.getRezultat();
    }

    private List<UcinakKosarkasa> vratiSveUcinkeSaUtakmice(List<Kosarkas> kosarkasi, Utakmica u) {
        List<UcinakKosarkasa> ucinci = new ArrayList<>();
        for (Kosarkas kosarkas : kosarkasi) {
            toZahtev.setOperacija(Konstante.VRATI_UCINKE_ODREDJENOG_IGRACA_NA_UTAKMICI);
            Object[] niz = new Object[2];
            niz[0] = kosarkas;
            niz[1] = u;
            toZahtev.setParametar(niz);
            KlijentKomunikacija.getInstance().posaljiZahtev(toZahtev);
            try {
                toOdgovor = KlijentKomunikacija.getInstance().primiOdgovor();
            } catch (IOException | ClassNotFoundException ex) {
                Logger.getLogger(FrmDodajUcinak.class.getName()).log(Level.SEVERE, null, ex);
            }
            if (toOdgovor.getIzuzetak() != null) {
                try {
                    throw (Exception) toOdgovor.getIzuzetak();
                } catch (Exception ex) {
                    Logger.getLogger(FrmLogovanje.class.getName()).log(Level.SEVERE, null, ex);
                }
            }

            List<UcinakKosarkasa> lista = (List<UcinakKosarkasa>) toOdgovor.getRezultat();
            List<UcinakKosarkasa> jedinstvenaListaUcinaka = new ArrayList<>();

            for (UcinakKosarkasa ucinak : lista) {
                if (!jedinstvenaListaUcinaka.contains(ucinak)) {
                    jedinstvenaListaUcinaka.add(ucinak);
                } else {
                    for (UcinakKosarkasa ju : jedinstvenaListaUcinaka) {
                        if (ju.equals(ucinak)) {
                            ju.setVrednost(ju.getVrednost() + ucinak.getVrednost());
                            break;
                        }
                    }
                }
            }

            for (UcinakKosarkasa ucinakIgraca : jedinstvenaListaUcinaka) {
                ucinci.add(ucinakIgraca);
            }

        }
        for (UcinakKosarkasa uc : ucinci) {
            // System.out.println(uc.getKosarkas()+":"+uc.getTipUcinka()+":"+uc.getVrednost());
        }
        return ucinci;
    }

}