Advertisement
Lauda

projekat oisisi

Jan 27th, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 301.96 KB | None | 0 0
  1. package gui.actions;
  2.  
  3. import gui.dialogs.GDialog;
  4. import gui.handlers.InputHandler;
  5.  
  6. import java.awt.Color;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9.  
  10. import javax.swing.JComboBox;
  11. @SuppressWarnings("rawtypes")
  12. public class MyActionListener implements ActionListener {
  13.     private final int num;
  14.    
  15.     public MyActionListener(final int val) {
  16.         super();
  17.         this.num = val;
  18.     }
  19.    
  20.     public MyActionListener() {
  21.         super();
  22.         this.num = 0;
  23.     }
  24.  
  25.     @Override
  26.     public void actionPerformed(ActionEvent e) {
  27.         if (e.getSource() instanceof JComboBox) {
  28.             InputHandler ih = InputHandler.getInstance();
  29.             JComboBox cmb = (JComboBox) e.getSource();
  30.             Object selected = cmb.getSelectedItem();
  31.             if (selected.toString().equals(ih.getCmbDefaultValue())) {
  32.                 cmb.setBackground(Color.RED);
  33.                 java.awt.Toolkit.getDefaultToolkit().beep(); // Malo estetike          
  34.                
  35.                 if (num == 0)
  36.                     ih.setCmbOk(false);
  37.                 else
  38.                     ih.setCmbOkMP(num, false);     
  39.             }
  40.             else {
  41.                 if (num == 0)
  42.                     ih.setCmbOk(true);
  43.                 else
  44.                     ih.setCmbOkMP(num, true);      
  45.                
  46.                 cmb.setBackground(null);
  47.             }
  48.         }
  49.        
  50.         if (e.getSource() instanceof GDialog) {
  51.             GDialog gd = (GDialog)e.getSource();
  52.             gd.setVisible(true);
  53.         }
  54.     }
  55.  
  56. }
  57.  
  58. package gui.actions;
  59.  
  60. import gui.handlers.InputHandler;
  61.  
  62. import java.awt.event.ActionEvent;
  63. import java.awt.event.ActionListener;
  64.  
  65. import javax.swing.JComboBox;
  66. import javax.swing.JTextField;
  67.  
  68. import model.data.Piva;
  69. /*
  70. Piva pPivo1 = (panelDetailDodavanje.getCmbProdatoPivo1().isEnabled()) ? (Piva)panelDetailDodavanje.getCmbProdatoPivo1().getSelectedItem() : null;
  71. Piva pPivo2 = (panelDetailDodavanje.getCmbProdatoPivo2().isEnabled()) ? (Piva)panelDetailDodavanje.getCmbProdatoPivo2().getSelectedItem() : null;
  72. Piva pPivo3 = (panelDetailDodavanje.getCmbProdatoPivo3().isEnabled()) ? (Piva)panelDetailDodavanje.getCmbProdatoPivo3().getSelectedItem() : null;
  73.  
  74. Date datum = panelDetailDodavanje.getDatum().getDate();
  75. int iznos = (pPivo1 != null) ? Integer.parseInt(pPivo1.getCena()) : 0;
  76. iznos += (pPivo2 != null) ? Integer.parseInt(pPivo2.getCena()) : 0;
  77. iznos += (pPivo3 != null) ? Integer.parseInt(pPivo3.getCena()) : 0;
  78.  
  79. String ukupanIznos = Integer.toString(iznos);
  80.  
  81. panelDetailDodavanje.getTxtUkupanIznos().setText(Integer.toString(iznos));
  82. */
  83. public class MyCMBListener implements ActionListener {
  84.     private final JTextField txtCena;
  85.    
  86.  
  87.     public MyCMBListener(JTextField txtCena) {
  88.         super();
  89.         this.txtCena = txtCena;
  90.     }
  91.    
  92.    
  93.     public MyCMBListener() {
  94.         super();
  95.         this.txtCena = null;
  96.     }
  97.  
  98.  
  99.     @Override
  100.     public void actionPerformed(ActionEvent e) {
  101.         // TODO Auto-generated method stub
  102.         if (e.getSource() instanceof JComboBox) {
  103.             InputHandler ih = InputHandler.getInstance();
  104.             JComboBox cmb = (JComboBox) e.getSource();
  105.             Piva selected = cmb.isEnabled() ? (Piva)cmb.getSelectedItem() : null;
  106.            
  107.             // PLAC MAJKE BOZIJE....
  108.             double strCena = (txtCena != null) ? Double.parseDouble(txtCena.getText()) : 0;
  109.             double cenaPiva = (selected != null) ? Double.parseDouble(selected.getCena()) : 0;
  110.             double popust = (ih.isPopust()) ? ih.getPopustVal() : 0;
  111.             double iznos = cenaPiva - (cenaPiva * (popust / 100));
  112.             iznos = iznos + strCena;
  113.             System.out.println("cenaPiva: " + cenaPiva + " | popust: " + popust + " | iznos: " + iznos);
  114. /*
  115.             ih.setPopustVal(20.0);
  116.             ih.setPopust(true);
  117.             */
  118.            
  119.            
  120.         /*
  121.           100*10%
  122.             100* .10= 10
  123.             100-10=90  
  124.          */
  125.            
  126.        
  127.            
  128.     //      double iznos = (txtCena != null) ? Double.parseDouble(txtCena.getText()) : 0;
  129.     //      iznos += (selected != null) ? Double.parseDouble(selected.getCena()) : 0;
  130.     //      iznos = iznos - (iznos * ((popust != 0) ? popust / 100 : 0));
  131.             if (ih.isPopust())
  132.                 System.out.println("Popust u toku!");
  133.             else
  134.                 System.out.println("Popust nije u toku!");
  135.            
  136.         //  iznos = Math.round(iznos * 100.0) / 100.0;
  137.             txtCena.setText(Double.toString(iznos));
  138.             // cmb.setEnabled(false);
  139.            
  140.         }
  141.        
  142.     }
  143. }
  144. package gui.actions;
  145.  
  146. import java.util.Calendar;
  147. import java.util.Date;
  148.  
  149. import org.freixas.jcalendar.DateEvent;
  150. import org.freixas.jcalendar.DateListener;
  151. import org.freixas.jcalendar.JCalendar;
  152. import org.freixas.jcalendar.JCalendarCombo;
  153.  
  154. public class MyDateListener implements DateListener {
  155.  
  156.     @Override
  157.     public void dateChanged(DateEvent e) {
  158.         // TODO Auto-generated method stub
  159.         if (e.getSource() instanceof JCalendar || e.getSource() instanceof JCalendarCombo) {
  160.             Calendar c = e.getSelectedDate();
  161.             Date now = new Date();
  162.  
  163.             if (c != null) {
  164.                 System.out.println(c.getTime());
  165.             System.out.println(e.getSource().getClass().getName());
  166.             }
  167.             else
  168.                 System.out.println("No time selected.");
  169.         }
  170.     }
  171.  
  172. }
  173. package gui.actions;
  174.  
  175. import java.awt.Color;
  176. import java.awt.event.FocusEvent;
  177. import java.awt.event.FocusListener;
  178.  
  179. import javax.swing.JComboBox;
  180. import javax.swing.JTextField;
  181.  
  182. public class MyFocusListener implements FocusListener {
  183.  
  184.     @Override
  185.     public void focusGained(FocusEvent e) {
  186.         // TODO Auto-generated method stub
  187.        
  188.         if (e.getSource() instanceof JTextField) {
  189.             JTextField txtf = (JTextField)e.getComponent();
  190.             txtf.setBackground(Color.WHITE);
  191.         }
  192.        
  193.         if (e.getSource() instanceof JComboBox) {
  194.             @SuppressWarnings("rawtypes")
  195.             JComboBox cmb = (JComboBox) e.getComponent();
  196.             cmb.setBackground(null);
  197.         }
  198.        
  199.         return;
  200.        
  201.     }
  202.  
  203.     @Override
  204.     public void focusLost(FocusEvent e) {
  205.         // TODO Auto-generated method stub
  206.        
  207.     }
  208.  
  209. }
  210. package gui.actions;
  211.  
  212. import gui.handlers.InputHandler;
  213.  
  214. import java.awt.event.KeyEvent;
  215. import java.awt.event.KeyListener;
  216.  
  217. import javax.swing.JTextField;
  218.  
  219. public class MyKeyListener implements KeyListener {
  220.     private final int type;
  221.     private final int custom_len;
  222.     private final char separator;
  223.    
  224.     public MyKeyListener(final int val, final int val2, final char val3) {
  225.         super();
  226.         this.type = val;
  227.         this.custom_len = val2;
  228.         this.separator = val3;
  229.     }
  230.    
  231.     public MyKeyListener(final int val, final int val2) {
  232.         super();
  233.         this.type = val;
  234.         this.custom_len = val2;
  235.         this.separator = 0;
  236.     }
  237.    
  238.     public MyKeyListener(final int val) {
  239.         super();
  240.         this.type = val;
  241.         this.custom_len = 0;
  242.         this.separator = 0;
  243.     }
  244.        
  245. /*
  246. * type == 1 :: (Unos do 30 karaktera string) - InputHandler.getMaxInputLenStr()
  247. * type == 2 :: (Unos do 30 karaktera int) - InputHandler.getMaxInputLenStr()
  248. * type == 3 :: (Unos do 3 karaktera string) - InputHandler.getMinInputLenStr()
  249. * type == 4 :: (Unos do 3 karaktera int) - InputHandler.getMinInputLenStr()
  250. * type == 5 :: RegEx (todo)
  251. * type == 6 :: Specijalni Znakovi (todo)
  252. * type == 7 :: Digit-only [custom len]
  253. * type == 8 :: String [custom len]
  254. * type == 9 :: Telefon (Specijalan slucaj kada je potrebno samo da detektuje brojeve i znak "+")
  255. * type == 10 :: Datum i Vrijeme
  256. * type == 11 :: Digit-Only + Custom length + Number|String Separator
  257. * type == 12 :: String + Custom length + Number|String Separator
  258.  */
  259.  
  260.     @Override
  261.     public void keyTyped(KeyEvent e) {
  262.         if (e.isActionKey() || e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_BACK_SPACE)
  263.             return;
  264.        
  265.         if (e.getSource() instanceof JTextField) {
  266.             JTextField txtf = (JTextField)e.getComponent();
  267.             InputHandler ih = InputHandler.getInstance();
  268.             char c = e.getKeyChar();
  269.            
  270.             switch(type) {
  271.            
  272.             case 1: // Unos do 30 znakova [string]
  273.                 if (txtf.getText().length() > ih.getMaxInputLenStr()) {
  274.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenStr())); 
  275.                 }
  276.                 break;
  277.                
  278.             case 2: // Unos do 30 znakova [int]
  279.                 if (!Character.isDigit(c))
  280.                     e.consume();
  281.                
  282.                 if (txtf.getText().length() > ih.getMaxInputLenStr()) {
  283.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenStr())); 
  284.                 }
  285.                 break;
  286.                
  287.             case 3: // Unos do 3 znaka [string]
  288.                 if (txtf.getText().length() > ih.getMaxInputLenInt()) {
  289.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenInt())); 
  290.                 }
  291.                 break;
  292.                
  293.             case 4: // Unos do 3 karaktera [int]
  294.                 if (!Character.isDigit(c))
  295.                     e.consume();
  296.                
  297.                 if (txtf.getText().length() > ih.getMaxInputLenInt()) {
  298.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenInt())); 
  299.                 }
  300.                 break;
  301.                
  302.             case 5: // Mora nesto ostati i za TODO
  303.                 // RegEx
  304.                 break;
  305.                
  306.             case 6: // Mora nesto ostati i za TODO
  307.                 // Specijalni Znakovi
  308.                 break;
  309.                
  310.             case 7: // Samo int uz custom duzinu unosa
  311.                 if (type == 7 && custom_len > 0) {
  312.                     if (!Character.isDigit(c))
  313.                         e.consume();
  314.                
  315.                     if (txtf.getText().length() >= custom_len) {
  316.                         txtf.setText(txtf.getText().substring(0, custom_len)); 
  317.                     }
  318.                 }
  319.                 break;
  320.                
  321.             case 8: // String uz custom duzinu unosa
  322.                 if (type == 8 && custom_len > 0) {
  323.                     if (txtf.getText().length() > custom_len) {
  324.                         txtf.setText(txtf.getText().substring(0, custom_len)); 
  325.                     }
  326.                 }
  327.                 break;
  328.                
  329.             case 9: // Specijalan slucaj...telefooon!
  330.                 if (!Character.isDigit(c) && c != '+') // Dozvoljeni su samo brojevi i "+" znak zbog tel. broja...
  331.                     e.consume();
  332.                 if (txtf.getText().length() > ih.getMaxInputLenStr()) {
  333.                     txtf.setText(txtf.getText().substring(0, ih.getMaxInputLenStr())); 
  334.                 }
  335.                 break;
  336.                
  337.             case 10: // Datum & Vrijeme
  338.                 break;
  339.                
  340.             case 11: // Digit-Only + Custom length + Number|String Separator
  341.                 if (!Character.isDigit(c) && c != separator)
  342.                     e.consume();
  343.                 if (txtf.getText().length() > custom_len) {
  344.                     txtf.setText(txtf.getText().substring(0, custom_len)); 
  345.                 }
  346.                
  347.                 break;
  348.                
  349.             case 12:
  350.                 // todo...
  351.                 break;
  352.                
  353.                
  354.             default:
  355.                 // Nesto kao poruka neka cisto reda radi...za debug.
  356.                 System.out.println("Nepoznata tip proslijedjen za listener :: MyKeyListener.java");
  357.                 break;
  358.             }
  359.         }
  360.         return;
  361.     }
  362.    
  363.  
  364.     @Override
  365.     public void keyPressed(KeyEvent e) {
  366.         // TODO Auto-generated method stub
  367.     }
  368.  
  369.     @Override
  370.     public void keyReleased(KeyEvent e) {
  371.     }
  372.  
  373. }
  374. package gui.actions;
  375.  
  376. import gui.Frame;
  377. import gui.settings.Config;
  378.  
  379. import java.awt.event.MouseEvent;
  380. import java.awt.event.MouseMotionListener;
  381.  
  382. import javax.swing.JPanel;
  383.  
  384. public class MyMouseListener implements MouseMotionListener {
  385.  
  386.     @Override
  387.     public void mouseDragged(MouseEvent e) {
  388.         // TODO Auto-generated method stub
  389.        
  390.     }
  391.  
  392.     @Override
  393.     public void mouseMoved(MouseEvent e) {
  394.         if (e.getSource() instanceof JPanel) {
  395.             if (Config.getHideToolbar()) {
  396.                 if (e.getY() < Config.getToolbarHideHeight()) {
  397.                     Frame.getInstance().getToolbarPivnica().setVisible(false);
  398.                 //  System.out.println(e.getY() + " TREBA DA SE PRIKAZE!");
  399.                     Frame.getInstance().getToolbarPivnica().setVisible(true);
  400.                 //  System.out.println(e.getComponent().getSize());
  401.                 }
  402.                 else {
  403.                 //   System.out.println("Treba da se sakrije!");
  404.                      Frame.getInstance().getToolbarPivnica().setVisible(false);
  405.                 }
  406.             }
  407.         }
  408.        
  409.     }
  410.  
  411.  
  412. }
  413. package gui.actions;
  414.  
  415. import java.awt.Component;
  416.  
  417. import javax.swing.JTable;
  418. import javax.swing.table.DefaultTableCellRenderer;
  419.  
  420. @SuppressWarnings("serial")
  421. public class PasswordCellRenderer extends DefaultTableCellRenderer {
  422.  
  423.     private static final String mask = "*";
  424.  
  425.     @Override
  426.     public Component getTableCellRendererComponent(JTable arg0, Object arg1, boolean arg2, boolean arg3, int arg4, int arg5) {
  427.         int length = 0;
  428.         if (arg1 instanceof String) {
  429.             length =  ((String) arg1).length();
  430.         } else if (arg1 instanceof char[]) {
  431.             length = ((char[])arg1).length;
  432.         }
  433.         setText(maskIt(length));
  434.         return this;
  435.     }
  436.  
  437.     private String maskIt(int length) {
  438.         if (length > mask.length()) {
  439.             StringBuilder sb = new StringBuilder(length);
  440.             for (int i = 0; i < length; i++) {
  441.                 sb.append('*');
  442.             }
  443.             return sb.toString();
  444.         } else {
  445.             return mask.substring(0, length);
  446.         }
  447.     }
  448. }
  449. package gui.dialogs.b_dialogs;
  450.  
  451. import gui.Frame;
  452. import gui.dialogs.AddUpdateFindDialog;
  453. import gui.dialogs.GDialog;
  454. import gui.dialogs.d_panels.PanelDetailDrzave;
  455. import gui.exceptions.ElementNePostoji;
  456. import gui.exceptions.ElementPostoji;
  457. import gui.handlers.InputHandler;
  458. import gui.tablemodel.DialogTableModel;
  459.  
  460. import java.util.Iterator;
  461.  
  462. import javax.swing.JFrame;
  463. import javax.swing.JOptionPane;
  464. import javax.swing.ListSelectionModel;
  465. import javax.swing.event.ListSelectionEvent;
  466. import javax.swing.event.ListSelectionListener;
  467.  
  468. import model.collections.Restoran;
  469. import model.data.Drzava;
  470. import model.data.NaseljenoMesto;
  471.  
  472. @SuppressWarnings("serial")
  473. public class DialogDrzave extends GDialog {
  474.        
  475.     public DialogDrzave(JFrame parent, boolean b) {
  476.         super(parent, true);
  477.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuRegDrz"));
  478.         panelDetail = new PanelDetailDrzave(StanjeDijaloga.BROWSE);
  479.         tableColumns = new String[3];
  480.         tableColumns[0] = Frame.getInstance().getResourceBundle().getString("lblOznaka");
  481.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblNaziv");
  482.         tableColumns[2] = Frame.getInstance().getResourceBundle().getString("lblGlavniGrad");  
  483.        
  484.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getDrzave());
  485.        
  486.         setLocationRelativeTo(parent);
  487.         initGUI();
  488.        
  489.         // povezivanje selection listenera sa tabelom:
  490.         ListSelectionModel lsm = table.getSelectionModel();
  491.         lsm.addListSelectionListener(new DrzaveSelectionListener());
  492.        
  493.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuRegDrz"));
  494.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  495.        
  496.        
  497.     }
  498.  
  499.     @Override
  500.     public void dodavanje() {
  501.        
  502.         PanelDetailDrzave panelDetailDodavanje = new PanelDetailDrzave(StanjeDijaloga.ADD);
  503.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this, Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuRegDrz"), panelDetailDodavanje);
  504.         addUpdateDialog.setVisible(true);
  505.         InputHandler ih = InputHandler.getInstance();
  506.  
  507.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  508.             String oznaka =  panelDetailDodavanje.getTxtOznakaDrzave().getText();
  509.             String naziv = panelDetailDodavanje.getTxtNazivDrzave().getText();
  510.             NaseljenoMesto glGrad = (NaseljenoMesto) panelDetailDodavanje.getCmbGrad().getSelectedItem();
  511.            
  512.             Drzava nova = new Drzava(oznaka, naziv, glGrad);
  513.            
  514.             try {
  515.                 Restoran.getInstance().getDrzave().addDrzava(nova);
  516.                 tableModel.fireTableDataChanged();
  517.                 for (int i = 0; i < table.getRowCount(); i++) {
  518.                     String kljuc = (String)table.getValueAt(i, 0);
  519.                     if (oznaka.equals(kljuc)) {
  520.                         table.setRowSelectionInterval(i, i);
  521.                         break;
  522.                     }
  523.                 }
  524.             } catch (ElementPostoji e) {
  525.                 JOptionPane.showMessageDialog(DialogDrzave.this, e.getMessage());
  526.             }
  527.         }
  528.         }
  529.    
  530.  
  531.     @Override
  532.     public void izmena() {
  533.         // TODO Auto-generated method stub
  534.         int row = table.getSelectedRow();
  535.        
  536.         if (row == -1) {
  537.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  538.             return;
  539.         }
  540.        
  541.        
  542.         try {
  543.             PanelDetailDrzave panelDetailIzmena = new PanelDetailDrzave(StanjeDijaloga.UPDATE);
  544.            
  545.             String oznaka = (String)table.getValueAt(row, 0);
  546.             Drzava drzava = Restoran.getInstance().getDrzave().getDrzava(oznaka);
  547.            
  548.             panelDetailIzmena.getTxtOznakaDrzave().setText(drzava.getOznaka());
  549.             panelDetailIzmena.getTxtOznakaDrzave().setEditable(false);
  550.             panelDetailIzmena.getTxtNazivDrzave().setText(drzava.getNaziv());
  551.             panelDetailIzmena.getCmbGrad().setSelectedItem(drzava.getGlGrad());
  552.            
  553.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  554.                     Frame.getInstance().getResourceBundle().getString("izmenaDrzave"), panelDetailIzmena);
  555.             addUpdateDialog.setVisible(true);
  556.            
  557.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  558.                 String naziv = panelDetailIzmena.getTxtNazivDrzave().getText();
  559.                 NaseljenoMesto glGrad = (NaseljenoMesto) panelDetailIzmena.getCmbGrad().getSelectedItem();
  560.                 drzava.setNaziv(naziv);
  561.                 drzava.setGlGrad(glGrad);
  562.  
  563.                 tableModel.fireTableDataChanged();
  564.                 for (int i = 0; i < table.getRowCount(); i++) {
  565.                     String kljuc = (String)table.getValueAt(i, 0);
  566.                     if (oznaka.equals(kljuc)) {
  567.                         table.setRowSelectionInterval(i, i);
  568.                         break;
  569.                     }
  570.                 }
  571.             }
  572.            
  573.         } catch (ArrayIndexOutOfBoundsException e1) {
  574.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  575.         } catch (ElementNePostoji e2) {
  576.             // TODO Auto-generated catch block
  577.             e2.printStackTrace();
  578.         }
  579.        
  580.     }
  581.  
  582.     @Override
  583.     public void brisanje() {
  584.         // TODO Auto-generated method stub
  585.         int row = table.getSelectedRow();
  586.        
  587.         if (row == -1) {
  588.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  589.             return;
  590.         }
  591.        
  592.         try {
  593.             String oznaka = (String)table.getValueAt(row, 0);
  594.             Drzava drzava = Restoran.getInstance().getDrzave().getDrzava(oznaka);
  595.            
  596.             Iterator<String> iter = Restoran.getInstance().getNaseljenaMesta().getNaseljenaMestaIterator();
  597.             while (iter.hasNext()) {
  598.                 if (Restoran.getInstance().getNaseljenaMesta().getNaseljenoMesto(iter.next()).getDrzava() == drzava) {
  599.                     JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errEntitetPovezan"));
  600.                     return;
  601.                 }
  602.             }
  603.             iter = Restoran.getInstance().getOrganizacije().getOrganizacijaIterator();
  604.             while (iter.hasNext()) {
  605.                 if (Restoran.getInstance().getOrganizacije().getOrganizacija(iter.next()).getDrzavaOrg() == drzava) {
  606.                     JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errEntitetPovezan"));
  607.                     return;
  608.                 }
  609.             }
  610.            
  611.             iter = Restoran.getInstance().getPivo().getPivoIterator();
  612.             while (iter.hasNext()) {
  613.                 if (Restoran.getInstance().getPivo().getPivo(iter.next()).getPoreklo() == drzava) {
  614.  
  615.                     JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errEntitetPovezan"));
  616.                     return;
  617.                 }
  618.             }
  619.  
  620.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  621.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  622.             if (odg == JOptionPane.YES_OPTION) {
  623.                 Restoran.getInstance().getDrzave().removeDrzava(drzava);
  624.                 tableModel.fireTableDataChanged();
  625.             }
  626.            
  627.         } catch (ArrayIndexOutOfBoundsException e1) {
  628.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  629.         } catch (ElementNePostoji e2) {
  630.             // TODO Auto-generated catch block
  631.             e2.printStackTrace();
  632.         }
  633.        
  634.     }
  635.  
  636.     @Override
  637.     public void pretraga() {
  638.         // TODO Auto-generated method stub
  639.        
  640.     }
  641.    
  642.     class DrzaveSelectionListener implements ListSelectionListener {
  643.         @Override
  644.         public void valueChanged(ListSelectionEvent e) {
  645.    
  646.             if (!e.getValueIsAdjusting()) {
  647.                 int row = table.getSelectedRow();
  648.                 int nrow = table.getRowCount();
  649.                    
  650.                 if (row == -1) // ništa nije selektovano
  651.                     return;
  652.                
  653.                 String oznakaDrzave = (String) table.getValueAt(row, 0);
  654.                 try {
  655.                     Drzava drzava = Restoran.getInstance().getDrzave().getDrzava(oznakaDrzave);
  656.                     PanelDetailDrzave panelDetailDrzave = (PanelDetailDrzave)panelDetail;
  657.                     panelDetailDrzave.getTxtOznakaDrzave().setText(drzava.getOznaka());
  658.                     panelDetailDrzave.getTxtNazivDrzave().setText(drzava.getNaziv());
  659.                     panelDetailDrzave.getCmbGrad().setSelectedItem(drzava.getGlGrad());
  660.                    
  661.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuRegDrz"));
  662.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  663.    
  664.                 } catch (ElementNePostoji e1) {
  665.                     e1.printStackTrace();
  666.                 }
  667.             }
  668.         }
  669.     }
  670.  
  671. }
  672. package gui.dialogs.b_dialogs;
  673.  
  674. import gui.Frame;
  675. import gui.dialogs.DialogStatusBar;
  676. import gui.exceptions.ElementNePostoji;
  677. import gui.exceptions.ElementPostoji;
  678. import gui.tablemodel.DialogTableModel;
  679.  
  680. import java.awt.BorderLayout;
  681. import java.awt.Color;
  682. import java.awt.Dimension;
  683. import java.awt.FlowLayout;
  684. import java.awt.event.ActionEvent;
  685. import java.awt.event.ActionListener;
  686. import java.util.Date;
  687. import java.util.Iterator;
  688.  
  689. import javax.swing.JComboBox;
  690. import javax.swing.JDialog;
  691. import javax.swing.JFrame;
  692. import javax.swing.JLabel;
  693. import javax.swing.JPanel;
  694. import javax.swing.JScrollPane;
  695. import javax.swing.JTable;
  696. import javax.swing.ListSelectionModel;
  697. import javax.swing.table.DefaultTableModel;
  698.  
  699. import model.collections.Racun;
  700. import model.collections.Restoran;
  701. import model.data.Dogadjaji;
  702.  
  703. @SuppressWarnings("serial")
  704. public class DialogIzvjestaj extends JDialog {
  705.     Racun racun = new Racun();
  706.     protected JTable table;
  707.     protected JPanel panTable;
  708.     protected JFrame parent;
  709.     protected String[] tableColumns;
  710.     protected JComboBox cmbDogadjaji;
  711.     protected DialogStatusBar statusbar;
  712.    
  713.     public DialogIzvjestaj(JFrame parent, boolean b) {
  714.         super(parent, true);
  715.         this.parent = parent;
  716.         initGUI();
  717.     }
  718.    
  719.     @SuppressWarnings("unchecked")
  720.     protected void initGUI() {
  721.         setSize(550, 300);
  722.         setLocationRelativeTo(parent);
  723.         setResizable(false);
  724.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuIzvjestaj"));
  725.        
  726.         Dimension lblDimension = new Dimension(200,20);
  727.         JPanel panDogadjaji = new JPanel(new FlowLayout(FlowLayout.LEFT));
  728.         JLabel lblDogadjaj = new JLabel(Frame.getInstance().getResourceBundle().getString("mnuDogadjaj"));
  729.         lblDogadjaj.setPreferredSize(lblDimension);
  730.         cmbDogadjaji = new JComboBox();
  731.         //cmbDogadjaji.addItem("--");
  732.         Iterator<String> iter = Restoran.getInstance().getDogadjaj().getDogadjajterator();
  733.         while(iter.hasNext()) {
  734.             try {
  735.                 cmbDogadjaji.addItem(Restoran.getInstance().getDogadjaj().getDogadjaj(iter.next()));
  736.             } catch (ElementNePostoji e) {
  737.                 // TODO Auto-generated catch block
  738.                 e.printStackTrace();
  739.             }
  740.         }
  741.        
  742.         panDogadjaji.add(lblDogadjaj);
  743.         panDogadjaji.add(cmbDogadjaji);
  744.         add(panDogadjaji, BorderLayout.NORTH);
  745.  
  746.         DefaultTableModel tableModel = new DefaultTableModel();    
  747.         table = new JTable(tableModel);
  748.         table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
  749.         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  750.  
  751.         tableColumns = new String[6];
  752.         tableColumns[0] = "ID";
  753.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblProdatoPivo") + "#1";
  754.         tableColumns[2] = Frame.getInstance().getResourceBundle().getString("lblProdatoPivo") + "#2";
  755.         tableColumns[3] = Frame.getInstance().getResourceBundle().getString("lblProdatoPivo") + "#3";
  756.         tableColumns[4] = Frame.getInstance().getResourceBundle().getString("lblDate");
  757.         tableColumns[5] = Frame.getInstance().getResourceBundle().getString("lblUkupanIznos");
  758.        
  759.        
  760.         panTable = new JPanel(new BorderLayout());
  761.         panTable.setBackground(Color.WHITE);
  762.         panTable.add(new JScrollPane(table), BorderLayout.CENTER);
  763.         add(panTable, BorderLayout.CENTER);
  764.        
  765.         statusbar = new DialogStatusBar(); 
  766.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuDogadjaj"));
  767.         statusbar.setDialogStatusBar2(Frame.getInstance().getResourceBundle().getString("lblNemaZapisa"));
  768.         statusbar.setDialogStatusBar3(Frame.getInstance().getResourceBundle().getString("lblUkupnoZapisa") + " " + table.getRowCount());
  769.         add(statusbar, BorderLayout.SOUTH);
  770.  
  771.         refreshTable();
  772. }
  773.  
  774.     protected void refreshTable() {
  775.  
  776.        
  777.         cmbDogadjaji.addActionListener(new ActionListener() {
  778.            
  779.             @Override
  780.             public void actionPerformed(ActionEvent e) {
  781.                 // TODO Auto-generated method stub
  782.                 racun.clearMap();
  783.                 String key = "";
  784.                 Dogadjaji dogadjaj = (Dogadjaji)cmbDogadjaji.getSelectedItem();
  785.                 Date vP = dogadjaj.getVrijemeP();
  786.                 Date vZ = dogadjaj.getVrijemeZ();
  787.                
  788.                 Iterator<String> itr = Restoran.getInstance().getRacun().getRacunIterator();
  789.                 while(itr.hasNext()) {
  790.                     try {
  791.                         key = Restoran.getInstance().getRacun().getRacun(itr.next()).getKey();
  792.                         Date datumRacuna = Restoran.getInstance().getRacun().getRacun(key).getDatum();
  793.                         if(datumRacuna.after(vP) && datumRacuna.before(vZ)) {
  794.                                 try {
  795.                                     racun.addRacun(Restoran.getInstance().getRacun().getRacun(key));
  796.                                 } catch (ElementPostoji e2) {
  797.                                     // TODO Auto-generated catch block
  798.                                     e2.printStackTrace();
  799.                                 }
  800.                         }
  801.                     } catch (ElementNePostoji e3) {
  802.                         // TODO Auto-generated catch block
  803.                         e3.printStackTrace();
  804.                     }
  805.                 }
  806.                
  807.                 DialogTableModel model = new DialogTableModel(tableColumns, racun);
  808.                 table.setModel(model);
  809.                 model.fireTableDataChanged();
  810.                
  811.                 statusbar.setDialogStatusBar1(cmbDogadjaji.getSelectedItem().toString());
  812.                 statusbar.setDialogStatusBar3(Frame.getInstance().getResourceBundle().getString("lblUkupnoZapisa") + " " + table.getRowCount());
  813.                 if (table.getRowCount() == 0) {
  814.                     statusbar.setDialogStatusBar2(Frame.getInstance().getResourceBundle().getString("lblNemaZapisa"));
  815.                 }
  816.                 else {
  817.                     statusbar.setDialogStatusBar2(null);
  818.                 }
  819.                
  820.             }
  821.         });
  822.     }
  823. }
  824. package gui.dialogs.b_dialogs;
  825.  
  826. import gui.Frame;
  827. import gui.actions.PasswordCellRenderer;
  828. import gui.dialogs.AddUpdateFindDialog;
  829. import gui.dialogs.GDialog;
  830. import gui.dialogs.d_panels.PanelDetailKorisnici;
  831. import gui.exceptions.ElementNePostoji;
  832. import gui.exceptions.ElementPostoji;
  833. import gui.handlers.InputHandler;
  834. import gui.tablemodel.DialogTableModel;
  835.  
  836. import javax.swing.JFrame;
  837. import javax.swing.JOptionPane;
  838. import javax.swing.ListSelectionModel;
  839. import javax.swing.event.ListSelectionEvent;
  840. import javax.swing.event.ListSelectionListener;
  841.  
  842. import model.collections.Restoran;
  843. import model.data.Korisnik;
  844. import model.data.Zaposleni;
  845.  
  846. @SuppressWarnings("serial")
  847. public class DialogKorisnici extends GDialog {
  848.  
  849.     public DialogKorisnici(JFrame parent, boolean b) {
  850.         super(parent, true);
  851.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuKorisnici"));
  852.         panelDetail = new PanelDetailKorisnici(StanjeDijaloga.BROWSE);
  853.         tableColumns = new String[8];          
  854.         tableColumns[0] = Frame.getInstance().getResourceBundle().getString("lblUsername");
  855.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblPassword");
  856.         tableColumns[2] = Frame.getInstance().getResourceBundle().getString("lblPrezime");
  857.         tableColumns[3] = Frame.getInstance().getResourceBundle().getString("lblIme");
  858.         tableColumns[4] = Frame.getInstance().getResourceBundle().getString("lblGodinaRegistracije");
  859.         tableColumns[5] = Frame.getInstance().getResourceBundle().getString("lblStatus");
  860.         tableColumns[6] = Frame.getInstance().getResourceBundle().getString("lblAdministrator");
  861.         tableColumns[7] = Frame.getInstance().getResourceBundle().getString("lblZaposleni");
  862.        
  863.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getKorisnici());
  864.        
  865.         setLocationRelativeTo(parent);
  866.         initGUI();
  867.        
  868.         ListSelectionModel lsm = table.getSelectionModel();
  869.         lsm.addListSelectionListener(new KorisniciSelectionListener());
  870.  
  871.         table.getColumnModel().getColumn(1).setCellRenderer(new PasswordCellRenderer());
  872.        
  873.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuKorisnici"));
  874.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  875.        
  876.         Frame.getInstance().changeOptionPaneLanguage();
  877.  
  878.     }
  879.  
  880.     @Override
  881.     public void dodavanje() {
  882.         PanelDetailKorisnici panelDetailDodavanje = new PanelDetailKorisnici(StanjeDijaloga.ADD);
  883.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  884.                 Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuKorisnici"), panelDetailDodavanje);
  885.         addUpdateDialog.setVisible(true);
  886.         InputHandler ih = InputHandler.getInstance();
  887.        
  888.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  889.             String korisnickoIme = panelDetailDodavanje.getTxtKorisnickoIme().getText();
  890.             String lozinka = panelDetailDodavanje.getTxtLozinkaStr();
  891.             Zaposleni zaposleni = (Zaposleni)panelDetailDodavanje.getCmbKZaposleni().getSelectedItem();
  892.             String ime = panelDetailDodavanje.getTxtIme().getText();
  893.             String prezime = panelDetailDodavanje.getTxtPrezime().getText();
  894.             String godReg = panelDetailDodavanje.getTxtGodinaRegistracije().getText();
  895.             // Status status = (Status)panelDetailDodavanje.getCmbStatus().getSelectedItem();
  896.             String status = panelDetailDodavanje.getCmbStatusS();
  897.             Boolean admin = panelDetailDodavanje.getCbAdmin();
  898.            
  899.            
  900.             Korisnik novi = new Korisnik(korisnickoIme, lozinka, zaposleni, ime, prezime, godReg, status, admin);
  901.            
  902.             try {
  903.                 Restoran.getInstance().getKorisnici().addKorisnik(novi);
  904.                 tableModel.fireTableDataChanged();
  905.                 for (int i = 0; i < table.getRowCount(); i++) {
  906.                     String kljuc = (String)table.getValueAt(i, 0);
  907.                     if (korisnickoIme.equals(kljuc)) {
  908.                         table.setRowSelectionInterval(i, i);
  909.                         break;
  910.                     }
  911.                 }
  912.             } catch (ElementPostoji e) {
  913.                 JOptionPane.showMessageDialog(this, e.getMessage());
  914.             }
  915.         }
  916.     }
  917.  
  918.     @Override
  919.     public void izmena() {
  920.         // TODO Auto-generated method stub
  921.         int row = table.getSelectedRow();
  922.        
  923.         if (row == -1) {
  924.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  925.             return;
  926.         }
  927.        
  928.         try {
  929.             PanelDetailKorisnici panelDetailIzmena = new PanelDetailKorisnici(StanjeDijaloga.UPDATE);
  930.            
  931.             String imeKorisnika = (String)table.getValueAt(row, 0);
  932.             System.out.println(imeKorisnika);
  933.             Korisnik korisnik = Restoran.getInstance().getKorisnici().getKorisnik(imeKorisnika);
  934.            
  935.             panelDetailIzmena.getTxtKorisnickoIme().setText(korisnik.getUser());
  936.             panelDetailIzmena.getTxtKorisnickoIme().setEditable(false);
  937.             panelDetailIzmena.getTxtLozinka().setText(korisnik.getLozinka());
  938.             panelDetailIzmena.getCmbKZaposleni().setSelectedItem(korisnik.getZaposleni());
  939.             panelDetailIzmena.getTxtIme().setText(korisnik.getIme());
  940.             panelDetailIzmena.getTxtPrezime().setText(korisnik.getPrezime());
  941.             panelDetailIzmena.getTxtGodinaRegistracije().setText(korisnik.getGodReg());
  942.             panelDetailIzmena.getCmbStatus().setSelectedItem(korisnik.getStatus());
  943.             panelDetailIzmena.getCbAdministrator().setSelected(korisnik.getAdmin());
  944.    
  945.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  946.                     Frame.getInstance().getResourceBundle().getString("izmenaKorisnika"), panelDetailIzmena);
  947.             addUpdateDialog.setVisible(true);
  948.            
  949.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  950.                 String lozinka = panelDetailIzmena.getTxtLozinkaStr();
  951.                 Zaposleni zaposleni = (Zaposleni)panelDetailIzmena.getCmbKZaposleni().getSelectedItem();
  952.                 String ime = panelDetailIzmena.getTxtIme().getText();
  953.                 String prezime = panelDetailIzmena.getTxtPrezime().getText();
  954.                 String godReg = panelDetailIzmena.getTxtGodinaRegistracije().getText();
  955.                 String status = panelDetailIzmena.getCmbStatusS();
  956.                 Boolean admin = panelDetailIzmena.getCbAdmin();
  957.                
  958.                
  959.                 korisnik.setLozinka(lozinka);
  960.                 korisnik.setZaposleni(zaposleni);
  961.                 korisnik.setIme(ime);
  962.                 korisnik.setPrezime(prezime);
  963.                 korisnik.setGodReg(godReg);
  964.                 korisnik.setStatus(status);
  965.                 korisnik.setAdmin(admin);
  966.                
  967.                
  968.                 tableModel.fireTableDataChanged();
  969.                 for (int i = 0; i < table.getRowCount(); i++) {
  970.                     String kljuc = (String)table.getValueAt(i, 0);
  971.                     if (imeKorisnika.equals(kljuc)) {
  972.                         table.setRowSelectionInterval(i, i);
  973.                         break;
  974.                     }
  975.                 }
  976.             }
  977.            
  978.         } catch (ArrayIndexOutOfBoundsException e1) {
  979.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  980.         } catch (ElementNePostoji e2) {
  981.             // TODO Auto-generated catch block
  982.             e2.printStackTrace();
  983.         }
  984.     }
  985.  
  986.     @Override
  987.     public void brisanje() {
  988.         // TODO Auto-generated method stub
  989.         int row = table.getSelectedRow();
  990.        
  991.         if (row == -1) {
  992.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  993.             return;
  994.         }
  995.        
  996.         try {
  997.             String imeKorisnika = (String)table.getValueAt(row, 0);
  998.             Korisnik korisnik = Restoran.getInstance().getKorisnici().getKorisnik(imeKorisnika);
  999.                    
  1000.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  1001.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  1002.             if (odg == JOptionPane.YES_OPTION) {
  1003.                 Restoran.getInstance().getKorisnici().removeKorisnik(korisnik);
  1004.                 tableModel.fireTableDataChanged();
  1005.             }
  1006.            
  1007.         } catch (ArrayIndexOutOfBoundsException e1) {
  1008.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1009.         } catch (ElementNePostoji e2) {
  1010.             // TODO Auto-generated catch block
  1011.             e2.printStackTrace();
  1012.         }
  1013.        
  1014.     }
  1015.  
  1016.     @Override
  1017.     public void pretraga() {
  1018.         // TODO Auto-generated method stub
  1019.    
  1020.     }
  1021.    
  1022.     class KorisniciSelectionListener implements ListSelectionListener {
  1023.  
  1024.         @Override
  1025.         public void valueChanged(ListSelectionEvent arg0) {
  1026.             // TODO Auto-generated method stub
  1027.             if (!arg0.getValueIsAdjusting()) {
  1028.                 int row = table.getSelectedRow();
  1029.                 int nrow = table.getRowCount();
  1030.                    
  1031.                 /*Ništa nije selektovano*/
  1032.                 if (row == -1)
  1033.                     return;
  1034.                
  1035.                 String imeKorisnika = (String)table.getValueAt(row, 0);
  1036.                 try {
  1037.                     Korisnik korisnik = Restoran.getInstance().getKorisnici().getKorisnik(imeKorisnika);
  1038.                    
  1039.                     PanelDetailKorisnici panelDetailRegistar = (PanelDetailKorisnici)panelDetail;
  1040.                     panelDetailRegistar.getTxtKorisnickoIme().setText(korisnik.getUser());
  1041.                     panelDetailRegistar.getTxtKorisnickoIme().setEditable(false);
  1042.                     panelDetailRegistar.getTxtLozinka().setText(korisnik.getLozinka());
  1043.                     panelDetailRegistar.getCmbKZaposleni().setSelectedItem(korisnik.getZaposleni());
  1044.                     panelDetailRegistar.getTxtIme().setText(korisnik.getIme());
  1045.                     panelDetailRegistar.getTxtPrezime().setText(korisnik.getPrezime());
  1046.                     panelDetailRegistar.getTxtGodinaRegistracije().setText(korisnik.getGodReg());
  1047.                     panelDetailRegistar.getCmbStatus().setSelectedItem(korisnik.getStatus());
  1048.                     panelDetailRegistar.getCbAdministrator().setSelected(korisnik.getAdmin());
  1049.                    
  1050.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuKorisnici"));
  1051.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  1052.                    
  1053.                 } catch (ElementNePostoji e1) {
  1054.                     e1.printStackTrace();
  1055.                 }
  1056.             }
  1057.         }
  1058.        
  1059.     }
  1060.  
  1061. }
  1062. package gui.dialogs.b_dialogs;
  1063.  
  1064. import gui.Frame;
  1065. import gui.dialogs.AddUpdateFindDialog;
  1066. import gui.dialogs.GDialog;
  1067. import gui.dialogs.d_panels.PanelDetailNaseljenaMesta;
  1068. import gui.exceptions.ElementNePostoji;
  1069. import gui.exceptions.ElementPostoji;
  1070. import gui.handlers.InputHandler;
  1071. import gui.tablemodel.DialogTableModel;
  1072.  
  1073. import java.util.Iterator;
  1074. import java.util.ResourceBundle;
  1075.  
  1076. import javax.swing.JFrame;
  1077. import javax.swing.JOptionPane;
  1078. import javax.swing.ListSelectionModel;
  1079. import javax.swing.event.ListSelectionEvent;
  1080. import javax.swing.event.ListSelectionListener;
  1081.  
  1082. import model.collections.Restoran;
  1083. import model.data.Drzava;
  1084. import model.data.NaseljenoMesto;
  1085.  
  1086. @SuppressWarnings("serial")
  1087. public class DialogNaseljenaMesta extends GDialog {
  1088.     private ResourceBundle resourceBundle;
  1089.  
  1090.     public DialogNaseljenaMesta(JFrame parent, boolean b) {
  1091.         super(parent, true);
  1092.  
  1093.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuNasMjesto"));
  1094.         panelDetail = new PanelDetailNaseljenaMesta(StanjeDijaloga.BROWSE);
  1095.         tableColumns = new String[3];
  1096.         tableColumns[0] = Frame.getInstance().getResourceBundle().getString("lblOznaka");
  1097.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblNaziv");
  1098.         tableColumns[2] = Frame.getInstance().getResourceBundle().getString("lblDrzava");
  1099.        
  1100.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getNaseljenaMesta());
  1101.        
  1102.         setLocationRelativeTo(parent);
  1103.         initGUI();
  1104.        
  1105.         ListSelectionModel lsm = table.getSelectionModel();
  1106.         lsm.addListSelectionListener(new NaseljenaMestaSelectionListener());
  1107.        
  1108.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuNasMjesto"));
  1109.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  1110.        
  1111.         Frame.getInstance().changeOptionPaneLanguage();
  1112.     }
  1113.  
  1114.     @Override
  1115.     public void dodavanje() {
  1116.        
  1117.         PanelDetailNaseljenaMesta panelDetailDodavanje = new PanelDetailNaseljenaMesta(StanjeDijaloga.ADD);
  1118.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  1119.                 Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuNasMjesto"), panelDetailDodavanje);
  1120.         addUpdateDialog.setVisible(true);
  1121.         InputHandler ih = InputHandler.getInstance();
  1122.        
  1123.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  1124.             String oznaka =  panelDetailDodavanje.gettxtOznaka().getText();
  1125.             String naziv = panelDetailDodavanje.gettxtNaziv().getText();
  1126.             Drzava drzava = (Drzava)panelDetailDodavanje.getcmbDrzava().getSelectedItem();
  1127.        
  1128.             NaseljenoMesto novo = new NaseljenoMesto(oznaka, naziv, drzava);
  1129.            
  1130.             try {
  1131.                 Restoran.getInstance().getNaseljenaMesta().addNaseljenoMesto(novo);
  1132.                 tableModel.fireTableDataChanged();
  1133.                 for (int i = 0; i < table.getRowCount(); i++) {
  1134.                     String kljuc = (String)table.getValueAt(i, 0);
  1135.                     if (oznaka.equals(kljuc)) {
  1136.                         table.setRowSelectionInterval(i, i);
  1137.                         break;
  1138.                     }
  1139.                 }
  1140.             } catch (ElementPostoji e) {
  1141.                 JOptionPane.showMessageDialog(this, e.getMessage());
  1142.             }
  1143.         }
  1144.  
  1145.         }
  1146.  
  1147.     @Override
  1148.     public void izmena() {
  1149.         // TODO Auto-generated method stub
  1150.         int row = table.getSelectedRow();
  1151.        
  1152.         if (row == -1) {
  1153.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1154.             return;
  1155.         }
  1156.        
  1157.         try {
  1158.             PanelDetailNaseljenaMesta panelDetailIzmena = new PanelDetailNaseljenaMesta(StanjeDijaloga.UPDATE);
  1159.            
  1160.             String oznaka = (String)table.getValueAt(row, 0);
  1161.             NaseljenoMesto naseljenoMesto = Restoran.getInstance().getNaseljenaMesta().getNaseljenoMesto(oznaka);
  1162.            
  1163.             panelDetailIzmena.gettxtOznaka().setText(naseljenoMesto.getOznaka());
  1164.             panelDetailIzmena.gettxtOznaka().setEditable(false);
  1165.             panelDetailIzmena.gettxtNaziv().setText(naseljenoMesto.getNaziv());
  1166.             panelDetailIzmena.getcmbDrzava().setSelectedItem(naseljenoMesto.getDrzava());
  1167.  
  1168.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  1169.                     Frame.getInstance().getResourceBundle().getString("izmenaNaseljenogMesta"), panelDetailIzmena);
  1170.             addUpdateDialog.setVisible(true);
  1171.            
  1172.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  1173.                 String naziv = panelDetailIzmena.gettxtNaziv().getText();
  1174.                 Drzava drzava = (Drzava)panelDetailIzmena.getcmbDrzava().getSelectedItem();
  1175.  
  1176.                 naseljenoMesto.setNaziv(naziv);
  1177.                 naseljenoMesto.setDrzava(drzava);
  1178.  
  1179.                 tableModel.fireTableDataChanged();
  1180.                 for (int i = 0; i < table.getRowCount(); i++) {
  1181.                     String kljuc = (String)table.getValueAt(i, 0);
  1182.                     if (oznaka.equals(kljuc)) {
  1183.                         table.setRowSelectionInterval(i, i);
  1184.                         break;
  1185.                     }
  1186.                 }
  1187.             }
  1188.            
  1189.         } catch (ArrayIndexOutOfBoundsException e1) {
  1190.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1191.         } catch (ElementNePostoji e2) {
  1192.             // TODO Auto-generated catch block
  1193.             e2.printStackTrace();
  1194.         }
  1195.        
  1196.     }
  1197.  
  1198.     @Override
  1199.     public void brisanje() {
  1200.         // TODO Auto-generated method stub
  1201.         int row = table.getSelectedRow();
  1202.        
  1203.         try {
  1204.             String oznaka = (String)table.getValueAt(row, 0);
  1205.             NaseljenoMesto naseljenoMesto = Restoran.getInstance().getNaseljenaMesta().getNaseljenoMesto(oznaka);
  1206.            
  1207.             Iterator<String> iter = Restoran.getInstance().getDrzave().getDrzaveIterator();
  1208.             while (iter.hasNext()) {
  1209.                 if (Restoran.getInstance().getDrzave().getDrzava(iter.next()).getGlGrad() == naseljenoMesto) {
  1210.                     JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errEntitetPovezan"));
  1211.                     return;
  1212.                 }
  1213.             }
  1214.            
  1215.             iter = Restoran.getInstance().getOrganizacije().getOrganizacijaIterator();
  1216.             while (iter.hasNext()) {
  1217.                 if (Restoran.getInstance().getOrganizacije().getOrganizacija(iter.next()).getNasljenoMesto() == naseljenoMesto) {
  1218.                     JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errEntitetPovezan"));
  1219.                     return;
  1220.                 }
  1221.             }
  1222.  
  1223.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  1224.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  1225.             if (odg == JOptionPane.YES_OPTION) {
  1226.                 Restoran.getInstance().getNaseljenaMesta().removeNaseljenoMesto(naseljenoMesto);
  1227.                 tableModel.fireTableDataChanged();
  1228.             }
  1229.            
  1230.         } catch (ArrayIndexOutOfBoundsException e1) {
  1231.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1232.         } catch (ElementNePostoji e2) {
  1233.             // TODO Auto-generated catch block
  1234.             e2.printStackTrace();
  1235.         }
  1236.        
  1237.     }
  1238.  
  1239.     @Override
  1240.     public void pretraga() {
  1241.         // TODO Auto-generated method stub
  1242.        
  1243.     }
  1244.    
  1245.     class NaseljenaMestaSelectionListener implements ListSelectionListener {
  1246.  
  1247.         @Override
  1248.         public void valueChanged(ListSelectionEvent arg0) {
  1249.             // TODO Auto-generated method stub
  1250.             if (!arg0.getValueIsAdjusting()) {
  1251.                 int row = table.getSelectedRow();
  1252.                 int nrow = table.getRowCount();
  1253.                    
  1254.                 /*Ništa nije selektovano*/
  1255.                 if (row == -1)
  1256.                     return;
  1257.                 String oznaka = (String)table.getValueAt(row, 0);
  1258.                 try {
  1259.                     NaseljenoMesto naseljenoMesto = Restoran.getInstance().getNaseljenaMesta().getNaseljenoMesto(oznaka);
  1260.                    
  1261.                     PanelDetailNaseljenaMesta panelDetailRegistar = (PanelDetailNaseljenaMesta)panelDetail;
  1262.                     panelDetailRegistar.gettxtOznaka().setText(naseljenoMesto.getOznaka());
  1263.                     panelDetailRegistar.gettxtNaziv().setText(naseljenoMesto.getNaziv());
  1264.                     panelDetailRegistar.getcmbDrzava().setSelectedItem(naseljenoMesto.getDrzava());
  1265.                    
  1266.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuNasMjesto"));
  1267.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  1268.                    
  1269.                 } catch (ElementNePostoji e1) {
  1270.                     e1.printStackTrace();
  1271.                 }
  1272.             }
  1273.         }
  1274.        
  1275.     }
  1276.  
  1277. }
  1278. package gui.dialogs.b_dialogs;
  1279.  
  1280. import gui.Frame;
  1281. import gui.dialogs.AddUpdateFindDialog;
  1282. import gui.dialogs.GDialog;
  1283. import gui.dialogs.d_panels.PanelDetailOrganizacija;
  1284. import gui.exceptions.ElementNePostoji;
  1285. import gui.exceptions.ElementPostoji;
  1286. import gui.handlers.InputHandler;
  1287. import gui.tablemodel.DialogTableModel;
  1288.  
  1289. import java.util.Iterator;
  1290.  
  1291. import javax.swing.JFrame;
  1292. import javax.swing.JOptionPane;
  1293. import javax.swing.ListSelectionModel;
  1294. import javax.swing.event.ListSelectionEvent;
  1295. import javax.swing.event.ListSelectionListener;
  1296.  
  1297. import model.collections.Restoran;
  1298. import model.data.Drzava;
  1299. import model.data.NaseljenoMesto;
  1300. import model.data.Organizacija;
  1301. import model.data.TipOrganizacije;
  1302.  
  1303. public class DialogOrganizacija extends GDialog {
  1304.    
  1305.     /**
  1306.      *
  1307.      */
  1308.     private static final long serialVersionUID = 1L;
  1309.  
  1310.     public DialogOrganizacija(JFrame parent, boolean b) {
  1311.         super(parent, true);
  1312.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("lblOrganizacija"));
  1313.         panelDetail = new PanelDetailOrganizacija(StanjeDijaloga.BROWSE);
  1314.         tableColumns = new String[9];
  1315.         tableColumns[0] = Frame.getInstance().getResourceBundle().getString("lblOznaka");
  1316.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblNaziv");
  1317.         tableColumns[2] = Frame.getInstance().getResourceBundle().getString("lblMjesto");
  1318.         tableColumns[3] = Frame.getInstance().getResourceBundle().getString("lblDrzava");
  1319.         tableColumns[4] = Frame.getInstance().getResourceBundle().getString("lblAdresa");
  1320.         tableColumns[5] = Frame.getInstance().getResourceBundle().getString("lblEmail");
  1321.         tableColumns[6] = Frame.getInstance().getResourceBundle().getString("lblWww");
  1322.         tableColumns[7] = Frame.getInstance().getResourceBundle().getString("lblTelefon");
  1323.         tableColumns[8] = Frame.getInstance().getResourceBundle().getString("lblTip");
  1324.        
  1325.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getOrganizacije());
  1326.        
  1327.         setLocationRelativeTo(parent);
  1328.         initGUI();
  1329.        
  1330.         ListSelectionModel lsm = table.getSelectionModel();
  1331.         lsm.addListSelectionListener(new OrganizacijeSelectionListener());
  1332.        
  1333.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("lblOrganizacija"));
  1334.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  1335.        
  1336.         Frame.getInstance().changeOptionPaneLanguage();
  1337.     }
  1338.  
  1339.     @Override
  1340.     public void dodavanje() {
  1341.        
  1342.         PanelDetailOrganizacija panelDetailDodavanje = new PanelDetailOrganizacija(StanjeDijaloga.ADD);
  1343.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  1344.                 Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("lblOrganizacija"), panelDetailDodavanje);
  1345.         addUpdateDialog.setVisible(true);
  1346.         InputHandler ih = InputHandler.getInstance();
  1347.        
  1348.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  1349.             String oznaka =  panelDetailDodavanje.getTxtOznaka().getText();
  1350.             String naziv = panelDetailDodavanje.getTxtNaziv().getText();
  1351.             NaseljenoMesto naseljenoMesto = (NaseljenoMesto)panelDetailDodavanje.getCmbMesto().getSelectedItem();
  1352.             Drzava drzavaOrg = (Drzava)panelDetailDodavanje.getCmbDrzava().getSelectedItem();
  1353.             String adresa = panelDetailDodavanje.getTxtAdresa().getText();
  1354.             String email = panelDetailDodavanje.getTxtEmail().getText();
  1355.             String web = panelDetailDodavanje.getTxtWww().getText();
  1356.             String telefon = panelDetailDodavanje.getTxtTelefon().getText();
  1357.             TipOrganizacije tipOrganizacije = (TipOrganizacije)panelDetailDodavanje.getCmbTip().getSelectedItem();
  1358.            
  1359.             Organizacija nova = new Organizacija(oznaka, naziv, naseljenoMesto, drzavaOrg, adresa, email, web, telefon, tipOrganizacije);
  1360.            
  1361.             try {
  1362.                 Restoran.getInstance().getOrganizacije().addOrganizacija(nova);
  1363.                 tableModel.fireTableDataChanged();
  1364.                 for (int i = 0; i < table.getRowCount(); i++) {
  1365.                     String kljuc = (String)table.getValueAt(i, 0);
  1366.                     if (oznaka.equals(kljuc)) {
  1367.                         table.setRowSelectionInterval(i, i);
  1368.                         break;
  1369.                     }
  1370.                 }
  1371.             } catch (ElementPostoji e) {
  1372.                 JOptionPane.showMessageDialog(this, e.getMessage());
  1373.             }
  1374.         }
  1375.     }
  1376.  
  1377.  
  1378.     @Override
  1379.     public void izmena() {
  1380.         // TODO Auto-generated method stub
  1381.         int row = table.getSelectedRow();
  1382.        
  1383.         if (row == -1) {
  1384.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1385.             return;
  1386.         }
  1387.        
  1388.         try {
  1389.             PanelDetailOrganizacija panelDetailIzmena = new PanelDetailOrganizacija(StanjeDijaloga.UPDATE);
  1390.            
  1391.             String oznaka = (String)table.getValueAt(row, 0);
  1392.             Organizacija organizacija = Restoran.getInstance().getOrganizacije().getOrganizacija(oznaka);
  1393.            
  1394.             panelDetailIzmena.getTxtOznaka().setText(organizacija.getOznaka());
  1395.             panelDetailIzmena.getTxtOznaka().setEditable(false);
  1396.             panelDetailIzmena.getTxtNaziv().setText(organizacija.getNaziv());
  1397.             panelDetailIzmena.getCmbMesto().setSelectedItem(organizacija.getNasljenoMesto());
  1398.             panelDetailIzmena.getCmbDrzava().setSelectedItem(organizacija.getDrzavaOrg());
  1399.             panelDetailIzmena.getTxtAdresa().setText(organizacija.getAdresa());
  1400.             panelDetailIzmena.getTxtEmail().setText(organizacija.getEmail());
  1401.             panelDetailIzmena.getTxtWww().setText(organizacija.getWeb());
  1402.             panelDetailIzmena.getTxtTelefon().setText(organizacija.getTelefon());
  1403.             panelDetailIzmena.getCmbTip().setSelectedItem(organizacija.getTipOrganizacije());
  1404.            
  1405.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  1406.                     Frame.getInstance().getResourceBundle().getString("izmenaOrganizacije"), panelDetailIzmena);
  1407.             addUpdateDialog.setVisible(true);
  1408.            
  1409.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  1410.                 String naziv = panelDetailIzmena.getTxtNaziv().getText();
  1411.                 NaseljenoMesto nasljenoMesto = (NaseljenoMesto)panelDetailIzmena.getCmbMesto().getSelectedItem();
  1412.                 Drzava drzavaOrg = (Drzava)panelDetailIzmena.getCmbDrzava().getSelectedItem();
  1413.                 String adresa = panelDetailIzmena.getTxtAdresa().getText();
  1414.                 String email = panelDetailIzmena.getTxtEmail().getText();
  1415.                 String web = panelDetailIzmena.getTxtWww().getText();
  1416.                 String telefon = panelDetailIzmena.getTxtTelefon().getText();
  1417.                 TipOrganizacije tipOrganizacije = (TipOrganizacije)panelDetailIzmena.getCmbTip().getSelectedItem();
  1418.                
  1419.                 organizacija.setNaziv(naziv);
  1420.                 organizacija.setNasljenoMesto(nasljenoMesto);
  1421.                 organizacija.setDrzavaOrg(drzavaOrg);
  1422.                 organizacija.setAdresa(adresa);
  1423.                 organizacija.setEmail(email);
  1424.                 organizacija.setWeb(web);
  1425.                 organizacija.setTelefon(telefon);
  1426.                 organizacija.setTipOrganizacije(tipOrganizacije);
  1427.                
  1428.                 tableModel.fireTableDataChanged();
  1429.                 for (int i = 0; i < table.getRowCount(); i++) {
  1430.                     String kljuc = (String)table.getValueAt(i, 0);
  1431.                     if (oznaka.equals(kljuc)) {
  1432.                         table.setRowSelectionInterval(i, i);
  1433.                         break;
  1434.                     }
  1435.                 }
  1436.             }
  1437.            
  1438.         } catch (ArrayIndexOutOfBoundsException e1) {
  1439.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1440.         } catch (ElementNePostoji e2) {
  1441.             // TODO Auto-generated catch block
  1442.             e2.printStackTrace();
  1443.         }
  1444.        
  1445.     }
  1446.  
  1447.     @Override
  1448.     public void brisanje() {
  1449.         // TODO Auto-generated method stub
  1450.         int row = table.getSelectedRow();
  1451.        
  1452.         if (row == -1) {
  1453.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1454.             return;
  1455.         }
  1456.        
  1457.         try {
  1458.             String oznaka = (String)table.getValueAt(row, 0);
  1459.             Organizacija organizacija = Restoran.getInstance().getOrganizacije().getOrganizacija(oznaka);
  1460.            
  1461.             Iterator<String> iter = Restoran.getInstance().getZaposlenii().getZaposleniIterator();
  1462.             while (iter.hasNext()) {
  1463.                 if (Restoran.getInstance().getZaposlenii().getZaposleni(iter.next()).getOrganizacija() == organizacija) {
  1464.                     JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errEntitetPovezan"));
  1465.                     return;
  1466.                 }
  1467.             }
  1468.  
  1469.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  1470.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  1471.             if (odg == JOptionPane.YES_OPTION) {
  1472.                 Restoran.getInstance().getOrganizacije().removeOrganizacija(organizacija);
  1473.                 tableModel.fireTableDataChanged();
  1474.             }
  1475.            
  1476.         } catch (ArrayIndexOutOfBoundsException e1) {
  1477.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1478.         } catch (ElementNePostoji e2) {
  1479.             // TODO Auto-generated catch block
  1480.             e2.printStackTrace();
  1481.         }
  1482.        
  1483.     }
  1484.  
  1485.     @Override
  1486.     public void pretraga() {
  1487.         // TODO Auto-generated method stub
  1488.        
  1489.     }
  1490.    
  1491.     class OrganizacijeSelectionListener implements ListSelectionListener {
  1492.  
  1493.         @Override
  1494.         public void valueChanged(ListSelectionEvent arg0) {
  1495.             // TODO Auto-generated method stub
  1496.             if (!arg0.getValueIsAdjusting()) {
  1497.                 int row = table.getSelectedRow();
  1498.                 int nrow = table.getRowCount();
  1499.                    
  1500.                 /*Ništa nije selektovano*/
  1501.                 if (row == -1)
  1502.                     return;
  1503.                 String oznaka = (String)table.getValueAt(row, 0);
  1504.                 try {
  1505.                     Organizacija organizacija = Restoran.getInstance().getOrganizacije().getOrganizacija(oznaka);
  1506.                    
  1507.                     PanelDetailOrganizacija panelDetailRegistar = (PanelDetailOrganizacija)panelDetail;
  1508.                     panelDetailRegistar.getTxtOznaka().setText(organizacija.getOznaka());
  1509.                     panelDetailRegistar.getTxtNaziv().setText(organizacija.getNaziv());
  1510.                     panelDetailRegistar.getCmbMesto().setSelectedItem(organizacija.getNasljenoMesto());
  1511.                     panelDetailRegistar.getCmbDrzava().setSelectedItem(organizacija.getDrzavaOrg());
  1512.                     panelDetailRegistar.getTxtAdresa().setText(organizacija.getAdresa());
  1513.                     panelDetailRegistar.getTxtEmail().setText(organizacija.getEmail());
  1514.                     panelDetailRegistar.getTxtWww().setText(organizacija.getWeb());
  1515.                     panelDetailRegistar.getTxtTelefon().setText(organizacija.getTelefon());
  1516.                     panelDetailRegistar.getCmbTip().setSelectedItem(organizacija.getTipOrganizacije());
  1517.                    
  1518.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("lblOrganizacija"));
  1519.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  1520.                    
  1521.                 } catch (ElementNePostoji e1) {
  1522.                     e1.printStackTrace();
  1523.                 }
  1524.             }
  1525.         }
  1526.        
  1527.     }
  1528.  
  1529. }
  1530. package gui.dialogs.b_dialogs;
  1531.  
  1532. import gui.Frame;
  1533. import gui.dialogs.AddUpdateFindDialog;
  1534. import gui.dialogs.GDialog;
  1535. import gui.dialogs.d_panels.PanelDetailPivnicaDogadjaj;
  1536. import gui.exceptions.ElementNePostoji;
  1537. import gui.exceptions.ElementPostoji;
  1538. import gui.handlers.InputHandler;
  1539. import gui.tablemodel.DialogTableModel;
  1540.  
  1541. import java.util.Date;
  1542.  
  1543. import javax.swing.JFrame;
  1544. import javax.swing.JOptionPane;
  1545. import javax.swing.ListSelectionModel;
  1546. import javax.swing.event.ListSelectionEvent;
  1547. import javax.swing.event.ListSelectionListener;
  1548.  
  1549. import model.collections.Restoran;
  1550. import model.data.Dogadjaji;
  1551.  
  1552. @SuppressWarnings("serial")
  1553. public class DialogPivnicaDogadjaj extends GDialog  {
  1554.  
  1555.     public DialogPivnicaDogadjaj(JFrame parent, boolean b) {
  1556.         super(parent, true);
  1557.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuDogadjaj"));
  1558.         panelDetail = new PanelDetailPivnicaDogadjaj(StanjeDijaloga.BROWSE);
  1559.         tableColumns = new String[5];
  1560.         tableColumns[0] = Frame.getInstance().getResourceBundle().getString("lblEventName");
  1561.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblEventStartTime");
  1562.         tableColumns[2] = Frame.getInstance().getResourceBundle().getString("lblEventEndTime");
  1563.         tableColumns[3] = Frame.getInstance().getResourceBundle().getString("lblEventTicketPrice");
  1564.         tableColumns[4] = Frame.getInstance().getResourceBundle().getString("lblEventPopust")+ "[%]";
  1565.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getDogadjaj());
  1566.        
  1567.         setLocationRelativeTo(parent);
  1568.         initGUI();
  1569.        
  1570.         ListSelectionModel lsm = table.getSelectionModel();
  1571.         lsm.addListSelectionListener(new DogadjajSelectionListener());
  1572.  
  1573.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuDogadjaj"));
  1574.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  1575.         Frame.getInstance().changeOptionPaneLanguage();
  1576.     }
  1577.  
  1578.     @Override
  1579.     public void dodavanje() {
  1580.         // TODO Auto-generated method stub
  1581.         InputHandler ih = InputHandler.getInstance();
  1582.         PanelDetailPivnicaDogadjaj panelDetailDodavanje = new PanelDetailPivnicaDogadjaj(StanjeDijaloga.ADD);
  1583.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this, Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuDogadjaj"), panelDetailDodavanje);
  1584.         addUpdateDialog.setVisible(true);
  1585.        
  1586.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  1587.             String nazivDogadjaja = panelDetailDodavanje.getTxtEventName().getText();
  1588.             Date datumPocetka = panelDetailDodavanje.getVrijemePocetka().getDate();
  1589.             Date datumZavrsetka = panelDetailDodavanje.getVrijemeZavrsetka().getDate();
  1590.             String cenaUlaznice = panelDetailDodavanje.getTxtCena().getText();
  1591.             String popust = panelDetailDodavanje.getTxtPopust().getText();
  1592.            
  1593.             Date now = new Date();
  1594.            
  1595.             if (now.after(datumPocetka) && now.before(datumZavrsetka)) {
  1596.                 System.out.println("[Debug]: DialogPivnicaDogadjaj: Popust validan!");
  1597.                 ih.setPopust(true);
  1598.                 ih.setPopustVal(Double.parseDouble(popust));
  1599.             }
  1600.            
  1601.             else {
  1602.                 ih.setPopust(false);
  1603.                 ih.setPopustVal(1);
  1604.                 System.out.println("nema popusta!");
  1605.             }
  1606.            
  1607.             Dogadjaji novi = new Dogadjaji(nazivDogadjaja, cenaUlaznice, popust, datumPocetka, datumZavrsetka);
  1608.            
  1609.             try {
  1610.                 Restoran.getInstance().getDogadjaj().addDogadjaj(novi);
  1611.                 tableModel.fireTableDataChanged();
  1612.                 for (int i = 0; i < table.getRowCount(); i++) {
  1613.                     String kljuc = (String)table.getValueAt(i, 0);
  1614.                     if (nazivDogadjaja.equals(kljuc)) {
  1615.                         table.setRowSelectionInterval(i, i);
  1616.                         break;
  1617.                     }
  1618.                 }
  1619.             } catch (ElementPostoji e) {
  1620.                 JOptionPane.showMessageDialog(this, e.getMessage());
  1621.             }
  1622.            
  1623.         }
  1624.        
  1625.     }
  1626.  
  1627.     @Override
  1628.     public void izmena() {
  1629.         // TODO Auto-generated method stub
  1630.         InputHandler ih = InputHandler.getInstance();
  1631.         int row = table.getSelectedRow();
  1632.        
  1633.         if (row == -1) {
  1634.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1635.             return;
  1636.         }
  1637.        
  1638.         try {
  1639.             PanelDetailPivnicaDogadjaj panelDetailIzmena = new PanelDetailPivnicaDogadjaj(StanjeDijaloga.UPDATE);
  1640.            
  1641.             String nazivDogadjaja = (String)table.getValueAt(row, 0);
  1642.             System.out.println(nazivDogadjaja);
  1643.             Dogadjaji dogadjaji = Restoran.getInstance().getDogadjaj().getDogadjaj(nazivDogadjaja);
  1644.            
  1645.             panelDetailIzmena.getTxtEventName().setText(dogadjaji.getNaziv());
  1646.             panelDetailIzmena.getTxtEventName().setEditable(false);
  1647.             panelDetailIzmena.getVrijemePocetka().setDate(dogadjaji.getVrijemeP());
  1648.             panelDetailIzmena.getVrijemeZavrsetka().setDate(dogadjaji.getVrijemeZ());
  1649.             panelDetailIzmena.getTxtCena().setText(dogadjaji.getCenaUlaznice());
  1650.             panelDetailIzmena.getTxtPopust().setText(dogadjaji.getPopust());
  1651.  
  1652.    
  1653.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  1654.                     Frame.getInstance().getResourceBundle().getString("izmenaDogadjaja"), panelDetailIzmena);
  1655.             addUpdateDialog.setVisible(true);
  1656.            
  1657.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  1658.                 Date vP = panelDetailIzmena.getVrijemePocetka().getDate();
  1659.                 Date vZ = panelDetailIzmena.getVrijemeZavrsetka().getDate();
  1660.                 String cena = panelDetailIzmena.getTxtCena().getText();
  1661.                 String popust = panelDetailIzmena.getTxtPopust().getText();
  1662.                
  1663.                 Date now = new Date();
  1664.                
  1665.                 if (now.after(vP) && now.before(vZ)) {
  1666.                     System.out.println("[Debug]: DialogPivnicaDogadjaj: Popust validan!");
  1667.                     ih.setPopust(true);
  1668.                     ih.setPopustVal(Double.parseDouble(popust));
  1669.                 }
  1670.                
  1671.                 else {
  1672.                     ih.setPopust(false);
  1673.                     ih.setPopustVal(1);
  1674.                     System.out.println("nema popusta!");
  1675.                 }
  1676.                
  1677.  
  1678.                 dogadjaji.setVrijemeP(vP);
  1679.                 dogadjaji.setVrijemeZ(vZ);
  1680.                 dogadjaji.setCenaUlaznice(cena);
  1681.                 dogadjaji.setPopust(popust);
  1682.  
  1683.                 tableModel.fireTableDataChanged();
  1684.                 for (int i = 0; i < table.getRowCount(); i++) {
  1685.                     String kljuc = (String)table.getValueAt(i, 0);
  1686.                     if (nazivDogadjaja.equals(kljuc)) {
  1687.                         table.setRowSelectionInterval(i, i);
  1688.                         break;
  1689.                     }
  1690.                 }
  1691.             }
  1692.            
  1693.         } catch (ArrayIndexOutOfBoundsException e1) {
  1694.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1695.         } catch (ElementNePostoji e2) {
  1696.             // TODO Auto-generated catch block
  1697.             e2.printStackTrace();
  1698.         }
  1699.        
  1700.     }
  1701.  
  1702.     @Override
  1703.     public void brisanje() {
  1704.         // TODO Auto-generated method stub
  1705.         int row = table.getSelectedRow();
  1706.        
  1707.         if (row == -1) {
  1708.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1709.             return;
  1710.         }
  1711.        
  1712.         try {
  1713.             String nazivDogadjaja = (String)table.getValueAt(row, 0);
  1714.             Dogadjaji dogadjaji = Restoran.getInstance().getDogadjaj().getDogadjaj(nazivDogadjaja);
  1715.            
  1716.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  1717.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  1718.             if (odg == JOptionPane.YES_OPTION) {
  1719.                 Restoran.getInstance().getDogadjaj().removeDogadjaj(dogadjaji);
  1720.                 tableModel.fireTableDataChanged();
  1721.             }
  1722.            
  1723.         } catch (ArrayIndexOutOfBoundsException e1) {
  1724.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1725.         } catch (ElementNePostoji e2) {
  1726.             // TODO Auto-generated catch block
  1727.             e2.printStackTrace();
  1728.         }
  1729.        
  1730.     }
  1731.  
  1732.     @Override
  1733.     public void pretraga() {
  1734.         // TODO Auto-generated method stub
  1735.        
  1736.     }
  1737.    
  1738.     class DogadjajSelectionListener implements ListSelectionListener {
  1739.  
  1740.         @Override
  1741.         public void valueChanged(ListSelectionEvent arg0) {
  1742.             // TODO Auto-generated method stub
  1743.             if (!arg0.getValueIsAdjusting()) {
  1744.                 int row = table.getSelectedRow();
  1745.                 int nrow = table.getRowCount();
  1746.                 InputHandler ih = InputHandler.getInstance();
  1747.                    
  1748.                 /*Ništa nije selektovano*/
  1749.                 if (row == -1)
  1750.                     return;
  1751.                
  1752.                 String nazivDogadjaja = (String)table.getValueAt(row, 0);
  1753.                 try {
  1754.                     Dogadjaji dogadjaji = Restoran.getInstance().getDogadjaj().getDogadjaj(nazivDogadjaja);
  1755.                    
  1756.                     PanelDetailPivnicaDogadjaj panelDetailRegistar = (PanelDetailPivnicaDogadjaj)panelDetail;
  1757.                     panelDetailRegistar.getTxtEventName().setText(dogadjaji.getNaziv());
  1758.                     panelDetailRegistar.getTxtEventName().setEditable(false);
  1759.                     panelDetailRegistar.getVrijemePocetka().setDate(dogadjaji.getVrijemeP());
  1760.                     panelDetailRegistar.getVrijemeZavrsetka().setDate(dogadjaji.getVrijemeZ());
  1761.                     panelDetailRegistar.getTxtCena().setText(dogadjaji.getCenaUlaznice());
  1762.                     panelDetailRegistar.getTxtPopust().setText(dogadjaji.getPopust());
  1763.                    
  1764.                     // brute-force...ali posto nije navedeno u specifikaciji na koji nacin je popust realizovan, onda malo improvizacije ne skodi -_-
  1765.                     Date now = new Date();
  1766.                    
  1767.                     if (now.after(panelDetailRegistar.getVrijemePocetka().getDate()) && now.before(panelDetailRegistar.getVrijemeZavrsetka().getDate())) {
  1768.                         System.out.println("[Debug]: DialogPivnicaDogadjaj: Popust validan!");
  1769.                         ih.setPopust(true);
  1770.                         ih.setPopustVal(Double.parseDouble(panelDetailRegistar.getTxtPopust().getText()));
  1771.                     }
  1772.                    
  1773.                     else {
  1774.                         ih.setPopust(false);
  1775.                         ih.setPopustVal(0);
  1776.                         System.out.println("nema popusta!");
  1777.                     }
  1778.                    
  1779.                    
  1780.                    
  1781.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuDogadjaj"));
  1782.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  1783.                    
  1784.                 } catch (ElementNePostoji e1) {
  1785.                     e1.printStackTrace();
  1786.                 }
  1787.             }
  1788.         }
  1789.        
  1790.     }
  1791.  
  1792. }
  1793. package gui.dialogs.b_dialogs;
  1794.  
  1795. import gui.Frame;
  1796. import gui.actions.PasswordCellRenderer;
  1797. import gui.dialogs.AddUpdateFindDialog;
  1798. import gui.dialogs.GDialog;
  1799. import gui.dialogs.d_panels.PanelDetailPivnicaPivo;
  1800. import gui.exceptions.ElementNePostoji;
  1801. import gui.exceptions.ElementPostoji;
  1802. import gui.handlers.InputHandler;
  1803. import gui.tablemodel.DialogTableModel;
  1804.  
  1805. import javax.swing.JFrame;
  1806. import javax.swing.JOptionPane;
  1807. import javax.swing.ListSelectionModel;
  1808. import javax.swing.event.ListSelectionEvent;
  1809. import javax.swing.event.ListSelectionListener;
  1810.  
  1811. import model.collections.Restoran;
  1812. import model.data.Drzava;
  1813. import model.data.Piva;
  1814. import model.data.VrstaPiva;
  1815.  
  1816. @SuppressWarnings("serial")
  1817. public class DialogPivnicaPivo extends GDialog {
  1818.    
  1819.     public DialogPivnicaPivo(JFrame parent, boolean b) {
  1820.         super(parent, true);
  1821.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuPivnica"));
  1822.         panelDetail = new PanelDetailPivnicaPivo(StanjeDijaloga.BROWSE);
  1823.         tableColumns = new String[7];
  1824.         tableColumns[0] = Frame.getInstance().getResourceBundle().getString("lblNazivPiva");
  1825.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblVrstaPiva");
  1826.         tableColumns[2] = Frame.getInstance().getResourceBundle().getString("lblProizvodjacPiva"); 
  1827.         tableColumns[3] = Frame.getInstance().getResourceBundle().getString("lblDrzavaPorekla");
  1828.         tableColumns[4] = Frame.getInstance().getResourceBundle().getString("lblProcenatAlkohola");
  1829.         tableColumns[5] = Frame.getInstance().getResourceBundle().getString("lblAmbalazaPiva");
  1830.         tableColumns[6] = Frame.getInstance().getResourceBundle().getString("lblCenaPiva");
  1831.        
  1832.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getPivo());
  1833.        
  1834.         setLocationRelativeTo(parent);
  1835.         initGUI();
  1836.        
  1837.         ListSelectionModel lsm = table.getSelectionModel();
  1838.         lsm.addListSelectionListener(new PivoSelectionListener());
  1839.  
  1840.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuPivnica"));
  1841.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  1842.         Frame.getInstance().changeOptionPaneLanguage();
  1843.     }
  1844.  
  1845.     @Override
  1846.     public void dodavanje() {
  1847.         // TODO Auto-generated method stub
  1848.         PanelDetailPivnicaPivo panelDetailDodavanje = new PanelDetailPivnicaPivo(StanjeDijaloga.ADD);
  1849.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this, Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuPivnica"), panelDetailDodavanje);
  1850.         addUpdateDialog.setVisible(true);
  1851.         InputHandler ih = InputHandler.getInstance();
  1852.        
  1853.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  1854.             String nazivPiva = panelDetailDodavanje.getTxtNazivPiva().getText();
  1855.             VrstaPiva vPiva = (VrstaPiva)panelDetailDodavanje.getVrstaPiva().getSelectedItem();
  1856.             String prizvodjac = panelDetailDodavanje.getTxtProizvodjacPiva().getText();
  1857.             Drzava poreklo = (Drzava)panelDetailDodavanje.getDrzavaPorekla().getSelectedItem();
  1858.             String procenatAlk = panelDetailDodavanje.getTxtProcenatAlkohola().getText();
  1859.             String ambalaza = (String) panelDetailDodavanje.getCmbAmbalaza().getSelectedItem();
  1860.             String cena = panelDetailDodavanje.getTxtCenaPiva().getText();
  1861.  
  1862.             Piva novi = new Piva(nazivPiva, prizvodjac, poreklo, procenatAlk, ambalaza, cena, vPiva);
  1863.            
  1864.             try {
  1865.                 Restoran.getInstance().getPivo().addPivo(novi);
  1866.                 tableModel.fireTableDataChanged();
  1867.                 for (int i = 0; i < table.getRowCount(); i++) {
  1868.                     String kljuc = (String)table.getValueAt(i, 0);
  1869.                     if (nazivPiva.equals(kljuc)) {
  1870.                         table.setRowSelectionInterval(i, i);
  1871.                         break;
  1872.                     }
  1873.                 }
  1874.             } catch (ElementPostoji e) {
  1875.                 JOptionPane.showMessageDialog(this, e.getMessage());
  1876.             }
  1877.            
  1878.         }
  1879.     }
  1880.  
  1881.     @Override
  1882.     public void izmena() {
  1883.         // TODO Auto-generated method stub
  1884.         int row = table.getSelectedRow();
  1885.        
  1886.         if (row == -1) {
  1887.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1888.             return;
  1889.         }
  1890.        
  1891.         try {
  1892.             PanelDetailPivnicaPivo panelDetailIzmena = new PanelDetailPivnicaPivo(StanjeDijaloga.UPDATE);
  1893.            
  1894.             String nazivPiva = (String)table.getValueAt(row, 0);
  1895.             System.out.println(nazivPiva);
  1896.             Piva piva = Restoran.getInstance().getPivo().getPivo(nazivPiva);
  1897.            
  1898.             panelDetailIzmena.getTxtNazivPiva().setText(piva.getNaziv());
  1899.             panelDetailIzmena.getTxtNazivPiva().setEditable(false);
  1900.             panelDetailIzmena.getVrstaPiva().setSelectedItem(piva.getvPiva());
  1901.             panelDetailIzmena.getTxtProizvodjacPiva().setText(piva.getProizvodjac());
  1902.             panelDetailIzmena.getDrzavaPorekla().setSelectedItem(piva.getPoreklo());
  1903.             panelDetailIzmena.getTxtProcenatAlkohola().setText(piva.getProcenatA());
  1904.             panelDetailIzmena.getCmbAmbalaza().setSelectedItem(piva.getAmbalaza());
  1905.             panelDetailIzmena.getTxtCenaPiva().setText(piva.getCena());
  1906.  
  1907.    
  1908.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  1909.                     Frame.getInstance().getResourceBundle().getString("izmenaPiva"), panelDetailIzmena);
  1910.             addUpdateDialog.setVisible(true);
  1911.            
  1912.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  1913.                 VrstaPiva vPiva = (VrstaPiva)panelDetailIzmena.getVrstaPiva().getSelectedItem();
  1914.                 String prizvodjac = panelDetailIzmena.getTxtProizvodjacPiva().getText();
  1915.                 Drzava poreklo = (Drzava)panelDetailIzmena.getDrzavaPorekla().getSelectedItem();
  1916.                 String procenatAlk = panelDetailIzmena.getTxtProcenatAlkohola().getText();
  1917.                 String ambalaza = (String) panelDetailIzmena.getCmbAmbalaza().getSelectedItem();
  1918.                 String cena = panelDetailIzmena.getTxtCenaPiva().getText();
  1919.                
  1920.                 piva.setvPiva(vPiva);
  1921.                 piva.setProizvodjac(prizvodjac);
  1922.                 piva.setPoreklo(poreklo);
  1923.                 piva.setProcenatA(procenatAlk);
  1924.                 piva.setAmbalaza(ambalaza);
  1925.                 piva.setCena(cena);
  1926.  
  1927.                 tableModel.fireTableDataChanged();
  1928.                 for (int i = 0; i < table.getRowCount(); i++) {
  1929.                     String kljuc = (String)table.getValueAt(i, 0);
  1930.                     if (nazivPiva.equals(kljuc)) {
  1931.                         table.setRowSelectionInterval(i, i);
  1932.                         break;
  1933.                     }
  1934.                 }
  1935.             }
  1936.            
  1937.         } catch (ArrayIndexOutOfBoundsException e1) {
  1938.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1939.         } catch (ElementNePostoji e2) {
  1940.             // TODO Auto-generated catch block
  1941.             e2.printStackTrace();
  1942.         }
  1943.        
  1944.     }
  1945.  
  1946.     @Override
  1947.     public void brisanje() {
  1948.         // TODO Auto-generated method stub
  1949.         int row = table.getSelectedRow();
  1950.        
  1951.         if (row == -1) {
  1952.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1953.             return;
  1954.         }
  1955.        
  1956.         try {
  1957.             String nazivPiva = (String)table.getValueAt(row, 0);
  1958.             Piva piva = Restoran.getInstance().getPivo().getPivo(nazivPiva);
  1959.                    
  1960.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  1961.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  1962.             if (odg == JOptionPane.YES_OPTION) {
  1963.                 Restoran.getInstance().getPivo().removePivo(piva);
  1964.                 tableModel.fireTableDataChanged();
  1965.             }
  1966.            
  1967.         } catch (ArrayIndexOutOfBoundsException e1) {
  1968.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  1969.         } catch (ElementNePostoji e2) {
  1970.             // TODO Auto-generated catch block
  1971.             e2.printStackTrace();
  1972.         }
  1973.        
  1974.     }
  1975.  
  1976.     @Override
  1977.     public void pretraga() {
  1978.         // TODO Auto-generated method stub
  1979.        
  1980.     }
  1981.    
  1982.     class PivoSelectionListener implements ListSelectionListener {
  1983.  
  1984.         @Override
  1985.         public void valueChanged(ListSelectionEvent arg0) {
  1986.             // TODO Auto-generated method stub
  1987.             if (!arg0.getValueIsAdjusting()) {
  1988.                 int row = table.getSelectedRow();
  1989.                 int nrow = table.getRowCount();
  1990.                    
  1991.                 /*Ništa nije selektovano*/
  1992.                 if (row == -1)
  1993.                     return;
  1994.                
  1995.                 String nazivPiva = (String)table.getValueAt(row, 0);
  1996.                 try {
  1997.                     Piva piva = Restoran.getInstance().getPivo().getPivo(nazivPiva);
  1998.                    
  1999.                     PanelDetailPivnicaPivo panelDetailRegistar = (PanelDetailPivnicaPivo)panelDetail;
  2000.                     panelDetailRegistar.getTxtNazivPiva().setText(piva.getNaziv());
  2001.                     panelDetailRegistar.getTxtNazivPiva().setEditable(false);
  2002.                     panelDetailRegistar.getVrstaPiva().setSelectedItem(piva.getvPiva());
  2003.                     panelDetailRegistar.getTxtProizvodjacPiva().setText(piva.getProizvodjac());
  2004.                     panelDetailRegistar.getDrzavaPorekla().setSelectedItem(piva.getPoreklo());
  2005.                     panelDetailRegistar.getTxtProcenatAlkohola().setText(piva.getProcenatA());
  2006.                     panelDetailRegistar.getCmbAmbalaza().setSelectedItem(piva.getAmbalaza());
  2007.                     panelDetailRegistar.getTxtCenaPiva().setText(piva.getCena());
  2008.                    
  2009.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuPivnica"));
  2010.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  2011.                    
  2012.                 } catch (ElementNePostoji e1) {
  2013.                     e1.printStackTrace();
  2014.                 }
  2015.             }
  2016.         }
  2017.        
  2018.     }
  2019.  
  2020. }
  2021. package gui.dialogs.b_dialogs;
  2022.  
  2023. import gui.Frame;
  2024. import gui.dialogs.AddUpdateFindDialog;
  2025. import gui.dialogs.GDialog;
  2026. import gui.dialogs.d_panels.PanelDetailPivnicaRacun;
  2027. import gui.exceptions.ElementNePostoji;
  2028. import gui.exceptions.ElementPostoji;
  2029. import gui.handlers.InputHandler;
  2030. import gui.tablemodel.DialogTableModel;
  2031.  
  2032. import java.util.Date;
  2033.  
  2034. import javax.swing.JFrame;
  2035. import javax.swing.JOptionPane;
  2036. import javax.swing.ListSelectionModel;
  2037. import javax.swing.event.ListSelectionEvent;
  2038. import javax.swing.event.ListSelectionListener;
  2039.  
  2040. import model.collections.Restoran;
  2041. import model.data.Piva;
  2042. import model.data.Racuni;
  2043.  
  2044. @SuppressWarnings("serial")
  2045. public class DialogPivnicaRacun extends GDialog {
  2046.  
  2047.     public DialogPivnicaRacun(JFrame parent, boolean b) {
  2048.         super(parent, true);
  2049.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuRacun"));
  2050.         panelDetail = new PanelDetailPivnicaRacun(StanjeDijaloga.BROWSE);
  2051.         tableColumns = new String[6];
  2052.         tableColumns[0] = "ID";
  2053.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblProdatoPivo") + "#1";
  2054.         tableColumns[2] = Frame.getInstance().getResourceBundle().getString("lblProdatoPivo") + "#2";
  2055.         tableColumns[3] = Frame.getInstance().getResourceBundle().getString("lblProdatoPivo") + "#3";
  2056.         tableColumns[4] = Frame.getInstance().getResourceBundle().getString("lblDate");
  2057.         tableColumns[5] = Frame.getInstance().getResourceBundle().getString("lblUkupanIznos");
  2058.  
  2059.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getRacun());
  2060.        
  2061.         setLocationRelativeTo(parent);
  2062.         initGUI();
  2063.        
  2064.         ListSelectionModel lsm = table.getSelectionModel();
  2065.         lsm.addListSelectionListener(new RacuniSelectionListener());
  2066.  
  2067.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuRacun"));
  2068.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  2069.         Frame.getInstance().changeOptionPaneLanguage();
  2070.     }
  2071.  
  2072.     @Override
  2073.     public void dodavanje() {
  2074.         // TODO Auto-generated method stub
  2075.         PanelDetailPivnicaRacun panelDetailDodavanje = new PanelDetailPivnicaRacun(StanjeDijaloga.ADD);
  2076.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this, Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuRacun"), panelDetailDodavanje);
  2077.         addUpdateDialog.setVisible(true);
  2078.         InputHandler ih = InputHandler.getInstance();
  2079.        
  2080.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  2081.             String id = panelDetailDodavanje.getTxtID().getText();
  2082.             Piva pPivo1 = (panelDetailDodavanje.getCmbProdatoPivo1().isEnabled()) ? (Piva)panelDetailDodavanje.getCmbProdatoPivo1().getSelectedItem() : null;
  2083.             Piva pPivo2 = (panelDetailDodavanje.getCmbProdatoPivo2().isEnabled()) ? (Piva)panelDetailDodavanje.getCmbProdatoPivo2().getSelectedItem() : null;
  2084.             Piva pPivo3 = (panelDetailDodavanje.getCmbProdatoPivo3().isEnabled()) ? (Piva)panelDetailDodavanje.getCmbProdatoPivo3().getSelectedItem() : null;
  2085.  
  2086.             Date datum = panelDetailDodavanje.getDatum().getDate();
  2087.         /*  int iznos = (pPivo1 != null) ? Integer.parseInt(pPivo1.getCena()) : 0;
  2088.             iznos += (pPivo2 != null) ? Integer.parseInt(pPivo2.getCena()) : 0;
  2089.             iznos += (pPivo3 != null) ? Integer.parseInt(pPivo3.getCena()) : 0;
  2090.             */
  2091.             String ukupanIznos = panelDetailDodavanje.getTxtUkupanIznos().getText();
  2092.         //  panelDetailDodavanje.getTxtUkupanIznos().setText(Integer.toString(iznos));
  2093.            
  2094.             Racuni novi = new Racuni(id, pPivo1, pPivo2, pPivo3, datum, ukupanIznos);
  2095.            
  2096.             try {
  2097.                 Restoran.getInstance().getRacun().addRacun(novi);
  2098.                 tableModel.fireTableDataChanged();
  2099.                 for (int i = 0; i < table.getRowCount(); i++) {
  2100.                     String kljuc = (String)table.getValueAt(i, 0);
  2101.                     if (id.equals(kljuc)) {
  2102.                         table.setRowSelectionInterval(i, i);
  2103.                         break;
  2104.                     }
  2105.                 }
  2106.             } catch (ElementPostoji e) {
  2107.                 JOptionPane.showMessageDialog(this, e.getMessage());
  2108.             }
  2109.            
  2110.         }
  2111.        
  2112.     }
  2113.  
  2114.     @Override
  2115.     public void izmena() {
  2116.         // TODO Auto-generated method stub
  2117.         int row = table.getSelectedRow();
  2118.        
  2119.         if (row == -1) {
  2120.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2121.             return;
  2122.         }
  2123.        
  2124.         try {
  2125.             PanelDetailPivnicaRacun panelDetailIzmena = new PanelDetailPivnicaRacun(StanjeDijaloga.UPDATE);
  2126.            
  2127.             String id = (String)table.getValueAt(row, 0);
  2128.             System.out.println(id);
  2129.             Racuni racuni = Restoran.getInstance().getRacun().getRacun(id);
  2130.            
  2131.             panelDetailIzmena.getTxtID().setText(racuni.getId());
  2132.             panelDetailIzmena.getTxtID().setEditable(false);
  2133.             panelDetailIzmena.getCmbProdatoPivo1().setSelectedItem(racuni.getProdatoPivo1());
  2134.             panelDetailIzmena.getCmbProdatoPivo2().setSelectedItem(racuni.getProdatoPivo2());
  2135.             panelDetailIzmena.getCmbProdatoPivo3().setSelectedItem(racuni.getProdatoPivo3());
  2136.             panelDetailIzmena.getDatum().setDate(racuni.getDatum());
  2137.             panelDetailIzmena.getTxtUkupanIznos().setText(racuni.getUkupanIznos());
  2138.  
  2139.    
  2140.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  2141.                     Frame.getInstance().getResourceBundle().getString("izmenaRacuna"), panelDetailIzmena);
  2142.             addUpdateDialog.setVisible(true);
  2143.            
  2144.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  2145.            
  2146.                 Piva pPivo1 = (Piva)panelDetailIzmena.getCmbProdatoPivo1().getSelectedItem();
  2147.                 Piva pPivo2 = (Piva)panelDetailIzmena.getCmbProdatoPivo2().getSelectedItem();
  2148.                 Piva pPivo3 = (Piva)panelDetailIzmena.getCmbProdatoPivo3().getSelectedItem();
  2149.                 Date datum = panelDetailIzmena.getDatum().getDate();
  2150.                 String ukupanIznos = panelDetailIzmena.getTxtUkupanIznos().getText();
  2151.  
  2152.                 racuni.setProdatoPivo1(pPivo1);
  2153.                 racuni.setProdatoPivo2(pPivo2);
  2154.                 racuni.setProdatoPivo3(pPivo3);
  2155.                 racuni.setDatum(datum);
  2156.                 racuni.setUkupanIznos(ukupanIznos);
  2157.  
  2158.  
  2159.                 tableModel.fireTableDataChanged();
  2160.                 for (int i = 0; i < table.getRowCount(); i++) {
  2161.                     String kljuc = (String)table.getValueAt(i, 0);
  2162.                     if (id.equals(kljuc)) {
  2163.                         table.setRowSelectionInterval(i, i);
  2164.                         break;
  2165.                     }
  2166.                 }
  2167.             }
  2168.            
  2169.         } catch (ArrayIndexOutOfBoundsException e1) {
  2170.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2171.         } catch (ElementNePostoji e2) {
  2172.             // TODO Auto-generated catch block
  2173.             e2.printStackTrace();
  2174.         }
  2175.        
  2176.     }
  2177.  
  2178.     @Override
  2179.     public void brisanje() {
  2180.         // TODO Auto-generated method stub
  2181.         int row = table.getSelectedRow();
  2182.        
  2183.         if (row == -1) {
  2184.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2185.             return;
  2186.         }
  2187.        
  2188.         try {
  2189.             String id = (String)table.getValueAt(row, 0);
  2190.             Racuni racuni = Restoran.getInstance().getRacun().getRacun(id);
  2191.                    
  2192.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  2193.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  2194.             if (odg == JOptionPane.YES_OPTION) {
  2195.                 Restoran.getInstance().getRacun().removeRacun(racuni);
  2196.                 tableModel.fireTableDataChanged();
  2197.             }
  2198.            
  2199.         } catch (ArrayIndexOutOfBoundsException e1) {
  2200.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2201.         } catch (ElementNePostoji e2) {
  2202.             // TODO Auto-generated catch block
  2203.             e2.printStackTrace();
  2204.         }
  2205.        
  2206.     }
  2207.  
  2208.     @Override
  2209.     public void pretraga() {
  2210.         // TODO Auto-generated method stub
  2211.        
  2212.     }
  2213.    
  2214.     class RacuniSelectionListener implements ListSelectionListener {
  2215.  
  2216.         @Override
  2217.         public void valueChanged(ListSelectionEvent arg0) {
  2218.             // TODO Auto-generated method stub
  2219.             if (!arg0.getValueIsAdjusting()) {
  2220.                 int row = table.getSelectedRow();
  2221.                 int nrow = table.getRowCount();
  2222.                    
  2223.                 /*Ništa nije selektovano*/
  2224.                 if (row == -1)
  2225.                     return;
  2226.                
  2227.                 String id = (String)table.getValueAt(row, 0);
  2228.                 try {
  2229.                     Racuni racuni = Restoran.getInstance().getRacun().getRacun(id);
  2230.                    
  2231.                     PanelDetailPivnicaRacun panelDetailRegistar = (PanelDetailPivnicaRacun)panelDetail;
  2232.                     panelDetailRegistar.getTxtID().setText(racuni.getId());
  2233.                     panelDetailRegistar.getTxtID().setEditable(false);
  2234.                     panelDetailRegistar.getCmbProdatoPivo1().setSelectedItem(racuni.getProdatoPivo1());
  2235.                     panelDetailRegistar.getCmbProdatoPivo2().setSelectedItem(racuni.getProdatoPivo2());
  2236.                     panelDetailRegistar.getCmbProdatoPivo3().setSelectedItem(racuni.getProdatoPivo3());
  2237.                     panelDetailRegistar.getDatum().setDate(racuni.getDatum());
  2238.                     panelDetailRegistar.getTxtUkupanIznos().setText(racuni.getUkupanIznos());
  2239.                    
  2240.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuRacun"));
  2241.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  2242.                    
  2243.                 } catch (ElementNePostoji e1) {
  2244.                     e1.printStackTrace();
  2245.                 }
  2246.             }
  2247.         }
  2248.        
  2249.     }
  2250.  
  2251. }
  2252. package gui.dialogs.b_dialogs;
  2253.  
  2254. import gui.Frame;
  2255. import gui.actions.PasswordCellRenderer;
  2256. import gui.dialogs.AddUpdateFindDialog;
  2257. import gui.dialogs.GDialog;
  2258. import gui.dialogs.GDialog.StanjeDijaloga;
  2259. import gui.dialogs.b_dialogs.DialogPivnicaPivo.PivoSelectionListener;
  2260. import gui.dialogs.d_panels.PanelDetailPivnicaPivo;
  2261. import gui.dialogs.d_panels.PanelDetailPivnicaVrstaPiva;
  2262. import gui.exceptions.ElementNePostoji;
  2263. import gui.exceptions.ElementPostoji;
  2264. import gui.handlers.InputHandler;
  2265. import gui.tablemodel.DialogTableModel;
  2266.  
  2267. import java.util.Iterator;
  2268. import java.util.Locale;
  2269. import java.util.ResourceBundle;
  2270.  
  2271. import javax.swing.JFrame;
  2272. import javax.swing.JOptionPane;
  2273. import javax.swing.ListSelectionModel;
  2274. import javax.swing.event.ListSelectionEvent;
  2275. import javax.swing.event.ListSelectionListener;
  2276.  
  2277. import model.collections.Restoran;
  2278. import model.data.Drzava;
  2279. import model.data.Piva;
  2280. import model.data.VrstaPiva;
  2281.  
  2282. @SuppressWarnings("serial")
  2283. public class DialogPivnicaVrstaPiva extends GDialog  {
  2284.  
  2285.     public DialogPivnicaVrstaPiva(JFrame parent, boolean b) {
  2286.         super(parent, true);
  2287.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuVrstePiva"));
  2288.         panelDetail = new PanelDetailPivnicaVrstaPiva(StanjeDijaloga.BROWSE);
  2289.         tableColumns = new String[2];
  2290.         tableColumns[0] = Frame.getInstance().getResourceBundle().getString("lblOznaka");
  2291.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblNazivVrste");
  2292.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getvPiva());
  2293.        
  2294.         setLocationRelativeTo(parent);
  2295.         initGUI();
  2296.        
  2297.         ListSelectionModel lsm = table.getSelectionModel();
  2298.         lsm.addListSelectionListener(new VrstaPivaSelectionListener());
  2299.  
  2300.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuVrstePiva"));
  2301.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  2302.         Frame.getInstance().changeOptionPaneLanguage();
  2303.     }
  2304.  
  2305.     @Override
  2306.     public void dodavanje() {
  2307.         // TODO Auto-generated method stub
  2308.         PanelDetailPivnicaVrstaPiva panelDetailDodavanje = new PanelDetailPivnicaVrstaPiva(StanjeDijaloga.ADD);
  2309.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this, Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuVrstePiva"), panelDetailDodavanje);
  2310.         addUpdateDialog.setVisible(true);
  2311.         InputHandler ih = InputHandler.getInstance();
  2312.        
  2313.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  2314.             String id = panelDetailDodavanje.getTxtOznakaPiva().getText();
  2315.             String nazivVrste = panelDetailDodavanje.getTxtNazivVrste().getText();
  2316.            
  2317.             VrstaPiva novi = new VrstaPiva(id, nazivVrste);
  2318.            
  2319.             try {
  2320.                 Restoran.getInstance().getvPiva().addVPiva(novi);
  2321.                 tableModel.fireTableDataChanged();
  2322.                 for (int i = 0; i < table.getRowCount(); i++) {
  2323.                     String kljuc = (String)table.getValueAt(i, 0);
  2324.                     if (id.equals(kljuc)) {
  2325.                         table.setRowSelectionInterval(i, i);
  2326.                         break;
  2327.                     }
  2328.                 }
  2329.             } catch (ElementPostoji e) {
  2330.                 JOptionPane.showMessageDialog(this, e.getMessage());
  2331.             }
  2332.            
  2333.         }
  2334.        
  2335.     }
  2336.  
  2337.     @Override
  2338.     public void izmena() {
  2339.         // TODO Auto-generated method stub
  2340.         int row = table.getSelectedRow();
  2341.        
  2342.         if (row == -1) {
  2343.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2344.             return;
  2345.         }
  2346.        
  2347.         try {
  2348.             PanelDetailPivnicaVrstaPiva panelDetailIzmena = new PanelDetailPivnicaVrstaPiva(StanjeDijaloga.UPDATE);
  2349.            
  2350.             String id = (String)table.getValueAt(row, 0);
  2351.             System.out.println(id);
  2352.             VrstaPiva vPiva = Restoran.getInstance().getvPiva().getVPivo(id);
  2353.            
  2354.             panelDetailIzmena.getTxtOznakaPiva().setText(vPiva.getVPID());
  2355.             panelDetailIzmena.getTxtOznakaPiva().setEditable(false);
  2356.             panelDetailIzmena.getTxtNazivVrste().setText(vPiva.getNazivVrste());
  2357.  
  2358.    
  2359.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  2360.                     Frame.getInstance().getResourceBundle().getString("izmenaVrstePiva"), panelDetailIzmena);
  2361.             addUpdateDialog.setVisible(true);
  2362.            
  2363.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  2364.                 String naziv = panelDetailIzmena.getTxtNazivVrste().getText();
  2365.  
  2366.                 vPiva.setNazivVrste(naziv);
  2367.  
  2368.  
  2369.                 tableModel.fireTableDataChanged();
  2370.                 for (int i = 0; i < table.getRowCount(); i++) {
  2371.                     String kljuc = (String)table.getValueAt(i, 0);
  2372.                     if (id.equals(kljuc)) {
  2373.                         table.setRowSelectionInterval(i, i);
  2374.                         break;
  2375.                     }
  2376.                 }
  2377.             }
  2378.            
  2379.         } catch (ArrayIndexOutOfBoundsException e1) {
  2380.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2381.         } catch (ElementNePostoji e2) {
  2382.             // TODO Auto-generated catch block
  2383.             e2.printStackTrace();
  2384.         }
  2385.        
  2386.     }
  2387.  
  2388.     @Override
  2389.     public void brisanje() {
  2390.         // TODO Auto-generated method stub
  2391.         int row = table.getSelectedRow();
  2392.        
  2393.         if (row == -1) {
  2394.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2395.             return;
  2396.         }
  2397.        
  2398.         try {
  2399.             String id = (String)table.getValueAt(row, 0);
  2400.             VrstaPiva vPiva = Restoran.getInstance().getvPiva().getVPivo(id);
  2401.                    
  2402.             Iterator<String> iter = Restoran.getInstance().getPivo().getPivoIterator();
  2403.             while (iter.hasNext()) {
  2404.                 if (Restoran.getInstance().getPivo().getPivo(iter.next()).getvPiva() == vPiva) {
  2405.  
  2406.                     JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errEntitetPovezan"));
  2407.                     return;
  2408.                 }
  2409.             }
  2410.            
  2411.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  2412.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  2413.             if (odg == JOptionPane.YES_OPTION) {
  2414.                 Restoran.getInstance().getvPiva().removeVPiva(vPiva);
  2415.                 tableModel.fireTableDataChanged();
  2416.             }
  2417.            
  2418.         } catch (ArrayIndexOutOfBoundsException e1) {
  2419.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2420.         } catch (ElementNePostoji e2) {
  2421.             // TODO Auto-generated catch block
  2422.             e2.printStackTrace();
  2423.         }
  2424.        
  2425.     }
  2426.  
  2427.     @Override
  2428.     public void pretraga() {
  2429.         // TODO Auto-generated method stub
  2430.        
  2431.     }
  2432.    
  2433.     class VrstaPivaSelectionListener implements ListSelectionListener {
  2434.  
  2435.         @Override
  2436.         public void valueChanged(ListSelectionEvent arg0) {
  2437.             // TODO Auto-generated method stub
  2438.             if (!arg0.getValueIsAdjusting()) {
  2439.                 int row = table.getSelectedRow();
  2440.                 int nrow = table.getRowCount();
  2441.                    
  2442.                 /*Ništa nije selektovano*/
  2443.                 if (row == -1)
  2444.                     return;
  2445.                
  2446.                 String id = (String)table.getValueAt(row, 0);
  2447.                 try {
  2448.                     VrstaPiva vPiva = Restoran.getInstance().getvPiva().getVPivo(id);
  2449.                    
  2450.                     PanelDetailPivnicaVrstaPiva panelDetailRegistar = (PanelDetailPivnicaVrstaPiva)panelDetail;
  2451.                     panelDetailRegistar.getTxtOznakaPiva().setText(vPiva.getVPID());
  2452.                     panelDetailRegistar.getTxtOznakaPiva().setEditable(false);
  2453.                     panelDetailRegistar.getTxtNazivVrste().setText(vPiva.getNazivVrste());
  2454.                    
  2455.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuVrstePiva"));
  2456.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  2457.                    
  2458.                 } catch (ElementNePostoji e1) {
  2459.                     e1.printStackTrace();
  2460.                 }
  2461.             }
  2462.         }
  2463.        
  2464.     }
  2465.  
  2466. }
  2467. package gui.dialogs.b_dialogs;
  2468.  
  2469. import gui.Frame;
  2470. import gui.dialogs.AddUpdateFindDialog;
  2471. import gui.dialogs.GDialog;
  2472. import gui.dialogs.d_panels.PanelDetailTipoviOrg;
  2473. import gui.exceptions.ElementNePostoji;
  2474. import gui.exceptions.ElementPostoji;
  2475. import gui.handlers.InputHandler;
  2476. import gui.tablemodel.DialogTableModel;
  2477.  
  2478. import java.util.Iterator;
  2479.  
  2480. import javax.swing.JFrame;
  2481. import javax.swing.JOptionPane;
  2482. import javax.swing.ListSelectionModel;
  2483. import javax.swing.event.ListSelectionEvent;
  2484. import javax.swing.event.ListSelectionListener;
  2485.  
  2486. import model.collections.Restoran;
  2487. import model.data.TipOrganizacije;
  2488.  
  2489. @SuppressWarnings("serial")
  2490. public class DialogTipoviOrg extends GDialog {
  2491.  
  2492.     public DialogTipoviOrg(JFrame parent, boolean b) {
  2493.         super(parent, true);
  2494.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuTipOrg"));
  2495.         panelDetail = new PanelDetailTipoviOrg(StanjeDijaloga.BROWSE);
  2496.         tableColumns = new String[2];
  2497.         tableColumns[0] = Frame.getInstance().getResourceBundle().getString("lblOznaka");
  2498.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblNaziv");
  2499.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getTipoviOrganizacija());
  2500.        
  2501.         setLocationRelativeTo(parent);
  2502.         initGUI();
  2503.        
  2504.         ListSelectionModel lsm = table.getSelectionModel();
  2505.         lsm.addListSelectionListener(new TipovaOrganizacijeSelectionListener());
  2506.        
  2507.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuTipOrg"));
  2508.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  2509.        
  2510.         Frame.getInstance().changeOptionPaneLanguage();
  2511.  
  2512.     }
  2513.  
  2514.     @Override
  2515.     public void dodavanje() {
  2516.        
  2517.         PanelDetailTipoviOrg panelDetailDodavanje = new PanelDetailTipoviOrg(StanjeDijaloga.ADD);
  2518.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  2519.                 Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("mnuTipOrg"), panelDetailDodavanje);
  2520.         addUpdateDialog.setVisible(true);
  2521.         InputHandler ih = InputHandler.getInstance();
  2522.        
  2523.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  2524.             String oznaka =  panelDetailDodavanje.gettxtOznaka().getText();
  2525.             String naziv = panelDetailDodavanje.gettxtNaziv().getText();
  2526.            
  2527.             TipOrganizacije novo = new TipOrganizacije(oznaka, naziv);
  2528.            
  2529.             try {
  2530.                 Restoran.getInstance().getTipoviOrganizacija().addTipOrganizacije(novo);
  2531.                 tableModel.fireTableDataChanged();
  2532.                 for (int i = 0; i < table.getRowCount(); i++) {
  2533.                     String kljuc = (String)table.getValueAt(i, 0);
  2534.                     if (oznaka.equals(kljuc)) {
  2535.                         table.setRowSelectionInterval(i, i);
  2536.                         break;
  2537.                     }
  2538.                 }
  2539.             } catch (ElementPostoji e) {
  2540.                 JOptionPane.showMessageDialog(this, e.getMessage());
  2541.             }
  2542.         }
  2543.  
  2544.     }
  2545.  
  2546.     @Override
  2547.     public void izmena() {
  2548.         // TODO Auto-generated method stub
  2549.         int row = table.getSelectedRow();
  2550.        
  2551.         if (row == -1) {
  2552.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2553.             return;
  2554.         }
  2555.        
  2556.         try {
  2557.             PanelDetailTipoviOrg panelDetailIzmena = new PanelDetailTipoviOrg(StanjeDijaloga.UPDATE);
  2558.            
  2559.             String oznaka = (String)table.getValueAt(row, 0);
  2560.             TipOrganizacije tipOrganizacije = Restoran.getInstance().getTipoviOrganizacija().getTipOrganizacije(oznaka);
  2561.            
  2562.             panelDetailIzmena.gettxtOznaka().setText(tipOrganizacije.getOznaka());
  2563.             panelDetailIzmena.gettxtOznaka().setEditable(false);
  2564.             panelDetailIzmena.gettxtNaziv().setText(tipOrganizacije.getNaziv());
  2565.  
  2566.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  2567.                     Frame.getInstance().getResourceBundle().getString("izmenaTipOrganizacije"), panelDetailIzmena);
  2568.             addUpdateDialog.setVisible(true);
  2569.            
  2570.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  2571.                 String naziv = panelDetailIzmena.gettxtNaziv().getText();
  2572.  
  2573.                 tipOrganizacije.setNaziv(naziv);
  2574.  
  2575.                 tableModel.fireTableDataChanged();
  2576.                 for (int i = 0; i < table.getRowCount(); i++) {
  2577.                     String kljuc = (String)table.getValueAt(i, 0);
  2578.                     if (oznaka.equals(kljuc)) {
  2579.                         table.setRowSelectionInterval(i, i);
  2580.                         break;
  2581.                     }
  2582.                 }
  2583.             }
  2584.            
  2585.         } catch (ArrayIndexOutOfBoundsException e1) {
  2586.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2587.         } catch (ElementNePostoji e2) {
  2588.             // TODO Auto-generated catch block
  2589.             e2.printStackTrace();
  2590.         }
  2591.        
  2592.     }
  2593.  
  2594.     @Override
  2595.     public void brisanje() {
  2596.         // TODO Auto-generated method stub
  2597.         int row = table.getSelectedRow();
  2598.        
  2599.         if (row == -1) {
  2600.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2601.             return;
  2602.         }
  2603.        
  2604.         try {
  2605.             String oznaka = (String)table.getValueAt(row, 0);
  2606.             TipOrganizacije tipOrganizacije = Restoran.getInstance().getTipoviOrganizacija().getTipOrganizacije(oznaka);
  2607.            
  2608.             Iterator<String> iter = Restoran.getInstance().getOrganizacije().getOrganizacijaIterator();
  2609.             while (iter.hasNext()) {
  2610.                 if (Restoran.getInstance().getOrganizacije().getOrganizacija(iter.next()).getTipOrganizacije() == tipOrganizacije) {
  2611.                     JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errEntitetPovezan"));
  2612.                     return;
  2613.                 }
  2614.             }
  2615.        
  2616.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  2617.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  2618.             if (odg == JOptionPane.YES_OPTION) {
  2619.                 Restoran.getInstance().getTipoviOrganizacija().removeTipOrganizacije(tipOrganizacije);
  2620.                 tableModel.fireTableDataChanged();
  2621.             }
  2622.            
  2623.         } catch (ArrayIndexOutOfBoundsException e1) {
  2624.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2625.         } catch (ElementNePostoji e2) {
  2626.             // TODO Auto-generated catch block
  2627.             e2.printStackTrace();
  2628.         }
  2629.        
  2630.     }
  2631.  
  2632.     @Override
  2633.     public void pretraga() {
  2634.         // TODO Auto-generated method stub
  2635.        
  2636.     }
  2637.    
  2638.     class TipovaOrganizacijeSelectionListener implements ListSelectionListener {
  2639.         @Override
  2640.         public void valueChanged(ListSelectionEvent arg0) {
  2641.             // TODO Auto-generated method stub
  2642.             if (!arg0.getValueIsAdjusting()) {
  2643.                 int row = table.getSelectedRow();
  2644.                 int nrow = table.getRowCount();
  2645.                    
  2646.                 /*Nista nije selektovano*/
  2647.                 if (row == -1)
  2648.                     return;
  2649.                 String oznaka = (String)table.getValueAt(row, 0);
  2650.                 try {
  2651.                     TipOrganizacije tipOrganizacije = Restoran.getInstance().getTipoviOrganizacija().getTipOrganizacije(oznaka);
  2652.                    
  2653.                     PanelDetailTipoviOrg panelDetailRegistar = (PanelDetailTipoviOrg)panelDetail;
  2654.                     panelDetailRegistar.gettxtOznaka().setText(tipOrganizacije.getOznaka());
  2655.                     panelDetailRegistar.gettxtNaziv().setText(tipOrganizacije.getNaziv());
  2656.                    
  2657.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("mnuTipOrg"));
  2658.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  2659.                    
  2660.                 } catch (ElementNePostoji e1) {
  2661.                     e1.printStackTrace();
  2662.                 }
  2663.             }
  2664.         }
  2665.     }
  2666.  
  2667. }
  2668. package gui.dialogs.b_dialogs;
  2669.  
  2670. import gui.Frame;
  2671. import gui.dialogs.AddUpdateFindDialog;
  2672. import gui.dialogs.GDialog;
  2673. import gui.dialogs.d_panels.PanelDetailZaposleni;
  2674. import gui.exceptions.ElementNePostoji;
  2675. import gui.exceptions.ElementPostoji;
  2676. import gui.handlers.InputHandler;
  2677. import gui.tablemodel.DialogTableModel;
  2678.  
  2679. import java.util.Iterator;
  2680.  
  2681. import javax.swing.JFrame;
  2682. import javax.swing.JOptionPane;
  2683. import javax.swing.ListSelectionModel;
  2684. import javax.swing.event.ListSelectionEvent;
  2685. import javax.swing.event.ListSelectionListener;
  2686.  
  2687. import model.collections.Restoran;
  2688. import model.data.Organizacija;
  2689. import model.data.Zaposleni;
  2690.  
  2691. @SuppressWarnings("serial")
  2692. public class DialogZaposleni extends GDialog {
  2693.  
  2694.     public DialogZaposleni(JFrame parent, boolean b) {
  2695.         super(parent, true);
  2696.         setTitle(Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("lblZaposleni"));
  2697.         panelDetail = new PanelDetailZaposleni(StanjeDijaloga.BROWSE);
  2698.         tableColumns = new String[5];
  2699.         tableColumns[0] = Frame.getInstance().getResourceBundle().getString("lblOrganizacija");
  2700.         tableColumns[1] = Frame.getInstance().getResourceBundle().getString("lblIdentifikator");
  2701.         tableColumns[2] = Frame.getInstance().getResourceBundle().getString("lblPrezime");
  2702.         tableColumns[3] = Frame.getInstance().getResourceBundle().getString("lblIme");
  2703.         tableColumns[4] = Frame.getInstance().getResourceBundle().getString("lblPol");
  2704.        
  2705.         tableModel = new DialogTableModel(tableColumns, Restoran.getInstance().getZaposlenii());
  2706.        
  2707.         setLocationRelativeTo(parent);
  2708.         initGUI();
  2709.        
  2710.         ListSelectionModel lsm = table.getSelectionModel();
  2711.         lsm.addListSelectionListener(new ZaposleniSelectionListener());
  2712.        
  2713.         statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("lblZaposleni"));
  2714.         statusbar.setDialogStatusBar3("-- / " + table.getRowCount());
  2715.        
  2716.         Frame.getInstance().changeOptionPaneLanguage();
  2717.     }
  2718.  
  2719.     @Override
  2720.     public void dodavanje() {
  2721.        
  2722.         PanelDetailZaposleni panelDetailDodavanje = new PanelDetailZaposleni(StanjeDijaloga.ADD);
  2723.         AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  2724.                 Frame.getInstance().getResourceBundle().getString("mainTitle") + " - " + Frame.getInstance().getResourceBundle().getString("lblZaposleni"), panelDetailDodavanje);
  2725.         addUpdateDialog.setVisible(true);
  2726.         InputHandler ih = InputHandler.getInstance();
  2727.        
  2728.         if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK && ih.isOk()) {
  2729.             Organizacija organizacija = (Organizacija)panelDetailDodavanje.getCmbOrg().getSelectedItem();
  2730.             String identifikator = panelDetailDodavanje.getTxtID().getText();
  2731.             String prezime = panelDetailDodavanje.getTxtPrezime().getText();
  2732.             String ime = panelDetailDodavanje.getTxtIme().getText();
  2733.             String pol = panelDetailDodavanje.getTxtPol().getText();
  2734.    
  2735.             Zaposleni novi = new Zaposleni(organizacija, identifikator, prezime, ime, pol);
  2736.            
  2737.             try {
  2738.                 Restoran.getInstance().getZaposlenii().addZaposleni(novi);
  2739.                 tableModel.fireTableDataChanged();
  2740.                 for (int i = 0; i < table.getRowCount(); i++) {
  2741.                     String kljuc = (String)table.getValueAt(i, 1);
  2742.                     if (identifikator.equals(kljuc)) {
  2743.                         table.setRowSelectionInterval(i, i);
  2744.                         break;
  2745.                     }
  2746.                 }
  2747.             } catch (ElementPostoji e) {
  2748.                 JOptionPane.showMessageDialog(this, e.getMessage());
  2749.             }
  2750.         }
  2751.  
  2752.     }
  2753.  
  2754.     @Override
  2755.     public void izmena() {
  2756.         // TODO Auto-generated method stub
  2757.         int row = table.getSelectedRow();
  2758.        
  2759.         if (row == -1) {
  2760.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2761.             return;
  2762.         }
  2763.        
  2764.         try {
  2765.             PanelDetailZaposleni panelDetailIzmena = new PanelDetailZaposleni(StanjeDijaloga.UPDATE);
  2766.            
  2767.             String idZaposlenog = (String)table.getValueAt(row, 1);
  2768.             Zaposleni zaposleni = Restoran.getInstance().getZaposlenii().getZaposleni(idZaposlenog);
  2769.            
  2770.             panelDetailIzmena.getCmbOrg().setSelectedItem(zaposleni.getOrganizacija());
  2771.             panelDetailIzmena.getTxtID().setText(zaposleni.getIdentifikator());
  2772.             panelDetailIzmena.getTxtID().setEditable(false);
  2773.             panelDetailIzmena.getTxtPrezime().setText(zaposleni.getPrezime());
  2774.             panelDetailIzmena.getTxtIme().setText(zaposleni.getIme());
  2775.             panelDetailIzmena.getTxtPol().setText(zaposleni.getPol());
  2776.    
  2777.             AddUpdateFindDialog addUpdateDialog = new AddUpdateFindDialog(this,
  2778.                     Frame.getInstance().getResourceBundle().getString("izmeniZaposlenog"), panelDetailIzmena);
  2779.             addUpdateDialog.setVisible(true);
  2780.            
  2781.             if (addUpdateDialog.getClosingMode() == AddUpdateFindDialog.OK) {
  2782.                 Organizacija organizacija = (Organizacija)panelDetailIzmena.getCmbOrg().getSelectedItem();
  2783.                 String prezime = panelDetailIzmena.getTxtPrezime().getText();
  2784.                 String ime = panelDetailIzmena.getTxtIme().getText();
  2785.                 String pol = panelDetailIzmena.getTxtPol().getText();
  2786.  
  2787.                 zaposleni.setIme(ime);
  2788.                 zaposleni.setOrganizacija(organizacija);
  2789.                 zaposleni.setPol(pol);
  2790.                 zaposleni.setPrezime(prezime);
  2791.                
  2792.                 tableModel.fireTableDataChanged();
  2793.                 for (int i = 0; i < table.getRowCount(); i++) {
  2794.                     String kljuc = (String)table.getValueAt(i, 1);
  2795.                     if (idZaposlenog.equals(kljuc)) {
  2796.                         table.setRowSelectionInterval(i, i);
  2797.                         break;
  2798.                     }
  2799.                 }
  2800.             }
  2801.            
  2802.         } catch (ArrayIndexOutOfBoundsException e1) {
  2803.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2804.         } catch (ElementNePostoji e2) {
  2805.             // TODO Auto-generated catch block
  2806.             e2.printStackTrace();
  2807.         }
  2808.        
  2809.     }
  2810.  
  2811.     @Override
  2812.     public void brisanje() {
  2813.         // TODO Auto-generated method stub
  2814.         int row = table.getSelectedRow();
  2815.        
  2816.         if (row == -1) {
  2817.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2818.             return;
  2819.         }
  2820.        
  2821.        
  2822.         try {
  2823.             String idZaposlenog = (String)table.getValueAt(row, 1);
  2824.             Zaposleni zaposleni = Restoran.getInstance().getZaposlenii().getZaposleni(idZaposlenog);
  2825.            
  2826.             Iterator<String> iter = Restoran.getInstance().getKorisnici().getKorisniciIterator();
  2827.             while (iter.hasNext()) {
  2828.                 if (Restoran.getInstance().getKorisnici().getKorisnik(iter.next()).getZaposleni() == zaposleni) {
  2829.                     JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errEntitetPovezan"));
  2830.                     return;
  2831.                 }
  2832.             }
  2833.  
  2834.             int odg = JOptionPane.showConfirmDialog(this, Frame.getInstance().getResourceBundle().getString("msgBrisanje"),
  2835.                     Frame.getInstance().getResourceBundle().getString("msgBrisanjeNaslov"), JOptionPane.YES_NO_OPTION);
  2836.             if (odg == JOptionPane.YES_OPTION) {
  2837.                 Restoran.getInstance().getZaposlenii().removeZaposleni(zaposleni);
  2838.                 tableModel.fireTableDataChanged();
  2839.             }
  2840.            
  2841.         } catch (ArrayIndexOutOfBoundsException e1) {
  2842.             JOptionPane.showMessageDialog(this, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  2843.         } catch (ElementNePostoji e2) {
  2844.             // TODO Auto-generated catch block
  2845.             e2.printStackTrace();
  2846.         }
  2847.        
  2848.     }
  2849.  
  2850.     @Override
  2851.     public void pretraga() {
  2852.         // TODO Auto-generated method stub
  2853.        
  2854.     }
  2855.    
  2856.     class ZaposleniSelectionListener implements ListSelectionListener {
  2857.  
  2858.         @Override
  2859.         public void valueChanged(ListSelectionEvent arg0) {
  2860.             // TODO Auto-generated method stub
  2861.             if (!arg0.getValueIsAdjusting()) {
  2862.                 int row = table.getSelectedRow();
  2863.                 int nrow = table.getRowCount();
  2864.                    
  2865.                 /*Ništa nije selektovano*/
  2866.                 if (row == -1)
  2867.                     return;
  2868.                 String imeZaposlenog = (String)table.getValueAt(row, 1);
  2869.                 try {
  2870.                     Zaposleni zaposleni = Restoran.getInstance().getZaposlenii().getZaposleni(imeZaposlenog);
  2871.                    
  2872.                     PanelDetailZaposleni panelDetailRegistar = (PanelDetailZaposleni)panelDetail;
  2873.                     panelDetailRegistar.getCmbOrg().setSelectedItem(zaposleni.getOrganizacija());
  2874.                     panelDetailRegistar.getTxtID().setText(zaposleni.getIdentifikator());
  2875.                     panelDetailRegistar.getTxtPrezime().setText(zaposleni.getPrezime());
  2876.                     panelDetailRegistar.getTxtIme().setText(zaposleni.getIme());
  2877.                     panelDetailRegistar.getTxtPol().setText(zaposleni.getPol());
  2878.                    
  2879.                     statusbar.setDialogStatusBar1(Frame.getInstance().getResourceBundle().getString("lblZaposleni"));
  2880.                     statusbar.setDialogStatusBar3(row + 1 + " / " + nrow);
  2881.                    
  2882.                    
  2883.                 } catch (ElementNePostoji e1) {
  2884.                     e1.printStackTrace();
  2885.                 }
  2886.             }
  2887.         }
  2888.        
  2889.     }
  2890.  
  2891. }
  2892.  
  2893. package gui.dialogs.d_panels;
  2894.  
  2895. import javax.swing.JPanel;
  2896.  
  2897. @SuppressWarnings("serial")
  2898. public abstract class GPanelDetail extends JPanel {
  2899.  
  2900.     public abstract boolean proveriIspravnostPodataka();
  2901.    
  2902. }
  2903. package gui.dialogs.d_panels;
  2904.  
  2905. import gui.actions.MyFocusListener;
  2906. import gui.actions.MyKeyListener;
  2907. import gui.dialogs.GDialog.StanjeDijaloga;
  2908. import gui.exceptions.ElementNePostoji;
  2909. import gui.handlers.InputHandler;
  2910.  
  2911. import java.awt.BorderLayout;
  2912. import java.awt.Color;
  2913. import java.awt.Dimension;
  2914. import java.awt.FlowLayout;
  2915. import java.awt.event.FocusListener;
  2916. import java.util.Iterator;
  2917. import java.util.Locale;
  2918. import java.util.ResourceBundle;
  2919.  
  2920. import javax.swing.Box;
  2921. import javax.swing.BoxLayout;
  2922. import javax.swing.JComboBox;
  2923. import javax.swing.JLabel;
  2924. import javax.swing.JPanel;
  2925. import javax.swing.JTextField;
  2926.  
  2927. import model.collections.Restoran;
  2928. import model.data.NaseljenoMesto;
  2929.  
  2930. @SuppressWarnings({"serial", "unchecked", "rawtypes"})
  2931. public class PanelDetailDrzave extends GPanelDetail {
  2932.     private ResourceBundle resourceBundle;
  2933.    
  2934.     private JLabel lblOznakaDrzave;
  2935.     private JTextField txtOznakaDrzave;
  2936.    
  2937.     private JLabel lblNazivDrzave;
  2938.     private JTextField txtNazivDrzave;
  2939.    
  2940.     private JLabel lblGlavniGrad;
  2941.    
  2942.     private JComboBox cmbGrad;
  2943.    
  2944.     InputHandler ih = InputHandler.getInstance();
  2945.    
  2946.     public PanelDetailDrzave(StanjeDijaloga mode) {
  2947.        
  2948.         setLayout(new BorderLayout());
  2949.         resourceBundle = ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  2950.         Dimension lblDimension = new Dimension(150,20);
  2951.  
  2952.         Box boxCentar = new Box(BoxLayout.Y_AXIS);
  2953.         JPanel panOznakaDrzave = new JPanel(new FlowLayout(FlowLayout.LEFT));
  2954.         lblOznakaDrzave = new JLabel(resourceBundle.getString("lblOznakaDrzave")+"*:");
  2955.         lblOznakaDrzave.setPreferredSize(lblDimension);
  2956.         txtOznakaDrzave = new JTextField(3);
  2957.         txtOznakaDrzave.setEnabled(mode != StanjeDijaloga.BROWSE);
  2958.         panOznakaDrzave.add(lblOznakaDrzave);
  2959.         panOznakaDrzave.add(txtOznakaDrzave);
  2960.         boxCentar.add(panOznakaDrzave);
  2961.        
  2962.         JPanel panNazivDrzave = new JPanel(new FlowLayout(FlowLayout.LEFT));
  2963.         lblNazivDrzave = new JLabel(resourceBundle.getString("lblNazivDrzave")+"*:");
  2964.         lblNazivDrzave.setPreferredSize(lblDimension);
  2965.         txtNazivDrzave = new JTextField(30);
  2966.         txtNazivDrzave.setEnabled(mode != StanjeDijaloga.BROWSE);
  2967.         panNazivDrzave.add(lblNazivDrzave);
  2968.         panNazivDrzave.add(txtNazivDrzave);
  2969.         boxCentar.add(panNazivDrzave);
  2970.        
  2971.         JPanel panGlavniGrad = new JPanel(new FlowLayout(FlowLayout.LEFT));
  2972.         lblGlavniGrad = new JLabel(resourceBundle.getString("lblGlavniGrad")+"*:");
  2973.         lblGlavniGrad.setPreferredSize(lblDimension);
  2974.         cmbGrad = new JComboBox();
  2975.     //  cmbGrad.addItem(ih.getCmbDefaultValue());
  2976.         Iterator<String> iter = Restoran.getInstance().getNaseljenaMesta().getNaseljenaMestaIterator();
  2977.     //  NaseljenoMesto nm = new NaseljenoMesto("--", "--", null);
  2978.     //  cmbGrad.addItem(nm);
  2979.         while (iter.hasNext()) {
  2980.             try {
  2981.                 cmbGrad.addItem(Restoran.getInstance().getNaseljenaMesta().getNaseljenoMesto(iter.next()));
  2982.             } catch (ElementNePostoji e) {
  2983.                 e.printStackTrace();
  2984.             }
  2985.         }  
  2986.        
  2987.         cmbGrad.setEnabled(mode != StanjeDijaloga.BROWSE);
  2988.         panGlavniGrad.add(lblGlavniGrad);
  2989.         panGlavniGrad.add(cmbGrad);
  2990.         boxCentar.add(panGlavniGrad);
  2991.        
  2992.         add(boxCentar,BorderLayout.CENTER);
  2993.        
  2994.         FocusListener fl = new MyFocusListener();
  2995.  
  2996.         txtNazivDrzave.addKeyListener(new MyKeyListener(1));
  2997.         txtOznakaDrzave.addKeyListener(new MyKeyListener(3));
  2998.        
  2999.         txtNazivDrzave.addFocusListener(fl);
  3000.         txtOznakaDrzave.addFocusListener(fl);
  3001.        
  3002.         cmbGrad.addFocusListener(fl);
  3003.     //  cmbGrad.addActionListener(new MyActionListener());
  3004.  
  3005.     }
  3006.    
  3007.     public boolean proveriIspravnostPodataka() {
  3008.         // TODO: agonija...
  3009.         boolean ok = true;
  3010.         ih.setOk(true);
  3011.        
  3012.         if (!txtNazivDrzave.getText().trim().equals("")) {
  3013.             if (txtNazivDrzave.getText().length() < ih.getMaxInputLenInt()) {
  3014.                 ok = false;
  3015.                 ih.setOk(false);
  3016.                 txtNazivDrzave.setBackground(Color.RED);
  3017.             }
  3018.            
  3019.             if (txtNazivDrzave.getText().length() > ih.getMaxInputLenStr()) {
  3020.                 txtNazivDrzave.setText(txtNazivDrzave.getText().substring(0, ih.getMaxInputLenStr())); 
  3021.             }  
  3022.            
  3023.         }
  3024.         else {
  3025.             ok = false;
  3026.             ih.setOk(false);
  3027.             txtNazivDrzave.setBackground(Color.RED);
  3028.         }
  3029.        
  3030.         if (!ih.isOk()) {
  3031.             ok = false;
  3032.             ih.setOk(false);
  3033.             txtNazivDrzave.setBackground(Color.RED);
  3034.         }
  3035.        
  3036.        
  3037.         if (!txtOznakaDrzave.getText().trim().equals("")) {
  3038.             if (txtOznakaDrzave.getText().length() > ih.getMaxInputLenInt()) { // Za oznaku idu 3 slova...
  3039.                 txtOznakaDrzave.setText(txtOznakaDrzave.getText().substring(0, ih.getMaxInputLenInt()));   
  3040.             }
  3041.         }
  3042.         else {
  3043.             ok = false;
  3044.             ih.setOk(false);
  3045.             txtOznakaDrzave.setBackground(Color.RED);
  3046.         }
  3047.        
  3048. /*      if (!ih.isCmbOk()) {
  3049.             cmbGrad.setBackground(Color.RED);
  3050.             ok = false;
  3051.             ih.setOk(false);
  3052.         } */
  3053.        
  3054.         return ok;
  3055.     }
  3056.  
  3057.     public JComboBox getCmbGrad() {
  3058.         return cmbGrad;
  3059.     }
  3060.  
  3061.     public JTextField getTxtOznakaDrzave() {
  3062.         return txtOznakaDrzave;
  3063.     }
  3064.  
  3065.     public JTextField getTxtNazivDrzave() {
  3066.         return txtNazivDrzave;
  3067.     }
  3068.    
  3069.     public String getGlavniGrad() {
  3070.         String val = cmbGrad.getSelectedItem().toString();
  3071.        
  3072.         if (val != null)
  3073.             return val;
  3074.        
  3075.         return "N/A";
  3076.     }
  3077.  
  3078.    
  3079. }
  3080. package gui.dialogs.d_panels;
  3081.  
  3082. import gui.actions.MyActionListener;
  3083. import gui.actions.MyFocusListener;
  3084. import gui.actions.MyKeyListener;
  3085. import gui.dialogs.GDialog.StanjeDijaloga;
  3086. import gui.exceptions.ElementNePostoji;
  3087. import gui.handlers.InputHandler;
  3088.  
  3089. import java.awt.BorderLayout;
  3090. import java.awt.Color;
  3091. import java.awt.Dimension;
  3092. import java.awt.FlowLayout;
  3093. import java.awt.event.ActionListener;
  3094. import java.awt.event.FocusListener;
  3095. import java.util.Iterator;
  3096. import java.util.Locale;
  3097. import java.util.ResourceBundle;
  3098.  
  3099. import javax.swing.Box;
  3100. import javax.swing.BoxLayout;
  3101. import javax.swing.JCheckBox;
  3102. import javax.swing.JComboBox;
  3103. import javax.swing.JLabel;
  3104. import javax.swing.JPanel;
  3105. import javax.swing.JPasswordField;
  3106. import javax.swing.JTextField;
  3107.  
  3108. import model.collections.Restoran;
  3109.  
  3110. @SuppressWarnings({"serial", "unchecked", "rawtypes"})
  3111. public class PanelDetailKorisnici extends GPanelDetail {
  3112.     private ResourceBundle resourceBundle;
  3113.  
  3114.     private JLabel lblKorisnickoIme;
  3115.     private JTextField txtKorisnickoIme;
  3116.  
  3117.     private JLabel lblLozinka;
  3118.     private JPasswordField txtLozinka;
  3119.  
  3120.     private JLabel lblPrezime;
  3121.     private JTextField txtPrezime;
  3122.  
  3123.     private JLabel lblIme;
  3124.     private JTextField txtIme;
  3125.  
  3126.     private JLabel lblGodinaRegistracije;
  3127.     private JTextField txtGodinaRegistracije;
  3128.  
  3129.     private JLabel lblStatus;
  3130.     private JComboBox cmbStatus;
  3131.     private String[] status;
  3132.  
  3133.     private JLabel lblAdministrator;
  3134.     private JCheckBox cbAdministrator;
  3135.    
  3136.     private JLabel lblKZaposleni;
  3137.  
  3138.     private JComboBox cmbKZaposleni;
  3139.    
  3140.     InputHandler ih = InputHandler.getInstance();
  3141.    
  3142.     public PanelDetailKorisnici(StanjeDijaloga mode) {
  3143.         setLayout(new BorderLayout());
  3144.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  3145.  
  3146.         Dimension lblDimension = new Dimension(150,20);
  3147.        
  3148.         Box boxCentar = new Box(BoxLayout.Y_AXIS);
  3149.  
  3150.         JPanel panKorisnickoIme = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3151.         lblKorisnickoIme = new JLabel(resourceBundle.getString("lblUsername")+"*:");
  3152.         lblKorisnickoIme.setPreferredSize(lblDimension);
  3153.         txtKorisnickoIme = new JTextField(20);
  3154.         txtKorisnickoIme.setEnabled(mode != StanjeDijaloga.BROWSE);
  3155.         panKorisnickoIme.add(lblKorisnickoIme);
  3156.         panKorisnickoIme.add(txtKorisnickoIme);
  3157.         boxCentar.add(panKorisnickoIme);
  3158.        
  3159.         JPanel panLozinka = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3160.         lblLozinka = new JLabel(resourceBundle.getString("lblPassword")+"*:");
  3161.         lblLozinka.setPreferredSize(lblDimension);
  3162.         txtLozinka = new JPasswordField(20);
  3163.         txtLozinka.setEnabled(mode != StanjeDijaloga.BROWSE);
  3164.         panLozinka.add(lblLozinka);
  3165.         panLozinka.add(txtLozinka);
  3166.         boxCentar.add(panLozinka);
  3167.        
  3168.         JPanel panKZaposleni = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3169.         lblKZaposleni = new JLabel(resourceBundle.getString("lblZaposleni")+"*:");
  3170.         lblKZaposleni.setPreferredSize(lblDimension);
  3171.         cmbKZaposleni = new JComboBox();
  3172.         Iterator<String> iterZaposleni = Restoran.getInstance().getZaposlenii().getZaposleniIterator();
  3173.         while (iterZaposleni.hasNext()) {
  3174.             try {
  3175.                 cmbKZaposleni.addItem(Restoran.getInstance().getZaposlenii().getZaposleni(iterZaposleni.next()));
  3176.             } catch (ElementNePostoji e) {
  3177.                 e.printStackTrace();
  3178.             }
  3179.         }      
  3180.         cmbKZaposleni.setEnabled(mode != StanjeDijaloga.BROWSE);
  3181.         panKZaposleni.add(lblKZaposleni);
  3182.         panKZaposleni.add(cmbKZaposleni);
  3183.         boxCentar.add(panKZaposleni);
  3184.        
  3185.         JPanel panPrezime = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3186.         lblPrezime = new JLabel(resourceBundle.getString("lblPrezime")+"*:");
  3187.         lblPrezime.setPreferredSize(lblDimension);
  3188.         txtPrezime = new JTextField(20);
  3189.         txtPrezime.setEnabled(mode != StanjeDijaloga.BROWSE);
  3190.         panPrezime.add(lblPrezime);
  3191.         panPrezime.add(txtPrezime);
  3192.         boxCentar.add(panPrezime);
  3193.        
  3194.         JPanel panIme = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3195.         lblIme = new JLabel(resourceBundle.getString("lblIme")+"*:");
  3196.         lblIme.setPreferredSize(lblDimension);
  3197.         txtIme = new JTextField(20);
  3198.         txtIme.setEnabled(mode != StanjeDijaloga.BROWSE);
  3199.         panIme.add(lblIme);
  3200.         panIme.add(txtIme);
  3201.         boxCentar.add(panIme);
  3202.        
  3203.         JPanel panGodinaRegistracije = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3204.         lblGodinaRegistracije = new JLabel(resourceBundle.getString("lblGodinaRegistracije")+":");
  3205.         lblGodinaRegistracije.setPreferredSize(lblDimension);
  3206.         txtGodinaRegistracije = new JTextField(4);
  3207.         txtGodinaRegistracije.setEnabled(mode != StanjeDijaloga.BROWSE);
  3208.         panGodinaRegistracije.add(lblGodinaRegistracije);
  3209.         panGodinaRegistracije.add(txtGodinaRegistracije);
  3210.         boxCentar.add(panGodinaRegistracije);
  3211.        
  3212.         JPanel panStatus = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3213.         lblStatus = new JLabel(resourceBundle.getString("lblStatus")+":");
  3214.         lblStatus.setPreferredSize(lblDimension);
  3215.         status = new String [] {resourceBundle.getString("strAktivan"), resourceBundle.getString("strDeaktivan"), resourceBundle.getString("strBlokiran")};
  3216.        
  3217.         cmbStatus = new JComboBox(status);
  3218.         cmbStatus.setEnabled(mode != StanjeDijaloga.BROWSE);
  3219.         panStatus.add(lblStatus);
  3220.         panStatus.add(cmbStatus);
  3221.         boxCentar.add(panStatus);
  3222.        
  3223.         JPanel panAdministrator = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3224.         lblAdministrator = new JLabel(resourceBundle.getString("lblAdministrator")+":");
  3225.         lblAdministrator.setPreferredSize(lblDimension);
  3226.         cbAdministrator = new JCheckBox("");
  3227.         cbAdministrator.setEnabled(mode != StanjeDijaloga.BROWSE);
  3228.         panAdministrator.add(lblAdministrator);
  3229.         panAdministrator.add(cbAdministrator);
  3230.         boxCentar.add(panAdministrator);
  3231.        
  3232.         add(boxCentar, BorderLayout.CENTER);
  3233.         FocusListener fl = new MyFocusListener();
  3234.         ActionListener al = new MyActionListener();
  3235.        
  3236.         txtKorisnickoIme.addKeyListener(new MyKeyListener(1));
  3237.         txtLozinka.addKeyListener(new MyKeyListener(1));
  3238.         txtIme.addKeyListener(new MyKeyListener(1));
  3239.         txtPrezime.addKeyListener(new MyKeyListener(1));
  3240.         txtGodinaRegistracije.addKeyListener(new MyKeyListener(7, ih.getMaxInputYearLen()));
  3241.        
  3242.         txtKorisnickoIme.addFocusListener(fl);
  3243.         txtLozinka.addFocusListener(fl);
  3244.         txtIme.addFocusListener(fl);
  3245.         txtPrezime.addFocusListener(fl);
  3246.         txtGodinaRegistracije.addFocusListener(fl);
  3247.         cmbKZaposleni.addFocusListener(fl);
  3248.         cmbKZaposleni.addActionListener(al);
  3249.        
  3250.     }
  3251.  
  3252.     @Override
  3253.     public boolean proveriIspravnostPodataka() {
  3254.         String pass = null;
  3255.         boolean ok = true;
  3256.         ih.setOk(true);
  3257.        
  3258.         if (txtLozinka.getPassword() != null) {
  3259.             pass = new String(txtLozinka.getPassword());
  3260.         }
  3261.        
  3262.         if (txtKorisnickoIme.getText().trim().equals("")) {
  3263.             txtKorisnickoIme.setBackground(Color.RED);
  3264.             ok = false;
  3265.             ih.setOk(false);
  3266.         }
  3267.        
  3268.         if (txtKorisnickoIme.getText().length() > ih.getMaxInputLenStr()) {
  3269.             txtKorisnickoIme.setText(txtKorisnickoIme.getText().substring(0, ih.getMaxInputLenStr())); 
  3270.         }
  3271.        
  3272.         if (pass.trim().equals("")) {
  3273.             txtLozinka.setBackground(Color.RED);
  3274.             ok = false;
  3275.             ih.setOk(false);
  3276.         }
  3277.        
  3278.         if (pass.length() > ih.getMaxInputLenStr()) {
  3279.             txtLozinka.setText(pass.substring(0, ih.getMaxInputLenStr())); 
  3280.         }
  3281.        
  3282.         if (txtPrezime.getText().trim().equals("")) {
  3283.             txtPrezime.setBackground(Color.RED);
  3284.             ok = false;
  3285.             ih.setOk(false);
  3286.         }  
  3287.        
  3288.         if (txtPrezime.getText().length() > ih.getMaxInputLenStr()) {
  3289.             txtPrezime.setText(txtPrezime.getText().substring(0, ih.getMaxInputLenStr())); 
  3290.         }
  3291.        
  3292.         if (txtIme.getText().trim().equals("")) {
  3293.             txtIme.setBackground(Color.RED);
  3294.             ok = false;
  3295.             ih.setOk(false);
  3296.         }      
  3297.        
  3298.         if (txtIme.getText().length() > ih.getMaxInputLenStr()) {
  3299.             txtIme.setText(txtIme.getText().substring(0, ih.getMaxInputLenStr())); 
  3300.         }
  3301.        
  3302.         if (txtGodinaRegistracije.getText().length() > ih.getMaxInputYearLen()) {
  3303.             txtGodinaRegistracije.setText(txtGodinaRegistracije.getText().substring(0, ih.getMaxInputYearLen()));  
  3304.         }
  3305.        
  3306.         if (!ih.isCmbOk()) {
  3307.             cmbKZaposleni.setBackground(Color.RED);
  3308.             ok = false;
  3309.             ih.setOk(false);
  3310.         }
  3311.        
  3312.         return ok;
  3313.     }
  3314.  
  3315.  
  3316.     public JTextField getTxtKorisnickoIme() {
  3317.         return txtKorisnickoIme;
  3318.     }
  3319.  
  3320.  
  3321.     public String getTxtLozinkaStr() {
  3322.         String pass = null;
  3323.        
  3324.         if (txtLozinka.getPassword() != null) {
  3325.             pass = new String(txtLozinka.getPassword());
  3326.         }
  3327.         else
  3328.             pass = "N/A";
  3329.        
  3330.         return pass;
  3331.        
  3332.     }
  3333.    
  3334.  
  3335.     public JPasswordField getTxtLozinka() {
  3336.         return txtLozinka;
  3337.     }
  3338.  
  3339.     public void setTxtLozinka(JPasswordField txtLozinka) {
  3340.         this.txtLozinka = txtLozinka;
  3341.     }
  3342.  
  3343.     public JTextField getTxtPrezime() {
  3344.         return txtPrezime;
  3345.     }
  3346.  
  3347.  
  3348.     public JTextField getTxtIme() {
  3349.         return txtIme;
  3350.     }
  3351.  
  3352.  
  3353.     public JTextField getTxtGodinaRegistracije() {
  3354.         return txtGodinaRegistracije;
  3355.     }
  3356.  
  3357.  
  3358.     public String getCmbStatusS() {
  3359.         String val = cmbStatus.getSelectedItem().toString();
  3360.        
  3361.         if (val != null)
  3362.             return val;
  3363.        
  3364.         return "N/A";
  3365.     }
  3366.    
  3367.     public String getCmbZaposleniS() {
  3368.         String val = cmbKZaposleni.getSelectedItem().toString();
  3369.        
  3370.         if (val != null)
  3371.             return val;
  3372.        
  3373.         return "N/A";
  3374.     }
  3375.  
  3376.  
  3377.     public String getCbAdministratorS() {
  3378.         if (cbAdministrator.isSelected())
  3379.             return resourceBundle.getString("strYes");
  3380.         else
  3381.             return resourceBundle.getString("strNo");
  3382.     }
  3383.    
  3384.    
  3385.  
  3386.     public JComboBox getCmbKZaposleni() {
  3387.         return cmbKZaposleni;
  3388.     }
  3389.  
  3390.     public void setCmbStatus(JComboBox cmbStatus) {
  3391.         this.cmbStatus = cmbStatus;
  3392.     }
  3393.  
  3394.     public void setCmbKZaposleni(JComboBox cmbKZaposleni) {
  3395.         this.cmbKZaposleni = cmbKZaposleni;
  3396.     }
  3397.  
  3398.     public JComboBox getCmbStatus() {
  3399.         return cmbStatus;
  3400.     }
  3401.  
  3402.     public JCheckBox getCbAdministrator() {
  3403.         return cbAdministrator;
  3404.     }
  3405.    
  3406.     public boolean getCbAdmin() {
  3407.         if (cbAdministrator.isSelected())
  3408.             return true;
  3409.         else
  3410.             return false;
  3411.     }
  3412.        
  3413.     public void setCbAdministrator(JCheckBox cbAdministrator) {
  3414.         this.cbAdministrator = cbAdministrator;
  3415.     }
  3416.    
  3417.    
  3418.    
  3419. }
  3420. package gui.dialogs.d_panels;
  3421.  
  3422. import gui.actions.MyActionListener;
  3423. import gui.actions.MyFocusListener;
  3424. import gui.actions.MyKeyListener;
  3425. import gui.dialogs.GDialog.StanjeDijaloga;
  3426. import gui.exceptions.ElementNePostoji;
  3427. import gui.handlers.InputHandler;
  3428.  
  3429. import java.awt.BorderLayout;
  3430. import java.awt.Color;
  3431. import java.awt.Dimension;
  3432. import java.awt.FlowLayout;
  3433. import java.awt.event.ActionListener;
  3434. import java.awt.event.FocusListener;
  3435. import java.util.Iterator;
  3436. import java.util.Locale;
  3437. import java.util.ResourceBundle;
  3438.  
  3439. import javax.swing.Box;
  3440. import javax.swing.BoxLayout;
  3441. import javax.swing.JComboBox;
  3442. import javax.swing.JLabel;
  3443. import javax.swing.JPanel;
  3444. import javax.swing.JTextField;
  3445.  
  3446. import model.collections.Restoran;
  3447.  
  3448. @SuppressWarnings({"serial", "unchecked", "rawtypes"})
  3449. public class PanelDetailNaseljenaMesta extends GPanelDetail {
  3450.     private ResourceBundle resourceBundle;
  3451.    
  3452.     private JLabel lblOznaka;
  3453.     private JTextField txtOznaka;
  3454.    
  3455.     private JLabel lblNaziv;
  3456.     private JTextField txtNaziv;
  3457.    
  3458.     private JLabel lblDrzava;
  3459.    
  3460.     private String[] drzave;
  3461.     private JComboBox cmbDrzava;
  3462.    
  3463.     InputHandler ih = InputHandler.getInstance();
  3464.    
  3465.     public PanelDetailNaseljenaMesta(StanjeDijaloga mode) {
  3466.        
  3467.         setLayout(new BorderLayout());
  3468.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  3469.  
  3470.         Dimension lblDimension = new Dimension(150,20);
  3471.         drzave = new String [] {ih.getCmbDefaultValue(), "Republika Srbija", "Bosna i Hercegovina", "Hrvatska"};
  3472.  
  3473.         Box boxCentar = new Box(BoxLayout.Y_AXIS);
  3474.        
  3475.         JPanel panOznakaDrzave = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3476.         lblOznaka = new JLabel(resourceBundle.getString("lblOznaka")+"*:");
  3477.         lblOznaka.setPreferredSize(lblDimension);
  3478.         txtOznaka = new JTextField(3);
  3479.         txtOznaka.setEnabled(mode != StanjeDijaloga.BROWSE);
  3480.         panOznakaDrzave.add(lblOznaka);
  3481.         panOznakaDrzave.add(txtOznaka);
  3482.         boxCentar.add(panOznakaDrzave);
  3483.        
  3484.         JPanel panNazivDrzave = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3485.         lblNaziv = new JLabel(resourceBundle.getString("lblNaziv")+"*:");
  3486.         lblNaziv.setPreferredSize(lblDimension);
  3487.         txtNaziv = new JTextField(30);
  3488.         txtNaziv.setEnabled(mode != StanjeDijaloga.BROWSE);
  3489.         panNazivDrzave.add(lblNaziv);
  3490.         panNazivDrzave.add(txtNaziv);
  3491.         boxCentar.add(panNazivDrzave);
  3492.        
  3493.         JPanel panGlavniGrad = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3494.         lblDrzava = new JLabel(resourceBundle.getString("lblDrzava")+"*:");
  3495.         lblDrzava.setPreferredSize(lblDimension);
  3496.         cmbDrzava = new JComboBox();
  3497.         Iterator<String> iterDrzave = Restoran.getInstance().getDrzave().getDrzaveIterator();
  3498.         while (iterDrzave.hasNext()) {
  3499.             try {
  3500.                 cmbDrzava.addItem(Restoran.getInstance().getDrzave().getDrzava(iterDrzave.next()));
  3501.             } catch (ElementNePostoji e) {
  3502.                 e.printStackTrace();
  3503.             }
  3504.         }  
  3505.         cmbDrzava.setEnabled(mode != StanjeDijaloga.BROWSE);
  3506.         panGlavniGrad.add(lblDrzava);
  3507.         panGlavniGrad.add(cmbDrzava);
  3508.         boxCentar.add(panGlavniGrad);
  3509.        
  3510.         FocusListener fl = new MyFocusListener();
  3511.         ActionListener al = new MyActionListener();
  3512.  
  3513.         txtNaziv.addKeyListener(new MyKeyListener(1));
  3514.         txtOznaka.addKeyListener(new MyKeyListener(3));
  3515.        
  3516.         txtNaziv.addFocusListener(fl);
  3517.         txtOznaka.addFocusListener(fl);
  3518.         cmbDrzava.addFocusListener(fl);
  3519.        
  3520.         cmbDrzava.addActionListener(al);
  3521.        
  3522.         add(boxCentar,BorderLayout.CENTER);
  3523.     }
  3524.    
  3525.     public boolean proveriIspravnostPodataka() {
  3526.         boolean ok = true;
  3527.         ih.setOk(true);
  3528.        
  3529.         if (txtNaziv.getText().trim().equals("")) {
  3530.                 ok = false;
  3531.                 ih.setOk(false);
  3532.                 txtNaziv.setBackground(Color.RED);
  3533.         }
  3534.            
  3535.         if (txtNaziv.getText().length() > ih.getMaxInputLenStr()) {
  3536.                 txtNaziv.setText(txtNaziv.getText().substring(0, ih.getMaxInputLenStr())); 
  3537.         }              
  3538.  
  3539.         if (txtOznaka.getText().trim().equals("")) {
  3540.             ok = false;
  3541.             ih.setOk(false);
  3542.             txtOznaka.setBackground(Color.RED);
  3543.         }
  3544.        
  3545.         if (txtOznaka.getText().length() > ih.getMaxInputLenInt()) { // Za oznaku idu 3 slova...
  3546.             txtOznaka.setText(txtOznaka.getText().substring(0, ih.getMaxInputLenInt()));   
  3547.         }
  3548.        
  3549.         if (!ih.isCmbOk()) {
  3550.             cmbDrzava.setBackground(Color.RED);
  3551.             ok = false;
  3552.             ih.setOk(false);
  3553.         }
  3554.  
  3555.         return ok;
  3556.     }
  3557.  
  3558.     public JComboBox getcmbDrzava() {
  3559.         return cmbDrzava;
  3560.     }
  3561.  
  3562.     public JTextField gettxtOznaka() {
  3563.         return txtOznaka;
  3564.     }
  3565.  
  3566.     public JTextField gettxtNaziv() {
  3567.         return txtNaziv;
  3568.     }
  3569.    
  3570.     public String getDrzava() {
  3571.         String val = cmbDrzava.getSelectedItem().toString();
  3572.        
  3573.         if (val != null)
  3574.             return val;
  3575.        
  3576.         return "N/A";
  3577.     }
  3578. }
  3579. package gui.dialogs.d_panels;
  3580.  
  3581. import gui.actions.MyActionListener;
  3582. import gui.actions.MyFocusListener;
  3583. import gui.actions.MyKeyListener;
  3584. import gui.dialogs.GDialog.StanjeDijaloga;
  3585. import gui.exceptions.ElementNePostoji;
  3586. import gui.handlers.InputHandler;
  3587.  
  3588. import java.awt.BorderLayout;
  3589. import java.awt.Color;
  3590. import java.awt.Dimension;
  3591. import java.awt.FlowLayout;
  3592. import java.awt.event.ActionListener;
  3593. import java.awt.event.FocusListener;
  3594. import java.util.Iterator;
  3595. import java.util.Locale;
  3596. import java.util.ResourceBundle;
  3597.  
  3598. import javax.swing.Box;
  3599. import javax.swing.BoxLayout;
  3600. import javax.swing.JComboBox;
  3601. import javax.swing.JLabel;
  3602. import javax.swing.JPanel;
  3603. import javax.swing.JTextField;
  3604.  
  3605. import model.collections.Restoran;
  3606.  
  3607. @SuppressWarnings("serial")
  3608. public class PanelDetailOrganizacija extends GPanelDetail {
  3609.     private ResourceBundle resourceBundle;
  3610.    
  3611.     private JLabel lblOznaka;
  3612.     private JTextField txtOznaka;
  3613.    
  3614.     private JLabel lblNaziv;
  3615.     private JTextField txtNaziv;
  3616.    
  3617.     private JLabel lblAdresa;
  3618.     private JTextField txtAdresa;
  3619.    
  3620.     private JLabel lblEmail;
  3621.     private JTextField txtEmail;
  3622.    
  3623.     private JLabel lblWww;
  3624.     private JTextField txtWww;
  3625.    
  3626.     private JLabel lblTelefon;
  3627.     private JTextField txtTelefon;
  3628.  
  3629.     @SuppressWarnings("rawtypes")
  3630.     private JComboBox cmbMesto, cmbDrzava, cmbTip;
  3631.    
  3632.     private JLabel lblMesto;
  3633.     private JLabel lblDrzava;
  3634.     private JLabel lblTip;
  3635.  
  3636.     InputHandler ih = InputHandler.getInstance();
  3637.  
  3638.     @SuppressWarnings({ "unchecked", "rawtypes" })
  3639.     public PanelDetailOrganizacija(StanjeDijaloga mode) {
  3640.        
  3641.         setLayout(new BorderLayout());
  3642.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  3643.  
  3644.         Dimension lblDimension = new Dimension(150,20);
  3645.         Box boxCentar = new Box(BoxLayout.Y_AXIS);
  3646.        
  3647.         JPanel panOznaka = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3648.         lblOznaka = new JLabel(resourceBundle.getString("lblOznaka")+"*:");
  3649.         lblOznaka.setPreferredSize(lblDimension);
  3650.         txtOznaka = new JTextField(3);
  3651.         txtOznaka.setEnabled(mode != StanjeDijaloga.BROWSE);
  3652.         panOznaka.add(lblOznaka);
  3653.         panOznaka.add(txtOznaka);
  3654.         boxCentar.add(panOznaka);
  3655.        
  3656.         JPanel panNaziv = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3657.         lblNaziv = new JLabel(resourceBundle.getString("lblNaziv")+"*:");
  3658.         lblNaziv.setPreferredSize(lblDimension);
  3659.         txtNaziv = new JTextField(30);
  3660.         txtNaziv.setEnabled(mode != StanjeDijaloga.BROWSE);
  3661.         panNaziv.add(lblNaziv);
  3662.         panNaziv.add(txtNaziv);
  3663.         boxCentar.add(panNaziv);
  3664.        
  3665.         JPanel panMesto = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3666.         lblMesto = new JLabel(resourceBundle.getString("lblMjesto")+"*:");
  3667.         lblMesto.setPreferredSize(lblDimension);
  3668.         cmbMesto = new JComboBox();
  3669.         Iterator<String> iter = Restoran.getInstance().getNaseljenaMesta().getNaseljenaMestaIterator();
  3670.         while (iter.hasNext()) {
  3671.             try {
  3672.                 cmbMesto.addItem(Restoran.getInstance().getNaseljenaMesta().getNaseljenoMesto(iter.next()));
  3673.             } catch (ElementNePostoji e) {
  3674.                 e.printStackTrace();
  3675.             }
  3676.         }  
  3677.         cmbMesto.setEnabled(mode != StanjeDijaloga.BROWSE);
  3678.         panMesto.add(lblMesto);
  3679.         panMesto.add(cmbMesto);
  3680.         boxCentar.add(panMesto);
  3681.        
  3682.         JPanel panDrzava = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3683.         lblDrzava = new JLabel(resourceBundle.getString("lblDrzava")+"*:");
  3684.         lblDrzava.setPreferredSize(lblDimension);
  3685.         cmbDrzava = new JComboBox();
  3686.         iter = Restoran.getInstance().getDrzave().getDrzaveIterator();
  3687.         while (iter.hasNext()) {
  3688.             try {
  3689.                 cmbDrzava.addItem(Restoran.getInstance().getDrzave().getDrzava(iter.next()));
  3690.             } catch (ElementNePostoji e) {
  3691.                 e.printStackTrace();
  3692.             }
  3693.         }
  3694.         cmbDrzava.setEnabled(mode != StanjeDijaloga.BROWSE);
  3695.         panDrzava.add(lblDrzava);
  3696.         panDrzava.add(cmbDrzava);
  3697.         boxCentar.add(panDrzava);
  3698.        
  3699.         JPanel panAdr = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3700.         lblAdresa = new JLabel(resourceBundle.getString("lblAdresa")+"*:");
  3701.         lblAdresa.setPreferredSize(lblDimension);
  3702.         txtAdresa = new JTextField(30);
  3703.         txtAdresa.setEnabled(mode != StanjeDijaloga.BROWSE);
  3704.         panAdr.add(lblAdresa);
  3705.         panAdr.add(txtAdresa);
  3706.         boxCentar.add(panAdr);
  3707.        
  3708.         JPanel panEmail = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3709.         lblEmail = new JLabel(resourceBundle.getString("lblEmail")+":");
  3710.         lblEmail.setPreferredSize(lblDimension);
  3711.         txtEmail = new JTextField(30);
  3712.         txtEmail.setEnabled(mode != StanjeDijaloga.BROWSE);
  3713.         panEmail.add(lblEmail);
  3714.         panEmail.add(txtEmail);
  3715.         boxCentar.add(panEmail);
  3716.        
  3717.         JPanel panTel = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3718.         lblTelefon = new JLabel(resourceBundle.getString("lblTelefon")+":");
  3719.         lblTelefon.setPreferredSize(lblDimension);
  3720.         txtTelefon = new JTextField(30);
  3721.         txtTelefon.setEnabled(mode != StanjeDijaloga.BROWSE);
  3722.         panTel.add(lblTelefon);
  3723.         panTel.add(txtTelefon);
  3724.         boxCentar.add(panTel);
  3725.        
  3726.         JPanel panWeb = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3727.         lblWww = new JLabel(resourceBundle.getString("lblWww")+":");
  3728.         lblWww.setPreferredSize(lblDimension);
  3729.         txtWww = new JTextField(30);
  3730.         txtWww.setEnabled(mode != StanjeDijaloga.BROWSE);
  3731.         panWeb.add(lblWww);
  3732.         panWeb.add(txtWww);
  3733.         boxCentar.add(panWeb);
  3734.        
  3735.         JPanel panTip = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3736.         lblTip = new JLabel(resourceBundle.getString("lblTip")+"*:");
  3737.         lblTip.setPreferredSize(lblDimension);
  3738.         cmbTip = new JComboBox();
  3739.         iter = Restoran.getInstance().getTipoviOrganizacija().getTipoviOrganizacijaIterator();
  3740.         while (iter.hasNext()) {
  3741.             try {
  3742.                 cmbTip.addItem(Restoran.getInstance().getTipoviOrganizacija().getTipOrganizacije(iter.next()));
  3743.             } catch (ElementNePostoji e) {
  3744.                 e.printStackTrace();
  3745.             }
  3746.         }  
  3747.         cmbTip.setEnabled(mode != StanjeDijaloga.BROWSE);
  3748.         panTip.add(lblTip);
  3749.         panTip.add(cmbTip);
  3750.         boxCentar.add(panTip);
  3751.         add(boxCentar,BorderLayout.CENTER);
  3752.        
  3753.         FocusListener fl = new MyFocusListener();
  3754.         ActionListener al1 = new MyActionListener(1);
  3755.         ActionListener al2 = new MyActionListener(2);
  3756.         ActionListener al3 = new MyActionListener(3);
  3757.        
  3758.        
  3759.         txtNaziv.addKeyListener(new MyKeyListener(1));
  3760.         txtOznaka.addKeyListener(new MyKeyListener(3));
  3761.         txtAdresa.addKeyListener(new MyKeyListener(1));
  3762.         txtEmail.addKeyListener(new MyKeyListener(1));
  3763.         txtWww.addKeyListener(new MyKeyListener(1));
  3764.         txtTelefon.addKeyListener(new MyKeyListener(9));
  3765.  
  3766.        
  3767.         txtNaziv.addFocusListener(fl);
  3768.         txtOznaka.addFocusListener(fl);
  3769.         txtAdresa.addFocusListener(fl);
  3770.         cmbDrzava.addFocusListener(fl);
  3771.         cmbMesto.addFocusListener(fl);
  3772.         cmbTip.addFocusListener(fl);
  3773.  
  3774.         cmbDrzava.addActionListener(al1);
  3775.         cmbMesto.addActionListener(al2);
  3776.         cmbTip.addActionListener(al3);
  3777.        
  3778.     }
  3779.    
  3780.     public boolean proveriIspravnostPodataka() {
  3781.         boolean ok = true;
  3782.         ih.setOk(true);
  3783.        
  3784.         if (txtNaziv.getText().trim().equals("")) {
  3785.             ok = false;
  3786.             ih.setOk(false);
  3787.             txtNaziv.setBackground(Color.RED);
  3788.         }
  3789.            
  3790.         if (txtNaziv.getText().length() > ih.getMaxInputLenStr()) {
  3791.             txtNaziv.setText(txtNaziv.getText().substring(0, ih.getMaxInputLenStr())); 
  3792.         }      
  3793.        
  3794.         if (txtOznaka.getText().trim().equals("")) {
  3795.             ok = false;
  3796.             ih.setOk(false);
  3797.             txtOznaka.setBackground(Color.RED);
  3798.         }
  3799.            
  3800.         if (txtOznaka.getText().length() > ih.getMaxInputLenInt()) {
  3801.             txtOznaka.setText(txtOznaka.getText().substring(0, ih.getMaxInputLenInt()));   
  3802.         }      
  3803.  
  3804.        
  3805.         if (txtAdresa.getText().trim().equals("")) {
  3806.             ok = false;
  3807.             ih.setOk(false);
  3808.             txtAdresa.setBackground(Color.RED);
  3809.         }
  3810.            
  3811.         if (txtAdresa.getText().length() > ih.getMaxInputLenStr()) {
  3812.             txtAdresa.setText(txtAdresa.getText().substring(0, ih.getMaxInputLenStr()));   
  3813.         }      
  3814.        
  3815.         if (!ih.getCmbOkMP(1)) {
  3816.             cmbDrzava.setBackground(Color.RED);
  3817.             ok = false;
  3818.             ih.setOk(false);
  3819.         }
  3820.        
  3821.         if (!ih.getCmbOkMP(2)) {
  3822.             cmbMesto.setBackground(Color.RED);
  3823.             ok = false;
  3824.             ih.setOk(false);
  3825.         }
  3826.        
  3827.         if (!ih.getCmbOkMP(3)) {
  3828.             cmbTip.setBackground(Color.RED);
  3829.             ok = false;
  3830.             ih.setOk(false);
  3831.         }
  3832.        
  3833.        
  3834.         return ok;
  3835.     }
  3836.  
  3837.     public JTextField getTxtOznaka() {
  3838.         return txtOznaka;
  3839.     }
  3840.  
  3841.     public JTextField getTxtNaziv() {
  3842.         return txtNaziv;
  3843.     }
  3844.  
  3845.     public JTextField getTxtAdresa() {
  3846.         return txtAdresa;
  3847.     }
  3848.  
  3849.     public JTextField getTxtEmail() {
  3850.         return txtEmail;
  3851.     }
  3852.  
  3853.     public JTextField getTxtWww() {
  3854.         return txtWww;
  3855.     }
  3856.  
  3857.     public JTextField getTxtTelefon() {
  3858.         return txtTelefon;
  3859.     }
  3860.  
  3861.     public String getCmbMestoS() {
  3862.         String val = cmbMesto.getSelectedItem().toString();
  3863.        
  3864.         if (val != null)
  3865.             return val;
  3866.        
  3867.         return "N/A";
  3868.     }
  3869.    
  3870.     public String getCmbDrzavaS() {
  3871.         String val = cmbDrzava.getSelectedItem().toString();
  3872.        
  3873.         if (val != null)
  3874.             return val;
  3875.        
  3876.         return "N/A";
  3877.     }
  3878.    
  3879.     public String getCmbTipS() {
  3880.         String val = cmbTip.getSelectedItem().toString();
  3881.        
  3882.         if (val != null)
  3883.             return val;
  3884.        
  3885.         return "N/A";
  3886.     }
  3887.  
  3888.     public void setCmbMesto(JComboBox cmbMesto) {
  3889.         this.cmbMesto = cmbMesto;
  3890.     }
  3891.  
  3892.     public void setCmbDrzava(JComboBox cmbDrzava) {
  3893.         this.cmbDrzava = cmbDrzava;
  3894.     }
  3895.  
  3896.     public void setCmbTip(JComboBox cmbTip) {
  3897.         this.cmbTip = cmbTip;
  3898.     }
  3899.  
  3900.     public JComboBox getCmbMesto() {
  3901.         return cmbMesto;
  3902.     }
  3903.  
  3904.     public JComboBox getCmbDrzava() {
  3905.         return cmbDrzava;
  3906.     }
  3907.  
  3908.     public JComboBox getCmbTip() {
  3909.         return cmbTip;
  3910.     }
  3911.    
  3912.    
  3913.    
  3914. }
  3915. package gui.dialogs.d_panels;
  3916.  
  3917. import gui.actions.MyDateListener;
  3918. import gui.actions.MyFocusListener;
  3919. import gui.actions.MyKeyListener;
  3920. import gui.dialogs.GDialog.StanjeDijaloga;
  3921. import gui.handlers.InputHandler;
  3922.  
  3923. import java.awt.BorderLayout;
  3924. import java.awt.Color;
  3925. import java.awt.Dimension;
  3926. import java.awt.FlowLayout;
  3927. import java.awt.event.FocusListener;
  3928. import java.util.Calendar;
  3929. import java.util.Date;
  3930. import java.util.Locale;
  3931. import java.util.ResourceBundle;
  3932.  
  3933. import javax.swing.Box;
  3934. import javax.swing.BoxLayout;
  3935. import javax.swing.JLabel;
  3936. import javax.swing.JOptionPane;
  3937. import javax.swing.JPanel;
  3938. import javax.swing.JTextField;
  3939.  
  3940. import org.freixas.jcalendar.JCalendarCombo;
  3941.  
  3942. @SuppressWarnings("serial")
  3943. public class PanelDetailPivnicaDogadjaj extends GPanelDetail {
  3944. private ResourceBundle resourceBundle;
  3945.    
  3946.     private JLabel lblEventName;
  3947.     private JTextField txtEventName;
  3948.    
  3949.     private JLabel lblVrijemePocetka;
  3950.     private JCalendarCombo vrijemePocetka;
  3951.    
  3952.     private JLabel lblVrijemeZavrsetka;
  3953.     private JCalendarCombo vrijemeZavrsetka;
  3954.    
  3955.     private JLabel lblCena;
  3956.     private JTextField txtCena;
  3957.    
  3958.     private JLabel lblPopust;
  3959.     private JTextField txtPopust;
  3960.    
  3961.     InputHandler ih = InputHandler.getInstance();
  3962.    
  3963.     public PanelDetailPivnicaDogadjaj(StanjeDijaloga mode) {
  3964.        
  3965.         setLayout(new BorderLayout());
  3966.         resourceBundle = ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  3967.         Dimension lblDimension = new Dimension(150,20);
  3968.  
  3969.         Box boxCentar = new Box(BoxLayout.Y_AXIS);
  3970.        
  3971.         JPanel panEventName = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3972.         lblEventName = new JLabel(resourceBundle.getString("lblEventName")+"*:");
  3973.         lblEventName.setPreferredSize(lblDimension);
  3974.         txtEventName = new JTextField(30);
  3975.         txtEventName.setEnabled(mode != StanjeDijaloga.BROWSE);
  3976.         panEventName.add(lblEventName);
  3977.         panEventName.add(txtEventName);
  3978.         boxCentar.add(panEventName);
  3979.  
  3980.  
  3981.        
  3982.         JPanel panVrijemePocetka = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3983.         vrijemePocetka = new JCalendarCombo(Calendar.getInstance(), Locale.getDefault(), JCalendarCombo.DISPLAY_DATE | JCalendarCombo.DISPLAY_TIME, true, "HH:mm");
  3984.         lblVrijemePocetka = new JLabel(resourceBundle.getString("lblEventStartTime")+"*:");
  3985.         lblVrijemePocetka.setPreferredSize(lblDimension);
  3986.         vrijemePocetka.setEnabled(mode != StanjeDijaloga.BROWSE);
  3987.         panVrijemePocetka.add(lblVrijemePocetka);
  3988.         panVrijemePocetka.add(vrijemePocetka);
  3989.         vrijemePocetka.setNullAllowed(false);
  3990.         boxCentar.add(panVrijemePocetka);
  3991.        
  3992.        
  3993.         JPanel panVrijemeZavrsetka = new JPanel(new FlowLayout(FlowLayout.LEFT));
  3994.         vrijemeZavrsetka  = new JCalendarCombo(Calendar.getInstance(), Locale.getDefault(), JCalendarCombo.DISPLAY_DATE | JCalendarCombo.DISPLAY_TIME, true, "HH:mm");
  3995.         lblVrijemeZavrsetka = new JLabel(resourceBundle.getString("lblEventEndTime")+"*:");
  3996.         lblVrijemeZavrsetka.setPreferredSize(lblDimension);
  3997.         vrijemeZavrsetka.setEnabled(mode != StanjeDijaloga.BROWSE);
  3998.         panVrijemeZavrsetka.add(lblVrijemeZavrsetka);
  3999.         panVrijemeZavrsetka.add(vrijemeZavrsetka);
  4000.         vrijemeZavrsetka.setNullAllowed(false);
  4001.         boxCentar.add(panVrijemeZavrsetka);
  4002.        
  4003.         JPanel panCena = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4004.         lblCena = new JLabel(resourceBundle.getString("lblEventTicketPrice")+"*:");
  4005.         lblCena.setPreferredSize(lblDimension);
  4006.         txtCena = new JTextField(7);
  4007.         txtCena.setEnabled(mode != StanjeDijaloga.BROWSE);
  4008.         panCena.add(lblCena);
  4009.         panCena.add(txtCena);
  4010.         boxCentar.add(panCena);
  4011.        
  4012.         JPanel panPopust = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4013.         lblPopust = new JLabel(resourceBundle.getString("lblEventPopust")+"[%]*:");
  4014.         lblPopust.setPreferredSize(lblDimension);
  4015.         txtPopust = new JTextField(5);
  4016.         txtPopust.setEnabled(mode != StanjeDijaloga.BROWSE);
  4017.         panPopust.add(lblPopust);
  4018.         panPopust.add(txtPopust);
  4019.         boxCentar.add(panPopust);
  4020.        
  4021.         add(boxCentar,BorderLayout.CENTER);
  4022.        
  4023.         FocusListener fl = new MyFocusListener();
  4024.        
  4025.         txtEventName.addKeyListener(new MyKeyListener(1));
  4026.         txtCena.addKeyListener(new MyKeyListener(11, 10, '.'));
  4027.         txtPopust.addKeyListener(new MyKeyListener(7, 3));
  4028.        
  4029.         txtEventName.addFocusListener(fl);
  4030.         txtCena.addFocusListener(fl);
  4031.         txtPopust.addFocusListener(fl);
  4032.        
  4033.         vrijemePocetka.addDateListener(new MyDateListener());
  4034.         vrijemeZavrsetka.addDateListener(new MyDateListener());
  4035.        
  4036.         vrijemePocetka.addFocusListener(fl);
  4037.         vrijemeZavrsetka.addFocusListener(fl);
  4038.        
  4039.         vrijemePocetka.setName("vrijemePocetka");
  4040.         vrijemeZavrsetka.setName("vrijemeZavrsetka");
  4041.     }
  4042.  
  4043.     @Override
  4044.     public boolean proveriIspravnostPodataka() {
  4045.         // TODO Auto-generated method stub
  4046.         boolean ok = true;
  4047.         ih.setOk(true);
  4048.         int val = 0;
  4049.        
  4050.         if (!txtEventName.getText().trim().equals("")) {
  4051.             if (txtEventName.getText().length() < ih.getMaxInputLenInt()) {
  4052.                 ok = false;
  4053.                 ih.setOk(false);
  4054.                 txtEventName.setBackground(Color.RED);
  4055.             }
  4056.            
  4057.             if (txtEventName.getText().length() > ih.getMaxInputLenStr()) {
  4058.                 txtEventName.setText(txtEventName.getText().substring(0, ih.getMaxInputLenStr())); 
  4059.             }  
  4060.            
  4061.         }
  4062.         else {
  4063.             ok = false;
  4064.             ih.setOk(false);
  4065.             txtEventName.setBackground(Color.RED);
  4066.         }
  4067.        
  4068.         if (!ih.isOk()) {
  4069.             ok = false;
  4070.             ih.setOk(false);
  4071.             txtEventName.setBackground(Color.RED);
  4072.         }
  4073.        
  4074.         if (!txtCena.getText().trim().equals("")) {
  4075.             if (txtCena.getText().length() > 10) {
  4076.                 txtCena.setText(txtCena.getText().substring(0, 10));   
  4077.             }
  4078.         }
  4079.         else {
  4080.             ok = false;
  4081.             ih.setOk(false);
  4082.             txtCena.setBackground(Color.RED);
  4083.         }
  4084.        
  4085.         if (!txtPopust.getText().trim().equals("")) {
  4086.             if (txtPopust.getText().length() > 3) {
  4087.                 txtPopust.setText(txtPopust.getText().substring(0, 3));
  4088.             }
  4089.             val = Integer.parseInt(txtPopust.getText());
  4090. System.out.println(val);
  4091.             if (val > 100) {
  4092.                 txtPopust.setText("100");
  4093.                 val = 100;
  4094.             }
  4095.            
  4096.             ih.setPopustVal((val / 100) + 1);
  4097.             System.out.println("popust val: "+ ih.getPopustVal());
  4098.         }
  4099.         else {
  4100.             ok = false;
  4101.             ih.setOk(false);
  4102.             txtPopust.setBackground(Color.RED);
  4103.         }
  4104.        
  4105.         // Provjera za datume:
  4106.         Date now = new Date();
  4107.         System.out.println("now: "+now);
  4108.         Date c1 = vrijemePocetka.getDate();
  4109.         Date c2 = vrijemeZavrsetka.getDate();
  4110.         System.out.println("c1: "+c1);
  4111.        
  4112.         if (c1.compareTo(c2) == 0) {
  4113.             JOptionPane.showMessageDialog(this, resourceBundle.getString("lblDateW2"));
  4114.             ok = false;
  4115.             ih.setOk(false);
  4116.             vrijemePocetka.setBackground(Color.RED);
  4117.             vrijemeZavrsetka.setBackground(Color.RED);
  4118.         }
  4119.         else if (c1.compareTo(c2) > 0) {
  4120.             JOptionPane.showMessageDialog(this, resourceBundle.getString("lblDateW1"));
  4121.             ok = false;
  4122.             ih.setOk(false);
  4123.             vrijemePocetka.setBackground(Color.RED);
  4124.             vrijemeZavrsetka.setBackground(Color.RED);
  4125.         }
  4126.         else {
  4127.             vrijemePocetka.setBackground(null);
  4128.             vrijemeZavrsetka.setBackground(null);
  4129.         }
  4130.    
  4131.         // Situacija koja se rijetko kada moze desiti...
  4132.         if (c1.compareTo(now) == 0 || c2.compareTo(now) == 0) {
  4133.             JOptionPane.showMessageDialog(this, resourceBundle.getString("lblDateW3"));
  4134.             ok = false;
  4135.             ih.setOk(false);
  4136.             vrijemePocetka.setBackground(Color.RED);
  4137.             vrijemeZavrsetka.setBackground(Color.RED);
  4138.         }
  4139.        
  4140.         if (c2.compareTo(now) < 0) {
  4141.             JOptionPane.showMessageDialog(this, resourceBundle.getString("lblDateW4"));
  4142.             ok = false;
  4143.             ih.setOk(false);
  4144.             vrijemePocetka.setBackground(Color.RED);
  4145.             vrijemeZavrsetka.setBackground(Color.RED);
  4146.         }
  4147.        
  4148.         // Popust test:
  4149.         if (now.after(c1) && now.before(c2)) {
  4150.             System.out.println("popust u toku!");
  4151.         //  ih.setPopust(true);
  4152.         }
  4153.        
  4154.         else {
  4155.             ih.setPopust(false);
  4156.             System.out.println("nema popusta!");
  4157.         }
  4158.        
  4159.         return ok;
  4160.     }
  4161.  
  4162.     public JTextField getTxtEventName() {
  4163.         return txtEventName;
  4164.     }
  4165.  
  4166.     public JCalendarCombo getVrijemePocetka() {
  4167.         return vrijemePocetka;
  4168.     }
  4169.  
  4170.     public JCalendarCombo getVrijemeZavrsetka() {
  4171.         return vrijemeZavrsetka;
  4172.     }
  4173.  
  4174.     public JTextField getTxtCena() {
  4175.         return txtCena;
  4176.     }
  4177.  
  4178.     public JTextField getTxtPopust() {
  4179.         return txtPopust;
  4180.     }
  4181.  
  4182.     public void setTxtEventName(JTextField txtEventName) {
  4183.         this.txtEventName = txtEventName;
  4184.     }
  4185.  
  4186.     public void setVrijemePocetka(JCalendarCombo vrijemePocetka) {
  4187.         this.vrijemePocetka = vrijemePocetka;
  4188.     }
  4189.  
  4190.     public void setVrijemeZavrsetka(JCalendarCombo vrijemeZavrsetka) {
  4191.         this.vrijemeZavrsetka = vrijemeZavrsetka;
  4192.     }
  4193.  
  4194.     public void setTxtCena(JTextField txtCena) {
  4195.         this.txtCena = txtCena;
  4196.     }
  4197.  
  4198.     public void setTxtPopust(JTextField txtPopust) {
  4199.         this.txtPopust = txtPopust;
  4200.     }
  4201.    
  4202.    
  4203.  
  4204. }
  4205. package gui.dialogs.d_panels;
  4206.  
  4207. import gui.handlers.InputHandler;
  4208.  
  4209. import java.util.ResourceBundle;
  4210.  
  4211. import javax.swing.JComboBox;
  4212. import javax.swing.JLabel;
  4213. import javax.swing.JTextField;
  4214.  
  4215. public class PanelDetailPivnicaIzvestaj extends GPanelDetail {
  4216.     private ResourceBundle resourceBundle;
  4217.    
  4218.     private JLabel lblOznakaDrzave;
  4219.     private JTextField txtOznakaDrzave;
  4220.    
  4221.     private JLabel lblNazivDrzave;
  4222.     private JTextField txtNazivDrzave;
  4223.    
  4224.     private JLabel lblGlavniGrad;
  4225.    
  4226.     private String[] gradovi;
  4227.     private JComboBox cmbGrad;
  4228.    
  4229.     InputHandler ih = InputHandler.getInstance();
  4230.  
  4231.     @Override
  4232.     public boolean proveriIspravnostPodataka() {
  4233.         // TODO Auto-generated method stub
  4234.         return false;
  4235.     }
  4236.  
  4237. }
  4238. package gui.dialogs.d_panels;
  4239.  
  4240. import gui.actions.MyActionListener;
  4241. import gui.actions.MyFocusListener;
  4242. import gui.actions.MyKeyListener;
  4243. import gui.dialogs.GDialog.StanjeDijaloga;
  4244. import gui.exceptions.ElementNePostoji;
  4245. import gui.handlers.InputHandler;
  4246.  
  4247. import java.awt.BorderLayout;
  4248. import java.awt.Color;
  4249. import java.awt.Dimension;
  4250. import java.awt.FlowLayout;
  4251. import java.awt.event.FocusListener;
  4252. import java.util.Iterator;
  4253. import java.util.Locale;
  4254. import java.util.ResourceBundle;
  4255.  
  4256. import javax.swing.Box;
  4257. import javax.swing.BoxLayout;
  4258. import javax.swing.JComboBox;
  4259. import javax.swing.JLabel;
  4260. import javax.swing.JPanel;
  4261. import javax.swing.JTextField;
  4262.  
  4263. import model.collections.Restoran;
  4264.  
  4265.  
  4266. @SuppressWarnings("serial")
  4267. public class PanelDetailPivnicaPivo extends GPanelDetail {
  4268.     private ResourceBundle resourceBundle;
  4269.    
  4270.     private JLabel lblNazivPiva;
  4271.     private JTextField txtNazivPiva;
  4272.    
  4273.     private JLabel lblVrstaPiva;
  4274.     private JComboBox cmbVrstaPiva;
  4275.    
  4276.     private JLabel lblProizvodjacPiva;
  4277.     private JTextField txtProizvodjacPiva;
  4278.    
  4279.     private JLabel lblDrzavaPorekla;
  4280.     private JComboBox cmbDrzavaPorekla;
  4281.    
  4282.     private JLabel lblProcenatAlkohola;
  4283.     private JTextField txtProcenatAlkohola;
  4284.    
  4285.     private JLabel lblAmbalazaPiva;
  4286.    
  4287.     private JLabel lblCenaPiva;
  4288.     private JTextField txtCenaPiva;
  4289.    
  4290.     private String[] ambalaza;
  4291.     private JComboBox cmbAmbalaza;
  4292.  
  4293.     InputHandler ih = InputHandler.getInstance();
  4294.    
  4295.     @SuppressWarnings({ "unchecked", "rawtypes" })
  4296.     public PanelDetailPivnicaPivo(StanjeDijaloga mode) {
  4297.         setLayout(new BorderLayout());
  4298.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  4299.         Dimension lblDimension = new Dimension(150,20);
  4300.         ambalaza = new String [] {ih.getCmbDefaultValue(), resourceBundle.getString("lblFlasiranoPivo"), resourceBundle.getString("lblTocenoPivo")};
  4301.  
  4302.         Box boxCentar = new Box(BoxLayout.Y_AXIS);
  4303.        
  4304.         JPanel panNazivPiva = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4305.         lblNazivPiva = new JLabel(resourceBundle.getString("lblNazivPiva")+"*:");
  4306.         lblNazivPiva.setPreferredSize(lblDimension);
  4307.         txtNazivPiva = new JTextField(30);
  4308.         txtNazivPiva.setEnabled(mode != StanjeDijaloga.BROWSE);
  4309.         panNazivPiva.add(lblNazivPiva);
  4310.         panNazivPiva.add(txtNazivPiva);
  4311.         boxCentar.add(panNazivPiva);
  4312.        
  4313.         JPanel panVrstaPiva = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4314.         lblVrstaPiva = new JLabel(resourceBundle.getString("lblVrstaPiva")+"*:");
  4315.         lblVrstaPiva.setPreferredSize(lblDimension);
  4316.         cmbVrstaPiva = new JComboBox();
  4317.         Iterator<String> iterVP = Restoran.getInstance().getvPiva().getVPivaIterator();
  4318.         while (iterVP.hasNext()) {
  4319.             try {
  4320.                 cmbVrstaPiva.addItem(Restoran.getInstance().getvPiva().getVPivo(iterVP.next()));
  4321.             } catch (ElementNePostoji e) {
  4322.                 e.printStackTrace();
  4323.             }
  4324.         }  
  4325.         cmbVrstaPiva.setEnabled(mode != StanjeDijaloga.BROWSE);
  4326.         panVrstaPiva.add(lblVrstaPiva);
  4327.         panVrstaPiva.add(cmbVrstaPiva);
  4328.         boxCentar.add(panVrstaPiva);
  4329.        
  4330.         JPanel panProizvodjacPiva = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4331.         lblProizvodjacPiva = new JLabel(resourceBundle.getString("lblProizvodjacPiva")+"*:");
  4332.         lblProizvodjacPiva.setPreferredSize(lblDimension);
  4333.         txtProizvodjacPiva = new JTextField(30);
  4334.         txtProizvodjacPiva.setEnabled(mode != StanjeDijaloga.BROWSE);
  4335.         panProizvodjacPiva.add(lblProizvodjacPiva);
  4336.         panProizvodjacPiva.add(txtProizvodjacPiva);
  4337.         boxCentar.add(panProizvodjacPiva);
  4338.        
  4339.         JPanel panDrzavaPorekla = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4340.         lblDrzavaPorekla = new JLabel(resourceBundle.getString("lblDrzavaPorekla")+"*:");
  4341.         lblDrzavaPorekla.setPreferredSize(lblDimension);
  4342.         cmbDrzavaPorekla = new JComboBox();
  4343.         Iterator<String> iterDrzave = Restoran.getInstance().getDrzave().getDrzaveIterator();
  4344.         while (iterDrzave.hasNext()) {
  4345.             try {
  4346.                 cmbDrzavaPorekla.addItem(Restoran.getInstance().getDrzave().getDrzava(iterDrzave.next()));
  4347.             } catch (ElementNePostoji e) {
  4348.                 e.printStackTrace();
  4349.             }
  4350.         }  
  4351.         cmbDrzavaPorekla.setEnabled(mode != StanjeDijaloga.BROWSE);
  4352.         panDrzavaPorekla.add(lblDrzavaPorekla);
  4353.         panDrzavaPorekla.add(cmbDrzavaPorekla);
  4354.         boxCentar.add(panDrzavaPorekla);
  4355.        
  4356.         JPanel panProcenatAlkohola = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4357.         lblProcenatAlkohola = new JLabel(resourceBundle.getString("lblProcenatAlkohola")+"*:");
  4358.         lblProcenatAlkohola.setPreferredSize(lblDimension);
  4359.         txtProcenatAlkohola = new JTextField(2);
  4360.         txtProcenatAlkohola.setEnabled(mode != StanjeDijaloga.BROWSE);
  4361.         panProcenatAlkohola.add(lblProcenatAlkohola);
  4362.         panProcenatAlkohola.add(txtProcenatAlkohola);
  4363.         boxCentar.add(panProcenatAlkohola);
  4364.        
  4365.         JPanel panAmbalazaPiva = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4366.         lblAmbalazaPiva = new JLabel(resourceBundle.getString("lblAmbalazaPiva")+"*:");
  4367.         lblAmbalazaPiva.setPreferredSize(lblDimension);
  4368.         cmbAmbalaza = new JComboBox(ambalaza);     
  4369.         cmbAmbalaza.setEnabled(mode != StanjeDijaloga.BROWSE);
  4370.         panAmbalazaPiva.add(lblAmbalazaPiva);
  4371.         panAmbalazaPiva.add(cmbAmbalaza);
  4372.         boxCentar.add(panAmbalazaPiva);
  4373.        
  4374.         JPanel panCenaPiva = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4375.         lblCenaPiva = new JLabel(resourceBundle.getString("lblCenaPiva")+"*:");
  4376.         lblCenaPiva.setPreferredSize(lblDimension);
  4377.         txtCenaPiva = new JTextField(7);
  4378.         txtCenaPiva.setEnabled(mode != StanjeDijaloga.BROWSE);
  4379.         panCenaPiva.add(lblCenaPiva);
  4380.         panCenaPiva.add(txtCenaPiva);      
  4381.         boxCentar.add(panCenaPiva);
  4382.        
  4383.         FocusListener fl = new MyFocusListener();
  4384.     //  KeyListener k1 = new MyKeyListener(1);
  4385.        
  4386.         txtNazivPiva.addKeyListener(new MyKeyListener(1));
  4387.         txtProizvodjacPiva.addKeyListener(new MyKeyListener(1));
  4388.         txtProcenatAlkohola.addKeyListener(new MyKeyListener(7,1));
  4389.         txtCenaPiva.addKeyListener(new MyKeyListener(1));
  4390.        
  4391.         txtNazivPiva.addFocusListener(fl);
  4392.         txtProizvodjacPiva.addFocusListener(fl);
  4393.         cmbDrzavaPorekla.addFocusListener(fl);
  4394.         cmbVrstaPiva.addFocusListener(fl);
  4395.         txtProcenatAlkohola.addFocusListener(fl);
  4396.         txtCenaPiva.addFocusListener(fl);
  4397.        
  4398.         cmbAmbalaza.addFocusListener(fl);
  4399.         cmbAmbalaza.addActionListener(new MyActionListener());
  4400.        
  4401.         add(boxCentar,BorderLayout.CENTER);
  4402.     }
  4403.  
  4404.     @Override
  4405.     public boolean proveriIspravnostPodataka() {
  4406.         // TODO Auto-generated method stub
  4407.         boolean ok = true;
  4408.         ih.setOk(true);
  4409.        
  4410.         if (!txtNazivPiva.getText().trim().equals("")) {
  4411.             if (txtNazivPiva.getText().length() < ih.getMaxInputLenInt()) {
  4412.                 ok = false;
  4413.                 ih.setOk(false);
  4414.                 txtNazivPiva.setBackground(Color.RED);
  4415.             }
  4416.            
  4417.             if (txtNazivPiva.getText().length() > ih.getMaxInputLenStr()) {
  4418.                 txtNazivPiva.setText(txtNazivPiva.getText().substring(0, ih.getMaxInputLenStr())); 
  4419.             }  
  4420.            
  4421.         }
  4422.         else {
  4423.             ok = false;
  4424.             ih.setOk(false);
  4425.             txtNazivPiva.setBackground(Color.RED);
  4426.         }
  4427.        
  4428.         if (!ih.isOk()) {
  4429.             ok = false;
  4430.             ih.setOk(false);
  4431.             txtNazivPiva.setBackground(Color.RED);
  4432.         }
  4433.        
  4434.         //
  4435.         if (!txtProizvodjacPiva.getText().trim().equals("")) {
  4436.             if (txtProizvodjacPiva.getText().length() < ih.getMaxInputLenInt()) {
  4437.                 ok = false;
  4438.                 ih.setOk(false);
  4439.                 txtProizvodjacPiva.setBackground(Color.RED);
  4440.             }
  4441.            
  4442.             if (txtProizvodjacPiva.getText().length() > ih.getMaxInputLenStr()) {
  4443.                 txtProizvodjacPiva.setText(txtProizvodjacPiva.getText().substring(0, ih.getMaxInputLenStr())); 
  4444.             }  
  4445.            
  4446.         }
  4447.         else {
  4448.             ok = false;
  4449.             ih.setOk(false);
  4450.             txtProizvodjacPiva.setBackground(Color.RED);
  4451.         }
  4452.        
  4453.         if (!ih.isOk()) {
  4454.             ok = false;
  4455.             ih.setOk(false);
  4456.             txtProizvodjacPiva.setBackground(Color.RED);
  4457.         }      
  4458.        
  4459.         //
  4460.         if (!txtProcenatAlkohola.getText().trim().equals("")) {
  4461.             if (txtProcenatAlkohola.getText().length() > 1) {
  4462.                 txtProcenatAlkohola.setText(txtProcenatAlkohola.getText().substring(0, 1));
  4463.             }  
  4464.            
  4465.         }
  4466.         else {
  4467.             ok = false;
  4468.             ih.setOk(false);
  4469.             txtProcenatAlkohola.setBackground(Color.RED);
  4470.         }
  4471.        
  4472.         if (!ih.isOk()) {
  4473.             ok = false;
  4474.             ih.setOk(false);
  4475.             txtProcenatAlkohola.setBackground(Color.RED);
  4476.         }
  4477.        
  4478.         //
  4479.         if (!txtCenaPiva.getText().trim().equals("")) {
  4480.             if (txtCenaPiva.getText().length() > ih.getMaxInputLenStr()) {
  4481.                 txtCenaPiva.setText(txtCenaPiva.getText().substring(0, ih.getMaxInputLenStr()));   
  4482.             }  
  4483.            
  4484.         }
  4485.         else {
  4486.             ok = false;
  4487.             ih.setOk(false);
  4488.             txtCenaPiva.setBackground(Color.RED);
  4489.         }
  4490.        
  4491.         if (!ih.isOk()) {
  4492.             ok = false;
  4493.             ih.setOk(false);
  4494.             txtCenaPiva.setBackground(Color.RED);
  4495.         }
  4496.        
  4497.         //
  4498.         if (!ih.isCmbOk()) {
  4499.             cmbAmbalaza.setBackground(Color.RED);
  4500.             ok = false;
  4501.             ih.setOk(false);
  4502.         }
  4503.        
  4504.         return ok;
  4505.     }
  4506.  
  4507.     public JTextField getTxtNazivPiva() {
  4508.         return txtNazivPiva;
  4509.     }
  4510.  
  4511.     public void setTxtNazivPiva(JTextField txtNazivPiva) {
  4512.         this.txtNazivPiva = txtNazivPiva;
  4513.     }
  4514.  
  4515.     public JComboBox getVrstaPiva() {
  4516.         return cmbVrstaPiva;
  4517.     }
  4518.  
  4519.     public void setVrstaPiva(JComboBox txtVrstaPiva) {
  4520.         this.cmbVrstaPiva = txtVrstaPiva;
  4521.     }
  4522.  
  4523.     public JTextField getTxtProizvodjacPiva() {
  4524.         return txtProizvodjacPiva;
  4525.     }
  4526.  
  4527.     public void setTxtProizvodjacPiva(JTextField txtProizvodjacPiva) {
  4528.         this.txtProizvodjacPiva = txtProizvodjacPiva;
  4529.     }
  4530.  
  4531.     public JComboBox getDrzavaPorekla() {
  4532.         return cmbDrzavaPorekla;
  4533.     }
  4534.  
  4535.     public void setDrzavaPorekla(JComboBox txtDrzavaPorekla) {
  4536.         this.cmbDrzavaPorekla = txtDrzavaPorekla;
  4537.     }
  4538.  
  4539.     public JTextField getTxtProcenatAlkohola() {
  4540.         return txtProcenatAlkohola;
  4541.     }
  4542.  
  4543.     public void setTxtProcenatAlkohola(JTextField txtProcenatAlkohola) {
  4544.         this.txtProcenatAlkohola = txtProcenatAlkohola;
  4545.     }
  4546.  
  4547.     public JTextField getTxtCenaPiva() {
  4548.         return txtCenaPiva;
  4549.     }
  4550.  
  4551.     public void setTxtCenaPiva(JTextField txtCenaPiva) {
  4552.         this.txtCenaPiva = txtCenaPiva;
  4553.     }
  4554.    
  4555.     public JComboBox getCmbAmbalaza() {
  4556.         return cmbAmbalaza;
  4557.     }
  4558.  
  4559.     public void setCmbAmbalaza(JComboBox cmbAmbalaza) {
  4560.         this.cmbAmbalaza = cmbAmbalaza;
  4561.     }
  4562.  
  4563.    
  4564.  
  4565. }
  4566. package gui.dialogs.d_panels;
  4567.  
  4568. import gui.actions.MyActionListener;
  4569. import gui.actions.MyCMBListener;
  4570. import gui.actions.MyDateListener;
  4571. import gui.actions.MyFocusListener;
  4572. import gui.dialogs.GDialog.StanjeDijaloga;
  4573. import gui.exceptions.ElementNePostoji;
  4574. import gui.handlers.InputHandler;
  4575.  
  4576. import java.awt.BorderLayout;
  4577. import java.awt.Color;
  4578. import java.awt.Dimension;
  4579. import java.awt.FlowLayout;
  4580. import java.awt.event.ActionEvent;
  4581. import java.awt.event.ActionListener;
  4582. import java.awt.event.FocusListener;
  4583. import java.util.Calendar;
  4584. import java.util.Iterator;
  4585. import java.util.Locale;
  4586. import java.util.Random;
  4587. import java.util.ResourceBundle;
  4588.  
  4589. import javax.swing.Box;
  4590. import javax.swing.BoxLayout;
  4591. import javax.swing.JButton;
  4592. import javax.swing.JComboBox;
  4593. import javax.swing.JLabel;
  4594. import javax.swing.JPanel;
  4595. import javax.swing.JTextField;
  4596.  
  4597. import model.collections.Restoran;
  4598.  
  4599. import org.freixas.jcalendar.JCalendarCombo;
  4600.  
  4601. @SuppressWarnings("serial")
  4602. public class PanelDetailPivnicaRacun  extends GPanelDetail {
  4603. private ResourceBundle resourceBundle;
  4604.    
  4605.     private JLabel lblUkupanIznos;
  4606.     private JTextField txtUkupanIznos;
  4607.    
  4608.     private JLabel lblDatum;
  4609.     private JCalendarCombo datum;
  4610.    
  4611.     private JLabel lblProdatoPivo1;
  4612.     private JComboBox cmbProdatoPivo1;
  4613.    
  4614.     private JLabel lblProdatoPivo2;
  4615.     private JComboBox cmbProdatoPivo2;
  4616.    
  4617.     private JLabel lblProdatoPivo3;
  4618.     private JComboBox cmbProdatoPivo3;
  4619.    
  4620.     private JLabel lblDodaj;
  4621.     private JButton btnDodaj;
  4622.    
  4623.     private JLabel lblID;
  4624.     private JTextField txtID;
  4625.    
  4626.     private boolean add = true;
  4627.    
  4628.     private JLabel lblPopustStr;
  4629.    
  4630.     private int cmbCnt;
  4631.    
  4632. InputHandler ih = InputHandler.getInstance();
  4633.    
  4634.     public PanelDetailPivnicaRacun(StanjeDijaloga mode) {
  4635.         setLayout(new BorderLayout());
  4636.         resourceBundle = ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  4637.         Dimension lblDimension = new Dimension(150,20);
  4638.         Dimension btnDimension = new Dimension(45,20);
  4639.  
  4640.         final Box boxCentar = new Box(BoxLayout.Y_AXIS);
  4641.         cmbCnt = 0;
  4642.        
  4643.         Random rnd = new Random();
  4644.         int r_id = 100000 + rnd.nextInt(900000);
  4645.        
  4646.         JPanel panID = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4647.         lblID = new JLabel("ID:");
  4648.         lblID.setPreferredSize(lblDimension);
  4649.         txtID = new JTextField(Integer.toString(r_id));
  4650.         txtID.setEditable(false);
  4651.         panID.add(lblID);
  4652.         panID.add(txtID);
  4653.         boxCentar.add(panID);
  4654.        
  4655.         JPanel panProdatoPivo = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4656.         lblProdatoPivo1 = new JLabel(resourceBundle.getString("lblProdatoPivo")+" #1*:");
  4657.         lblProdatoPivo1.setPreferredSize(lblDimension);
  4658.         cmbProdatoPivo1  = new JComboBox();
  4659.         Iterator<String> iter = Restoran.getInstance().getPivo().getPivoIterator();
  4660.         while (iter.hasNext()) {
  4661.             try {
  4662.                 cmbProdatoPivo1.addItem(Restoran.getInstance().getPivo().getPivo(iter.next()));
  4663.             } catch (ElementNePostoji e) {
  4664.                 e.printStackTrace();
  4665.             }
  4666.         }          
  4667.         cmbProdatoPivo1.setEnabled(mode != StanjeDijaloga.BROWSE);
  4668.         panProdatoPivo.add(lblProdatoPivo1);
  4669.         panProdatoPivo.add(cmbProdatoPivo1);
  4670.         boxCentar.add(panProdatoPivo);
  4671.        
  4672.         final JPanel panProdatoPivo2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4673.         lblProdatoPivo2 = new JLabel(resourceBundle.getString("lblProdatoPivo")+" #2*:");
  4674.         lblProdatoPivo2.setPreferredSize(lblDimension);
  4675.         cmbProdatoPivo2  = new JComboBox();
  4676.         Iterator<String> iter1 = Restoran.getInstance().getPivo().getPivoIterator();
  4677.         while (iter1.hasNext()) {
  4678.             try {
  4679.                 cmbProdatoPivo2.addItem(Restoran.getInstance().getPivo().getPivo(iter1.next()));
  4680.             } catch (ElementNePostoji e) {
  4681.                 e.printStackTrace();
  4682.             }
  4683.         }                  
  4684.         cmbProdatoPivo2.setEnabled(mode != StanjeDijaloga.BROWSE);
  4685.         panProdatoPivo2.add(lblProdatoPivo2);
  4686.         panProdatoPivo2.add(cmbProdatoPivo2);
  4687.         boxCentar.add(panProdatoPivo2);
  4688.        
  4689.         final JPanel panProdatoPivo3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4690.         lblProdatoPivo3 = new JLabel(resourceBundle.getString("lblProdatoPivo")+" #3*:");
  4691.         lblProdatoPivo3.setPreferredSize(lblDimension);
  4692.         cmbProdatoPivo3  = new JComboBox();
  4693.         Iterator<String> iter2 = Restoran.getInstance().getPivo().getPivoIterator();
  4694.         while (iter2.hasNext()) {
  4695.             try {
  4696.                 cmbProdatoPivo3.addItem(Restoran.getInstance().getPivo().getPivo(iter2.next()));
  4697.             } catch (ElementNePostoji e) {
  4698.                 e.printStackTrace();
  4699.             }
  4700.         }              
  4701.         cmbProdatoPivo3.setEnabled(mode != StanjeDijaloga.BROWSE);
  4702.         panProdatoPivo3.add(lblProdatoPivo3);
  4703.         panProdatoPivo3.add(cmbProdatoPivo3);
  4704.         boxCentar.add(panProdatoPivo3);
  4705.        
  4706.         final JPanel panDodaj = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4707.         lblDodaj = new JLabel(resourceBundle.getString("lblDodaj"));
  4708.         lblDodaj.setPreferredSize(lblDimension);
  4709.         btnDodaj = new JButton("+");   
  4710.         btnDodaj.setEnabled(mode != StanjeDijaloga.BROWSE);
  4711.         btnDodaj.setPreferredSize(btnDimension);
  4712.         panDodaj.add(lblDodaj);
  4713.         panDodaj.add(btnDodaj);
  4714.         boxCentar.add(panDodaj);
  4715.  
  4716.         JPanel panDatum = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4717.         datum = new JCalendarCombo(Calendar.getInstance(), Locale.getDefault(), JCalendarCombo.DISPLAY_DATE | JCalendarCombo.DISPLAY_TIME, true, "HH:mm");
  4718.         lblDatum = new JLabel(resourceBundle.getString("lblDate")+"*:");
  4719.         lblDatum.setPreferredSize(lblDimension);
  4720.         datum.setEnabled(mode != StanjeDijaloga.BROWSE);
  4721.         panDatum.add(lblDatum);
  4722.         panDatum.add(datum);
  4723.         datum.setNullAllowed(false);
  4724.         boxCentar.add(panDatum);
  4725.        
  4726.         JPanel panUkupanIznos = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4727.         lblUkupanIznos = new JLabel(resourceBundle.getString("lblUkupanIznos")+"*:");
  4728.         lblUkupanIznos.setPreferredSize(lblDimension);
  4729.         txtUkupanIznos = new JTextField(7);
  4730.         txtUkupanIznos.setEnabled(mode != StanjeDijaloga.BROWSE);
  4731.         panUkupanIznos.add(lblUkupanIznos);
  4732.         panUkupanIznos.add(txtUkupanIznos);
  4733.         boxCentar.add(panUkupanIznos);
  4734.        
  4735.         JPanel panPopustStr = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4736.         lblPopustStr = new JLabel((ih.isPopust()) ? resourceBundle.getString("lblPopustUToku") : resourceBundle.getString("lblPopustNijeUToku"));
  4737.         lblPopustStr.setForeground((ih.isPopust()) ? Color.GREEN : Color.RED);
  4738.         lblPopustStr.setPreferredSize(lblDimension);
  4739.         panPopustStr.add(lblPopustStr);
  4740.         boxCentar.add(panPopustStr);
  4741.    
  4742.         add(boxCentar,BorderLayout.CENTER);
  4743.        
  4744.         FocusListener fl = new MyFocusListener();
  4745.         ActionListener al1 = new MyActionListener(1);
  4746.         ActionListener al2 = new MyActionListener(2);
  4747.         ActionListener al3 = new MyActionListener(3);
  4748.         ActionListener al4 = new MyCMBListener(txtUkupanIznos);
  4749.        
  4750.         cmbProdatoPivo1.addFocusListener(fl);
  4751.         cmbProdatoPivo2.addFocusListener(fl);
  4752.         cmbProdatoPivo3.addFocusListener(fl);
  4753.         datum.addFocusListener(fl);
  4754.         txtUkupanIznos.addFocusListener(fl);
  4755.        
  4756.         // txtUkupanIznos.addKeyListener(new MyKeyListener(11, 10, '.'));
  4757.        
  4758.         cmbProdatoPivo1.addActionListener(al4);
  4759.         cmbProdatoPivo2.addActionListener(al4);
  4760.         cmbProdatoPivo3.addActionListener(al4);
  4761.        
  4762.         datum.addDateListener(new MyDateListener());
  4763.        
  4764.         cmbProdatoPivo2.setEnabled(false);
  4765.         cmbProdatoPivo3.setEnabled(false);
  4766.        
  4767.         txtUkupanIznos.setText("0");
  4768.         txtUkupanIznos.setEditable(false);
  4769.        
  4770.         btnDodaj.addActionListener(new ActionListener() {
  4771.            
  4772.             @Override
  4773.             public void actionPerformed(ActionEvent e) {
  4774.                 // TODO Auto-generated method stub
  4775.                 if (add) {
  4776.                     cmbCnt++;
  4777.                     if (cmbCnt == 1) {
  4778.                         cmbProdatoPivo2.setEnabled(true);
  4779.                     }
  4780.                     else if (cmbCnt == 2) {
  4781.                         cmbProdatoPivo3.setEnabled(true);
  4782.                         btnDodaj.setText("-");
  4783.                         lblDodaj.setText(resourceBundle.getString("lblOduzmi"));
  4784.                         add = false;
  4785.                         return;
  4786.                     }
  4787.                 }
  4788.                 if (!add) {
  4789.                     if (cmbCnt == 2) {
  4790.                         cmbProdatoPivo3.setEnabled(false);
  4791.                         cmbProdatoPivo3.setSelectedIndex(0);
  4792.                         cmbProdatoPivo3.setBackground(null);
  4793.                     }
  4794.                     else if (cmbCnt == 1) {
  4795.                         cmbProdatoPivo2.setEnabled(false);
  4796.                         cmbProdatoPivo2.setSelectedIndex(0);
  4797.                         cmbProdatoPivo2.setBackground(null);
  4798.                         btnDodaj.setText("+");
  4799.                         lblDodaj.setText(resourceBundle.getString("lblDodaj"));
  4800.                         add = true;
  4801.                     }
  4802.                     cmbCnt--;
  4803.                 }
  4804.             }
  4805.         });
  4806.  
  4807. }
  4808.  
  4809.     @Override
  4810.     public boolean proveriIspravnostPodataka() {
  4811.         // TODO Auto-generated method stub
  4812.         boolean ok = true;
  4813.         ih.setOk(true);
  4814.        
  4815.     /* 
  4816.         if (!txtUkupanIznos.getText().trim().equals("")) {
  4817.             if (txtUkupanIznos.getText().length() > 10) {
  4818.                 txtUkupanIznos.setText(txtUkupanIznos.getText().substring(0, 10)); 
  4819.             }
  4820.         }
  4821.         else {
  4822.             ok = false;
  4823.             ih.setOk(false);
  4824.             txtUkupanIznos.setBackground(Color.RED);
  4825.         }
  4826.         */
  4827.     /* 
  4828.         if (!ih.getCmbOkMP(1)) {
  4829.             cmbProdatoPivo1.setBackground(Color.RED);
  4830.             ok = false;
  4831.             ih.setOk(false);
  4832.         }
  4833.        
  4834.         if (cmbProdatoPivo2.isEnabled()) {
  4835.             if (!ih.getCmbOkMP(2)) {
  4836.                 cmbProdatoPivo2.setBackground(Color.RED);
  4837.                 ok = false;
  4838.                 ih.setOk(false);
  4839.             }
  4840.         }
  4841.        
  4842.         if (cmbProdatoPivo3.isEditable()) {
  4843.             if (!ih.getCmbOkMP(3)) {
  4844.                 cmbProdatoPivo3.setBackground(Color.RED);
  4845.                 ok = false;
  4846.                 ih.setOk(false);
  4847.             }
  4848.         }
  4849.         */
  4850.         return ok;
  4851.     }
  4852.  
  4853.     public JTextField getTxtUkupanIznos() {
  4854.         return txtUkupanIznos;
  4855.     }
  4856.  
  4857.     public JCalendarCombo getDatum() {
  4858.         return datum;
  4859.     }
  4860.  
  4861.     public JComboBox getCmbProdatoPivo1() {
  4862.         return cmbProdatoPivo1;
  4863.     }
  4864.  
  4865.     public JComboBox getCmbProdatoPivo2() {
  4866.         return cmbProdatoPivo2;
  4867.     }
  4868.  
  4869.     public JComboBox getCmbProdatoPivo3() {
  4870.         return cmbProdatoPivo3;
  4871.     }
  4872.  
  4873.     public JTextField getTxtID() {
  4874.         return txtID;
  4875.     }
  4876.  
  4877.     public void setTxtUkupanIznos(JTextField txtUkupanIznos) {
  4878.         this.txtUkupanIznos = txtUkupanIznos;
  4879.     }
  4880.  
  4881.     public void setDatum(JCalendarCombo datum) {
  4882.         this.datum = datum;
  4883.     }
  4884.  
  4885.     public void setCmbProdatoPivo1(JComboBox cmbProdatoPivo1) {
  4886.         this.cmbProdatoPivo1 = cmbProdatoPivo1;
  4887.     }
  4888.  
  4889.     public void setCmbProdatoPivo2(JComboBox cmbProdatoPivo2) {
  4890.         this.cmbProdatoPivo2 = cmbProdatoPivo2;
  4891.     }
  4892.  
  4893.     public void setCmbProdatoPivo3(JComboBox cmbProdatoPivo3) {
  4894.         this.cmbProdatoPivo3 = cmbProdatoPivo3;
  4895.     }
  4896.  
  4897.     public void setTxtID(JTextField txtID) {
  4898.         this.txtID = txtID;
  4899.     }
  4900.    
  4901.    
  4902.  
  4903. }
  4904. package gui.dialogs.d_panels;
  4905.  
  4906. import gui.actions.MyFocusListener;
  4907. import gui.actions.MyKeyListener;
  4908. import gui.dialogs.GDialog.StanjeDijaloga;
  4909. import gui.handlers.InputHandler;
  4910.  
  4911. import java.awt.BorderLayout;
  4912. import java.awt.Color;
  4913. import java.awt.Dimension;
  4914. import java.awt.FlowLayout;
  4915. import java.awt.event.FocusListener;
  4916. import java.util.Locale;
  4917. import java.util.ResourceBundle;
  4918.  
  4919. import javax.swing.Box;
  4920. import javax.swing.BoxLayout;
  4921. import javax.swing.JLabel;
  4922. import javax.swing.JPanel;
  4923. import javax.swing.JTextField;
  4924.  
  4925. @SuppressWarnings("serial")
  4926. public class PanelDetailPivnicaVrstaPiva extends GPanelDetail {
  4927.     private ResourceBundle resourceBundle;
  4928.    
  4929.     private JLabel lblOznakaPiva;
  4930.     private JTextField txtOznakaPiva;
  4931.    
  4932.     private JLabel lblNazivVrste;
  4933.     private JTextField txtNazivVrste;
  4934.    
  4935.     InputHandler ih = InputHandler.getInstance();
  4936.    
  4937.     public PanelDetailPivnicaVrstaPiva(StanjeDijaloga mode) {
  4938.         setLayout(new BorderLayout());
  4939.         resourceBundle = ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  4940.         Dimension lblDimension = new Dimension(150,20);
  4941.  
  4942.         Box boxCentar = new Box(BoxLayout.Y_AXIS);
  4943.        
  4944.         JPanel panOznakaPiva = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4945.         lblOznakaPiva = new JLabel(resourceBundle.getString("lblOznaka")+"*:");
  4946.         lblOznakaPiva.setPreferredSize(lblDimension);
  4947.         txtOznakaPiva = new JTextField(4);
  4948.         txtOznakaPiva.setEnabled(mode != StanjeDijaloga.BROWSE);
  4949.         panOznakaPiva.add(lblOznakaPiva);
  4950.         panOznakaPiva.add(txtOznakaPiva);
  4951.         boxCentar.add(panOznakaPiva);
  4952.        
  4953.         JPanel panNazivVrste = new JPanel(new FlowLayout(FlowLayout.LEFT));
  4954.         lblNazivVrste = new JLabel(resourceBundle.getString("lblNazivVrste")+"*:");
  4955.         lblNazivVrste.setPreferredSize(lblDimension);
  4956.         txtNazivVrste = new JTextField(30);
  4957.         txtNazivVrste.setEnabled(mode != StanjeDijaloga.BROWSE);
  4958.         panNazivVrste.add(lblNazivVrste);
  4959.         panNazivVrste.add(txtNazivVrste);
  4960.         boxCentar.add(panNazivVrste);
  4961.        
  4962.         add(boxCentar,BorderLayout.CENTER);
  4963.        
  4964.         FocusListener fl = new MyFocusListener();
  4965.         txtNazivVrste.addKeyListener(new MyKeyListener(1));
  4966.         txtOznakaPiva.addKeyListener(new MyKeyListener(3));
  4967.        
  4968.     }
  4969.    
  4970.    
  4971.  
  4972.     @Override
  4973.     public boolean proveriIspravnostPodataka() {
  4974.         // TODO Auto-generated method stub
  4975.         boolean ok = true;
  4976.         ih.setOk(true);
  4977.        
  4978.         if (!txtNazivVrste.getText().trim().equals("")) {
  4979.             if (txtNazivVrste.getText().length() < ih.getMaxInputLenInt()) {
  4980.                 ok = false;
  4981.                 ih.setOk(false);
  4982.                 txtNazivVrste.setBackground(Color.RED);
  4983.             }
  4984.            
  4985.             if (txtNazivVrste.getText().length() > ih.getMaxInputLenStr()) {
  4986.                 txtNazivVrste.setText(txtNazivVrste.getText().substring(0, ih.getMaxInputLenStr()));   
  4987.             }  
  4988.            
  4989.         }
  4990.         else {
  4991.             ok = false;
  4992.             ih.setOk(false);
  4993.             txtNazivVrste.setBackground(Color.RED);
  4994.         }
  4995.        
  4996.         if (!ih.isOk()) {
  4997.             ok = false;
  4998.             ih.setOk(false);
  4999.             txtNazivVrste.setBackground(Color.RED);
  5000.         }
  5001.        
  5002.         //
  5003.         if (!txtOznakaPiva.getText().trim().equals("")) {
  5004.             if (txtOznakaPiva.getText().length() > ih.getMaxInputLenInt()) { // Za oznaku idu 3 slova...
  5005.                 txtOznakaPiva.setText(txtOznakaPiva.getText().substring(0, ih.getMaxInputLenInt()));   
  5006.             }
  5007.         }
  5008.         else {
  5009.             ok = false;
  5010.             ih.setOk(false);
  5011.             txtOznakaPiva.setBackground(Color.RED);
  5012.         }
  5013.        
  5014.        
  5015.         return ok;
  5016.     }
  5017.  
  5018.  
  5019.  
  5020.     public JTextField getTxtOznakaPiva() {
  5021.         return txtOznakaPiva;
  5022.     }
  5023.  
  5024.  
  5025.  
  5026.     public JTextField getTxtNazivVrste() {
  5027.         return txtNazivVrste;
  5028.     }
  5029.  
  5030.  
  5031.  
  5032.     public void setTxtOznakaPiva(JTextField txtOznakaPiva) {
  5033.         this.txtOznakaPiva = txtOznakaPiva;
  5034.     }
  5035.  
  5036.  
  5037.  
  5038.     public void setTxtNazivVrste(JTextField txtNazivVrste) {
  5039.         this.txtNazivVrste = txtNazivVrste;
  5040.     }
  5041.    
  5042.    
  5043.  
  5044. }
  5045. package gui.dialogs.d_panels;
  5046.  
  5047. import gui.actions.MyFocusListener;
  5048. import gui.actions.MyKeyListener;
  5049. import gui.dialogs.GDialog.StanjeDijaloga;
  5050. import gui.handlers.InputHandler;
  5051.  
  5052. import java.awt.BorderLayout;
  5053. import java.awt.Color;
  5054. import java.awt.Dimension;
  5055. import java.awt.FlowLayout;
  5056. import java.awt.event.FocusListener;
  5057. import java.util.Locale;
  5058. import java.util.ResourceBundle;
  5059.  
  5060. import javax.swing.Box;
  5061. import javax.swing.BoxLayout;
  5062. import javax.swing.JLabel;
  5063. import javax.swing.JPanel;
  5064. import javax.swing.JTextField;
  5065.  
  5066. @SuppressWarnings({"serial"})
  5067. public class PanelDetailTipoviOrg extends GPanelDetail {
  5068.     private ResourceBundle resourceBundle;
  5069.    
  5070.     private JLabel lblOznaka;
  5071.     private JTextField txtOznaka;
  5072.    
  5073.     private JLabel lblNaziv;
  5074.     private JTextField txtNaziv;
  5075.  
  5076.     InputHandler ih = InputHandler.getInstance();
  5077.  
  5078.     public PanelDetailTipoviOrg(StanjeDijaloga mode) {
  5079.        
  5080.         setLayout(new BorderLayout());
  5081.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  5082.  
  5083.         Dimension lblDimension = new Dimension(150,20);
  5084.  
  5085.         Box boxCentar = new Box(BoxLayout.Y_AXIS);
  5086.        
  5087.         JPanel panOznaka = new JPanel(new FlowLayout(FlowLayout.LEFT));
  5088.         lblOznaka = new JLabel(resourceBundle.getString("lblOznaka")+"*:");
  5089.         lblOznaka.setPreferredSize(lblDimension);
  5090.         txtOznaka = new JTextField(3);
  5091.         txtOznaka.setEnabled(mode != StanjeDijaloga.BROWSE);
  5092.         panOznaka.add(lblOznaka);
  5093.         panOznaka.add(txtOznaka);
  5094.         boxCentar.add(panOznaka);
  5095.        
  5096.         JPanel panNaziv = new JPanel(new FlowLayout(FlowLayout.LEFT));
  5097.         lblNaziv = new JLabel(resourceBundle.getString("lblNaziv")+"*:");
  5098.         lblNaziv.setPreferredSize(lblDimension);
  5099.         txtNaziv = new JTextField(30);
  5100.         txtNaziv.setEnabled(mode != StanjeDijaloga.BROWSE);
  5101.         panNaziv.add(lblNaziv);
  5102.         panNaziv.add(txtNaziv);
  5103.         boxCentar.add(panNaziv);
  5104.        
  5105.         FocusListener fl = new MyFocusListener();
  5106.  
  5107.         txtNaziv.addKeyListener(new MyKeyListener(1));
  5108.         txtOznaka.addKeyListener(new MyKeyListener(3));
  5109.        
  5110.         txtNaziv.addFocusListener(fl);
  5111.         txtOznaka.addFocusListener(fl);
  5112.        
  5113.         add(boxCentar,BorderLayout.CENTER);
  5114.         }
  5115.    
  5116.     public boolean proveriIspravnostPodataka() {
  5117.         boolean ok = true;
  5118.         ih.setOk(true);
  5119.        
  5120.         if (txtNaziv.getText().trim().equals("")) {
  5121.                 ok = false;
  5122.                 ih.setOk(false);
  5123.                 txtNaziv.setBackground(Color.RED);
  5124.         }
  5125.            
  5126.         if (txtNaziv.getText().length() > ih.getMaxInputLenStr()) {
  5127.                 txtNaziv.setText(txtNaziv.getText().substring(0, ih.getMaxInputLenStr())); 
  5128.         }              
  5129.  
  5130.         if (txtOznaka.getText().trim().equals("")) {
  5131.             ok = false;
  5132.             ih.setOk(false);
  5133.             txtOznaka.setBackground(Color.RED);
  5134.         }
  5135.        
  5136.         if (txtOznaka.getText().length() > ih.getMaxInputLenInt()) { // Za oznaku idu 3 slova...
  5137.             txtOznaka.setText(txtOznaka.getText().substring(0, ih.getMaxInputLenInt()));   
  5138.         }
  5139.        
  5140.         return ok;
  5141.     }
  5142.  
  5143.     public JTextField gettxtOznaka() {
  5144.         return txtOznaka;
  5145.     }
  5146.  
  5147.     public JTextField gettxtNaziv() {
  5148.         return txtNaziv;
  5149.     }
  5150. }
  5151. package gui.dialogs.d_panels;
  5152.  
  5153. import gui.actions.MyActionListener;
  5154. import gui.actions.MyFocusListener;
  5155. import gui.actions.MyKeyListener;
  5156. import gui.dialogs.GDialog.StanjeDijaloga;
  5157. import gui.exceptions.ElementNePostoji;
  5158. import gui.handlers.InputHandler;
  5159.  
  5160. import java.awt.BorderLayout;
  5161. import java.awt.Color;
  5162. import java.awt.Dimension;
  5163. import java.awt.FlowLayout;
  5164. import java.awt.event.FocusListener;
  5165. import java.util.Iterator;
  5166. import java.util.Locale;
  5167. import java.util.ResourceBundle;
  5168.  
  5169. import javax.swing.Box;
  5170. import javax.swing.BoxLayout;
  5171. import javax.swing.JComboBox;
  5172. import javax.swing.JLabel;
  5173. import javax.swing.JPanel;
  5174. import javax.swing.JTextField;
  5175.  
  5176. import model.collections.Restoran;
  5177.  
  5178. @SuppressWarnings("serial")
  5179. public class PanelDetailZaposleni extends GPanelDetail {
  5180.     private ResourceBundle resourceBundle;
  5181.    
  5182.     private JLabel lblID;
  5183.     private JTextField txtID;
  5184.    
  5185.     private JLabel lblPol;
  5186.     private JTextField txtPol;
  5187.    
  5188.     private JLabel lblPrezime;
  5189.     private JTextField txtPrezime;
  5190.    
  5191.     private JLabel lblIme;
  5192.     private JTextField txtIme;
  5193.  
  5194.     private JComboBox cmbOrg;
  5195.    
  5196.     private JLabel lblOrg;
  5197.  
  5198.     InputHandler ih = InputHandler.getInstance();
  5199.  
  5200.     @SuppressWarnings({ "unchecked", "rawtypes" })
  5201.     public PanelDetailZaposleni(StanjeDijaloga mode) {
  5202.        
  5203.         setLayout(new BorderLayout());
  5204.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  5205.  
  5206.         Dimension lblDimension = new Dimension(150,20);
  5207.  
  5208.         Box boxCentar = new Box(BoxLayout.Y_AXIS);
  5209.        
  5210.         JPanel panOrg = new JPanel(new FlowLayout(FlowLayout.LEFT));
  5211.         lblOrg = new JLabel(resourceBundle.getString("lblOrganizacija")+"*:");
  5212.         lblOrg.setPreferredSize(lblDimension);
  5213.         cmbOrg  = new JComboBox();
  5214.         Iterator<String> iterOrganizacije = Restoran.getInstance().getOrganizacije().getOrganizacijaIterator();
  5215.         while (iterOrganizacije.hasNext()) {
  5216.             try {
  5217.                 cmbOrg.addItem(Restoran.getInstance().getOrganizacije().getOrganizacija(iterOrganizacije.next()));
  5218.             } catch (ElementNePostoji e) {
  5219.                 e.printStackTrace();
  5220.             }
  5221.         }      
  5222.         cmbOrg.setEnabled(mode != StanjeDijaloga.BROWSE);
  5223.         panOrg.add(lblOrg);
  5224.         panOrg.add(cmbOrg);
  5225.         boxCentar.add(panOrg);
  5226.        
  5227.        
  5228.         JPanel panID = new JPanel(new FlowLayout(FlowLayout.LEFT));
  5229.         lblID = new JLabel(resourceBundle.getString("lblIdentifikator")+"*:");
  5230.         lblID.setPreferredSize(lblDimension);
  5231.         txtID = new JTextField(3);
  5232.         txtID.setEnabled(mode != StanjeDijaloga.BROWSE);
  5233.         panID.add(lblID);
  5234.         panID.add(txtID);
  5235.         boxCentar.add(panID);
  5236.        
  5237.         JPanel panPrezime = new JPanel(new FlowLayout(FlowLayout.LEFT));
  5238.         lblPrezime = new JLabel(resourceBundle.getString("lblPrezime")+"*:");
  5239.         lblPrezime.setPreferredSize(lblDimension);
  5240.         txtPrezime = new JTextField(30);
  5241.         txtPrezime.setEnabled(mode != StanjeDijaloga.BROWSE);
  5242.         panPrezime.add(lblPrezime);
  5243.         panPrezime.add(txtPrezime);
  5244.         boxCentar.add(panPrezime);
  5245.        
  5246.  
  5247.         JPanel panIme = new JPanel(new FlowLayout(FlowLayout.LEFT));
  5248.         lblIme = new JLabel(resourceBundle.getString("lblIme")+"*:");
  5249.         lblIme.setPreferredSize(lblDimension);
  5250.         txtIme = new JTextField(30);
  5251.         txtIme.setEnabled(mode != StanjeDijaloga.BROWSE);
  5252.         panIme.add(lblIme);
  5253.         panIme.add(txtIme);
  5254.         boxCentar.add(panIme);
  5255.  
  5256.         JPanel panPol = new JPanel(new FlowLayout(FlowLayout.LEFT));
  5257.         lblPol = new JLabel(resourceBundle.getString("lblPol")+":");
  5258.         lblPol.setPreferredSize(lblDimension);
  5259.         txtPol = new JTextField(15);
  5260.         txtPol.setEnabled(mode != StanjeDijaloga.BROWSE);
  5261.         panPol.add(lblPol);
  5262.         panPol.add(txtPol);
  5263.         boxCentar.add(panPol);
  5264.        
  5265.         FocusListener fl = new MyFocusListener();
  5266.  
  5267.         txtID.addKeyListener(new MyKeyListener(4));
  5268.         txtIme.addKeyListener(new MyKeyListener(1));
  5269.         txtPrezime.addKeyListener(new MyKeyListener(1));
  5270.         txtPol.addKeyListener(new MyKeyListener(1));
  5271.  
  5272.         txtID.addFocusListener(fl);
  5273.         txtIme.addFocusListener(fl);
  5274.         txtPrezime.addFocusListener(fl);
  5275.         cmbOrg.addFocusListener(fl);
  5276.  
  5277.         cmbOrg.addActionListener(new MyActionListener());
  5278.        
  5279.         add(boxCentar,BorderLayout.CENTER);
  5280.     }
  5281.    
  5282.     public boolean proveriIspravnostPodataka() {
  5283.         boolean ok = true;
  5284.         ih.setOk(true);
  5285.        
  5286.         if (txtID.getText().trim().equals("")) {
  5287.                 ok = false;
  5288.                 ih.setOk(false);
  5289.                 txtID.setBackground(Color.RED);
  5290.         }
  5291.            
  5292.         if (txtID.getText().length() > ih.getMaxInputLenInt()) {
  5293.                 txtID.setText(txtID.getText().substring(0, ih.getMaxInputLenInt()));   
  5294.         }              
  5295.  
  5296.         if (txtIme.getText().trim().equals("")) {
  5297.             ok = false;
  5298.             ih.setOk(false);
  5299.             txtIme.setBackground(Color.RED);
  5300.         }
  5301.        
  5302.         if (txtIme.getText().length() > ih.getMaxInputLenStr()) {
  5303.             txtIme.setText(txtIme.getText().substring(0, ih.getMaxInputLenStr())); 
  5304.         }
  5305.        
  5306.         if (txtPrezime.getText().trim().equals("")) {
  5307.             ok = false;
  5308.             ih.setOk(false);
  5309.             txtPrezime.setBackground(Color.RED);
  5310.         }
  5311.        
  5312.         if (txtPrezime.getText().length() > ih.getMaxInputLenStr()) {
  5313.             txtPrezime.setText(txtPrezime.getText().substring(0, ih.getMaxInputLenStr())); 
  5314.         }
  5315.        
  5316.         if (txtPol.getText().length() > ih.getMaxInputLenStr()) {
  5317.             txtPol.setText(txtPol.getText().substring(0, ih.getMaxInputLenStr())); 
  5318.         }
  5319.        
  5320.         if (!ih.isCmbOk()) {
  5321.             cmbOrg.setBackground(Color.RED);
  5322.             ok = false;
  5323.             ih.setOk(false);
  5324.         }
  5325.        
  5326.         return ok;
  5327.     }
  5328.  
  5329.     public JTextField getTxtID() {
  5330.         return txtID;
  5331.     }
  5332.  
  5333.     public JTextField getTxtPol() {
  5334.         if (!txtPol.getText().trim().equals(""))
  5335.             return txtPol;
  5336.         else
  5337.             txtPol.setText("N/A"); // Ovo se ne prevodi...
  5338.        
  5339.         return txtPol;
  5340.     }
  5341.  
  5342.     public JTextField getTxtPrezime() {
  5343.         return txtPrezime;
  5344.     }
  5345.  
  5346.  
  5347.     public JTextField getTxtIme() {
  5348.         return txtIme;
  5349.     }
  5350.  
  5351.     public String getOrg() {
  5352.         String val = cmbOrg.getSelectedItem().toString();
  5353.        
  5354.         if (val != null)
  5355.             return val;
  5356.        
  5357.         return "N/A";
  5358.     }
  5359.  
  5360.     public JComboBox getCmbOrg() {
  5361.         return cmbOrg;
  5362.     }
  5363.  
  5364.     public void setCmbOrg(JComboBox cmbOrg) {
  5365.         this.cmbOrg = cmbOrg;
  5366.     }
  5367.    
  5368.    
  5369. }
  5370. package gui.dialogs;
  5371.  
  5372. import gui.settings.Config;
  5373.  
  5374. import java.awt.BorderLayout;
  5375. import java.awt.Color;
  5376. import java.awt.Dimension;
  5377. import java.awt.FlowLayout;
  5378. import java.awt.Frame;
  5379. import java.awt.Graphics;
  5380. import java.awt.Image;
  5381. import java.awt.event.ActionEvent;
  5382. import java.awt.event.ActionListener;
  5383. import java.util.Locale;
  5384. import java.util.ResourceBundle;
  5385.  
  5386. import javax.swing.Box;
  5387. import javax.swing.BoxLayout;
  5388. import javax.swing.ImageIcon;
  5389. import javax.swing.JButton;
  5390. import javax.swing.JDialog;
  5391. import javax.swing.JLabel;
  5392. import javax.swing.JPanel;
  5393. import javax.swing.JSeparator;
  5394. import javax.swing.SwingConstants;
  5395.  
  5396. @SuppressWarnings("serial")
  5397. public class AboutDialog extends JDialog implements ActionListener {
  5398.     private ResourceBundle resourceBundle;
  5399.    
  5400.     public AboutDialog(Frame parent, boolean modal) {
  5401.         super(parent, modal);
  5402.         resourceBundle = ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  5403.         this.setTitle(resourceBundle.getString("mnuAbout"));
  5404.         this.setSize(500, 400);
  5405.         this.setLocationRelativeTo(parent);
  5406.         this.setLayout(new BorderLayout());
  5407.         this.setResizable(false); // eheheheh
  5408.        
  5409.         JPanel panBot = new JPanel(new FlowLayout(FlowLayout.RIGHT));
  5410.         JButton btnOk = new JButton(resourceBundle.getString("btnOk"));
  5411.         btnOk.addActionListener(this);
  5412.         getRootPane().setDefaultButton(btnOk);
  5413.         panBot.setBackground(Color.WHITE);
  5414.         panBot.add(btnOk);
  5415.         add(panBot, BorderLayout.SOUTH);
  5416.        
  5417.          JPanel panTop = new JPanel();
  5418.          panTop.setPreferredSize(new Dimension(100,30));
  5419.          panTop.setBackground(Color.WHITE);
  5420.          panTop.add(new JLabel(resourceBundle.getString("mainTitle") + " - " + resourceBundle.getString("mnuAutor")));
  5421.          add(panTop,BorderLayout.NORTH);
  5422.          
  5423.          JPanel panLeft=new JPanel(new BorderLayout());
  5424.          panLeft.setPreferredSize(new Dimension(180,200));
  5425.          ImagePanel imgAutor = new ImagePanel(new ImageIcon("img/autor2.jpg").getImage());
  5426.          panLeft.add(imgAutor);
  5427.          add(panLeft,BorderLayout.WEST);
  5428.      
  5429.          JPanel panCenter = new JPanel(new BorderLayout());
  5430.          JSeparator sep = new JSeparator();
  5431.          sep.setOrientation(SwingConstants.VERTICAL);
  5432.          panCenter.setPreferredSize(new Dimension(10,400));
  5433.          panCenter.add(sep);
  5434.          add(panCenter,BorderLayout.CENTER);
  5435.          
  5436.          Dimension lblDimension = new Dimension(200,20);
  5437.          
  5438.          Box boxRight = new Box(BoxLayout.Y_AXIS);
  5439.          boxRight.setPreferredSize(new Dimension(300,400));
  5440.          
  5441.          JPanel panDetails1 = new JPanel();
  5442.         // panDetails1.add(Box.createGlue());
  5443.         // panDetails1.add(boxRight.createVerticalStrut(100));
  5444.          JLabel lblImePrz = new JLabel();
  5445.          lblImePrz.setPreferredSize(lblDimension);
  5446.          lblImePrz.setText(resourceBundle.getString("lblImePrez") + ": " + resourceBundle.getString("lblGoranT"));
  5447.          panDetails1.add(lblImePrz);
  5448.          
  5449.          JLabel lblBrInd = new JLabel();
  5450.          lblBrInd.setPreferredSize(lblDimension);
  5451.          lblBrInd.setText(resourceBundle.getString("lblBrIndx"));
  5452.          panDetails1.add(lblBrInd);
  5453.          
  5454.          JLabel lblEmail = new JLabel();
  5455.          lblEmail.setPreferredSize(lblDimension);
  5456.          lblEmail.setText(resourceBundle.getString("lblFullEmail"));
  5457.          panDetails1.add(lblEmail);
  5458.          
  5459.          JLabel lblHobi = new JLabel();
  5460.          lblHobi.setPreferredSize(lblDimension);
  5461.          lblHobi.setText(resourceBundle.getString("lblHobi"));
  5462.          panDetails1.add(lblHobi);
  5463.          
  5464.          JSeparator sep1 = new JSeparator();
  5465.          sep1.setOrientation(SwingConstants.HORIZONTAL);
  5466.          sep1.setPreferredSize(new Dimension(300,5));
  5467.          panDetails1.add(sep1);
  5468.          
  5469.          JLabel lblVerzija = new JLabel();
  5470.          lblVerzija.setPreferredSize(new Dimension(280, 20));
  5471.          lblVerzija.setText("Copyright \u00a9 2013 " + resourceBundle.getString("lblGoranT") + " :: " + resourceBundle.getString("lblVersion") + " " + Config.getVersion());
  5472.          panDetails1.add(lblVerzija);
  5473.          
  5474.          boxRight.add(panDetails1);
  5475.          add(boxRight, BorderLayout.EAST);
  5476.        
  5477.     }
  5478.  
  5479.     public void actionPerformed(ActionEvent e) {
  5480.         if (e.getSource() instanceof JButton)
  5481.             setVisible(false);
  5482.     }
  5483. }
  5484.  
  5485. @SuppressWarnings("serial")
  5486. class ImagePanel extends JPanel {
  5487.  
  5488.       private Image img;
  5489.  
  5490.       public ImagePanel(String img) {
  5491.         this(new ImageIcon(img).getImage());
  5492.       }
  5493.  
  5494.       public ImagePanel(Image img) {
  5495.         this.img = img;
  5496.       }
  5497.  
  5498.       public void paintComponent(Graphics g) {
  5499.         g.drawImage(img, (int)(this.getSize().getWidth()-img.getWidth(null))/2,
  5500.                          (int)(this.getSize().getHeight()-img.getHeight(null))/2, null);
  5501.       }
  5502. }
  5503.  
  5504. package gui.dialogs;
  5505.  
  5506. import gui.dialogs.d_panels.GPanelDetail;
  5507.  
  5508. import java.awt.BorderLayout;
  5509. import java.awt.FlowLayout;
  5510. import java.awt.event.ActionEvent;
  5511. import java.awt.event.ActionListener;
  5512. import java.util.Locale;
  5513. import java.util.ResourceBundle;
  5514.  
  5515. import javax.swing.JButton;
  5516. import javax.swing.JDialog;
  5517. import javax.swing.JPanel;
  5518.  
  5519. @SuppressWarnings("serial")
  5520. public class AddUpdateFindDialog extends JDialog {
  5521.     private ResourceBundle resourceBundle;
  5522.     public static final int OK = 0;
  5523.     public static final int CANCEL = 1;
  5524.    
  5525.     GPanelDetail panelDetail;
  5526.     private int closingMode = AddUpdateFindDialog.CANCEL; // informacija o tome na koji način je zatvoren dijalog
  5527.    
  5528.    
  5529.     public AddUpdateFindDialog(JDialog parent, String title, GPanelDetail panDetail) {
  5530.  
  5531.         super(parent, title, true);
  5532.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  5533.         this.panelDetail = panDetail;
  5534.         add(panDetail, BorderLayout.CENTER);
  5535.        
  5536.         JPanel panSouth = new JPanel(new FlowLayout(FlowLayout.RIGHT));
  5537.         JButton btnOk = new JButton(resourceBundle.getString("btnOk"));
  5538.         btnOk.addActionListener(new ActionListener() {
  5539.            
  5540.             @Override
  5541.             public void actionPerformed(ActionEvent arg0) {
  5542.                 closingMode = AddUpdateFindDialog.OK;
  5543.                 if (panelDetail.proveriIspravnostPodataka()) {
  5544.                     setVisible(false);     
  5545.                 }
  5546.                    
  5547.             }
  5548.         });
  5549.         getRootPane().setDefaultButton(btnOk);
  5550.         JButton btnCancel = new JButton(resourceBundle.getString("btnCancel"));
  5551.         btnCancel.addActionListener(new ActionListener() {
  5552.            
  5553.             @Override
  5554.             public void actionPerformed(ActionEvent arg0) {
  5555.                 closingMode = AddUpdateFindDialog.CANCEL;
  5556.                 setVisible(false);
  5557.             }
  5558.         });
  5559.        
  5560.         panSouth.add(btnOk);
  5561.         panSouth.add(btnCancel);
  5562.         add(panSouth, BorderLayout.SOUTH);
  5563.        
  5564.         pack();
  5565.         setLocationRelativeTo(null);
  5566.  
  5567.     }
  5568.  
  5569.     public int getClosingMode() {
  5570.         return closingMode;
  5571.     }
  5572.  
  5573. }
  5574. package gui.dialogs;
  5575.  
  5576. import java.awt.Dimension;
  5577. import java.awt.GridLayout;
  5578.  
  5579. import javax.swing.BorderFactory;
  5580. import javax.swing.JLabel;
  5581. import javax.swing.JPanel;
  5582. import javax.swing.border.BevelBorder;
  5583.  
  5584. @SuppressWarnings("serial")
  5585. public class DialogStatusBar extends JPanel {
  5586.     private StatusPane dialogStatusBar1;
  5587.     private StatusPane dialogStatusBar2;
  5588.     private StatusPane dialogStatusBar3;
  5589.    
  5590.     public DialogStatusBar() {
  5591.         setLayout(new GridLayout(1,3,1,1));
  5592.        
  5593.         dialogStatusBar1 = new StatusPane("");
  5594.         dialogStatusBar2 = new StatusPane("");
  5595.         dialogStatusBar3 = new StatusPane("");
  5596.        
  5597.         add(dialogStatusBar1);
  5598.         add(dialogStatusBar2);
  5599.         add(dialogStatusBar3);
  5600.     }
  5601.  
  5602.     public void setDialogStatusBar1(String arg0) {
  5603.         this.dialogStatusBar1.setText(arg0);
  5604.     }
  5605.  
  5606.     public void setDialogStatusBar2(String arg0) {
  5607.         this.dialogStatusBar2.setText(arg0);
  5608.     }
  5609.  
  5610.     public void setDialogStatusBar3(String arg0) {
  5611.         this.dialogStatusBar3.setText(arg0);
  5612.     }
  5613. }
  5614.  
  5615. @SuppressWarnings("serial")
  5616. class StatusPane extends JLabel {
  5617.    
  5618.     public StatusPane(String text) {
  5619.         super(text);
  5620.         setHorizontalAlignment(CENTER);
  5621.         setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
  5622.         setPreferredSize(new Dimension(200,25));
  5623.     }
  5624. }
  5625. package gui.dialogs;
  5626.  
  5627. import gui.Frame;
  5628.  
  5629. import java.awt.event.ActionEvent;
  5630. import java.awt.event.ActionListener;
  5631.  
  5632. import javax.swing.ImageIcon;
  5633. import javax.swing.JButton;
  5634. import javax.swing.JOptionPane;
  5635. import javax.swing.JToggleButton;
  5636. import javax.swing.JToolBar;
  5637.  
  5638. @SuppressWarnings("serial")
  5639. public class DialogToolbar extends JToolBar {
  5640.  
  5641.     GDialog parent;
  5642.    
  5643.     JToggleButton tbtnPromeniIzgled;
  5644.     JButton btnPrvi;
  5645.     JButton btnSledeci;
  5646.     JButton btnPrethodni;
  5647.     JButton btnPoslednji;
  5648.    
  5649.     JButton btnDodavanje;
  5650.     JButton btnIzmena;
  5651.     JButton btnBrisanje;
  5652.     JButton btnPretraga;
  5653.    
  5654.    
  5655.     public DialogToolbar(GDialog parent) {
  5656.         super();
  5657.         this.parent = parent;
  5658.        
  5659.         tbtnPromeniIzgled = new JToggleButton();
  5660.         tbtnPromeniIzgled.setIcon(new ImageIcon("img/icons/panel-icon.png"));
  5661.         tbtnPromeniIzgled.setFocusable(false);
  5662.         tbtnPromeniIzgled.setMnemonic('Z');
  5663.         tbtnPromeniIzgled.setSelected(true);
  5664.         tbtnPromeniIzgled.addActionListener(new ActionListener() {
  5665.            
  5666.             @Override
  5667.             public void actionPerformed(ActionEvent arg0) {
  5668.                 DialogToolbar.this.parent.izgled(tbtnPromeniIzgled.isSelected());
  5669.             }
  5670.         });
  5671.         add(tbtnPromeniIzgled);
  5672.        
  5673.         addSeparator();
  5674.  
  5675.         btnPrvi = new JButton();
  5676.         btnPrvi.setIcon(new ImageIcon("img/icons/arrow_up.png"));
  5677.         btnPrvi.addActionListener(new ActionListener() {
  5678.            
  5679.             @Override
  5680.             public void actionPerformed(ActionEvent e) {
  5681.                 // TODO Auto-generated method stub
  5682.                 if (DialogToolbar.this.parent.table.getRowCount() != 0) {
  5683.                     DialogToolbar.this.parent.table.setRowSelectionInterval(0, 0);
  5684.                 }
  5685.                 else {
  5686.                     JOptionPane.showMessageDialog(DialogToolbar.this.parent.parent, Frame.getInstance().getResourceBundle().getString("errNemaTabele"));
  5687.                 }
  5688.             }
  5689.         });
  5690.         add(btnPrvi);
  5691.        
  5692.        
  5693.         btnSledeci = new JButton();
  5694.         btnSledeci.setIcon(new ImageIcon("img/icons/bullet_arrow_down.png"));
  5695.         btnSledeci.addActionListener(new ActionListener() {
  5696.            
  5697.             @Override
  5698.             public void actionPerformed(ActionEvent e) {
  5699.                 // TODO Auto-generated method stub
  5700.                 int row = DialogToolbar.this.parent.table.getSelectedRow();
  5701.                 if  (row == -1) {
  5702.                     JOptionPane.showMessageDialog(DialogToolbar.this.parent.parent, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  5703.                 }
  5704.                 else {
  5705.                     try {
  5706.                         DialogToolbar.this.parent.table.setRowSelectionInterval(row + 1, row + 1);
  5707.                     } catch (IllegalArgumentException e1) {
  5708.                    
  5709.                     }
  5710.                 }
  5711.             }
  5712.         });
  5713.         add(btnSledeci);   
  5714.        
  5715.        
  5716.         btnPrethodni = new JButton();
  5717.         btnPrethodni.setIcon(new ImageIcon("img/icons/bullet_arrow_up.png"));
  5718.         btnPrethodni.addActionListener(new ActionListener() {
  5719.            
  5720.             @Override
  5721.             public void actionPerformed(ActionEvent e) {
  5722.                 // TODO Auto-generated method stub
  5723.                 int row = DialogToolbar.this.parent.table.getSelectedRow();
  5724.                 if  (row == -1) {
  5725.                     JOptionPane.showMessageDialog(DialogToolbar.this.parent.parent, Frame.getInstance().getResourceBundle().getString("errNijeSelektovan"));
  5726.                 }
  5727.                 else {
  5728.                     try {
  5729.                         DialogToolbar.this.parent.table.setRowSelectionInterval(row - 1, row - 1);
  5730.                     } catch (IllegalArgumentException e1) {
  5731.                         //e1.printStackTrace();
  5732.                         //JOptionPane.showMessageDialog(DialogToolbar.this.parent.parent, e1.getMessage());
  5733.                     }
  5734.                 }
  5735.             }
  5736.         });
  5737.         add(btnPrethodni);
  5738.        
  5739.        
  5740.         btnPoslednji = new JButton();
  5741.         btnPoslednji.setIcon(new ImageIcon("img/icons/arrow_down.png"));
  5742.         btnPoslednji.addActionListener(new ActionListener() {
  5743.            
  5744.             @Override
  5745.             public void actionPerformed(ActionEvent e) {
  5746.                 // TODO Auto-generated method stub
  5747.                 if (DialogToolbar.this.parent.table.getRowCount() != 0) {
  5748.                     DialogToolbar.this.parent.table.setRowSelectionInterval(DialogToolbar.this.parent.table.getRowCount()-1,DialogToolbar.this.parent.table.getRowCount()-1);
  5749.                 }
  5750.                 else {
  5751.                     JOptionPane.showMessageDialog(DialogToolbar.this.parent.parent, Frame.getInstance().getResourceBundle().getString("errNemaTabele"));
  5752.                 }
  5753.             }
  5754.         });
  5755.         add(btnPoslednji); 
  5756.        
  5757.         addSeparator();
  5758.        
  5759.         btnDodavanje = new JButton();
  5760.         btnDodavanje.setIcon(new ImageIcon("img/icons/add.png"));
  5761.         btnDodavanje.addActionListener(new ActionListener() {
  5762.        
  5763.             public void actionPerformed(ActionEvent arg0) {
  5764.                 DialogToolbar.this.parent.dodavanje();
  5765.             }
  5766.         });
  5767.         add(btnDodavanje);
  5768.        
  5769.          
  5770.         btnIzmena = new JButton();
  5771.         btnIzmena.setIcon(new ImageIcon("img/icons/pencil.png"));
  5772.         btnIzmena.addActionListener(new ActionListener() {
  5773.            
  5774.             public void actionPerformed(ActionEvent arg0) {
  5775.                 DialogToolbar.this.parent.izmena();            
  5776.             }
  5777.         });
  5778.         add(btnIzmena);
  5779.        
  5780.         btnBrisanje = new JButton();
  5781.         btnBrisanje.setIcon(new ImageIcon("img/icons/delete.png"));
  5782.         btnBrisanje.addActionListener(new ActionListener() {
  5783.            
  5784.             public void actionPerformed(ActionEvent arg0) {
  5785.                 DialogToolbar.this.parent.brisanje();
  5786.             }
  5787.         });
  5788.         add(btnBrisanje);  
  5789.        
  5790.         btnPretraga = new JButton();
  5791.         btnPretraga.setIcon(new ImageIcon("img/icons/search.png"));
  5792.         btnPretraga.addActionListener(new ActionListener() {
  5793.            
  5794.             public void actionPerformed(ActionEvent arg0) {
  5795.                 DialogToolbar.this.parent.pretraga();
  5796.             }
  5797.         });
  5798.  
  5799.         add(btnPretraga);      
  5800.        
  5801.     }
  5802.    
  5803. }
  5804. package gui.dialogs;
  5805.  
  5806. import gui.dialogs.d_panels.GPanelDetail;
  5807. import gui.tablemodel.DialogTableModel;
  5808.  
  5809. import java.awt.BorderLayout;
  5810. import java.awt.Color;
  5811.  
  5812. import javax.swing.JDialog;
  5813. import javax.swing.JFrame;
  5814. import javax.swing.JPanel;
  5815. import javax.swing.JScrollPane;
  5816. import javax.swing.JSplitPane;
  5817. import javax.swing.JTable;
  5818. import javax.swing.ListSelectionModel;
  5819.  
  5820. @SuppressWarnings("serial")
  5821. public abstract class GDialog extends JDialog {
  5822.    
  5823.     // stanje dijaloga: pregled, dodavanje sloga, izmena sloga, pretraga
  5824.     public enum StanjeDijaloga {BROWSE, ADD, UPDATE, FIND};
  5825.    
  5826.     protected JFrame parent;
  5827.     protected DialogToolbar toolbar;
  5828.     protected JTable table;
  5829.     protected GPanelDetail panelDetail;
  5830.     protected DialogStatusBar statusbar;
  5831.     protected String[] tableColumns;
  5832.     protected JSplitPane splitPane;
  5833.     protected DialogTableModel tableModel;
  5834.    
  5835.     public GDialog(JFrame parent, boolean b) {
  5836.        
  5837.         super(parent, true);
  5838.         this.parent = parent;
  5839.         setSize(600, 400);
  5840.     }
  5841.    
  5842.     protected void initGUI() {
  5843.        
  5844.         toolbar = new DialogToolbar(this);
  5845.         add(toolbar, BorderLayout.NORTH);
  5846.  
  5847.         table = new JTable(tableModel);
  5848.         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  5849.        
  5850.         JPanel panTable = new JPanel(new BorderLayout());
  5851.         panTable.setBackground(Color.WHITE);
  5852.         table.setAutoCreateRowSorter(true);
  5853.         table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
  5854.         panTable.add(new JScrollPane(table), BorderLayout.CENTER);
  5855.  
  5856.         splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
  5857.                 panTable, panelDetail);
  5858.         splitPane.setResizeWeight(1.0);
  5859.         add(splitPane, BorderLayout.CENTER);
  5860.        
  5861.         statusbar = new DialogStatusBar();
  5862.         add(statusbar, BorderLayout.SOUTH);
  5863.     }
  5864.    
  5865.     public abstract void dodavanje();
  5866.     public abstract void izmena();
  5867.     public abstract void brisanje();
  5868.     public abstract void pretraga();
  5869.    
  5870.     public void izgled(Boolean b) {
  5871.         panelDetail.setVisible(b);
  5872.         splitPane.remove(panelDetail);
  5873.         splitPane.add(panelDetail);
  5874.         splitPane.revalidate();
  5875.         splitPane.repaint();
  5876.     }
  5877.  
  5878. }
  5879. package gui.exceptions;
  5880.  
  5881. @SuppressWarnings("serial")
  5882. public class ElementNePostoji extends Exception {
  5883.     public ElementNePostoji(String message) {
  5884.         super(message);
  5885.     }
  5886. }
  5887. package gui.exceptions;
  5888.  
  5889. @SuppressWarnings("serial")
  5890. public class ElementPostoji extends Exception {
  5891.     public ElementPostoji(String message) {
  5892.         super(message);
  5893.     }
  5894. }
  5895. package gui.handlers;
  5896.  
  5897. import gui.settings.Config;
  5898.  
  5899. public class InputHandler {
  5900.     private static InputHandler instance = null;
  5901.    
  5902.     private final int MAX_INPUT_LEN_STR = 30;
  5903.     private final int MIN_INPUT_LEN_STR = 3; // Koristi se za Oznaku drzave i tako tih slicnih stvari...s
  5904.     private final int MAX_LOGIN_ATEMPTS = 5;
  5905.     private final int MAX_INPUT_YEAR_LEN = 4;
  5906.     private final String cmbDefaultValue = "--";
  5907.     private boolean isOk = false;
  5908.     private boolean cmbOk = false;
  5909.     private boolean[] cmbOkMP = new boolean[Config.getMaxCmb()];
  5910.     private boolean popust = false;
  5911.     private double popustVal = .0;
  5912.    
  5913.     public char[] invalidChars = new char[] {'(', ')', '{', '}', '[', ']', '!', '?', '@', '/', '*', '.', ';', '-', '+', ',', '|', '^', '&', '%', '$', '_'};
  5914.    
  5915.  
  5916.     private InputHandler()  {
  5917.         super();
  5918.     }
  5919.    
  5920.     public static InputHandler getInstance() {
  5921.         if (instance == null) {
  5922.             instance = new InputHandler();
  5923.             instance.initCmb();
  5924.         }
  5925.        
  5926.         return instance;
  5927.     }
  5928.    
  5929.    
  5930.     public void initCmb() {
  5931.         for (int i = 0; i < Config.getMaxCmb(); i++)
  5932.             cmbOkMP[i] = false;
  5933.     }
  5934.  
  5935.     public int getMaxInputYearLen() {
  5936.         return MAX_INPUT_YEAR_LEN;
  5937.     }
  5938.  
  5939.     public int getMaxLoginAtempts() {
  5940.         return MAX_LOGIN_ATEMPTS;
  5941.     }
  5942.  
  5943.     public void setOk(boolean val) {
  5944.         this.isOk = val;
  5945.     }
  5946.    
  5947.     public void setPopust(boolean val) {
  5948.         this.popust = val;
  5949.     }
  5950.    
  5951.     public boolean isOk() {
  5952.         return this.isOk;
  5953.     }
  5954.  
  5955.     public int getMaxInputLenStr() {
  5956.         return MAX_INPUT_LEN_STR;
  5957.     }
  5958.  
  5959.     public int getMaxInputLenInt() {
  5960.         return MIN_INPUT_LEN_STR;
  5961.     }
  5962.  
  5963.     public String getCmbDefaultValue() {
  5964.         return cmbDefaultValue;
  5965.     }
  5966.  
  5967.     public boolean isCmbOk() {
  5968.         return cmbOk;
  5969.     }
  5970.    
  5971.     public boolean isPopust() {
  5972.         return popust;
  5973.     }
  5974.  
  5975.     public void setCmbOk(boolean cmbOk) {
  5976.         this.cmbOk = cmbOk;
  5977.     }
  5978.  
  5979.     public boolean getCmbOkMP(int i) {
  5980.         return cmbOkMP[i];
  5981.     }
  5982.  
  5983.     public void setCmbOkMP(int i, boolean val) {
  5984.         this.cmbOkMP[i] = val;
  5985.     }
  5986.  
  5987.     public double getPopustVal() {
  5988.         return popustVal;
  5989.     }
  5990.  
  5991.     public void setPopustVal(double popustVal) {
  5992.         this.popustVal = popustVal;
  5993.     }
  5994.  
  5995.    
  5996.  
  5997.  
  5998. }
  5999. package gui.handlers;
  6000.  
  6001. public class LoginHandler {
  6002.     private static LoginHandler instance = null;
  6003.    
  6004.     private boolean isLogged = false;
  6005.     private boolean isAdmin = false;
  6006.     private static final int MAX_LOGIN_ATEMPTS = 5;
  6007.    
  6008.     private LoginHandler()  {
  6009.         super();
  6010.     }
  6011.    
  6012.     public static LoginHandler getInstance() {
  6013.         if (instance == null) {
  6014.             instance = new LoginHandler();
  6015.         }
  6016.        
  6017.         return instance;
  6018.     }
  6019.  
  6020.     public boolean isLogged() {
  6021.         return isLogged;
  6022.     }
  6023.  
  6024.     public static int getMaxLoginAtempts() {
  6025.         return MAX_LOGIN_ATEMPTS;
  6026.     }
  6027.  
  6028.     public void setLogged(boolean isLogged) {
  6029.         this.isLogged = isLogged;
  6030.     }
  6031.  
  6032.     public void setAdmin(boolean isAdmin) {
  6033.         this.isAdmin = isAdmin;
  6034.     }
  6035.    
  6036.     public boolean isAdmin() {
  6037.         return isAdmin;
  6038.     }
  6039.    
  6040.    
  6041.    
  6042.  
  6043. }
  6044. package gui.listeners;
  6045.  
  6046. import java.awt.event.WindowEvent;
  6047. import java.awt.event.WindowListener;
  6048. import java.util.Locale;
  6049. import java.util.ResourceBundle;
  6050.  
  6051. import javax.swing.JFrame;
  6052. import javax.swing.JOptionPane;
  6053. import javax.swing.WindowConstants;
  6054.  
  6055. public class MyWindowListener implements WindowListener {
  6056.     private ResourceBundle resourceBundle;
  6057.  
  6058.     public void windowOpened(WindowEvent e) {
  6059.         // TODO Auto-generated method stub
  6060.         /*
  6061.         JFrame frame = (JFrame) e.getComponent();
  6062.         ImageIcon img = new ImageIcon("/img/favicon.ico");
  6063.        
  6064.         frame.setIconImage(img.getImage());
  6065.         */
  6066.        
  6067.     }
  6068.  
  6069.     public void windowClosing(WindowEvent e) {
  6070.         JFrame frame= (JFrame) e.getComponent();
  6071.         resourceBundle = ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  6072.         int code=JOptionPane.showConfirmDialog(frame, resourceBundle.getString("strZatvaranje"), resourceBundle.getString("strZatvaranjeTitle"),JOptionPane.YES_NO_OPTION);
  6073.         if (code!=JOptionPane.YES_OPTION){
  6074.        
  6075.             frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  6076.         }
  6077.         else{
  6078.             frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  6079.         }
  6080.        
  6081.     }
  6082.  
  6083.     public void windowClosed(WindowEvent e) {
  6084.         // TODO Auto-generated method stub
  6085.        
  6086.     }
  6087.  
  6088.     public void windowIconified(WindowEvent e) {
  6089.         // TODO Auto-generated method stub
  6090.        
  6091.     }
  6092.  
  6093.     public void windowDeiconified(WindowEvent e) {
  6094.         // TODO Auto-generated method stub
  6095.        
  6096.     }
  6097.  
  6098.     public void windowActivated(WindowEvent e) {
  6099.         // TODO Auto-generated method stub
  6100.        
  6101.     }
  6102.  
  6103.     public void windowDeactivated(WindowEvent e) {
  6104.         // TODO Auto-generated method stub
  6105.        
  6106.     }
  6107.  
  6108. }
  6109. package gui.main;
  6110.  
  6111. import gui.Frame;
  6112. import gui.LoginForm;
  6113. import gui.dialogs.AboutDialog;
  6114. import gui.dialogs.b_dialogs.DialogDrzave;
  6115. import gui.dialogs.b_dialogs.DialogIzvjestaj;
  6116. import gui.dialogs.b_dialogs.DialogKorisnici;
  6117. import gui.dialogs.b_dialogs.DialogNaseljenaMesta;
  6118. import gui.dialogs.b_dialogs.DialogOrganizacija;
  6119. import gui.dialogs.b_dialogs.DialogPivnicaDogadjaj;
  6120. import gui.dialogs.b_dialogs.DialogPivnicaPivo;
  6121. import gui.dialogs.b_dialogs.DialogPivnicaRacun;
  6122. import gui.dialogs.b_dialogs.DialogPivnicaVrstaPiva;
  6123. import gui.dialogs.b_dialogs.DialogTipoviOrg;
  6124. import gui.dialogs.b_dialogs.DialogZaposleni;
  6125. import gui.handlers.LoginHandler;
  6126.  
  6127. import java.awt.event.ActionEvent;
  6128. import java.awt.event.ActionListener;
  6129. import java.awt.event.KeyEvent;
  6130. import java.util.Locale;
  6131. import java.util.ResourceBundle;
  6132.  
  6133. import javax.swing.ImageIcon;
  6134. import javax.swing.JCheckBoxMenuItem;
  6135. import javax.swing.JFrame;
  6136. import javax.swing.JMenu;
  6137. import javax.swing.JMenuBar;
  6138. import javax.swing.JMenuItem;
  6139. import javax.swing.KeyStroke;
  6140.  
  6141. @SuppressWarnings("serial")
  6142. public class Menu extends JMenuBar {
  6143.     @SuppressWarnings("unused")
  6144.     private JFrame parent = null;
  6145.     private ResourceBundle resourceBundle;
  6146.    
  6147.     JMenu mniOsnKatalozi;
  6148.     JMenuItem mniRegDrz;
  6149.     JMenuItem mniNasMe;
  6150.     JMenuItem mniTipmniOrg;
  6151.     JMenuItem mniOrg;
  6152.     JMenuItem mniZap;
  6153.     JMenu mniAdmin;
  6154.     JMenuItem mniKor;
  6155.     JMenuItem mniLogOut;
  6156.     JMenu mniJez;
  6157.     JMenu cl_mniJez;
  6158.     JMenuItem mniJez1;
  6159.     JMenuItem mniJez2;
  6160.     JMenuItem mniJez3;
  6161.     JMenu mniHelp;
  6162.     JMenuItem mniAbout;
  6163.    
  6164.     // Pivnica
  6165.     JMenu mniPivnica;
  6166.     JMenuItem mniPivo;
  6167.     JMenuItem mniVrstaPiva;
  6168.     JMenuItem mniEvent;
  6169.     JMenuItem mniRacun;
  6170.     JMenuItem mniIzvjestaj;
  6171.    
  6172.     // Podesavanja
  6173.     JMenu mniPodesavanja;
  6174.     JCheckBoxMenuItem mniSplashOn;
  6175.     JCheckBoxMenuItem mniLoginOn;
  6176.     JMenuItem mniLoadDefault;
  6177.    
  6178.     JMenu mniDefaultLang;
  6179.     JCheckBoxMenuItem mniLang1;
  6180.     JCheckBoxMenuItem mniLang2;
  6181.     JCheckBoxMenuItem mniLang3;
  6182.    
  6183.  
  6184.    
  6185.     public Menu(final JFrame parent) {
  6186.         this.parent = parent;          
  6187.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  6188.        
  6189.         // RESTORAN
  6190.         mniOsnKatalozi = new JMenu(resourceBundle.getString("mnuOsnKatalozi"));
  6191.         mniOsnKatalozi.setMnemonic(KeyEvent.VK_R);
  6192.         mniOsnKatalozi.setIcon(new ImageIcon("img/icons/osnkatalozi16.png"));
  6193.         mniOsnKatalozi.setToolTipText(resourceBundle.getString("mnuRestoranTlt"));
  6194.        
  6195.        mniRegDrz = new JMenuItem(resourceBundle.getString("mnuRegDrz"), new ImageIcon("img/icons/drzava16.png"));
  6196.         mniRegDrz.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, ActionEvent.CTRL_MASK));
  6197.         mniRegDrz.addActionListener(new ActionListener() {
  6198.            
  6199.             @Override
  6200.             public void actionPerformed(ActionEvent arg0) {
  6201.                 DialogDrzave dialog = new DialogDrzave(Frame.getInstance(), true);
  6202.                 dialog.setVisible(true);
  6203.             }
  6204.         });
  6205.        
  6206.        mniNasMe = new JMenuItem(resourceBundle.getString("mnuNasMjesto"), new ImageIcon("img/icons/nmjesto16.png"));
  6207.         mniNasMe.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK));
  6208.         mniNasMe.addActionListener(new ActionListener() {
  6209.            
  6210.             @Override
  6211.             public void actionPerformed(ActionEvent arg0) {
  6212.                 DialogNaseljenaMesta dialog = new DialogNaseljenaMesta(Frame.getInstance(), true);
  6213.                 dialog.setVisible(true);
  6214.             }
  6215.         });
  6216.        
  6217.         mniTipmniOrg = new JMenuItem(resourceBundle.getString("mnuTipOrg"), new ImageIcon("img/icons/tip_org16.png"));
  6218.         mniTipmniOrg.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, ActionEvent.CTRL_MASK));
  6219.         mniTipmniOrg.addActionListener(new ActionListener() {
  6220.            
  6221.             @Override
  6222.             public void actionPerformed(ActionEvent arg0) {
  6223.                 DialogTipoviOrg dialog = new DialogTipoviOrg(Frame.getInstance(), true);
  6224.                 dialog.setVisible(true);
  6225.             }
  6226.         });
  6227.  
  6228.         mniOrg = new JMenuItem(resourceBundle.getString("lblOrganizacija"), new ImageIcon("img/icons/organizacija16.png"));
  6229.         mniOrg.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
  6230.         mniOrg.addActionListener(new ActionListener() {
  6231.            
  6232.             @Override
  6233.             public void actionPerformed(ActionEvent arg0) {
  6234.                 DialogOrganizacija dialog = new DialogOrganizacija(Frame.getInstance(), true);
  6235.                 dialog.setVisible(true);
  6236.             }
  6237.         });
  6238.        
  6239.         mniZap = new JMenuItem(resourceBundle.getString("lblZaposleni"), new ImageIcon("img/icons/zaposleni16.png"));
  6240.         mniZap.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, ActionEvent.CTRL_MASK));
  6241.         mniZap.addActionListener(new ActionListener() {
  6242.            
  6243.             @Override
  6244.             public void actionPerformed(ActionEvent arg0) {
  6245.                 DialogZaposleni dialog = new DialogZaposleni(Frame.getInstance(), true);
  6246.                 dialog.setVisible(true);
  6247.             }
  6248.         });
  6249.        
  6250.         mniOsnKatalozi.add(mniRegDrz);
  6251.         mniOsnKatalozi.addSeparator();
  6252.         mniOsnKatalozi.add(mniNasMe);
  6253.         mniOsnKatalozi.addSeparator();
  6254.         mniOsnKatalozi.add(mniTipmniOrg);
  6255.         mniOsnKatalozi.addSeparator();
  6256.         mniOsnKatalozi.add(mniOrg);
  6257.         mniOsnKatalozi.addSeparator();
  6258.         mniOsnKatalozi.add(mniZap);
  6259.        
  6260.         // Pivnica
  6261.         mniPivnica = new JMenu(resourceBundle.getString("mnuPivnica"));
  6262.         mniPivnica.setMnemonic(KeyEvent.VK_P);
  6263.         mniPivnica.setIcon(new ImageIcon("img/icons/pivnica16.png"));
  6264.         mniPivnica.setToolTipText(resourceBundle.getString("mnuPivnica"));
  6265.        
  6266.        mniPivo = new JMenuItem(resourceBundle.getString("mnuPivo"), new ImageIcon("img/icons/pivo16.png"));
  6267.         mniPivo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK));
  6268.         mniPivo.addActionListener(new ActionListener() {
  6269.            
  6270.             @Override
  6271.             public void actionPerformed(ActionEvent arg0) {
  6272.                 DialogPivnicaPivo dialog = new DialogPivnicaPivo(Frame.getInstance(), true);
  6273.                 dialog.setVisible(true);
  6274.             }
  6275.         });
  6276.        
  6277.         mniVrstaPiva = new JMenuItem(resourceBundle.getString("mnuVrstePiva"), new ImageIcon("img/icons/vrstepiva16.png"));
  6278.         mniVrstaPiva.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK));
  6279.         mniVrstaPiva.addActionListener(new ActionListener() {
  6280.                
  6281.                 @Override
  6282.                 public void actionPerformed(ActionEvent arg0) {
  6283.                     DialogPivnicaVrstaPiva dialog = new DialogPivnicaVrstaPiva(Frame.getInstance(), true);
  6284.                     dialog.setVisible(true);
  6285.                 }
  6286.             });  
  6287.  
  6288.         mniEvent = new JMenuItem(resourceBundle.getString("mnuDogadjaj"), new ImageIcon("img/icons/event16.png"));
  6289.         mniEvent.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.CTRL_MASK));
  6290.         mniEvent.addActionListener(new ActionListener() {
  6291.                
  6292.                 @Override
  6293.                 public void actionPerformed(ActionEvent arg0) {
  6294.                     DialogPivnicaDogadjaj dialog = new DialogPivnicaDogadjaj(Frame.getInstance(), true);
  6295.                     dialog.setVisible(true);
  6296.                 }
  6297.             });  
  6298.        
  6299.         mniRacun = new JMenuItem(resourceBundle.getString("mnuRacun"), new ImageIcon("img/icons/racun16v2.png"));
  6300.         mniRacun.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, ActionEvent.CTRL_MASK));
  6301.         mniRacun.addActionListener(new ActionListener() {
  6302.                
  6303.                 @Override
  6304.                 public void actionPerformed(ActionEvent arg0) {
  6305.                     DialogPivnicaRacun dialog = new DialogPivnicaRacun(Frame.getInstance(), true);
  6306.                     dialog.setVisible(true);
  6307.                 }
  6308.             });
  6309.        
  6310.         mniIzvjestaj = new JMenuItem(resourceBundle.getString("mnuIzvjestaj"), new ImageIcon("img/icons/report16.png"));
  6311.         mniIzvjestaj.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, ActionEvent.CTRL_MASK));
  6312.         mniIzvjestaj.addActionListener(new ActionListener() {
  6313.                
  6314.                 @Override
  6315.                 public void actionPerformed(ActionEvent arg0) {
  6316.                     DialogIzvjestaj dialog = new DialogIzvjestaj(Frame.getInstance(), true);
  6317.                     dialog.setVisible(true);
  6318.                 }
  6319.             });
  6320.        
  6321.         mniPivnica.add(mniPivo);
  6322.         mniPivnica.addSeparator();
  6323.         mniPivnica.add(mniVrstaPiva);
  6324.         mniPivnica.addSeparator();
  6325.         mniPivnica.add(mniEvent);
  6326.         mniPivnica.addSeparator();
  6327.         mniPivnica.add(mniRacun);
  6328.         mniPivnica.addSeparator();
  6329.         mniPivnica.add(mniIzvjestaj);
  6330.        
  6331.         // ADMIN
  6332.         mniAdmin = new JMenu(resourceBundle.getString("mnuAdmin"));
  6333.         mniAdmin.setMnemonic(KeyEvent.VK_A);
  6334.         mniAdmin.setIcon(new ImageIcon("img/icons/admin_icon.png"));
  6335.         mniAdmin.setToolTipText(resourceBundle.getString("mnuAdminTlt"));
  6336.        
  6337.         mniKor = new JMenuItem(resourceBundle.getString("mnuKorisnici"), new ImageIcon("img/icons/korisnici16.png"));
  6338.         mniKor.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, ActionEvent.CTRL_MASK));
  6339.         mniKor.addActionListener(new ActionListener() {
  6340.            
  6341.             @Override
  6342.             public void actionPerformed(ActionEvent arg0) {
  6343.                 DialogKorisnici dialog = new DialogKorisnici(Frame.getInstance(), true);
  6344.                 dialog.setVisible(true);
  6345.             }
  6346.         });
  6347.        
  6348.         mniLogOut = new JMenuItem(resourceBundle.getString("mnuLogout"), new ImageIcon("img/icons/logout16.png"));
  6349.         mniLogOut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK));
  6350.         mniLogOut.addActionListener(new ActionListener() {
  6351.            
  6352.             @Override
  6353.             public void actionPerformed(ActionEvent arg0) {
  6354.                 LoginHandler lh = LoginHandler.getInstance();
  6355.                 Frame mf = Frame.getInstance();
  6356.                 LoginForm lf = LoginForm.getInstance();
  6357.                
  6358.                 lh.setLogged(false);
  6359.                 lh.setAdmin(false); // Dok se ne implementira pravi nacin...
  6360.                 lf.setLoginAttempts(LoginHandler.getMaxLoginAtempts());
  6361.                
  6362.                 mf.setVisible(false);
  6363.                 lf.setVisible(true);
  6364.                
  6365.             }
  6366.         });
  6367.        
  6368.         mniJez = new JMenu(resourceBundle.getString("mnuLang"));
  6369.         mniJez.setIcon(new ImageIcon("img/icons/change_lang16.png"));
  6370.         cl_mniJez = new JMenu(resourceBundle.getString("mnuSerbianLang"));
  6371.         cl_mniJez.setIcon(new ImageIcon("img/icons/serbia16.png"));
  6372.        
  6373.         mniJez1 = new JMenuItem(resourceBundle.getString("mnuSerbianCir"));
  6374.         mniJez1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK));
  6375.         mniJez1.addActionListener(new ActionListener() {
  6376.            
  6377.             @Override
  6378.             public void actionPerformed(ActionEvent arg0) {
  6379.                 Locale.setDefault(new Locale("sr","RS","CI"));
  6380.                 Frame.getInstance().changeLanguage();
  6381.                
  6382.             }
  6383.         });
  6384.        
  6385.        
  6386.         mniJez2 = new JMenuItem(resourceBundle.getString("mnuSerbianLat"));
  6387.         mniJez2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK));
  6388.         mniJez2.addActionListener(new ActionListener() {
  6389.            
  6390.             @Override
  6391.             public void actionPerformed(ActionEvent arg0) {
  6392.                 Locale.setDefault(new Locale("sr","RS"));
  6393.                 Frame.getInstance().changeLanguage();
  6394.                
  6395.                
  6396.             }
  6397.         });
  6398.        
  6399.         mniJez3 = new JMenuItem(resourceBundle.getString("mnuEnglish"), new ImageIcon("img/icons/english16.png"));
  6400.         mniJez3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK));
  6401.         mniJez3.addActionListener(new ActionListener() {
  6402.            
  6403.             @Override
  6404.             public void actionPerformed(ActionEvent arg0) {
  6405.                 Locale.setDefault(new Locale("en","US"));
  6406.                 Frame.getInstance().changeLanguage();
  6407.                
  6408.                
  6409.             }
  6410.         });
  6411.        
  6412.            
  6413.         cl_mniJez.add(mniJez1);
  6414.         cl_mniJez.add(mniJez2);
  6415.         mniJez.add(mniJez3);
  6416.         mniJez.add(cl_mniJez);
  6417.        
  6418.        
  6419.          mniPodesavanja = new JMenu(resourceBundle.getString("mnuPodesavanja"));
  6420.          mniPodesavanja.setMnemonic(KeyEvent.VK_S);
  6421.          mniPodesavanja.setIcon(new ImageIcon("img/icons/settings16.png"));
  6422.          mniPodesavanja.setToolTipText(resourceBundle.getString("mnuPodesavanja"));
  6423.            
  6424.            mniSplashOn = new JCheckBoxMenuItem(resourceBundle.getString("mnuSplashOn"));
  6425.            mniSplashOn.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK));
  6426.            mniSplashOn.addActionListener(new ActionListener() {
  6427.                
  6428.                 @Override
  6429.                 public void actionPerformed(ActionEvent arg0) {
  6430.                 //  DialogDrzave dialog = new DialogDrzave(Frame.getInstance(), true);
  6431.                 //  dialog.setVisible(true);
  6432.                 }
  6433.             });
  6434.  
  6435.            
  6436.            mniLoginOn = new JCheckBoxMenuItem(resourceBundle.getString("mnuLoginOn"));
  6437.            mniLoginOn.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK));
  6438.            mniLoginOn.addActionListener(new ActionListener() {
  6439.                
  6440.                 @Override
  6441.                 public void actionPerformed(ActionEvent arg0) {
  6442.                 //  DialogDrzave dialog = new DialogDrzave(Frame.getInstance(), true);
  6443.                 //  dialog.setVisible(true);
  6444.                 }
  6445.             });
  6446.  
  6447.            
  6448.            mniLoadDefault = new JMenuItem(resourceBundle.getString("mnuLoadDefault"));
  6449.            mniLoadDefault.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK));
  6450.            mniLoadDefault.addActionListener(new ActionListener() {
  6451.                
  6452.                 @Override
  6453.                 public void actionPerformed(ActionEvent arg0) {
  6454.                 //  DialogDrzave dialog = new DialogDrzave(Frame.getInstance(), true);
  6455.                 //  dialog.setVisible(true);
  6456.                 }
  6457.             });
  6458.            
  6459.         mniDefaultLang = new JMenu(resourceBundle.getString("mnuDefaultLang"));
  6460.         mniDefaultLang.setMnemonic(KeyEvent.VK_X);
  6461.         mniDefaultLang.setToolTipText(resourceBundle.getString("mnuDefaultLang"));
  6462.        
  6463.            mniLang1 = new JCheckBoxMenuItem(resourceBundle.getString("mnuEnglish"));
  6464.            mniLang1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK | ActionEvent.ALT_MASK));
  6465.            mniLang1.addActionListener(new ActionListener() {
  6466.                
  6467.                 @Override
  6468.                 public void actionPerformed(ActionEvent arg0) {
  6469.                 //  DialogDrzave dialog = new DialogDrzave(Frame.getInstance(), true);
  6470.                 //  dialog.setVisible(true);
  6471.                 }
  6472.             });
  6473.            
  6474.            mniLang2 = new JCheckBoxMenuItem(resourceBundle.getString("tlbSerbianLat"));
  6475.            mniLang2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK | ActionEvent.ALT_MASK));
  6476.            mniLang2.addActionListener(new ActionListener() {
  6477.                
  6478.                 @Override
  6479.                 public void actionPerformed(ActionEvent arg0) {
  6480.                 //  DialogDrzave dialog = new DialogDrzave(Frame.getInstance(), true);
  6481.                 //  dialog.setVisible(true);
  6482.                 }
  6483.             });
  6484.            
  6485.            mniLang3 = new JCheckBoxMenuItem(resourceBundle.getString("tlbSerbianCir"));
  6486.            mniLang3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK | ActionEvent.ALT_MASK));
  6487.            mniLang3.addActionListener(new ActionListener() {
  6488.                
  6489.                 @Override
  6490.                 public void actionPerformed(ActionEvent arg0) {
  6491.                 //  DialogDrzave dialog = new DialogDrzave(Frame.getInstance(), true);
  6492.                 //  dialog.setVisible(true);
  6493.                 }
  6494.             });
  6495.            
  6496.            mniDefaultLang.add(mniLang1);
  6497.            mniDefaultLang.addSeparator();
  6498.            mniDefaultLang.add(mniLang2);
  6499.            mniDefaultLang.addSeparator();
  6500.            mniDefaultLang.add(mniLang3);
  6501.        
  6502.         mniPodesavanja.add(mniSplashOn);
  6503.         mniPodesavanja.addSeparator();
  6504.         mniPodesavanja.add(mniLoginOn);
  6505.         mniPodesavanja.addSeparator();
  6506.         mniPodesavanja.add(mniDefaultLang);
  6507.         mniPodesavanja.addSeparator();
  6508.         mniPodesavanja.add(mniLoadDefault);
  6509.  
  6510.        
  6511.         mniAdmin.add(mniKor);
  6512.         mniAdmin.add(mniJez);
  6513.         mniAdmin.add(mniPodesavanja);
  6514.         mniAdmin.add(mniLogOut);
  6515.        
  6516.        
  6517.         // About
  6518.         mniHelp = new JMenu(resourceBundle.getString("mnuHelp"));
  6519.         mniHelp.setMnemonic(KeyEvent.VK_P);
  6520.         mniHelp.setIcon(new ImageIcon("img/icons/help_icon.png"));
  6521.         mniHelp.setToolTipText(resourceBundle.getString("mnuHelpTlt"));
  6522.        
  6523.         mniAbout = new JMenuItem(resourceBundle.getString("mnuAbout"), new ImageIcon("img/icons/info16.png"));
  6524.         mniAbout.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK));
  6525.         mniAbout.addActionListener(new ActionListener() {
  6526.             public void actionPerformed(ActionEvent arg0) {
  6527.                 AboutDialog dialog = new AboutDialog(parent, true);
  6528.                 dialog.setVisible(true);       
  6529.             }
  6530.         });
  6531.         mniHelp.add(mniAbout);
  6532.        
  6533.        
  6534.         // Le wild menu appears!
  6535.         add(mniOsnKatalozi);
  6536.         add(mniPivnica);
  6537.         add(mniAdmin);
  6538.         add(mniHelp);
  6539.  
  6540.     }
  6541.    
  6542.     public void initComponents() {
  6543.        
  6544.         mniOsnKatalozi.setText(Frame.getInstance().getResourceBundle().getString("mnuOsnKatalozi"));
  6545.         mniRegDrz.setText(Frame.getInstance().getResourceBundle().getString("mnuRegDrz"));
  6546.         mniNasMe.setText(Frame.getInstance().getResourceBundle().getString("mnuNasMjesto"));
  6547.         mniTipmniOrg.setText(Frame.getInstance().getResourceBundle().getString("mnuTipOrg"));
  6548.         mniOrg.setText(Frame.getInstance().getResourceBundle().getString("lblOrganizacija"));
  6549.         mniZap.setText(Frame.getInstance().getResourceBundle().getString("lblZaposleni"));
  6550.         mniAdmin.setText(Frame.getInstance().getResourceBundle().getString("mnuAdmin"));
  6551.         mniKor.setText(Frame.getInstance().getResourceBundle().getString("mnuKorisnici"));
  6552.         mniLogOut.setText(Frame.getInstance().getResourceBundle().getString("mnuLogout"));
  6553.         mniJez.setText(Frame.getInstance().getResourceBundle().getString("mnuLang"));
  6554.         cl_mniJez.setText(Frame.getInstance().getResourceBundle().getString("mnuSerbianLang"));
  6555.         mniJez1.setText(Frame.getInstance().getResourceBundle().getString("mnuSerbianCir"));
  6556.         mniJez2.setText(Frame.getInstance().getResourceBundle().getString("mnuSerbianLat"));
  6557.         mniJez3.setText(Frame.getInstance().getResourceBundle().getString("mnuEnglish"));
  6558.         mniHelp.setText(Frame.getInstance().getResourceBundle().getString("mnuHelp"));
  6559.         mniHelp.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuHelpTlt"));
  6560.         mniAbout.setText(Frame.getInstance().getResourceBundle().getString("mnuAbout"));
  6561.        
  6562.         // Pivnica
  6563.         mniPivnica.setText(Frame.getInstance().getResourceBundle().getString("mnuPivnica"));
  6564.         mniPivo.setText(Frame.getInstance().getResourceBundle().getString("mnuPivo"));
  6565.         mniVrstaPiva.setText(Frame.getInstance().getResourceBundle().getString("mnuVrstePiva"));
  6566.         mniEvent.setText(Frame.getInstance().getResourceBundle().getString("mnuDogadjaj"));
  6567.         mniRacun.setText(Frame.getInstance().getResourceBundle().getString("mnuRacun"));
  6568.         mniIzvjestaj.setText(Frame.getInstance().getResourceBundle().getString("mnuIzvjestaj"));
  6569.        
  6570.         // Podesavanja
  6571.         mniPodesavanja.setText(Frame.getInstance().getResourceBundle().getString("mnuPodesavanja"));
  6572.         mniSplashOn.setText(Frame.getInstance().getResourceBundle().getString("mnuSplashOn"));
  6573.         mniLoginOn.setText(Frame.getInstance().getResourceBundle().getString("mnuSplashOff"));
  6574.         mniLoadDefault.setText(Frame.getInstance().getResourceBundle().getString("mnuLoadDefault"));
  6575.         mniDefaultLang.setText(Frame.getInstance().getResourceBundle().getString("mnuDefaultLang"));
  6576.         mniLang1.setText(Frame.getInstance().getResourceBundle().getString("mnuEnglish"));
  6577.         mniLang2.setText(Frame.getInstance().getResourceBundle().getString("tlbSerbianLat"));
  6578.         mniLang3.setText(Frame.getInstance().getResourceBundle().getString("tlbSerbianCir"));
  6579.        
  6580.     }
  6581.    
  6582.    
  6583. }
  6584. package gui.main;
  6585.  
  6586. import gui.Frame;
  6587. import gui.settings.Config;
  6588.  
  6589. import java.awt.Color;
  6590. import java.awt.Dimension;
  6591. import java.awt.GridLayout;
  6592. import java.text.DateFormat;
  6593. import java.util.Date;
  6594. import java.util.Locale;
  6595.  
  6596. import javax.swing.BorderFactory;
  6597. import javax.swing.JLabel;
  6598. import javax.swing.JPanel;
  6599. import javax.swing.border.BevelBorder;
  6600.  
  6601. import model.collections.Korisnici;
  6602. import model.data.Korisnik;
  6603.  
  6604. @SuppressWarnings({"serial" })
  6605. public class StatusBar extends JPanel{
  6606.    
  6607.     private StatusPane statusBarMenuDescription;
  6608.     private StatusPane statusBarLanguage;
  6609.     private StatusPane statusBarDate;
  6610.     private StatusPane statusBarVersion;
  6611.    
  6612.     public StatusBar() {
  6613.         setLayout(new GridLayout(1,4,5,5));
  6614.         setBackground(new Color(235, 235, 235));
  6615.         setBorder(BorderFactory.createLineBorder(Color.darkGray));
  6616.        
  6617.         statusBarMenuDescription = new StatusPane("");
  6618.         statusBarLanguage = new StatusPane(Frame.getInstance().getResourceBundle().getString("lblJezik") + " - " + Locale.getDefault().getDisplayLanguage());
  6619.        
  6620.         statusBarDate = new StatusPane("");
  6621.         DateFormat df = DateFormat.getDateInstance();
  6622.         String datum = df.format(new Date());
  6623.         statusBarDate.setText(datum);
  6624.  
  6625.        
  6626.         statusBarVersion = new StatusPane(Frame.getInstance().getResourceBundle().getString("lblVersionUC") + Config.getVersion());
  6627.        
  6628.        
  6629.         add(statusBarMenuDescription);
  6630.         add(statusBarLanguage);
  6631.         add(statusBarDate);
  6632.         add(statusBarVersion);
  6633.         initComponents();
  6634.     }
  6635.     class StatusPane extends JLabel {
  6636.        
  6637.         public StatusPane(String text) {
  6638.             super(text);
  6639.             setHorizontalAlignment(CENTER);
  6640.             setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
  6641.             setPreferredSize(new Dimension(200,25));
  6642.            
  6643.         }
  6644.     }
  6645.    
  6646.     public void initComponents() {
  6647.         // (Hackfix) Workaround zbog toga sto Java jako mrzi Variant tipove jezika...
  6648.         Locale defaultLocale = Locale.getDefault();
  6649.         String currentLang = null;
  6650.        if (defaultLocale.getDisplayVariant().equals("") && defaultLocale.getLanguage().equals("sr"))
  6651.                currentLang = "Srpski (Latinica)";
  6652.        else if (defaultLocale.getDisplayVariant().equals("CI") && defaultLocale.getLanguage().equals("sr"))
  6653.            currentLang = "Српски (Ћирилица)";
  6654.        else
  6655.            currentLang =  Locale.getDefault().getDisplayLanguage();
  6656.        
  6657.         statusBarLanguage.setText(Frame.getInstance().getResourceBundle().getString("lblJezik") + " - " + currentLang);
  6658.        
  6659.         DateFormat df = DateFormat.getDateInstance();
  6660.         String datum = df.format(new Date());
  6661.         statusBarDate.setText(datum);
  6662.        
  6663.         statusBarVersion.setText(Frame.getInstance().getResourceBundle().getString("lblVersionUC") + Config.getVersion());
  6664.     }
  6665.  
  6666.     public void setMenuDescription(String s) {
  6667.         statusBarMenuDescription.setText(s);
  6668.     }
  6669.    
  6670. }
  6671. package gui.main;
  6672.  
  6673. import gui.Frame;
  6674. import gui.dialogs.AboutDialog;
  6675. import gui.dialogs.b_dialogs.DialogDrzave;
  6676. import gui.dialogs.b_dialogs.DialogKorisnici;
  6677. import gui.dialogs.b_dialogs.DialogNaseljenaMesta;
  6678. import gui.dialogs.b_dialogs.DialogOrganizacija;
  6679. import gui.dialogs.b_dialogs.DialogTipoviOrg;
  6680. import gui.dialogs.b_dialogs.DialogZaposleni;
  6681. import gui.handlers.LoginHandler;
  6682.  
  6683. import java.awt.Color;
  6684. import java.awt.event.ActionEvent;
  6685. import java.awt.event.ActionListener;
  6686. import java.util.Locale;
  6687. import java.util.ResourceBundle;
  6688.  
  6689. import javax.swing.ButtonGroup;
  6690. import javax.swing.ImageIcon;
  6691. import javax.swing.JButton;
  6692. import javax.swing.JFrame;
  6693. import javax.swing.JRadioButton;
  6694. import javax.swing.JToolBar;
  6695. import javax.swing.SwingConstants;
  6696.  
  6697. @SuppressWarnings("serial")
  6698. public class Toolbar extends JToolBar {
  6699.     private ImageIcon imgSrb;
  6700.     private ImageIcon imgEng;
  6701.     private ImageIcon imgSelected;
  6702.     final private JRadioButton t_btnEng;
  6703.     final private JRadioButton t_btnSrbL;
  6704.     final private JRadioButton t_btnSrbC;
  6705.     @SuppressWarnings("unused")
  6706.     private JFrame parent = null;
  6707.     private ResourceBundle resourceBundle;
  6708.    
  6709.     JButton t_btnDrzava;
  6710.     JButton t_btnNasMes;
  6711.     JButton t_btnTipOrg;
  6712.     JButton t_btnOrg;
  6713.     JButton t_btnZap;
  6714.     JButton t_btnKor;
  6715.     JButton t_btnAbout;
  6716.    
  6717.    
  6718.     public Toolbar(final JFrame parent) {
  6719.         super(SwingConstants.HORIZONTAL);
  6720.         this.parent = parent;
  6721.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  6722.        
  6723.         setFloatable(false);
  6724.         setBackground(new Color(235, 235, 235));
  6725.        
  6726.         t_btnDrzava = new JButton();
  6727.        
  6728.         t_btnDrzava.setToolTipText(resourceBundle.getString("mnuRegDrz"));
  6729.         t_btnDrzava.setIcon(new ImageIcon("img/icons/drzava.png"));
  6730.         t_btnDrzava.addActionListener(new ActionListener() {
  6731.            
  6732.             @Override
  6733.             public void actionPerformed(ActionEvent arg0) {
  6734.                 DialogDrzave dialog = new DialogDrzave(Frame.getInstance(), true);
  6735.                 dialog.setVisible(true);
  6736.             }
  6737.         });
  6738.         add(t_btnDrzava);
  6739.         addSeparator();
  6740.        
  6741.         t_btnNasMes = new JButton();
  6742.         t_btnNasMes.setToolTipText(resourceBundle.getString("mnuNasMjesto"));
  6743.         t_btnNasMes.setIcon(new ImageIcon("img/icons/nmjesto.png"));
  6744.         t_btnNasMes.addActionListener(new ActionListener() {
  6745.            
  6746.             @Override
  6747.             public void actionPerformed(ActionEvent arg0) {
  6748.                 DialogNaseljenaMesta dialog = new DialogNaseljenaMesta(Frame.getInstance(), true);
  6749.                 dialog.setVisible(true);
  6750.             }
  6751.         });
  6752.        
  6753.         add(t_btnNasMes);
  6754.         addSeparator();
  6755.        
  6756.         t_btnTipOrg = new JButton();
  6757.         t_btnTipOrg.setToolTipText(resourceBundle.getString("mnuTipOrg"));
  6758.         t_btnTipOrg.setIcon(new ImageIcon("img/icons/tip_org.png"));
  6759.         t_btnTipOrg.addActionListener(new ActionListener() {
  6760.            
  6761.             @Override
  6762.             public void actionPerformed(ActionEvent arg0) {
  6763.                 DialogTipoviOrg dialog = new DialogTipoviOrg(Frame.getInstance(), true);
  6764.                 dialog.setVisible(true);
  6765.             }
  6766.         });
  6767.        
  6768.         add(t_btnTipOrg);
  6769.         addSeparator();
  6770.        
  6771.         t_btnOrg = new JButton();
  6772.         t_btnOrg.setToolTipText(resourceBundle.getString("lblOrganizacija"));
  6773.         t_btnOrg.setIcon(new ImageIcon("img/icons/organizacija.png"));
  6774.         t_btnOrg.addActionListener(new ActionListener() {
  6775.            
  6776.             @Override
  6777.             public void actionPerformed(ActionEvent arg0) {
  6778.                 DialogOrganizacija dialog = new DialogOrganizacija(Frame.getInstance(), true);
  6779.                 dialog.setVisible(true);
  6780.             }
  6781.         });
  6782.        
  6783.         add(t_btnOrg);
  6784.         addSeparator();
  6785.        
  6786.         t_btnZap = new JButton();
  6787.         t_btnZap.setToolTipText(resourceBundle.getString("lblZaposleni"));
  6788.         t_btnZap.setIcon(new ImageIcon("img/icons/zaposleni.png"));
  6789.         t_btnZap.addActionListener(new ActionListener() {
  6790.            
  6791.             @Override
  6792.             public void actionPerformed(ActionEvent arg0) {
  6793.                 DialogZaposleni dialog = new DialogZaposleni(Frame.getInstance(), true);
  6794.                 dialog.setVisible(true);
  6795.             }
  6796.         });
  6797.        
  6798.        
  6799.         add(t_btnZap);
  6800.         addSeparator();
  6801.        
  6802.         t_btnKor = new JButton();
  6803.         t_btnKor.setToolTipText(resourceBundle.getString("mnuKorisnici"));
  6804.         t_btnKor.setIcon(new ImageIcon("img/icons/korisnici.png"));
  6805.         t_btnKor.addActionListener(new ActionListener() {
  6806.            
  6807.             @Override
  6808.             public void actionPerformed(ActionEvent arg0) {
  6809.                 DialogKorisnici dialog = new DialogKorisnici(Frame.getInstance(), true);
  6810.                 dialog.setVisible(true);
  6811.             }
  6812.         });
  6813.     //  if (LoginHandler.getInstance().isAdmin()) {
  6814.             add(t_btnKor);
  6815.             addSeparator();
  6816.     //  }
  6817.        
  6818.         t_btnAbout = new JButton();
  6819.         t_btnAbout.setToolTipText(resourceBundle.getString("mnuAbout"));
  6820.         t_btnAbout.setIcon(new ImageIcon("img/icons/about.png"));
  6821.         t_btnAbout.addActionListener(new ActionListener() {
  6822.             public void actionPerformed(ActionEvent arg0) {
  6823.                 AboutDialog dialog = new AboutDialog(parent, true);
  6824.                 dialog.setVisible(true);
  6825.             }
  6826.         });
  6827.         add(t_btnAbout);
  6828.         addSeparator();
  6829.        
  6830.         // Lang:
  6831.         imgEng = new ImageIcon("img/icons/english.png");
  6832.         imgSrb = new ImageIcon("img/icons/serbia.png");
  6833.         imgSelected = new ImageIcon("img/icons/izabran.png");
  6834.        
  6835.         t_btnEng = new JRadioButton(resourceBundle.getString("mnuEnglish"));
  6836.         t_btnEng.setIcon(imgEng);
  6837.         t_btnEng.addActionListener(new ActionListener() {
  6838.             public void actionPerformed(ActionEvent e) {
  6839.                 Locale.setDefault(new Locale("en","US"));
  6840.                 Frame.getInstance().changeLanguage();
  6841.                
  6842.                 if (t_btnEng.getIcon() == imgEng) {
  6843.                     t_btnEng.setIcon(imgSelected);
  6844.                     t_btnSrbL.setIcon(imgSrb);
  6845.                     t_btnSrbC.setIcon(imgSrb);
  6846.                 }
  6847.             }
  6848.         });
  6849.        
  6850.         t_btnSrbL = new JRadioButton(resourceBundle.getString("tlbSerbianLat"));
  6851.         t_btnSrbL.setIcon(imgSrb);
  6852.         t_btnSrbL.addActionListener(new ActionListener() {
  6853.             public void actionPerformed(ActionEvent e) {
  6854.                 Locale.setDefault(new Locale("sr","RS"));
  6855.                 Frame.getInstance().changeLanguage();
  6856.                
  6857.                 if (t_btnSrbL.getIcon() == imgSrb) {
  6858.                     t_btnSrbL.setIcon(imgSelected);
  6859.                     t_btnEng.setIcon(imgEng);
  6860.                     t_btnSrbC.setIcon(imgSrb);
  6861.                 }
  6862.             }
  6863.         });
  6864.        
  6865.         t_btnSrbC = new JRadioButton(resourceBundle.getString("tlbSerbianCir"));
  6866.         t_btnSrbC.setIcon(imgSrb);
  6867.         t_btnSrbC.addActionListener(new ActionListener() {
  6868.             public void actionPerformed(ActionEvent e) {
  6869.                 Locale.setDefault(new Locale("sr","RS","CI"));
  6870.                 Frame.getInstance().changeLanguage();
  6871.                
  6872.                 if (t_btnSrbC.getIcon() == imgSrb) {
  6873.                     t_btnSrbC.setIcon(imgSelected);
  6874.                     t_btnSrbL.setIcon(imgSrb);
  6875.                     t_btnEng.setIcon(imgEng);
  6876.                 }
  6877.             }
  6878.         });
  6879.        
  6880.         ButtonGroup group = new ButtonGroup();
  6881.         group.add(t_btnEng);
  6882.         group.add(t_btnSrbL);
  6883.         group.add(t_btnSrbC);
  6884.  
  6885.         add(t_btnEng);
  6886.         addSeparator();
  6887.         add(t_btnSrbL);
  6888.         addSeparator();
  6889.         add(t_btnSrbC);
  6890.        
  6891.         if (Locale.getDefault().equals("en_US")) {
  6892.             t_btnSrbC.setIcon(imgSrb);
  6893.             t_btnSrbL.setIcon(imgSrb);
  6894.             t_btnEng.setIcon(imgSelected);
  6895.         }
  6896.         else if (Locale.getDefault().equals("sr_RS")) {
  6897.             t_btnSrbC.setIcon(imgSelected);
  6898.             t_btnSrbL.setIcon(imgSrb);
  6899.             t_btnEng.setIcon(imgEng);
  6900.         }
  6901.         else {
  6902.             t_btnSrbC.setIcon(imgSrb);
  6903.             t_btnSrbL.setIcon(imgSelected);
  6904.             t_btnEng.setIcon(imgEng);
  6905.         }
  6906.        
  6907.  
  6908.     }
  6909.    
  6910.     public void initComponents() {
  6911.         t_btnDrzava.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuRegDrz"));
  6912.         t_btnNasMes.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuNasMjesto"));
  6913.         t_btnTipOrg.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuTipOrg"));
  6914.         t_btnOrg.setToolTipText(Frame.getInstance().getResourceBundle().getString("lblOrganizacija"));
  6915.         t_btnZap.setToolTipText(Frame.getInstance().getResourceBundle().getString("lblZaposleni"));
  6916.         t_btnKor.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuKorisnici"));
  6917.         t_btnAbout.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuAbout"));
  6918.        
  6919.         t_btnEng.setText(Frame.getInstance().getResourceBundle().getString("mnuEnglish"));
  6920.         t_btnSrbL.setText(Frame.getInstance().getResourceBundle().getString("tlbSerbianLat"));
  6921.         t_btnSrbC.setText(Frame.getInstance().getResourceBundle().getString("tlbSerbianCir"));
  6922.        
  6923.         if (Locale.getDefault().equals("en_US")) {
  6924.             t_btnSrbC.setIcon(imgSrb);
  6925.             t_btnSrbL.setIcon(imgSrb);
  6926.             t_btnEng.setIcon(imgSelected);
  6927.         }
  6928.         else if (Locale.getDefault().equals("sr_RS")) {
  6929.             t_btnSrbC.setIcon(imgSelected);
  6930.             t_btnSrbL.setIcon(imgSrb);
  6931.             t_btnEng.setIcon(imgEng);
  6932.         }
  6933.         else {
  6934.             t_btnSrbC.setIcon(imgSrb);
  6935.             t_btnSrbL.setIcon(imgSelected);
  6936.             t_btnEng.setIcon(imgEng);
  6937.         }
  6938.        
  6939.     }
  6940. }
  6941. package gui.main;
  6942.  
  6943. import gui.Frame;
  6944. import gui.dialogs.b_dialogs.DialogIzvjestaj;
  6945. import gui.dialogs.b_dialogs.DialogPivnicaDogadjaj;
  6946. import gui.dialogs.b_dialogs.DialogPivnicaPivo;
  6947. import gui.dialogs.b_dialogs.DialogPivnicaRacun;
  6948. import gui.dialogs.b_dialogs.DialogPivnicaVrstaPiva;
  6949.  
  6950. import java.awt.Color;
  6951. import java.awt.event.ActionEvent;
  6952. import java.awt.event.ActionListener;
  6953. import java.util.Locale;
  6954. import java.util.ResourceBundle;
  6955.  
  6956. import javax.swing.ImageIcon;
  6957. import javax.swing.JButton;
  6958. import javax.swing.JFrame;
  6959. import javax.swing.JToolBar;
  6960. import javax.swing.SwingConstants;
  6961.  
  6962. @SuppressWarnings("serial")
  6963. public class ToolbarPivnica extends JToolBar {
  6964.     @SuppressWarnings("unused")
  6965.     private JFrame parent = null;
  6966.     private ResourceBundle resourceBundle;
  6967.    
  6968.     JButton t_btnPivo;
  6969.     JButton t_btnVrstaPiva;
  6970.     JButton t_btnDogadjaj;
  6971.     JButton t_btnRacun;
  6972.     JButton t_btnIzvjestaj;
  6973.     JButton t_btnPodesavanja;
  6974.  
  6975.     public ToolbarPivnica(final JFrame parent) {
  6976.         super(SwingConstants.HORIZONTAL);
  6977.         this.parent = parent;
  6978.         resourceBundle =ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  6979.        
  6980.         setFloatable(false);
  6981.         setBackground(new Color(235, 235, 235));
  6982.        
  6983.         t_btnPivo = new JButton();
  6984.         t_btnPivo.setToolTipText(resourceBundle.getString("mnuPivo"));
  6985.         t_btnPivo.setIcon(new ImageIcon("img/icons/pivo32.png"));
  6986.         t_btnPivo.addActionListener(new ActionListener() {
  6987.            
  6988.             @Override
  6989.             public void actionPerformed(ActionEvent arg0) {
  6990.                 DialogPivnicaPivo dialog = new DialogPivnicaPivo(Frame.getInstance(), true);
  6991.                 dialog.setVisible(true);
  6992.             }
  6993.         });
  6994.         add(t_btnPivo);
  6995.         addSeparator();
  6996.        
  6997.         t_btnVrstaPiva = new JButton();
  6998.         t_btnVrstaPiva.setToolTipText(resourceBundle.getString("mnuVrstePiva"));
  6999.         t_btnVrstaPiva.setIcon(new ImageIcon("img/icons/vrstepiva32.png"));
  7000.         t_btnVrstaPiva.addActionListener(new ActionListener() {
  7001.            
  7002.             @Override
  7003.             public void actionPerformed(ActionEvent arg0) {
  7004.                 DialogPivnicaVrstaPiva dialog = new DialogPivnicaVrstaPiva(Frame.getInstance(), true);
  7005.                 dialog.setVisible(true);
  7006.             }
  7007.         });
  7008.         add(t_btnVrstaPiva);
  7009.         addSeparator();
  7010.        
  7011.         t_btnDogadjaj = new JButton();
  7012.         t_btnDogadjaj.setToolTipText(resourceBundle.getString("mnuDogadjaj"));
  7013.         t_btnDogadjaj.setIcon(new ImageIcon("img/icons/event32.png"));
  7014.         t_btnDogadjaj.addActionListener(new ActionListener() {
  7015.            
  7016.             @Override
  7017.             public void actionPerformed(ActionEvent arg0) {
  7018.                 DialogPivnicaDogadjaj dialog = new DialogPivnicaDogadjaj(Frame.getInstance(), true);
  7019.                 dialog.setVisible(true);
  7020.             }
  7021.         });
  7022.         add(t_btnDogadjaj);
  7023.         addSeparator();
  7024.        
  7025.         t_btnRacun = new JButton();
  7026.         t_btnRacun.setToolTipText(resourceBundle.getString("mnuRacun"));
  7027.         t_btnRacun.setIcon(new ImageIcon("img/icons/racun32v2.png"));
  7028.         t_btnRacun.addActionListener(new ActionListener() {
  7029.            
  7030.             @Override
  7031.             public void actionPerformed(ActionEvent arg0) {
  7032.                 DialogPivnicaRacun dialog = new DialogPivnicaRacun(Frame.getInstance(), true);
  7033.                 dialog.setVisible(true);
  7034.             }
  7035.         });
  7036.         add(t_btnRacun);
  7037.         addSeparator();
  7038.        
  7039.         t_btnIzvjestaj = new JButton();
  7040.         t_btnIzvjestaj.setToolTipText(resourceBundle.getString("mnuIzvjestaj"));
  7041.         t_btnIzvjestaj.setIcon(new ImageIcon("img/icons/report32.png"));
  7042.         t_btnIzvjestaj.addActionListener(new ActionListener() {
  7043.            
  7044.             @Override
  7045.             public void actionPerformed(ActionEvent arg0) {
  7046.                 DialogIzvjestaj dialog = new DialogIzvjestaj(Frame.getInstance(), true);
  7047.                 dialog.setVisible(true);
  7048.             }
  7049.         });
  7050.         add(t_btnIzvjestaj);
  7051.         addSeparator();
  7052.        
  7053.         t_btnPodesavanja = new JButton();
  7054.         t_btnPodesavanja.setToolTipText(resourceBundle.getString("mnuPodesavanja"));
  7055.         t_btnPodesavanja.setIcon(new ImageIcon("img/icons/settings32.png"));
  7056.         t_btnPodesavanja.addActionListener(new ActionListener() {
  7057.            
  7058.             @Override
  7059.             public void actionPerformed(ActionEvent arg0) {
  7060.             //  DialogIzvjestaj dialog = new DialogIzvjestaj(Frame.getInstance(), true);
  7061.             //  dialog.setVisible(true);
  7062.             }
  7063.         });
  7064.         add(t_btnPodesavanja);
  7065.     }
  7066.    
  7067.     public void initComponents() {
  7068.         t_btnPivo.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuPivo"));
  7069.         t_btnVrstaPiva.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuVrstePiva"));
  7070.         t_btnDogadjaj.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuDogadjaj"));
  7071.         t_btnRacun.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuRacun"));
  7072.         t_btnIzvjestaj.setToolTipText(Frame.getInstance().getResourceBundle().getString("mnuIzvjestaj"));
  7073.     }
  7074.  
  7075. }
  7076. package gui.settings;
  7077.  
  7078. import gui.Frame;
  7079.  
  7080. import java.awt.Image;
  7081. import java.util.Locale;
  7082. import java.util.ResourceBundle;
  7083.  
  7084. import javax.swing.ImageIcon;
  7085.  
  7086. public class Config {
  7087.     private static ResourceBundle resourceBundle = ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  7088.    
  7089.    
  7090.     // Generalna Konfiguracija
  7091.     private static final String version = "0.2b";
  7092.     private static final String autor = resourceBundle.getString("lblGoranT");
  7093.     private static final String title = resourceBundle.getString("mainTitle");
  7094.     private static final String username = "test";
  7095.     private static final String password = "test123";
  7096.     private static final boolean hideToolbar = true; // Toolbar se sakriva na "mouse movement"
  7097.     private static final int toolbarHideHeight = 170; // Vrijednost Y koordinate posle koje ce se prikazati toolbar (MAX 411, MIN 0 !!!)
  7098.     private static double mainImagePanelHeight = Frame.getInstance().getSize().getHeight();
  7099.    
  7100.     // Splash podesavanja:
  7101.     private static int splashModifier = 105; // NE MIJENJATI!
  7102.     private static final int splashDurationT1 = 50; // Broj milisekundi na osnovu kojih se Thread T1 zaustavlja (Splash.java)
  7103.     private static final int splashDurationT2 = splashDurationT1 * splashModifier; // Broj milisekundi na osnovu kojih se Thread T2 zaustavlja (Main.java)
  7104.    
  7105.     // Ikonice (favicon):
  7106.     private static Image f16 = new ImageIcon("img/favicon16.png").getImage();
  7107.     private static Image f32 = new ImageIcon("img/favicon32.png").getImage();
  7108.  
  7109.    
  7110.     // TODO: Implementirati funkcije za ove 2 prom.:
  7111.     private static final boolean disableLogin = false; // True - Iskljuceno ; False - Ukljuceno
  7112.     private static final boolean disableSplash = false;
  7113.    
  7114.     // Misc:
  7115.     private static final int maxCMB = 5; // Maksimalan broj JComboBox-ova po dialogu...malo ogranicavajuce ali dok ne nadjem drugi nacin ostaje ovako
  7116.    
  7117.     public Config() {
  7118.        
  7119.     }
  7120.  
  7121.  
  7122.     public static boolean isDisablelogin() {
  7123.         return disableLogin;
  7124.     }
  7125.  
  7126.  
  7127.     public static boolean isDisablesplash() {
  7128.         return disableSplash;
  7129.     }
  7130.  
  7131.  
  7132.     public static String getTitle() {
  7133.         return title;
  7134.     }
  7135.    
  7136.     public static String getVersion() {
  7137.         return version;
  7138.     }
  7139.    
  7140.     public static String getAutor() {
  7141.         return autor;
  7142.     }
  7143.  
  7144.  
  7145.     public static String getUsername() {
  7146.         return username;
  7147.     }
  7148.  
  7149.  
  7150.     public static String getPassword() {
  7151.         return password;
  7152.     }
  7153.  
  7154.  
  7155.     public static int getSplashdurationt1() {
  7156.         return splashDurationT1;
  7157.     }
  7158.  
  7159.  
  7160.     public static int getSplashdurationt2() {
  7161.         return splashDurationT2;
  7162.     }
  7163.  
  7164.  
  7165.     public static Image getF16() {
  7166.         return f16;
  7167.     }
  7168.  
  7169.  
  7170.     public static Image getF32() {
  7171.         return f32;
  7172.     }
  7173.    
  7174.     public static boolean getHideToolbar() {
  7175.         return hideToolbar;
  7176.     }
  7177.    
  7178.     public static int getToolbarHideHeight() {
  7179.         return toolbarHideHeight;
  7180.     }
  7181.    
  7182.     public static double getMainImagePanelHeight() {
  7183.         return mainImagePanelHeight;
  7184.     }
  7185.  
  7186.     public static void setMainImagePanelHeight(double d) {
  7187.         mainImagePanelHeight = d;
  7188.     }
  7189.  
  7190.     public static int getMaxCmb() {
  7191.         return maxCMB;
  7192.     }
  7193.    
  7194.    
  7195.    
  7196. }
  7197. package gui.tablemodel;
  7198.  
  7199. import javax.swing.table.AbstractTableModel;
  7200.  
  7201. import model.collections.ITableModel;
  7202.  
  7203. @SuppressWarnings("serial")
  7204. public class DialogTableModel extends AbstractTableModel {
  7205.  
  7206.     private String[] columnNames ;
  7207.     private ITableModel itableModel;
  7208.  
  7209.     public DialogTableModel(String[] columnNames, ITableModel itableModel) {
  7210.         this.columnNames = columnNames;
  7211.         this.itableModel = itableModel;
  7212.    
  7213.     }
  7214.    
  7215.     public String getColumnName(int col) {
  7216.         return columnNames[col];
  7217.     }
  7218.  
  7219.     @Override
  7220.     public int getColumnCount() {
  7221.         return columnNames.length;
  7222.     }
  7223.  
  7224.     @Override
  7225.     public int getRowCount() {
  7226.         return itableModel.getRowCount();
  7227.     }
  7228.  
  7229.     @Override
  7230.     public Object getValueAt(int rowIndex, int columnIndex) {
  7231.         return itableModel.getValueAt(rowIndex, columnIndex);
  7232.     }
  7233.  
  7234. }
  7235. package gui;
  7236.  
  7237. import gui.actions.MyMouseListener;
  7238. import gui.main.Menu;
  7239. import gui.main.StatusBar;
  7240. import gui.main.Toolbar;
  7241. import gui.main.ToolbarPivnica;
  7242. import gui.settings.Config;
  7243.  
  7244. import java.awt.BorderLayout;
  7245. import java.awt.Color;
  7246. import java.awt.FlowLayout;
  7247. import java.awt.Graphics;
  7248. import java.awt.Image;
  7249. import java.awt.event.MouseMotionListener;
  7250. import java.awt.event.WindowEvent;
  7251. import java.awt.event.WindowListener;
  7252. import java.io.FileInputStream;
  7253. import java.io.FileNotFoundException;
  7254. import java.io.IOException;
  7255. import java.io.ObjectInputStream;
  7256. import java.util.Locale;
  7257. import java.util.ResourceBundle;
  7258.  
  7259. import javax.swing.BoxLayout;
  7260. import javax.swing.ImageIcon;
  7261. import javax.swing.JFrame;
  7262. import javax.swing.JOptionPane;
  7263. import javax.swing.JPanel;
  7264. import javax.swing.UIManager;
  7265. import javax.swing.WindowConstants;
  7266.  
  7267. import model.collections.Restoran;
  7268. @SuppressWarnings("serial")
  7269. public class Frame extends JFrame {
  7270.    
  7271.     private static Frame instance = null;
  7272.    
  7273.     private Menu menu;
  7274.     private StatusBar statusbar;
  7275.     private Toolbar toolbar;
  7276.     private ToolbarPivnica toolbarPivnica;
  7277.     private ResourceBundle resourceBundle;
  7278.  
  7279.     private Frame() {
  7280.         super();
  7281.         Locale.setDefault(new Locale("sr","RS"));
  7282.         resourceBundle =ResourceBundle.getBundle( "gui.MessageResource.MessageResources", Locale.getDefault());
  7283.         // Locale.setDefault(new Locale("en","US"));
  7284.         // System.out.println(Config.getMainImagePanelHeight());
  7285.  
  7286.     }
  7287.    
  7288.     // Singleton
  7289.     public static Frame getInstance() {
  7290.         if (instance == null) {
  7291.             instance = new Frame();
  7292.             instance.initGUI();
  7293.         }
  7294.        
  7295.         return instance;
  7296.     }
  7297.    
  7298.     public void initGUI() {
  7299.         setSize(800, 600);
  7300.         setTitle(resourceBundle.getString("mainTitle"));
  7301.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  7302.         setBackground(Color.WHITE);
  7303.         getContentPane().setBackground(Color.WHITE);
  7304.         setResizable(false);
  7305.         ImagePanel panel = new ImagePanel(new ImageIcon("img/logo.jpg").getImage());
  7306.  
  7307.         menu = new Menu(this);
  7308.         setJMenuBar(menu);
  7309.    
  7310.         JPanel toolbarPanel = new JPanel();
  7311.         JPanel panelF = new JPanel();
  7312.        
  7313.         panelF.setLayout(new FlowLayout(FlowLayout.LEFT));
  7314.         toolbarPanel.setLayout(new BoxLayout(toolbarPanel, BoxLayout.Y_AXIS));
  7315.        
  7316.         toolbar = new Toolbar(this);
  7317.         toolbarPivnica = new ToolbarPivnica(this);
  7318.         toolbarPanel.add(toolbar);
  7319.         toolbarPanel.add(toolbarPivnica);
  7320.        
  7321.         panelF.add(toolbarPanel);
  7322.        
  7323.         this.add(panel, BorderLayout.CENTER);
  7324.         add(panelF, BorderLayout.NORTH);
  7325.         // add(toolbar, BorderLayout.NORTH);
  7326.         // add(toolbarPivnica, BorderLayout.CENTER);
  7327.        
  7328.        
  7329.         statusbar = new StatusBar();
  7330.         add(statusbar, BorderLayout.SOUTH);
  7331.         Locale.setDefault(new Locale("sr","RS"));
  7332.  
  7333.         setLocationRelativeTo(null);
  7334.         addWindowListener(new MainFrameListener());
  7335.         MouseMotionListener mml = new MyMouseListener();
  7336.         panel.addMouseMotionListener(mml);
  7337.         toolbarPivnica.setVisible(false);
  7338.        
  7339.         changeOptionPaneLanguage();
  7340.        
  7341.         // Le wild height appears...
  7342.         Config.setMainImagePanelHeight(this.getSize().getHeight());
  7343.        
  7344.         try {      
  7345.             ObjectInputStream in = new ObjectInputStream(new FileInputStream("korisnici.dat"));
  7346.             Restoran.getInstance().getKorisnici().loadLogin(in);
  7347.             in.close();
  7348.             if (!Restoran.getInstance().getKorisnici().getKorisniciIterator().hasNext()) {
  7349.                 JOptionPane.showMessageDialog(Frame.getInstance(), Frame.getInstance().getResourceBundle().getString("errDatoteka") + " - korisnici.dat");
  7350.                 dispose();
  7351.                 return;
  7352.             }
  7353.         } catch (FileNotFoundException e1) {
  7354.             JOptionPane.showMessageDialog(Frame.getInstance(), Frame.getInstance().getResourceBundle().getString("errDatoteka") + " - korisnici.dat");
  7355.             dispose();
  7356.         } catch (IOException e) {
  7357.             // TODO Auto-generated catch block
  7358.             e.printStackTrace();
  7359.         }
  7360.     }
  7361.    
  7362.     public void changeOptionPaneLanguage() {
  7363.         ResourceBundle resourceBundle = ResourceBundle.getBundle("gui.MessageResource.MessageResources", Locale.getDefault());
  7364.         UIManager.put("OptionPane.yesButtonText", resourceBundle.getString("btnOk"));
  7365.         UIManager.put("OptionPane.noButtonText", resourceBundle.getString("btnNo"));
  7366.         UIManager.put("OptionPane.cancelButtonText", resourceBundle.getString("btnCancel"));
  7367.         UIManager.put("OptionPane.titleText", resourceBundle.getString("mainTitle"));
  7368.         UIManager.put("OptionPane.okButtonText", resourceBundle.getString("btnOk"));
  7369.         UIManager.put("OptionPane.messageDialogTitle", resourceBundle.getString("lblPoruka"));
  7370.     }
  7371.    
  7372.     public void changeLanguage() {
  7373.         resourceBundle = ResourceBundle.getBundle( "gui.MessageResource.MessageResources", Locale.getDefault() );
  7374.         setTitle(resourceBundle.getString("mainTitle"));
  7375.         menu.initComponents();
  7376.         statusbar.initComponents();
  7377.         toolbar.initComponents();
  7378.         toolbarPivnica.initComponents();
  7379.         changeOptionPaneLanguage();
  7380.     }
  7381.    
  7382.    
  7383.     public Menu getMenu() {
  7384.         return menu;
  7385.     }
  7386.    
  7387.     public Toolbar getToolbar() {
  7388.         return toolbar;
  7389.     }
  7390.    
  7391.    
  7392.     public ToolbarPivnica getToolbarPivnica() {
  7393.         return toolbarPivnica;
  7394.     }
  7395.  
  7396.     public void setToolbarPivnica(ToolbarPivnica toolbarPivnica) {
  7397.         this.toolbarPivnica = toolbarPivnica;
  7398.     }
  7399.  
  7400.     public ResourceBundle getResourceBundle() {
  7401.         return resourceBundle;
  7402.     }
  7403.  
  7404.     public StatusBar getStatusbar() {
  7405.         return statusbar;
  7406.     }
  7407.  
  7408.     public void setStatusbar(StatusBar statusbar) {
  7409.         this.statusbar = statusbar;
  7410.     }  
  7411.    
  7412.    
  7413. }
  7414.  
  7415. @SuppressWarnings("serial")
  7416. class ImagePanel extends JPanel {
  7417.  
  7418.       private Image img;
  7419.  
  7420.       public ImagePanel(String img) {
  7421.         this(new ImageIcon(img).getImage());
  7422.       }
  7423.  
  7424.       public ImagePanel(Image img) {
  7425.         this.img = img;
  7426.       }
  7427.  
  7428.       public void paintComponent(Graphics g) {
  7429.         g.drawImage(img, (int)(this.getSize().getWidth()-img.getWidth(null))/2,
  7430.                          (int)(this.getSize().getHeight()-img.getHeight(null))/2, null);
  7431.       }
  7432. }
  7433.  
  7434.  
  7435.     class MainFrameListener implements WindowListener {
  7436.  
  7437.         @Override
  7438.         public void windowActivated(WindowEvent arg0) {
  7439.             // TODO Auto-generated method stub
  7440.         }
  7441.  
  7442.         @Override
  7443.         public void windowClosed(WindowEvent arg0) {
  7444.             // TODO Auto-generated method stub
  7445.            
  7446.         }
  7447.  
  7448.         @Override
  7449.         public void windowClosing(WindowEvent arg0) {
  7450.             // TODO Auto-generated method stub
  7451.             int code=JOptionPane.showConfirmDialog(Frame.getInstance(), Frame.getInstance().getResourceBundle().getString("msgIzlaz"),Frame.getInstance().getResourceBundle().getString("mainTitle"),JOptionPane.YES_NO_OPTION);
  7452.             if (code!=JOptionPane.YES_OPTION){
  7453.                 Frame.getInstance().setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  7454.             }
  7455.             else{
  7456.                 Restoran.getInstance().save();
  7457.                 Frame.getInstance().setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  7458.             }
  7459.            
  7460.         }
  7461.  
  7462.         @Override
  7463.         public void windowDeactivated(WindowEvent arg0) {
  7464.             // TODO Auto-generated method stub
  7465.            
  7466.         }
  7467.  
  7468.         @Override
  7469.         public void windowDeiconified(WindowEvent arg0) {
  7470.             // TODO Auto-generated method stub
  7471.            
  7472.         }
  7473.  
  7474.         @Override
  7475.         public void windowIconified(WindowEvent arg0) {
  7476.             // TODO Auto-generated method stub
  7477.            
  7478.         }
  7479.  
  7480.         @Override
  7481.         public void windowOpened(WindowEvent arg0) {
  7482.             // TODO Auto-generated method stub
  7483.             Restoran.getInstance().load();
  7484.         }
  7485.        
  7486.     }
  7487. package gui;
  7488.  
  7489. import gui.actions.MyFocusListener;
  7490. import gui.exceptions.ElementNePostoji;
  7491. import gui.handlers.InputHandler;
  7492. import gui.handlers.LoginHandler;
  7493. import gui.settings.Config;
  7494.  
  7495. import java.awt.BorderLayout;
  7496. import java.awt.Color;
  7497. import java.awt.Dimension;
  7498. import java.awt.FlowLayout;
  7499. import java.awt.GridLayout;
  7500. import java.awt.event.ActionEvent;
  7501. import java.awt.event.ActionListener;
  7502. import java.awt.event.FocusListener;
  7503. import java.awt.event.WindowEvent;
  7504. import java.awt.event.WindowListener;
  7505. import java.util.ResourceBundle;
  7506.  
  7507. import javax.swing.BorderFactory;
  7508. import javax.swing.ImageIcon;
  7509. import javax.swing.JButton;
  7510. import javax.swing.JFrame;
  7511. import javax.swing.JLabel;
  7512. import javax.swing.JOptionPane;
  7513. import javax.swing.JPanel;
  7514. import javax.swing.JPasswordField;
  7515. import javax.swing.JTextField;
  7516. import javax.swing.border.BevelBorder;
  7517.  
  7518. import model.collections.Restoran;
  7519. import model.data.Korisnik;
  7520.  
  7521. @SuppressWarnings("serial")
  7522. public class LoginForm extends JFrame {
  7523.     private static LoginForm instance = null;
  7524.     private ResourceBundle resourceBundle;
  7525.    
  7526.     int loginAttempts = LoginHandler.getMaxLoginAtempts();
  7527.     JTextField imeTxt;
  7528.     JPasswordField pfLozinka;
  7529.     JLabel lblLoginAtAm;
  7530.    
  7531.     public LoginForm() {
  7532.         super();
  7533.     }
  7534.    
  7535.     // Singleton
  7536.     public static LoginForm getInstance() {
  7537.         if (instance == null) {
  7538.             instance = new LoginForm();
  7539.             instance.initGUI();
  7540.         }
  7541.        
  7542.         return instance;
  7543.     }
  7544.        
  7545.     public int getLoginAttempts() {
  7546.         return loginAttempts;
  7547.     }
  7548.  
  7549.     public void setLoginAttempts(int loginAttempts) {
  7550.         this.loginAttempts = loginAttempts;
  7551.     }
  7552.  
  7553.     public void initGUI() {
  7554.         setSize(300, 150);
  7555.         setLocationRelativeTo(null);
  7556.         setResizable(false);
  7557.         setTitle("Prijava za rad");
  7558.        
  7559.         ImageIcon icon = new ImageIcon("images/ikonice/user-icon.png");
  7560.         setIconImage(icon.getImage());
  7561.                
  7562.         JPanel podaci = new JPanel();
  7563.         podaci.setLayout(new GridLayout(0, 2, 0, 5));
  7564.         podaci.setBorder(BorderFactory.createLineBorder(getBackground(), 5));
  7565.        
  7566.         JLabel ime = new JLabel("Korisničko ime:");
  7567.         podaci.add(ime);
  7568.         imeTxt = new JTextField();
  7569.         podaci.add(imeTxt);
  7570.        
  7571.         JLabel lblLozinka = new JLabel("Lozinka:");
  7572.         podaci.add(lblLozinka);
  7573.         pfLozinka = new JPasswordField();
  7574.         podaci.add(pfLozinka);
  7575.        
  7576.         JLabel lblLoginAt = new JLabel("Login Attempts:");
  7577.         podaci.add(lblLoginAt);
  7578.         lblLoginAtAm = new JLabel(Integer.toString(getLoginAttempts()));
  7579.         podaci.add(lblLoginAtAm);
  7580.        
  7581.         add(podaci);
  7582.        
  7583.         JPanel dugmici = new JPanel();
  7584.         dugmici.setLayout(new FlowLayout(FlowLayout.RIGHT));
  7585.         JButton btnOk = new JButton("Potvrda");
  7586.         JButton btnCancel = new JButton("Odustanak");
  7587.         dugmici.add(btnOk);
  7588.         dugmici.add(btnCancel);
  7589.        
  7590.         btnOk.addActionListener(new OKActionListener());
  7591.         btnCancel.addActionListener(new ActionListener() {
  7592.            
  7593.             @Override
  7594.             public void actionPerformed(ActionEvent e) {
  7595.                 if (e.getSource() instanceof JButton) {
  7596.                     System.exit(0);
  7597.                 }
  7598.             }
  7599.         });
  7600.        
  7601.         getRootPane().setDefaultButton(btnOk);
  7602.         add(dugmici, BorderLayout.SOUTH);
  7603.         FocusListener fl = new MyFocusListener();
  7604.         imeTxt.addFocusListener(fl);
  7605.         pfLozinka.addFocusListener(fl);
  7606.         addWindowListener(new windowCloseListener());
  7607.        
  7608.  
  7609.     }
  7610. }
  7611.         class OKActionListener implements ActionListener {
  7612.  
  7613.             @Override
  7614.             public void actionPerformed(ActionEvent arg0) {
  7615.                 // TODO Auto-generated method stub
  7616.                 LoginForm lf = LoginForm.getInstance();
  7617.                 LoginHandler lh = LoginHandler.getInstance();
  7618.                 InputHandler ih  = InputHandler.getInstance();
  7619.                
  7620.                 if (lf.loginAttempts == 0) {
  7621.                     JOptionPane.showMessageDialog(lf, Frame.getInstance().getResourceBundle().getString("lblLoginFailed"), Frame.getInstance().getResourceBundle().getString("mainTitle"), JOptionPane.ERROR_MESSAGE);
  7622.                     System.exit(0);
  7623.                 }
  7624.                
  7625.                 // Master pass...
  7626.                 if (Config.getUsername().equals(lf.imeTxt.getText()) && Config.getPassword().equals(String.valueOf(lf.pfLozinka.getPassword()))) {
  7627.                     String strAdmin = (" (Admin)");
  7628.                     Frame.getInstance().getStatusbar().setMenuDescription(Config.getUsername() + strAdmin);
  7629.                    
  7630.                     lh.setAdmin(true);
  7631.             //      Frame.getInstance().revalidate();
  7632.             //      Frame.getInstance().repaint();
  7633.                    
  7634.                     Frame.getInstance().setVisible(true);
  7635.                     lf.setVisible(false);
  7636.                     lh.setLogged(true);
  7637.                    
  7638.                     lf.imeTxt.setText("");
  7639.                     lf.pfLozinka.setText("");
  7640.                     lf.imeTxt.requestFocus();
  7641.                     lf.imeTxt.setBackground(Color.WHITE);
  7642.                     lf.pfLozinka.setBackground(Color.WHITE);
  7643.                     lf.loginAttempts = ih.getMaxLoginAtempts();
  7644.                     lf.lblLoginAtAm.setText(Integer.toString(lf.loginAttempts));
  7645.                    
  7646.                     return;
  7647.                 }
  7648.                
  7649.                 try {              
  7650.                     Korisnik korisnik = Restoran.getInstance().getKorisnici().getKorisnik(lf.imeTxt.getText());
  7651.                     if (korisnik.getLozinka().equals(String.valueOf(lf.pfLozinka.getPassword())))  {
  7652.                         String strAdmin = (korisnik.getAdmin() ? " (Admin)" : "");
  7653.                         Frame.getInstance().getStatusbar().setMenuDescription(korisnik.getIme() + " " + korisnik.getPrezime() + strAdmin);
  7654.                        
  7655.                         if (korisnik.getAdmin()) {
  7656.                             lh.setAdmin(true);
  7657.                         //  Frame.getInstance().initGUI();
  7658.                             System.out.println(LoginHandler.getInstance().isAdmin());
  7659.             //              Frame.getInstance().revalidate();
  7660.                 //          Frame.getInstance().repaint();
  7661.                         }
  7662.                        
  7663.                         Frame.getInstance().setVisible(true);
  7664.                         lf.setVisible(false);
  7665.                         lh.setLogged(true);
  7666.                        
  7667.                         lf.imeTxt.setText("");
  7668.                         lf.pfLozinka.setText("");
  7669.                         lf.imeTxt.requestFocus();
  7670.                         lf.imeTxt.setBackground(Color.WHITE);
  7671.                         lf.pfLozinka.setBackground(Color.WHITE);
  7672.                         lf.loginAttempts = ih.getMaxLoginAtempts();
  7673.                         lf.lblLoginAtAm.setText(Integer.toString(lf.loginAttempts));
  7674.                        
  7675.                     }
  7676.                     else {
  7677.                         JOptionPane.showMessageDialog(Frame.getInstance(), Frame.getInstance().getResourceBundle().getString("errSifra"));
  7678.                         lf.imeTxt.setBackground(Color.RED);
  7679.                         lf.pfLozinka.setBackground(Color.RED);
  7680.                         lf.imeTxt.setText("");
  7681.                         lf.imeTxt.requestFocus();
  7682.                         lf.pfLozinka.setText("");
  7683.                         lf.loginAttempts--;
  7684.                         lf.lblLoginAtAm.setText(Integer.toString(lf.getLoginAttempts()));
  7685.                         System.out.println(korisnik.getLozinka());
  7686.                         System.out.println(korisnik.getUser());
  7687.                     }
  7688.                 } catch (ElementNePostoji e1) {
  7689.                     // TODO Auto-generated catch block
  7690.                     JOptionPane.showMessageDialog(Frame.getInstance(), Frame.getInstance().getResourceBundle().getString("errKorisnik"));
  7691.                     lf.imeTxt.setBackground(Color.RED);
  7692.                     lf.pfLozinka.setBackground(Color.RED);
  7693.                     lf.imeTxt.setText("");
  7694.                     lf.imeTxt.requestFocus();
  7695.                     lf.pfLozinka.setText("");
  7696.                     lf.loginAttempts--;
  7697.                     lf.lblLoginAtAm.setText(Integer.toString(lf.getLoginAttempts()));
  7698.                 }
  7699.             }
  7700.         }
  7701.    
  7702.     @SuppressWarnings("serial")
  7703.     class StatusPane extends JLabel {
  7704.        
  7705.         public StatusPane(String text) {
  7706.             super(text);
  7707.             setHorizontalAlignment(CENTER);
  7708.             setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
  7709.             setPreferredSize(new Dimension(200,25));
  7710.            
  7711.         }
  7712.     }
  7713.    
  7714.     class windowCloseListener implements WindowListener {
  7715.  
  7716.         @Override
  7717.         public void windowActivated(WindowEvent e) {
  7718.             // TODO Auto-generated method stub
  7719.            
  7720.         }
  7721.  
  7722.         @Override
  7723.         public void windowClosed(WindowEvent e) {
  7724.             // TODO Auto-generated method stub
  7725.            
  7726.         }
  7727.  
  7728.         @Override
  7729.         public void windowClosing(WindowEvent e) {
  7730.             // TODO Auto-generated method stub
  7731.             System.exit(0);
  7732.         }
  7733.  
  7734.         @Override
  7735.         public void windowDeactivated(WindowEvent e) {
  7736.             // TODO Auto-generated method stub
  7737.            
  7738.         }
  7739.  
  7740.         @Override
  7741.         public void windowDeiconified(WindowEvent e) {
  7742.             // TODO Auto-generated method stub
  7743.            
  7744.         }
  7745.  
  7746.         @Override
  7747.         public void windowIconified(WindowEvent e) {
  7748.             // TODO Auto-generated method stub
  7749.            
  7750.         }
  7751.  
  7752.         @Override
  7753.         public void windowOpened(WindowEvent e) {
  7754.             // TODO Auto-generated method stub
  7755.            
  7756.         }
  7757.        
  7758.     }
  7759. package gui;
  7760.  
  7761. import gui.settings.Config;
  7762.  
  7763. import java.awt.Image;
  7764. import java.util.ArrayList;
  7765. import java.util.List;
  7766.  
  7767. import javax.swing.ImageIcon;
  7768. import javax.swing.SwingUtilities;
  7769.  
  7770.  
  7771. public class Main {
  7772.    
  7773.     /**
  7774.      * @param args
  7775.      */
  7776.     @SuppressWarnings("static-access")
  7777.     public static void main(String[] args) {
  7778.         final List<Image> icons = new ArrayList<Image>();
  7779.        
  7780.         icons.add(Config.getF16());
  7781.         icons.add(Config.getF32());
  7782.    
  7783.         if (!Config.isDisablesplash()) {
  7784.             final Frame mf = Frame.getInstance();
  7785.             final LoginForm lf = LoginForm.getInstance();
  7786.             Splash s = new Splash();
  7787.             s.setIconImages(icons);
  7788.             s.setVisible(true);
  7789.             Thread t = Thread.currentThread();
  7790.            
  7791.             try {
  7792.                 t.sleep(Config.getSplashdurationt2());
  7793.             } catch (InterruptedException e) {
  7794.                 // TODO Auto-generated catch block
  7795.                 e.printStackTrace();
  7796.             }
  7797.            
  7798.             s.dispose(); // "Unistavamo" splash ekrean...
  7799.             SwingUtilities.invokeLater(new Runnable() {
  7800.                 public void run()
  7801.                 {
  7802.                     // Pokrecemo glavne procese...
  7803.                     if (!Config.isDisablelogin()) {
  7804.                         lf.setVisible(true);
  7805.                         mf.setVisible(false);
  7806.                         mf.setIconImage(new ImageIcon("img/logo.jpg").getImage());
  7807.                         mf.setIconImages(icons);
  7808.                         lf.setIconImages(icons);
  7809.                     }
  7810.                     else {
  7811.                         lf.setVisible(false);
  7812.                         mf.setVisible(true);
  7813.                         mf.setIconImages(icons);
  7814.                     }
  7815.                 }
  7816.             });
  7817.  
  7818.         }
  7819.         else {
  7820.             if (!Config.isDisablelogin()) {
  7821.                 Frame mf = Frame.getInstance();
  7822.                 LoginForm lf = LoginForm.getInstance();
  7823.                 mf.setVisible(false);
  7824.                 lf.setVisible(true);
  7825.                 lf.setIconImages(icons);
  7826.                 mf.setIconImages(icons);
  7827.             }
  7828.             else
  7829.             {
  7830.                 Frame mf = Frame.getInstance();
  7831.                 mf.setVisible(true);
  7832.                 mf.setIconImages(icons);
  7833.             }
  7834.         }
  7835.         }
  7836.     }
  7837. package gui;
  7838.  
  7839. import gui.settings.Config;
  7840.  
  7841. import java.awt.BorderLayout;
  7842. import java.awt.Color;
  7843. import java.awt.Cursor;
  7844. import java.awt.Dimension;
  7845. import java.awt.Graphics;
  7846. import java.awt.Image;
  7847.  
  7848. import javax.swing.ImageIcon;
  7849. import javax.swing.JFrame;
  7850. import javax.swing.JPanel;
  7851. import javax.swing.JProgressBar;
  7852.  
  7853. @SuppressWarnings("serial")
  7854. public class Splash extends JFrame {
  7855.  
  7856.     private static JProgressBar pbar;
  7857.  
  7858.     Thread t = null;
  7859.    
  7860.     public Splash() {
  7861.         super();
  7862.         setSize(404, 310);
  7863.         setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  7864.         setUndecorated(true);
  7865.         getContentPane().setBackground(Color.WHITE);
  7866.         setLocationRelativeTo(null);
  7867.         setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
  7868.        
  7869.         pbar = new JProgressBar();
  7870.         pbar.setMinimum(0);
  7871.         pbar.setMaximum(100);
  7872.         pbar.setStringPainted(true);
  7873.         pbar.setForeground(Color.GREEN);
  7874.         add(pbar, BorderLayout.SOUTH);
  7875.         pbar.setPreferredSize(new Dimension(404, 20));
  7876.        
  7877.         ImagePanel panel = new ImagePanel(new ImageIcon("img/splash_img.jpg").getImage());
  7878.         this.add(panel);
  7879.  
  7880.         // Rad sa threadovima...pola moja znanje, pola stackoverflow
  7881.         Thread t = new Thread() {
  7882.             @Override
  7883.             public void run() {
  7884.                 for (int i = 0; i <= 100; i++) {
  7885.                     pbar.setValue(i);
  7886.                     try {
  7887.                         sleep(Config.getSplashdurationt1());
  7888.                     } catch (InterruptedException ex) {
  7889.                        
  7890.                     }
  7891.                 }
  7892.             }
  7893.         };
  7894.         t.start();
  7895.     }
  7896.    
  7897.     class ImagePanel extends JPanel {
  7898.  
  7899.       private Image img;
  7900.  
  7901.       public ImagePanel(String img) {
  7902.         this(new ImageIcon(img).getImage());
  7903.       }
  7904.  
  7905.       public ImagePanel(Image img) {
  7906.         this.img = img;
  7907.       }
  7908.  
  7909.       public void paintComponent(Graphics g) {
  7910.         g.drawImage(img, (int)(this.getSize().getWidth()-img.getWidth(null))/2,
  7911.                          (int)(this.getSize().getHeight()-img.getHeight(null))/2, null);
  7912.       }
  7913.   }
  7914.  
  7915. }
  7916. package model.collections;
  7917.  
  7918. import gui.Frame;
  7919. import gui.exceptions.ElementNePostoji;
  7920. import gui.exceptions.ElementPostoji;
  7921.  
  7922. import java.io.IOException;
  7923. import java.io.ObjectInputStream;
  7924. import java.io.ObjectOutputStream;
  7925. import java.util.ArrayList;
  7926. import java.util.HashMap;
  7927. import java.util.Iterator;
  7928. import java.util.Map;
  7929. import java.util.Set;
  7930.  
  7931. import model.data.Dogadjaji;
  7932.  
  7933. public class Dogadjaj implements ITableModel {
  7934.    
  7935.     private Map<String, Dogadjaji> mapaDogadjaji = new HashMap<String, Dogadjaji>();
  7936.    
  7937.     public void addDogadjaj(Dogadjaji novi) throws ElementPostoji {
  7938.         if (mapaDogadjaji.containsKey(novi.getKey()))
  7939.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  7940.         mapaDogadjaji.put(novi.getKey(), novi);
  7941.     }
  7942.    
  7943.     public void removeDogadjaj(Dogadjaji stari) throws ElementNePostoji {
  7944.         if (!mapaDogadjaji.containsKey(stari.getKey()))
  7945.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  7946.         mapaDogadjaji.remove(stari.getKey());
  7947.     }
  7948.    
  7949.     public Dogadjaji getDogadjaj(String key) throws ElementNePostoji {
  7950.         if (!mapaDogadjaji.containsKey(key))
  7951.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  7952.         return mapaDogadjaji.get(key);
  7953.     }
  7954.    
  7955.     public Iterator<String> getDogadjajterator() {
  7956.         Set<String> oznakeDrzava = mapaDogadjaji.keySet();
  7957.         return oznakeDrzava.iterator();
  7958.     }
  7959.  
  7960.     @Override
  7961.     public int getRowCount() {
  7962.         // TODO Auto-generated method stub
  7963.         return mapaDogadjaji.size();
  7964.     }
  7965.  
  7966.     @Override
  7967.     public Object getValueAt(int rowIndex, int columnIndex) {
  7968.         // TODO Auto-generated method stub
  7969.         ArrayList<Dogadjaji> dogadjaj = new ArrayList<Dogadjaji>(mapaDogadjaji.values());
  7970.         switch(columnIndex) {
  7971.         case 0: return dogadjaj.get(rowIndex).getNaziv();
  7972.         case 1: return dogadjaj.get(rowIndex).getVrijemeP();
  7973.         case 2: return dogadjaj.get(rowIndex).getVrijemeZ();
  7974.         case 3: return dogadjaj.get(rowIndex).getCenaUlaznice();
  7975.         case 4: return dogadjaj.get(rowIndex).getPopust();
  7976.     }
  7977.     return "";
  7978.     }
  7979.    
  7980.     public void save(ObjectOutputStream out) {
  7981.         try {
  7982.             out.writeObject(mapaDogadjaji);
  7983.         } catch (IOException e) {
  7984.             // TODO Auto-generated catch block
  7985.             e.printStackTrace();
  7986.         }
  7987.     }
  7988.    
  7989.     @SuppressWarnings("unchecked")
  7990.     public void load(ObjectInputStream in) {
  7991.         try {
  7992.             mapaDogadjaji = (Map<String, Dogadjaji>) in.readObject();
  7993.         } catch (IOException e) {
  7994.             // TODO Auto-generated catch block
  7995.             e.printStackTrace();
  7996.         } catch (ClassNotFoundException e) {
  7997.             // TODO Auto-generated catch block
  7998.             e.printStackTrace();
  7999.         }
  8000.  
  8001.     }
  8002. }
  8003. package model.collections;
  8004.  
  8005. import gui.Frame;
  8006. import gui.exceptions.ElementNePostoji;
  8007. import gui.exceptions.ElementPostoji;
  8008.  
  8009. import java.io.IOException;
  8010. import java.io.ObjectInputStream;
  8011. import java.io.ObjectOutputStream;
  8012. import java.util.ArrayList;
  8013. import java.util.HashMap;
  8014. import java.util.Iterator;
  8015. import java.util.Map;
  8016. import java.util.Set;
  8017.  
  8018. import model.data.Drzava;
  8019. import model.data.NaseljenoMesto;
  8020.  
  8021. public class Drzave implements ITableModel {
  8022.  
  8023.     private Map<String, Drzava> mapaDrzava = new HashMap<String, Drzava>();
  8024.    
  8025.     public void addDrzava(Drzava novi) throws ElementPostoji {
  8026.         if (mapaDrzava.containsKey(novi.getKey()))
  8027.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  8028.         mapaDrzava.put(novi.getKey(), novi);
  8029.     }
  8030.    
  8031.     public void removeDrzava(Drzava stari) throws ElementNePostoji {
  8032.         if (!mapaDrzava.containsKey(stari.getKey()))
  8033.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8034.         mapaDrzava.remove(stari.getKey());
  8035.     }
  8036.    
  8037.     public Drzava getDrzava(String key) throws ElementNePostoji {
  8038.         if (!mapaDrzava.containsKey(key))
  8039.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8040.         return mapaDrzava.get(key);
  8041.     }
  8042.    
  8043.     public Iterator<String> getDrzaveIterator() {
  8044.         Set<String> oznakeDrzava = mapaDrzava.keySet();
  8045.         return oznakeDrzava.iterator();
  8046.     }
  8047.    
  8048.  
  8049.  
  8050.     @Override
  8051.     public int getRowCount() {
  8052.         return mapaDrzava.size();
  8053.     }
  8054.  
  8055.     @Override
  8056.     public Object getValueAt(int rowIndex, int columnIndex) {
  8057.         ArrayList<Drzava> drzave = new ArrayList<Drzava>(mapaDrzava.values());
  8058.         switch(columnIndex){
  8059.             case 0: return drzave.get(rowIndex).getOznaka();
  8060.             case 1: return drzave.get(rowIndex).getNaziv();
  8061.             case 2: return drzave.get(rowIndex).getGlGrad();
  8062.         }
  8063.         return "";
  8064.     }
  8065.    
  8066.     public void save(ObjectOutputStream out) {
  8067.         try {
  8068.             out.writeObject(mapaDrzava);
  8069.         } catch (IOException e) {
  8070.             // TODO Auto-generated catch block
  8071.             e.printStackTrace();
  8072.         }
  8073.     }
  8074.    
  8075.     @SuppressWarnings("unchecked")
  8076.     public void load(ObjectInputStream in) {
  8077.         try {
  8078.             mapaDrzava = (Map<String, Drzava>) in.readObject();
  8079.         } catch (IOException e) {
  8080.             // TODO Auto-generated catch block
  8081.             e.printStackTrace();
  8082.         } catch (ClassNotFoundException e) {
  8083.             // TODO Auto-generated catch block
  8084.             e.printStackTrace();
  8085.         }
  8086.        
  8087.         NaseljenaMesta nasljenaMesta = Restoran.getInstance().getNaseljenaMesta();
  8088.         Iterator<Drzava> iter = mapaDrzava.values().iterator();
  8089.         while (iter.hasNext()) {
  8090.             Drzava tekucaDrzava = iter.next();
  8091.             NaseljenoMesto ucitanGlGradDrzave = tekucaDrzava.getGlGrad();
  8092.             NaseljenoMesto glGradDrzaveIzMape = null;          
  8093.             try {
  8094.                 glGradDrzaveIzMape = nasljenaMesta.getNaseljenoMesto(ucitanGlGradDrzave.getOznaka());
  8095.             } catch (ElementNePostoji e) {
  8096.                 e.printStackTrace();
  8097.             } catch (NullPointerException e2)
  8098.             {
  8099.                 e2.printStackTrace();
  8100.             }
  8101.             tekucaDrzava.setGlGrad(glGradDrzaveIzMape);
  8102.         }
  8103.        
  8104.     }
  8105.    
  8106.    
  8107.        
  8108. }
  8109. package model.collections;
  8110.  
  8111.  
  8112. /**
  8113.  *
  8114.  * Ovaj interfejs služi za povezivanje JTable-a i klase u kojoj se nalazi mape podataka
  8115.  * Interfejs implementiraju sve klase u kojima se nalaze mape (Studenti, Predmeti...)
  8116.  * On će obezbediti da svaka tabela koristi istu klasu za Model - DialogTableModel
  8117.  *
  8118.  */
  8119. public interface ITableModel {
  8120.  
  8121.     /*
  8122.      *  Vraca broj elemenata u hash mapi
  8123.      */
  8124.     int getRowCount();
  8125.    
  8126.    
  8127.     /*
  8128.      *  Vraca vrednost za zadati red i kolonu
  8129.      */
  8130.     Object getValueAt(int rowIndex, int columnIndex);
  8131.  
  8132. }
  8133. package model.collections;
  8134.  
  8135. import gui.Frame;
  8136. import gui.exceptions.ElementNePostoji;
  8137. import gui.exceptions.ElementPostoji;
  8138.  
  8139. import java.io.IOException;
  8140. import java.io.ObjectInputStream;
  8141. import java.io.ObjectOutputStream;
  8142. import java.util.ArrayList;
  8143. import java.util.HashMap;
  8144. import java.util.Iterator;
  8145. import java.util.Map;
  8146. import java.util.Set;
  8147.  
  8148. import model.data.Korisnik;
  8149. import model.data.Zaposleni;
  8150.  
  8151. public class Korisnici implements ITableModel {
  8152.    
  8153.     private Map<String, Korisnik> mapaKorisnika = new HashMap<String, Korisnik>();
  8154.    
  8155.     public void addKorisnik(Korisnik novi) throws ElementPostoji {
  8156.         if (mapaKorisnika.containsKey(novi.getUser()))
  8157.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  8158.         mapaKorisnika.put(novi.getUser(), novi);
  8159.     }
  8160.    
  8161.     public void removeKorisnik(Korisnik stari) throws ElementNePostoji {
  8162.         if (!mapaKorisnika.containsKey(stari.getUser()))
  8163.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8164.         mapaKorisnika.remove(stari.getUser());
  8165.     }
  8166.    
  8167.     public Korisnik getKorisnik(String key) throws ElementNePostoji {
  8168.         if (!mapaKorisnika.containsKey(key))
  8169.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8170.         return mapaKorisnika.get(key);
  8171.     }
  8172.    
  8173.     public Iterator<String> getKorisniciIterator() {
  8174.         Set<String> imenaKorisnika = mapaKorisnika.keySet();
  8175.         return imenaKorisnika.iterator();
  8176.     }
  8177.    
  8178.     @Override
  8179.     public int getRowCount() {
  8180.         // TODO Auto-generated method stub
  8181.         return mapaKorisnika.size();
  8182.     }
  8183.  
  8184.     @Override
  8185.     public Object getValueAt(int rowIndex, int columnIndex) {
  8186.         // TODO Auto-generated method stub
  8187.         ArrayList<Korisnik> korisnici = new ArrayList<Korisnik>(mapaKorisnika.values());
  8188.         switch (columnIndex) {
  8189.             case 0 : return korisnici.get(rowIndex).getUser();
  8190.             case 1 : return korisnici.get(rowIndex).getLozinka();
  8191.             case 2 : return korisnici.get(rowIndex).getPrezime();
  8192.             case 3: return korisnici.get(rowIndex).getIme();
  8193.             case 4: return korisnici.get(rowIndex).getGodReg();
  8194.             case 5: return korisnici.get(rowIndex).getStatus();
  8195.             case 6: return korisnici.get(rowIndex).getAdmin();
  8196.             case 7: return korisnici.get(rowIndex).getZaposleni();
  8197.         }
  8198.         return "";
  8199.     }
  8200.    
  8201.     public void save(ObjectOutputStream out) {
  8202.         try {
  8203.             out.writeObject(mapaKorisnika);
  8204.         } catch (IOException e) {
  8205.             // TODO Auto-generated catch block
  8206.             e.printStackTrace();
  8207.         }
  8208.     }
  8209.    
  8210.     @SuppressWarnings("unchecked")
  8211.     public void load(ObjectInputStream in) {
  8212.         try {
  8213.             mapaKorisnika = (Map<String, Korisnik>) in.readObject();
  8214.         } catch (IOException e) {
  8215.             // TODO Auto-generated catch block
  8216.             e.printStackTrace();
  8217.         } catch (ClassNotFoundException e) {
  8218.             // TODO Auto-generated catch block
  8219.             e.printStackTrace();
  8220.         }
  8221.        
  8222.         Zaposlenii zaposleni = Restoran.getInstance().getZaposlenii();
  8223.         Iterator<Korisnik> iter = mapaKorisnika.values().iterator();
  8224.         while (iter.hasNext()) {
  8225.             Korisnik tekuciKorisnik = iter.next();
  8226.             Zaposleni ucitaniZaposleniKorisnika = tekuciKorisnik.getZaposleni();
  8227.             Zaposleni zaposleniKorisnikaIzMape = null;
  8228.             try {
  8229.                 zaposleniKorisnikaIzMape = zaposleni.getZaposleni(ucitaniZaposleniKorisnika.getIdentifikator());
  8230.             } catch (ElementNePostoji e) {
  8231.                 e.printStackTrace();
  8232.             } catch (NullPointerException e2)
  8233.             {
  8234.                 e2.printStackTrace();
  8235.             }
  8236.             tekuciKorisnik.setZaposleni(zaposleniKorisnikaIzMape);
  8237.         }
  8238.     }
  8239.    
  8240.     @SuppressWarnings("unchecked")
  8241.     public void loadLogin(ObjectInputStream in) {
  8242.         try {
  8243.             mapaKorisnika = (Map<String, Korisnik>) in.readObject();
  8244.         } catch (IOException e) {
  8245.             // TODO Auto-generated catch block
  8246.             e.printStackTrace();
  8247.         } catch (ClassNotFoundException e) {
  8248.             // TODO Auto-generated catch block
  8249.             e.printStackTrace();
  8250.         }
  8251.     }
  8252. }
  8253. package model.collections;
  8254.  
  8255. import gui.Frame;
  8256. import gui.exceptions.ElementNePostoji;
  8257. import gui.exceptions.ElementPostoji;
  8258.  
  8259. import java.io.IOException;
  8260. import java.io.ObjectInputStream;
  8261. import java.io.ObjectOutputStream;
  8262. import java.util.ArrayList;
  8263. import java.util.HashMap;
  8264. import java.util.Iterator;
  8265. import java.util.Map;
  8266. import java.util.Set;
  8267.  
  8268. import model.data.Drzava;
  8269. import model.data.NaseljenoMesto;
  8270.  
  8271. public class NaseljenaMesta implements ITableModel {
  8272.  
  8273.     private Map<String, NaseljenoMesto> mapaNaseljenihMesta = new HashMap<String, NaseljenoMesto>();
  8274.    
  8275.     public void addNaseljenoMesto(NaseljenoMesto novo) throws ElementPostoji {
  8276.         if (mapaNaseljenihMesta.containsKey(novo.getOznaka()))
  8277.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  8278.         mapaNaseljenihMesta.put(novo.getOznaka(), novo);
  8279.     }
  8280.    
  8281.     public void removeNaseljenoMesto(NaseljenoMesto staro) throws ElementNePostoji {
  8282.         if (!mapaNaseljenihMesta.containsKey(staro.getOznaka()))
  8283.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8284.         mapaNaseljenihMesta.remove(staro.getOznaka());
  8285.     }
  8286.    
  8287.     public NaseljenoMesto getNaseljenoMesto(String key) throws ElementNePostoji {
  8288.         if (!mapaNaseljenihMesta.containsKey(key))
  8289.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8290.         return mapaNaseljenihMesta.get(key);
  8291.     }
  8292.    
  8293.     public Iterator<String> getNaseljenaMestaIterator() {
  8294.         Set<String> oznakeNaseljenihMesta = mapaNaseljenihMesta.keySet();
  8295.         return oznakeNaseljenihMesta.iterator();
  8296.     }
  8297.    
  8298.     @Override
  8299.     public int getRowCount() {
  8300.         // TODO Auto-generated method stub
  8301.         return mapaNaseljenihMesta.size();
  8302.     }
  8303.  
  8304.     @Override
  8305.     public Object getValueAt(int rowIndex, int columnIndex) {
  8306.         // TODO Auto-generated method stub
  8307.         ArrayList<NaseljenoMesto> naseljenaMesta = new ArrayList<NaseljenoMesto>(mapaNaseljenihMesta.values());
  8308.         switch (columnIndex) {
  8309.             case 0 : return naseljenaMesta.get(rowIndex).getOznaka();
  8310.             case 1 : return naseljenaMesta.get(rowIndex).getNaziv();
  8311.             case 2 : return naseljenaMesta.get(rowIndex).getDrzava();
  8312.         }
  8313.         return "";
  8314.     }
  8315.    
  8316.     public void save(ObjectOutputStream out) {
  8317.         try {
  8318.             out.writeObject(mapaNaseljenihMesta);
  8319.         } catch (IOException e) {
  8320.             // TODO Auto-generated catch block
  8321.             e.printStackTrace();
  8322.         }
  8323.     }
  8324.    
  8325.     @SuppressWarnings("unchecked")
  8326.     public void load(ObjectInputStream in) {
  8327.         try {
  8328.             mapaNaseljenihMesta = (Map<String, NaseljenoMesto>) in.readObject();
  8329.         } catch (IOException e) {
  8330.             // TODO Auto-generated catch block
  8331.             e.printStackTrace();
  8332.         } catch (ClassNotFoundException e) {
  8333.             // TODO Auto-generated catch block
  8334.             e.printStackTrace();
  8335.         }
  8336.     }
  8337.    
  8338.     public void load2() {
  8339.         Drzave drzave = Restoran.getInstance().getDrzave();
  8340.         Iterator<NaseljenoMesto> iter = mapaNaseljenihMesta.values().iterator();
  8341.         while (iter.hasNext()) {
  8342.             NaseljenoMesto tekuceMesto = iter.next();
  8343.             Drzava ucitanaDrzavaNaseljenogMesta = tekuceMesto.getDrzava();
  8344.             Drzava drzavaNaseljenogMestaIzMape = null;
  8345.             try {
  8346.                 drzavaNaseljenogMestaIzMape = drzave.getDrzava(ucitanaDrzavaNaseljenogMesta.getOznaka());
  8347.             } catch (ElementNePostoji e) {
  8348.                 e.printStackTrace();
  8349.             } catch (NullPointerException e2)
  8350.             {
  8351.                 e2.printStackTrace();
  8352.             }
  8353.             tekuceMesto.setDrzava(drzavaNaseljenogMestaIzMape);
  8354.         }
  8355.     }
  8356. }
  8357. package model.collections;
  8358.  
  8359. import gui.Frame;
  8360. import gui.exceptions.ElementNePostoji;
  8361. import gui.exceptions.ElementPostoji;
  8362.  
  8363. import java.io.IOException;
  8364. import java.io.ObjectInputStream;
  8365. import java.io.ObjectOutputStream;
  8366. import java.util.ArrayList;
  8367. import java.util.HashMap;
  8368. import java.util.Iterator;
  8369. import java.util.Map;
  8370. import java.util.Set;
  8371.  
  8372. import model.data.Drzava;
  8373. import model.data.NaseljenoMesto;
  8374. import model.data.Organizacija;
  8375. import model.data.TipOrganizacije;
  8376.  
  8377. public class Organizacije implements ITableModel {
  8378.    
  8379.     private Map<String, Organizacija> mapaOrganizacija = new HashMap<String, Organizacija>();
  8380.    
  8381.     public void addOrganizacija(Organizacija nova) throws ElementPostoji {
  8382.         if (mapaOrganizacija.containsKey(nova.getOznaka()))
  8383.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  8384.         mapaOrganizacija.put(nova.getOznaka(), nova);
  8385.     }
  8386.    
  8387.     public void removeOrganizacija(Organizacija stara) throws ElementNePostoji {
  8388.         if (!mapaOrganizacija.containsKey(stara.getOznaka()))
  8389.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8390.         mapaOrganizacija.remove(stara.getOznaka());
  8391.     }
  8392.    
  8393.     public Organizacija getOrganizacija(String key) throws ElementNePostoji {
  8394.         if (!mapaOrganizacija.containsKey(key))
  8395.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8396.         return mapaOrganizacija.get(key);
  8397.     }
  8398.    
  8399.     public Iterator<String> getOrganizacijaIterator() {
  8400.         Set<String> imenaOrganizacija = mapaOrganizacija.keySet();
  8401.         return imenaOrganizacija.iterator();
  8402.     }
  8403.    
  8404.     @Override
  8405.     public int getRowCount() {
  8406.         // TODO Auto-generated method stub
  8407.         return mapaOrganizacija.size();
  8408.     }
  8409.  
  8410.     @Override
  8411.     public Object getValueAt(int rowIndex, int columnIndex) {
  8412.         // TODO Auto-generated method stub
  8413.         ArrayList<Organizacija> organizacija = new ArrayList<Organizacija>(mapaOrganizacija.values());
  8414.         switch (columnIndex) {
  8415.             case 0 : return organizacija.get(rowIndex).getOznaka();
  8416.             case 1 : return organizacija.get(rowIndex).getNaziv();
  8417.             case 2 : return organizacija.get(rowIndex).getNasljenoMesto();
  8418.             case 3 : return organizacija.get(rowIndex).getDrzavaOrg();
  8419.             case 4 : return organizacija.get(rowIndex).getAdresa();
  8420.             case 5 : return organizacija.get(rowIndex).getEmail();
  8421.             case 6 : return organizacija.get(rowIndex).getWeb();
  8422.             case 7 : return organizacija.get(rowIndex).getTelefon();
  8423.             case 8 : return organizacija.get(rowIndex).getTipOrganizacije();
  8424.         }
  8425.         return "";
  8426.     }
  8427.    
  8428.     public void save(ObjectOutputStream out) {
  8429.         try {
  8430.             out.writeObject(mapaOrganizacija);
  8431.         } catch (IOException e) {
  8432.             // TODO Auto-generated catch block
  8433.             e.printStackTrace();
  8434.         }
  8435.     }
  8436.    
  8437.     @SuppressWarnings("unchecked")
  8438.     public void load(ObjectInputStream in) {
  8439.         try {
  8440.             mapaOrganizacija = (Map<String, Organizacija>) in.readObject();
  8441.         } catch (IOException e) {
  8442.             // TODO Auto-generated catch block
  8443.             e.printStackTrace();
  8444.         } catch (ClassNotFoundException e) {
  8445.             // TODO Auto-generated catch block
  8446.             e.printStackTrace();
  8447.         }
  8448.        
  8449.         NaseljenaMesta nasljenaMesta = Restoran.getInstance().getNaseljenaMesta();
  8450.         Iterator<Organizacija> iter = mapaOrganizacija.values().iterator();
  8451.         while (iter.hasNext()) {
  8452.             Organizacija tekuci = iter.next();
  8453.             NaseljenoMesto ucitan = tekuci.getNasljenoMesto();
  8454.             NaseljenoMesto izMape = null;          
  8455.             try {
  8456.                 izMape = nasljenaMesta.getNaseljenoMesto(ucitan.getOznaka());
  8457.             } catch (ElementNePostoji e) {
  8458.                 e.printStackTrace();
  8459.             } catch (NullPointerException e2)
  8460.             {
  8461.                 e2.printStackTrace();
  8462.             }
  8463.             tekuci.setNasljenoMesto(izMape);
  8464.         }
  8465.        
  8466.         Drzave drzave = Restoran.getInstance().getDrzave();
  8467.         iter = mapaOrganizacija.values().iterator();
  8468.         while (iter.hasNext()) {
  8469.             Organizacija tekuci = iter.next();
  8470.             Drzava ucitan = tekuci.getDrzavaOrg();
  8471.             Drzava izMape = null;          
  8472.             try {
  8473.                 izMape = drzave.getDrzava(ucitan.getOznaka());
  8474.             } catch (ElementNePostoji e) {
  8475.                 e.printStackTrace();
  8476.             } catch (NullPointerException e2)
  8477.             {
  8478.                 e2.printStackTrace();
  8479.             }
  8480.             tekuci.setDrzavaOrg(izMape);
  8481.         }
  8482.        
  8483.         TipoviOrganizacija tipovi = Restoran.getInstance().getTipoviOrganizacija();
  8484.         iter = mapaOrganizacija.values().iterator();
  8485.         while (iter.hasNext()) {
  8486.             Organizacija tekuci = iter.next();
  8487.             TipOrganizacije ucitan = tekuci.getTipOrganizacije();
  8488.             TipOrganizacije izMape = null;         
  8489.             try {
  8490.                 izMape = tipovi.getTipOrganizacije(ucitan.getOznaka());
  8491.             } catch (ElementNePostoji e) {
  8492.                 e.printStackTrace();
  8493.             } catch (NullPointerException e2)
  8494.             {
  8495.                 e2.printStackTrace();
  8496.             }
  8497.             tekuci.setTipOrganizacije(izMape);
  8498.         }
  8499.     }
  8500.  
  8501. }
  8502. package model.collections;
  8503.  
  8504. import gui.Frame;
  8505. import gui.exceptions.ElementNePostoji;
  8506. import gui.exceptions.ElementPostoji;
  8507.  
  8508. import java.io.IOException;
  8509. import java.io.ObjectInputStream;
  8510. import java.io.ObjectOutputStream;
  8511. import java.util.ArrayList;
  8512. import java.util.HashMap;
  8513. import java.util.Iterator;
  8514. import java.util.Map;
  8515. import java.util.Set;
  8516.  
  8517. import model.data.Drzava;
  8518. import model.data.Piva;
  8519. import model.data.VrstaPiva;
  8520.  
  8521. public class Pivo implements ITableModel {
  8522.    
  8523.     private Map<String, Piva> mapaPiva = new HashMap<String, Piva>();
  8524.    
  8525.     public void addPivo(Piva novi) throws ElementPostoji {
  8526.         if (mapaPiva.containsKey(novi.getKey()))
  8527.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  8528.         mapaPiva.put(novi.getKey(), novi);
  8529.     }
  8530.    
  8531.     public void removePivo(Piva stari) throws ElementNePostoji {
  8532.         if (!mapaPiva.containsKey(stari.getKey()))
  8533.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8534.         mapaPiva.remove(stari.getKey());
  8535.     }
  8536.    
  8537.     public Piva getPivo(String key) throws ElementNePostoji {
  8538.         if (!mapaPiva.containsKey(key))
  8539.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8540.         return mapaPiva.get(key);
  8541.     }
  8542.    
  8543.     public Iterator<String> getPivoIterator() {
  8544.         Set<String> oznakeDrzava = mapaPiva.keySet();
  8545.         return oznakeDrzava.iterator();
  8546.     }
  8547.  
  8548.     @Override
  8549.     public int getRowCount() {
  8550.         // TODO Auto-generated method stub
  8551.         return mapaPiva.size();
  8552.     }
  8553.  
  8554.     @Override
  8555.     public Object getValueAt(int rowIndex, int columnIndex) {
  8556.         // TODO Auto-generated method stub
  8557.         ArrayList<Piva> pivo = new ArrayList<Piva>(mapaPiva.values());
  8558.         switch(columnIndex) {
  8559.             case 0: return pivo.get(rowIndex).getNaziv();
  8560.             case 1: return pivo.get(rowIndex).getvPiva();
  8561.             case 2: return pivo.get(rowIndex).getProizvodjac();
  8562.             case 3: return pivo.get(rowIndex).getPoreklo();
  8563.             case 4: return pivo.get(rowIndex).getProcenatA();
  8564.             case 5: return pivo.get(rowIndex).getAmbalaza();
  8565.             case 6: return pivo.get(rowIndex).getCena();
  8566.         }
  8567.         return "";
  8568.     }
  8569.    
  8570.     public void save(ObjectOutputStream out) {
  8571.         try {
  8572.             out.writeObject(mapaPiva);
  8573.         } catch (IOException e) {
  8574.             // TODO Auto-generated catch block
  8575.             e.printStackTrace();
  8576.         }
  8577.     }
  8578.    
  8579.     @SuppressWarnings("unchecked")
  8580.     public void load(ObjectInputStream in) {
  8581.         try {
  8582.             mapaPiva = (Map<String, Piva>) in.readObject();
  8583.         } catch (IOException e) {
  8584.             // TODO Auto-generated catch block
  8585.             e.printStackTrace();
  8586.         } catch (ClassNotFoundException e) {
  8587.             // TODO Auto-generated catch block
  8588.             e.printStackTrace();
  8589.         }
  8590.    
  8591.         // Vrsta Piva:
  8592.     Iterator<Piva> iter = mapaPiva.values().iterator();
  8593.     while (iter.hasNext()) {
  8594.         Piva tekucePivo = iter.next();     
  8595.         // Poreklo:
  8596.         Drzave drzave = Restoran.getInstance().getDrzave();
  8597.         Drzava ucitanaDrzava = tekucePivo.getPoreklo();
  8598.         Drzava drzavaPorekla = null;
  8599.         try {
  8600.             drzavaPorekla = drzave.getDrzava(ucitanaDrzava.getOznaka());
  8601.         } catch (ElementNePostoji e) {
  8602.             e.printStackTrace();
  8603.         } catch (NullPointerException e2)
  8604.         {
  8605.             e2.printStackTrace();
  8606.         }
  8607.         tekucePivo.setPoreklo(drzavaPorekla);
  8608.     }  
  8609.    
  8610.     VrstePiva vp = Restoran.getInstance().getvPiva();
  8611.     Iterator<Piva> iter1 = mapaPiva.values().iterator();
  8612.     while (iter.hasNext()) {
  8613.         Piva tekuci = iter1.next();
  8614.         VrstaPiva ucitan = tekuci.getvPiva();
  8615.         VrstaPiva izMape = null;           
  8616.         try {
  8617.             izMape = vp.getVPivo(ucitan.getKey());
  8618.         } catch (ElementNePostoji e) {
  8619.             e.printStackTrace();
  8620.         } catch (NullPointerException e2)
  8621.         {
  8622.             e2.printStackTrace();
  8623.         }
  8624.         tekuci.setvPiva(izMape);
  8625.     }
  8626.  
  8627. }
  8628.    
  8629. }
  8630. package model.collections;
  8631.  
  8632. import gui.Frame;
  8633. import gui.exceptions.ElementNePostoji;
  8634. import gui.exceptions.ElementPostoji;
  8635.  
  8636. import java.io.IOException;
  8637. import java.io.ObjectInputStream;
  8638. import java.io.ObjectOutputStream;
  8639. import java.util.ArrayList;
  8640. import java.util.HashMap;
  8641. import java.util.Iterator;
  8642. import java.util.Map;
  8643. import java.util.Set;
  8644.  
  8645. import model.data.Racuni;
  8646.  
  8647. public class Racun implements ITableModel {
  8648.    
  8649.     private Map<String, Racuni> mapaRacuni = new HashMap<String, Racuni>();
  8650.    
  8651.     public void addRacun(Racuni novi) throws ElementPostoji {
  8652.         if (mapaRacuni.containsKey(novi.getKey()))
  8653.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  8654.         mapaRacuni.put(novi.getKey(), novi);
  8655.     }
  8656.    
  8657.     public void removeRacun(Racuni stari) throws ElementNePostoji {
  8658.         if (!mapaRacuni.containsKey(stari.getKey()))
  8659.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8660.         mapaRacuni.remove(stari.getKey());
  8661.     }
  8662.    
  8663.     public Racuni getRacun(String key) throws ElementNePostoji {
  8664.         if (!mapaRacuni.containsKey(key))
  8665.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8666.         return mapaRacuni.get(key);
  8667.     }
  8668.    
  8669.     public Iterator<String> getRacunIterator() {
  8670.         Set<String> oznakeRacuna = mapaRacuni.keySet();
  8671.         return oznakeRacuna.iterator();
  8672.     }
  8673.  
  8674.     @Override
  8675.     public int getRowCount() {
  8676.         // TODO Auto-generated method stub
  8677.         return mapaRacuni.size();
  8678.     }
  8679.  
  8680.     @Override
  8681.     public Object getValueAt(int rowIndex, int columnIndex) {
  8682.         // TODO Auto-generated method stub
  8683.         ArrayList<Racuni> racuni = new ArrayList<Racuni>(mapaRacuni.values());
  8684.         switch(columnIndex) {
  8685.             case 0: return racuni.get(rowIndex).getId();
  8686.             case 1: return racuni.get(rowIndex).getProdatoPivo1();
  8687.             case 2: return racuni.get(rowIndex).getProdatoPivo2();
  8688.             case 3: return racuni.get(rowIndex).getProdatoPivo3();
  8689.             case 4: return racuni.get(rowIndex).getDatum();
  8690.             case 5: return racuni.get(rowIndex).getUkupanIznos();
  8691.         }
  8692.         return "";
  8693.     }
  8694.    
  8695.     public void save(ObjectOutputStream out) {
  8696.         try {
  8697.             out.writeObject(mapaRacuni);
  8698.         } catch (IOException e) {
  8699.             // TODO Auto-generated catch block
  8700.             e.printStackTrace();
  8701.         }
  8702.     }
  8703.    
  8704.     @SuppressWarnings("unchecked")
  8705.     public void load(ObjectInputStream in) {
  8706.         try {
  8707.             mapaRacuni = (Map<String, Racuni>) in.readObject();
  8708.         } catch (IOException e) {
  8709.             // TODO Auto-generated catch block
  8710.             e.printStackTrace();
  8711.         } catch (ClassNotFoundException e) {
  8712.             // TODO Auto-generated catch block
  8713.             e.printStackTrace();
  8714.         }
  8715.     }
  8716.    
  8717.  
  8718.     public void clearMap() {
  8719.         mapaRacuni.clear();
  8720.     }
  8721.  
  8722. }
  8723. package model.collections;
  8724.  
  8725. import java.io.File;
  8726. import java.io.FileInputStream;
  8727. import java.io.FileNotFoundException;
  8728. import java.io.FileOutputStream;
  8729. import java.io.IOException;
  8730. import java.io.ObjectInputStream;
  8731. import java.io.ObjectOutputStream;
  8732.  
  8733.  
  8734. public class Restoran {
  8735.     private Korisnici korisnici = new Korisnici();
  8736.     private Zaposlenii zaposleni = new Zaposlenii();
  8737.     private Organizacije organizacije = new Organizacije();
  8738.     private Drzave drzave = new Drzave();
  8739.     private NaseljenaMesta naseljenaMesta = new NaseljenaMesta();
  8740.     private TipoviOrganizacija tipoviOrganizacija = new TipoviOrganizacija();
  8741.     private Pivo pivo = new Pivo();
  8742.     private VrstePiva vPiva = new VrstePiva();
  8743.     private Dogadjaj dogadjaj = new Dogadjaj();
  8744.     private Racun racun = new Racun();
  8745.  
  8746.     private static Restoran instance;
  8747.    
  8748.    
  8749.     private Restoran() {
  8750.  
  8751.     }
  8752.    
  8753.     public static Restoran getInstance() {
  8754.         if (instance == null)
  8755.             instance = new Restoran();
  8756.         return instance;
  8757.     }
  8758.  
  8759.     public Drzave getDrzave() {
  8760.         return drzave;
  8761.     }
  8762.    
  8763.     public NaseljenaMesta getNaseljenaMesta() {
  8764.         return naseljenaMesta;
  8765.     }
  8766.    
  8767.     public Organizacije getOrganizacije() {
  8768.         return organizacije;
  8769.     }
  8770.    
  8771.     public TipoviOrganizacija getTipoviOrganizacija() {
  8772.         return tipoviOrganizacija;
  8773.     }
  8774.    
  8775.     public Korisnici getKorisnici() {
  8776.         return korisnici;
  8777.     }
  8778.    
  8779.     public Zaposlenii getZaposlenii() {
  8780.         return zaposleni;
  8781.     }
  8782.  
  8783.    
  8784.     public Pivo getPivo() {
  8785.         return pivo;
  8786.     }
  8787.  
  8788.     public VrstePiva getvPiva() {
  8789.         return vPiva;
  8790.     }
  8791.  
  8792.     public void setPivo(Pivo pivo) {
  8793.         this.pivo = pivo;
  8794.     }
  8795.  
  8796.     public void setvPiva(VrstePiva vPiva) {
  8797.         this.vPiva = vPiva;
  8798.     }
  8799.  
  8800.    
  8801.     public Dogadjaj getDogadjaj() {
  8802.         return dogadjaj;
  8803.     }
  8804.  
  8805.     public void setDogadjaj(Dogadjaj dogadjaj) {
  8806.         this.dogadjaj = dogadjaj;
  8807.     }
  8808.    
  8809.    
  8810.     public Racun getRacun() {
  8811.         return racun;
  8812.     }
  8813.  
  8814.     public void setRacun(Racun racun) {
  8815.         this.racun = racun;
  8816.     }
  8817.  
  8818.     public void save() {
  8819.         try {
  8820.             ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("drzave.dat"));
  8821.             System.out.println("Sacuvano!");
  8822.             drzave.save(out);
  8823.             out.close();
  8824.            
  8825.             out = new ObjectOutputStream(new FileOutputStream("naseljenaMesta.dat"));
  8826.             naseljenaMesta.save(out);
  8827.             out.close();
  8828.            
  8829.             out = new ObjectOutputStream(new FileOutputStream("organizacije.dat"));
  8830.             organizacije.save(out);
  8831.             out.close();
  8832.            
  8833.             out = new ObjectOutputStream(new FileOutputStream("zaposleni.dat"));
  8834.             zaposleni.save(out);
  8835.             out.close();
  8836.            
  8837.             out = new ObjectOutputStream(new FileOutputStream("korisnici.dat"));
  8838.             korisnici.save(out);
  8839.             out.close();
  8840.            
  8841.             out = new ObjectOutputStream(new FileOutputStream("tipoviOrganizacija.dat"));
  8842.             tipoviOrganizacija.save(out);
  8843.             out.close();
  8844.            
  8845.             out = new ObjectOutputStream(new FileOutputStream("pivnicaPivo.dat"));
  8846.             pivo.save(out);
  8847.             out.close();
  8848.            
  8849.             out = new ObjectOutputStream(new FileOutputStream("pivnicaVrstePiva.dat"));
  8850.             vPiva.save(out);
  8851.             out.close();
  8852.            
  8853.             out = new ObjectOutputStream(new FileOutputStream("pivnicaDogadjaj.dat"));
  8854.             dogadjaj.save(out);
  8855.             out.close();
  8856.  
  8857.             out = new ObjectOutputStream(new FileOutputStream("pivnicaRacun.dat"));
  8858.             racun.save(out);
  8859.             out.close();
  8860.         /* 
  8861.             out = new ObjectOutputStream(new FileOutputStream("pivnicaIzvjestaj.dat"));
  8862.             izvjestaj.save(out);
  8863.             out.close();
  8864.         */
  8865.  
  8866.            
  8867.         } catch (FileNotFoundException e) {
  8868.             // TODO Auto-generated catch block
  8869.             e.printStackTrace();
  8870.         } catch (IOException e) {
  8871.             // TODO Auto-generated catch block
  8872.             e.printStackTrace();
  8873.         }
  8874.     }
  8875.    
  8876.     public void load() {
  8877.         try {
  8878.             File file = new File("naseljenaMesta.dat");
  8879.             if (file.exists()) {
  8880.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("naseljenaMesta.dat"));
  8881.                 naseljenaMesta.load(in);
  8882.                 in.close();
  8883.             }
  8884.            
  8885.             file = new File("drzave.dat");
  8886.             if (file.exists()) {
  8887.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("drzave.dat"));
  8888.                 drzave.load(in);
  8889.                 in.close();
  8890.             }
  8891.            
  8892.             naseljenaMesta.load2();
  8893.            
  8894.             file = new File("tipoviOrganizacija.dat");
  8895.             if (file.exists()) {
  8896.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("tipoviOrganizacija.dat"));
  8897.                 tipoviOrganizacija.load(in);
  8898.                 in.close();
  8899.             }
  8900.            
  8901.             file = new File("organizacije.dat");
  8902.             if (file.exists()) {
  8903.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("organizacije.dat"));
  8904.                 organizacije.load(in);
  8905.                 in.close();
  8906.             }
  8907.            
  8908.             file = new File("zaposleni.dat");
  8909.             if (file.exists()) {
  8910.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("zaposleni.dat"));
  8911.                 zaposleni.load(in);
  8912.                 in.close();
  8913.             }
  8914.            
  8915.             file = new File("korisnici.dat");
  8916.             if (file.exists()) {
  8917.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("korisnici.dat"));
  8918.                 korisnici.load(in);
  8919.                 in.close();
  8920.             }
  8921.            
  8922.             file = new File("pivnicaPivo.dat");
  8923.             if (file.exists()) {
  8924.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("pivnicaPivo.dat"));
  8925.                 pivo.load(in);
  8926.                 in.close();
  8927.             }
  8928.            
  8929.             file = new File("pivnicaVrstePiva.dat");
  8930.             if (file.exists()) {
  8931.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("pivnicaVrstePiva.dat"));
  8932.                 vPiva.load(in);
  8933.                 in.close();
  8934.             }
  8935.            
  8936.             file = new File("pivnicaDogadjaj.dat");
  8937.             if (file.exists()) {
  8938.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("pivnicaDogadjaj.dat"));
  8939.                 dogadjaj.load(in);
  8940.                 in.close();
  8941.             }
  8942.            
  8943.             file = new File("pivnicaRacun.dat");
  8944.             if (file.exists()) {
  8945.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("pivnicaRacun.dat"));
  8946.                 racun.load(in);
  8947.                 in.close();
  8948.             }
  8949.         /* 
  8950.             file = new File("pivnicaIzvjestaj.dat");
  8951.             if (file.exists()) {
  8952.                 ObjectInputStream in = new ObjectInputStream(new FileInputStream("pivnicaIzvjestaj.dat"));
  8953.                 korisnici.load(in);
  8954.                 in.close();
  8955.             }*/
  8956.  
  8957.         } catch (FileNotFoundException e) {
  8958.             // TODO Auto-generated catch block
  8959.             e.printStackTrace();
  8960.         } catch (IOException e) {
  8961.             // TODO Auto-generated catch block
  8962.             e.printStackTrace();
  8963.         }
  8964.  
  8965.     }
  8966.    
  8967. }
  8968. package model.collections;
  8969.  
  8970. import gui.Frame;
  8971. import gui.exceptions.ElementNePostoji;
  8972. import gui.exceptions.ElementPostoji;
  8973.  
  8974. import java.io.IOException;
  8975. import java.io.ObjectInputStream;
  8976. import java.io.ObjectOutputStream;
  8977. import java.util.ArrayList;
  8978. import java.util.HashMap;
  8979. import java.util.Iterator;
  8980. import java.util.Map;
  8981. import java.util.Set;
  8982.  
  8983. import model.data.TipOrganizacije;
  8984.  
  8985. public class TipoviOrganizacija implements ITableModel {
  8986.    
  8987.     private Map<String, TipOrganizacije> mapaTipovaOrganizacija = new HashMap<String, TipOrganizacije>();
  8988.    
  8989.     public void addTipOrganizacije(TipOrganizacije novo) throws ElementPostoji {
  8990.         if (mapaTipovaOrganizacija.containsKey(novo.getOznaka()))
  8991.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  8992.         mapaTipovaOrganizacija.put(novo.getOznaka(), novo);
  8993.     }
  8994.    
  8995.     public void removeTipOrganizacije(TipOrganizacije staro) throws ElementNePostoji {
  8996.         if (!mapaTipovaOrganizacija.containsKey(staro.getOznaka()))
  8997.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  8998.         mapaTipovaOrganizacija.remove(staro.getOznaka());
  8999.     }
  9000.    
  9001.     public TipOrganizacije getTipOrganizacije(String key) throws ElementNePostoji {
  9002.         if (!mapaTipovaOrganizacija.containsKey(key))
  9003.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  9004.         return mapaTipovaOrganizacija.get(key);
  9005.     }
  9006.    
  9007.     public Iterator<String> getTipoviOrganizacijaIterator() {
  9008.         Set<String> oznakeTipovaOrganizacija = mapaTipovaOrganizacija.keySet();
  9009.         return oznakeTipovaOrganizacija.iterator();
  9010.     }
  9011.  
  9012.     @Override
  9013.     public int getRowCount() {
  9014.         // TODO Auto-generated method stub
  9015.         return mapaTipovaOrganizacija.size();
  9016.     }
  9017.  
  9018.     @Override
  9019.     public Object getValueAt(int rowIndex, int columnIndex) {
  9020.         // TODO Auto-generated method stub
  9021.         ArrayList<TipOrganizacije> tipoviOrganizacija = new ArrayList<TipOrganizacije>(mapaTipovaOrganizacija.values());
  9022.         switch (columnIndex) {
  9023.             case 0 : return tipoviOrganizacija.get(rowIndex).getOznaka();
  9024.             case 1 : return tipoviOrganizacija.get(rowIndex).getNaziv();
  9025.         }
  9026.         return "";
  9027.     }
  9028.    
  9029.     public void save(ObjectOutputStream out) {
  9030.         try {
  9031.             out.writeObject(mapaTipovaOrganizacija);
  9032.         } catch (IOException e) {
  9033.             // TODO Auto-generated catch block
  9034.             e.printStackTrace();
  9035.         }
  9036.     }
  9037.    
  9038.     @SuppressWarnings("unchecked")
  9039.     public void load(ObjectInputStream in) {
  9040.         try {
  9041.             mapaTipovaOrganizacija = (Map<String, TipOrganizacije>) in.readObject();
  9042.         } catch (IOException e) {
  9043.             // TODO Auto-generated catch block
  9044.             e.printStackTrace();
  9045.         } catch (ClassNotFoundException e) {
  9046.             // TODO Auto-generated catch block
  9047.             e.printStackTrace();
  9048.         }
  9049.     }
  9050. }
  9051. package model.collections;
  9052.  
  9053. import gui.Frame;
  9054. import gui.exceptions.ElementNePostoji;
  9055. import gui.exceptions.ElementPostoji;
  9056.  
  9057. import java.io.IOException;
  9058. import java.io.ObjectInputStream;
  9059. import java.io.ObjectOutputStream;
  9060. import java.util.ArrayList;
  9061. import java.util.HashMap;
  9062. import java.util.Iterator;
  9063. import java.util.Map;
  9064. import java.util.Set;
  9065.  
  9066. import model.data.VrstaPiva;
  9067.  
  9068. public class VrstePiva implements ITableModel {
  9069.    
  9070.     private Map<String, VrstaPiva> mapaVPiva = new HashMap<String, VrstaPiva>();
  9071.    
  9072.     public void addVPiva(VrstaPiva novi) throws ElementPostoji {
  9073.         if (mapaVPiva.containsKey(novi.getKey()))
  9074.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  9075.         mapaVPiva.put(novi.getKey(), novi);
  9076.     }
  9077.    
  9078.     public void removeVPiva(VrstaPiva stari) throws ElementNePostoji {
  9079.         if (!mapaVPiva.containsKey(stari.getKey()))
  9080.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  9081.         mapaVPiva.remove(stari.getKey());
  9082.     }
  9083.    
  9084.     public VrstaPiva getVPivo(String key) throws ElementNePostoji {
  9085.         if (!mapaVPiva.containsKey(key))
  9086.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  9087.         return mapaVPiva.get(key);
  9088.     }
  9089.    
  9090.     public Iterator<String> getVPivaIterator() {
  9091.         Set<String> oznakeVPiva = mapaVPiva.keySet();
  9092.         return oznakeVPiva.iterator();
  9093.     }
  9094.  
  9095.     @Override
  9096.     public int getRowCount() {
  9097.         // TODO Auto-generated method stub
  9098.         return mapaVPiva.size();
  9099.     }
  9100.  
  9101.     @Override
  9102.     public Object getValueAt(int rowIndex, int columnIndex) {
  9103.         // TODO Auto-generated method stub
  9104.         ArrayList<VrstaPiva> vPiva = new ArrayList<VrstaPiva>(mapaVPiva.values());
  9105.         switch(columnIndex) {
  9106.             case 0: return vPiva.get(rowIndex).getVPID();
  9107.             case 1: return vPiva.get(rowIndex).getNazivVrste();
  9108.         }
  9109.         return "";
  9110.     }
  9111.    
  9112.     public void save(ObjectOutputStream out) {
  9113.         try {
  9114.             out.writeObject(mapaVPiva);
  9115.         } catch (IOException e) {
  9116.             // TODO Auto-generated catch block
  9117.             e.printStackTrace();
  9118.         }
  9119.     }
  9120.    
  9121.     @SuppressWarnings("unchecked")
  9122.     public void load(ObjectInputStream in) {
  9123.         try {
  9124.             mapaVPiva = (Map<String, VrstaPiva>) in.readObject();
  9125.         } catch (IOException e) {
  9126.             // TODO Auto-generated catch block
  9127.             e.printStackTrace();
  9128.         } catch (ClassNotFoundException e) {
  9129.             // TODO Auto-generated catch block
  9130.             e.printStackTrace();
  9131.         }
  9132.     }
  9133.  
  9134. }
  9135. package model.collections;
  9136.  
  9137. import gui.Frame;
  9138. import gui.exceptions.ElementNePostoji;
  9139. import gui.exceptions.ElementPostoji;
  9140.  
  9141. import java.io.IOException;
  9142. import java.io.ObjectInputStream;
  9143. import java.io.ObjectOutputStream;
  9144. import java.util.ArrayList;
  9145. import java.util.HashMap;
  9146. import java.util.Iterator;
  9147. import java.util.Map;
  9148. import java.util.Set;
  9149.  
  9150. import model.data.Organizacija;
  9151. import model.data.Zaposleni;
  9152.  
  9153. public class Zaposlenii implements ITableModel {
  9154.    
  9155.     private Map<String, Zaposleni> mapaZaposlenih = new HashMap<String, Zaposleni>();
  9156.    
  9157.     public void addZaposleni(Zaposleni novi) throws ElementPostoji {
  9158.         if (mapaZaposlenih.containsKey(novi.getIdentifikator()))
  9159.             throw new ElementPostoji(Frame.getInstance().getResourceBundle().getString("errVecPostoji"));
  9160.         mapaZaposlenih.put(novi.getIdentifikator(), novi);
  9161.     }
  9162.    
  9163.     public void removeZaposleni(Zaposleni stari) throws ElementNePostoji {
  9164.         if (!mapaZaposlenih.containsKey(stari.getIdentifikator()))
  9165.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  9166.         mapaZaposlenih.remove(stari.getIdentifikator());
  9167.     }
  9168.    
  9169.     public Zaposleni getZaposleni(String key) throws ElementNePostoji {
  9170.         if (!mapaZaposlenih.containsKey(key))
  9171.             throw new ElementNePostoji(Frame.getInstance().getResourceBundle().getString("errNePostoji"));
  9172.         return mapaZaposlenih.get(key);
  9173.     }
  9174.    
  9175.     public Iterator<String> getZaposleniIterator() {
  9176.         Set<String> imenaZaposlenih = mapaZaposlenih.keySet();
  9177.         return imenaZaposlenih.iterator();
  9178.     }
  9179.    
  9180.     @Override
  9181.     public int getRowCount() {
  9182.         // TODO Auto-generated method stub
  9183.         return mapaZaposlenih.size();
  9184.     }
  9185.  
  9186.     @Override
  9187.     public Object getValueAt(int rowIndex, int columnIndex) {
  9188.         // TODO Auto-generated method stub
  9189.         ArrayList<Zaposleni> zaposleni = new ArrayList<Zaposleni>(mapaZaposlenih.values());
  9190.         switch (columnIndex) {
  9191.             case 0 : return zaposleni.get(rowIndex).getOrganizacija();
  9192.             case 1 : return zaposleni.get(rowIndex).getIdentifikator();
  9193.             case 2 : return zaposleni.get(rowIndex).getPrezime();
  9194.             case 3 : return zaposleni.get(rowIndex).getIme();
  9195.             case 4 : return zaposleni.get(rowIndex).getPol();
  9196.                
  9197.         }
  9198.         return "";
  9199.     }
  9200.    
  9201.     public void save(ObjectOutputStream out) {
  9202.         try {
  9203.             out.writeObject(mapaZaposlenih);
  9204.         } catch (IOException e) {
  9205.             // TODO Auto-generated catch block
  9206.             e.printStackTrace();
  9207.         }
  9208.     }
  9209.    
  9210.     @SuppressWarnings("unchecked")
  9211.     public void load(ObjectInputStream in) {
  9212.         try {
  9213.             mapaZaposlenih = (Map<String, Zaposleni>) in.readObject();
  9214.         } catch (IOException e) {
  9215.             // TODO Auto-generated catch block
  9216.             e.printStackTrace();
  9217.         } catch (ClassNotFoundException e) {
  9218.             // TODO Auto-generated catch block
  9219.             e.printStackTrace();
  9220.         }
  9221.        
  9222.         Organizacije organizacije = Restoran.getInstance().getOrganizacije();
  9223.         Iterator<Zaposleni> iter = mapaZaposlenih.values().iterator();
  9224.         while (iter.hasNext()) {
  9225.             Zaposleni tekuciZaposleni= iter.next();
  9226.             Organizacija ucitanaOrganizacijaZaposlenong = tekuciZaposleni.getOrganizacija();
  9227.             Organizacija organizacijaZaposlenogIzMape = null;
  9228.             try {
  9229.                 organizacijaZaposlenogIzMape = organizacije.getOrganizacija(ucitanaOrganizacijaZaposlenong.getOznaka());
  9230.             } catch (ElementNePostoji e) {
  9231.                 e.printStackTrace();
  9232.             } catch (NullPointerException e2)
  9233.             {
  9234.                 e2.printStackTrace();
  9235.             }
  9236.             tekuciZaposleni.setOrganizacija(organizacijaZaposlenogIzMape);
  9237.         }
  9238.     }  
  9239.  
  9240. }
  9241. package model.data;
  9242.  
  9243. import java.util.Date;
  9244.  
  9245. import org.freixas.jcalendar.JCalendarCombo;
  9246.  
  9247. public class Dogadjaji implements MapElement {
  9248.     /**
  9249.      *
  9250.      */
  9251.     private static final long serialVersionUID = 1L;
  9252.     private String naziv;
  9253.     private String cenaUlaznice;
  9254.     private String popust;
  9255.     private Date vrijemeP;
  9256.     private Date vrijemeZ;
  9257.    
  9258.     public Dogadjaji(String naziv, String cenaUlaznice, String popust,
  9259.             Date datumPocetka, Date datumZavrsetka) {
  9260.         super();
  9261.         this.naziv = naziv;
  9262.         this.cenaUlaznice = cenaUlaznice;
  9263.         this.popust = popust;
  9264.         this.vrijemeP = datumPocetka;
  9265.         this.vrijemeZ = datumZavrsetka;
  9266.        
  9267.     }
  9268.  
  9269.     public Dogadjaji() {
  9270.         super();
  9271.     }
  9272.  
  9273.     public String getNaziv() {
  9274.         return naziv;
  9275.     }
  9276.  
  9277.     public String getCenaUlaznice() {
  9278.         return cenaUlaznice;
  9279.     }
  9280.  
  9281.     public String getPopust() {
  9282.         return popust;
  9283.     }
  9284.  
  9285.     public Date getVrijemeP() {
  9286.         return vrijemeP;
  9287.     }
  9288.  
  9289.     public Date getVrijemeZ() {
  9290.         return vrijemeZ;
  9291.     }
  9292.  
  9293.     public void setNaziv(String naziv) {
  9294.         this.naziv = naziv;
  9295.     }
  9296.  
  9297.     public void setCenaUlaznice(String cenaUlaznice) {
  9298.         this.cenaUlaznice = cenaUlaznice;
  9299.     }
  9300.  
  9301.     public void setPopust(String popust) {
  9302.         this.popust = popust;
  9303.     }
  9304.  
  9305.     public void setVrijemeP(Date vrijemeP) {
  9306.         this.vrijemeP = vrijemeP;
  9307.     }
  9308.  
  9309.     public void setVrijemeZ(Date vrijemeZ) {
  9310.         this.vrijemeZ = vrijemeZ;
  9311.     }
  9312.  
  9313.     @Override
  9314.     public String getKey() {
  9315.         // TODO Auto-generated method stub
  9316.         return naziv;
  9317.     }
  9318.    
  9319.     @Override
  9320.     public String toString() {
  9321.         return naziv;
  9322.     }
  9323.    
  9324. }
  9325. package model.data;
  9326.  
  9327. public class Drzava implements MapElement {
  9328.  
  9329.     private static final long serialVersionUID = 1L;
  9330.     private String oznaka;
  9331.     private String naziv;
  9332.     private NaseljenoMesto glGrad;
  9333.    
  9334.  
  9335.     public Drzava(String oznaka, String naziv, NaseljenoMesto glGrad2) {
  9336.         super();
  9337.         this.oznaka = oznaka;
  9338.         this.naziv = naziv;
  9339.         this.glGrad = glGrad2;
  9340.     }
  9341.  
  9342.     public String getOznaka() {
  9343.         return oznaka;
  9344.     }
  9345.  
  9346.  
  9347.     public void setOznaka(String oznaka) {
  9348.         this.oznaka = oznaka;
  9349.     }
  9350.  
  9351.  
  9352.     public String getNaziv() {
  9353.         return naziv;
  9354.     }
  9355.  
  9356.  
  9357.     public void setNaziv(String naziv) {
  9358.         this.naziv = naziv;
  9359.     }
  9360.  
  9361.  
  9362.     public NaseljenoMesto getGlGrad() {
  9363.         return glGrad;
  9364.     }
  9365.  
  9366.  
  9367.     public void setGlGrad(NaseljenoMesto glGrad) {
  9368.         this.glGrad = glGrad;
  9369.     }
  9370.  
  9371.     @Override
  9372.     public String toString() {
  9373.         return naziv;
  9374.     }
  9375.     @Override
  9376.     public String getKey() {
  9377.         // TODO Auto-generated method stub
  9378.         return oznaka;
  9379.     }
  9380.  
  9381. }
  9382. package model.data;
  9383.  
  9384. public class Korisnik implements MapElement {
  9385.     /**
  9386.      *
  9387.      */
  9388.     private static final long serialVersionUID = 1L;
  9389.     private String user;
  9390.     private String lozinka;
  9391.     private Zaposleni zaposleni;
  9392.     private String ime;
  9393.     private String prezime;
  9394.     private String godReg;
  9395.     private String status;
  9396.     private Boolean admin;
  9397.     private boolean cbAdmin;
  9398.    
  9399.     public Korisnik(String user, String lozinka, Zaposleni zaposleni, String ime, String prezime, String godReg, String status, Boolean admin) {
  9400.         this.user = user;
  9401.         this.lozinka = lozinka;
  9402.         this.zaposleni = zaposleni;
  9403.         this.ime = ime;
  9404.         this.prezime = prezime;
  9405.         this.godReg = godReg;
  9406.         this.status = status;
  9407.         this.admin = admin;
  9408.         this.cbAdmin = (status.equals("strYes")) ? true : false;
  9409.     }
  9410.  
  9411.     public String getUser() {
  9412.         return user;
  9413.     }
  9414.  
  9415.     public void setUser(String ime) {
  9416.         this.user = ime;
  9417.     }
  9418.  
  9419.     public String getLozinka() {
  9420.         return lozinka;
  9421.     }
  9422.  
  9423.     public void setLozinka(String lozinka) {
  9424.         this.lozinka = lozinka;
  9425.     }
  9426.  
  9427.     public Zaposleni getZaposleni() {
  9428.         return zaposleni;
  9429.     }
  9430.  
  9431.     public void setZaposleni(Zaposleni zaposleni) {
  9432.         this.zaposleni = zaposleni;
  9433.     }
  9434.  
  9435.     public String getIme() {
  9436.         return ime;
  9437.     }
  9438.  
  9439.     public String getPrezime() {
  9440.         return prezime;
  9441.     }
  9442.  
  9443.     public String getGodReg() {
  9444.         return godReg;
  9445.     }
  9446.    
  9447.     public boolean getCbAdmin() {
  9448.         return cbAdmin;
  9449.     }
  9450.  
  9451.     public String getStatus() {
  9452.         return status;
  9453.     }
  9454.  
  9455.     public Boolean getAdmin() {
  9456.         return admin;
  9457.     }
  9458.  
  9459.     public void setIme(String ime) {
  9460.         this.ime = ime;
  9461.     }
  9462.  
  9463.     public void setPrezime(String prezime) {
  9464.         this.prezime = prezime;
  9465.     }
  9466.  
  9467.     public void setGodReg(String godReg) {
  9468.         this.godReg = godReg;
  9469.     }
  9470.  
  9471.     public void setStatus(String status) {
  9472.         this.status = status;
  9473.     }
  9474.  
  9475.     public void setAdmin(boolean admin) {
  9476.         this.admin = admin;
  9477.     }
  9478.  
  9479.     @Override
  9480.     public String getKey() {
  9481.         // TODO Auto-generated method stub
  9482.         return user;
  9483.     }
  9484. }
  9485. package model.data;
  9486.  
  9487. import java.io.Serializable;
  9488.  
  9489. public interface MapElement extends Serializable {
  9490.  
  9491.     public static char delimiter = '|';
  9492.    
  9493.     public String getKey();
  9494.  
  9495. }
  9496. package model.data;
  9497.  
  9498. @SuppressWarnings("serial")
  9499. public class NaseljenoMesto implements MapElement {
  9500.    
  9501.     private String oznaka;
  9502.     private String naziv;
  9503.     private Drzava drzava;
  9504.    
  9505.     public NaseljenoMesto(String oznaka, String naziv, Drzava drzava) {
  9506.         super();
  9507.         this.oznaka = oznaka;
  9508.         this.naziv = naziv;
  9509.         this.drzava = drzava;
  9510.     }
  9511.  
  9512.     public String getOznaka() {
  9513.         return oznaka;
  9514.     }
  9515.  
  9516.     public void setOznaka(String oznaka) {
  9517.         this.oznaka = oznaka;
  9518.     }
  9519.  
  9520.     public String getNaziv() {
  9521.         return naziv;
  9522.     }
  9523.  
  9524.     public void setNaziv(String naziv) {
  9525.         this.naziv = naziv;
  9526.     }
  9527.  
  9528.     public Drzava getDrzava() {
  9529.         return drzava;
  9530.     }
  9531.  
  9532.     public void setDrzava(Drzava drzava) {
  9533.         this.drzava = drzava;
  9534.     }
  9535.  
  9536.     @Override
  9537.     public String getKey() {
  9538.         // TODO Auto-generated method stub
  9539.         return oznaka;
  9540.     }
  9541.     @Override
  9542.     public String toString() {
  9543.         return naziv;
  9544.     }
  9545.  
  9546. }
  9547. package model.data;
  9548.  
  9549. @SuppressWarnings("serial")
  9550. public class Organizacija implements MapElement {
  9551.    
  9552.     private String oznaka;
  9553.     private String naziv;
  9554.     private NaseljenoMesto nasljenoMesto;
  9555.     private Drzava drzavaOrg;
  9556.     private String adresa;
  9557.     private String email;
  9558.     private String web;
  9559.     private String telefon;
  9560.     private TipOrganizacije tipOrganizacije;
  9561.    
  9562.     public Organizacija(String oznaka, String naziv, NaseljenoMesto nasljenoMesto,
  9563.             Drzava drzavaOrg, String adresa, String email, String web,
  9564.             String telefon, TipOrganizacije tipOrganizacije) {
  9565.         super();
  9566.         this.oznaka = oznaka;
  9567.         this.naziv = naziv;
  9568.         this.nasljenoMesto = nasljenoMesto;
  9569.         this.drzavaOrg = drzavaOrg;
  9570.         this.adresa = adresa;
  9571.         this.email = email;
  9572.         this.web = web;
  9573.         this.telefon = telefon;
  9574.         this.tipOrganizacije = tipOrganizacije;
  9575.     }
  9576.    
  9577.     public String getOznaka() {
  9578.         return oznaka;
  9579.     }
  9580.  
  9581.     public void setOznaka(String oznaka) {
  9582.         this.oznaka = oznaka;
  9583.     }
  9584.  
  9585.     public String getNaziv() {
  9586.         return naziv;
  9587.     }
  9588.  
  9589.     public void setNaziv(String naziv) {
  9590.         this.naziv = naziv;
  9591.     }
  9592.  
  9593.     public NaseljenoMesto getNasljenoMesto() {
  9594.         return nasljenoMesto;
  9595.     }
  9596.  
  9597.     public void setNasljenoMesto(NaseljenoMesto nasljenoMesto) {
  9598.         this.nasljenoMesto = nasljenoMesto;
  9599.     }
  9600.  
  9601.     public Drzava getDrzavaOrg() {
  9602.         return drzavaOrg;
  9603.     }
  9604.  
  9605.     public void setDrzavaOrg(Drzava drzavaOrg) {
  9606.         this.drzavaOrg = drzavaOrg;
  9607.     }
  9608.  
  9609.     public String getAdresa() {
  9610.         return adresa;
  9611.     }
  9612.  
  9613.     public void setAdresa(String adresa) {
  9614.         this.adresa = adresa;
  9615.     }
  9616.  
  9617.     public String getEmail() {
  9618.         return email;
  9619.     }
  9620.  
  9621.     public void setEmail(String email) {
  9622.         this.email = email;
  9623.     }
  9624.  
  9625.     public String getWeb() {
  9626.         return web;
  9627.     }
  9628.  
  9629.     public void setWeb(String web) {
  9630.         this.web = web;
  9631.     }
  9632.  
  9633.     public String getTelefon() {
  9634.         return telefon;
  9635.     }
  9636.  
  9637.     public void setTelefon(String telefon) {
  9638.         this.telefon = telefon;
  9639.     }
  9640.  
  9641.     public TipOrganizacije getTipOrganizacije() {
  9642.         return tipOrganizacije;
  9643.     }
  9644.  
  9645.     public void setTipOrganizacije(TipOrganizacije tipOrganizacije) {
  9646.         this.tipOrganizacije = tipOrganizacije;
  9647.     }
  9648.  
  9649.     @Override
  9650.     public String getKey() {
  9651.         // TODO Auto-generated method stub
  9652.         return oznaka;
  9653.     }
  9654.     @Override
  9655.     public String toString() {
  9656.         return naziv;
  9657.     }
  9658. }
  9659. package model.data;
  9660.  
  9661. public class Piva implements MapElement {
  9662.     /**
  9663.      *
  9664.      */
  9665.     private static final long serialVersionUID = 1L;
  9666.     private String naziv;
  9667.     private String proizvodjac;
  9668.     private Drzava poreklo;
  9669.     private String procenatA;
  9670.     private String ambalaza;
  9671.     private String cena;
  9672.     private VrstaPiva vPiva;
  9673.    
  9674.  
  9675.     public Piva(String naziv, String proizvodjac, Drzava poreklo,
  9676.             String procenatA, String ambalaza, String cena, VrstaPiva vpiva) {
  9677.         super();
  9678.         this.naziv = naziv;
  9679.         this.proizvodjac = proizvodjac;
  9680.         this.poreklo = poreklo;
  9681.         this.procenatA = procenatA;
  9682.         this.ambalaza = ambalaza;
  9683.         this.cena = cena;
  9684.         this.vPiva = vpiva;
  9685.     }
  9686.    
  9687.     public Piva() {
  9688.         super();
  9689.     }
  9690.  
  9691.    
  9692.     public String getNaziv() {
  9693.         return naziv;
  9694.     }
  9695.  
  9696.     public String getProizvodjac() {
  9697.         return proizvodjac;
  9698.     }
  9699.  
  9700.     public Drzava getPoreklo() {
  9701.         return poreklo;
  9702.     }
  9703.  
  9704.     public String getProcenatA() {
  9705.         return procenatA;
  9706.     }
  9707.  
  9708.     public String getAmbalaza() {
  9709.         return ambalaza;
  9710.     }
  9711.  
  9712.     public String getCena() {
  9713.         return cena;
  9714.     }
  9715.  
  9716.     public VrstaPiva getvPiva() {
  9717.         return vPiva;
  9718.     }
  9719.  
  9720.     public void setNaziv(String naziv) {
  9721.         this.naziv = naziv;
  9722.     }
  9723.  
  9724.     public void setProizvodjac(String proizvodjac) {
  9725.         this.proizvodjac = proizvodjac;
  9726.     }
  9727.  
  9728.     public void setPoreklo(Drzava poreklo) {
  9729.         this.poreklo = poreklo;
  9730.     }
  9731.  
  9732.     public void setProcenatA(String procenatA) {
  9733.         this.procenatA = procenatA;
  9734.     }
  9735.  
  9736.     public void setAmbalaza(String ambalaza) {
  9737.         this.ambalaza = ambalaza;
  9738.     }
  9739.  
  9740.     public void setCena(String cena) {
  9741.         this.cena = cena;
  9742.     }
  9743.  
  9744.     public void setvPiva(VrstaPiva vPiva) {
  9745.         this.vPiva = vPiva;
  9746.     }
  9747.  
  9748.     @Override
  9749.     public String getKey() {
  9750.         // TODO Auto-generated method stub
  9751.         return naziv;
  9752.     }
  9753.  
  9754.     @Override
  9755.     public String toString() {
  9756.         return naziv;
  9757.     }
  9758. }
  9759. package model.data;
  9760.  
  9761. public class Piva implements MapElement {
  9762.     /**
  9763.      *
  9764.      */
  9765.     private static final long serialVersionUID = 1L;
  9766.     private String naziv;
  9767.     private String proizvodjac;
  9768.     private Drzava poreklo;
  9769.     private String procenatA;
  9770.     private String ambalaza;
  9771.     private String cena;
  9772.     private VrstaPiva vPiva;
  9773.    
  9774.  
  9775.     public Piva(String naziv, String proizvodjac, Drzava poreklo,
  9776.             String procenatA, String ambalaza, String cena, VrstaPiva vpiva) {
  9777.         super();
  9778.         this.naziv = naziv;
  9779.         this.proizvodjac = proizvodjac;
  9780.         this.poreklo = poreklo;
  9781.         this.procenatA = procenatA;
  9782.         this.ambalaza = ambalaza;
  9783.         this.cena = cena;
  9784.         this.vPiva = vpiva;
  9785.     }
  9786.    
  9787.     public Piva() {
  9788.         super();
  9789.     }
  9790.  
  9791.    
  9792.     public String getNaziv() {
  9793.         return naziv;
  9794.     }
  9795.  
  9796.     public String getProizvodjac() {
  9797.         return proizvodjac;
  9798.     }
  9799.  
  9800.     public Drzava getPoreklo() {
  9801.         return poreklo;
  9802.     }
  9803.  
  9804.     public String getProcenatA() {
  9805.         return procenatA;
  9806.     }
  9807.  
  9808.     public String getAmbalaza() {
  9809.         return ambalaza;
  9810.     }
  9811.  
  9812.     public String getCena() {
  9813.         return cena;
  9814.     }
  9815.  
  9816.     public VrstaPiva getvPiva() {
  9817.         return vPiva;
  9818.     }
  9819.  
  9820.     public void setNaziv(String naziv) {
  9821.         this.naziv = naziv;
  9822.     }
  9823.  
  9824.     public void setProizvodjac(String proizvodjac) {
  9825.         this.proizvodjac = proizvodjac;
  9826.     }
  9827.  
  9828.     public void setPoreklo(Drzava poreklo) {
  9829.         this.poreklo = poreklo;
  9830.     }
  9831.  
  9832.     public void setProcenatA(String procenatA) {
  9833.         this.procenatA = procenatA;
  9834.     }
  9835.  
  9836.     public void setAmbalaza(String ambalaza) {
  9837.         this.ambalaza = ambalaza;
  9838.     }
  9839.  
  9840.     public void setCena(String cena) {
  9841.         this.cena = cena;
  9842.     }
  9843.  
  9844.     public void setvPiva(VrstaPiva vPiva) {
  9845.         this.vPiva = vPiva;
  9846.     }
  9847.  
  9848.     @Override
  9849.     public String getKey() {
  9850.         // TODO Auto-generated method stub
  9851.         return naziv;
  9852.     }
  9853.  
  9854.     @Override
  9855.     public String toString() {
  9856.         return naziv;
  9857.     }
  9858. }
  9859. package model.data;
  9860.  
  9861. @SuppressWarnings("serial")
  9862. public class TipOrganizacije implements MapElement {
  9863.     private String oznaka;
  9864.     private String naziv;  
  9865.    
  9866.     public TipOrganizacije(String oznaka, String naziv) {
  9867.         super();
  9868.         this.oznaka = oznaka;
  9869.         this.naziv = naziv;
  9870.     }
  9871.  
  9872.     public String getOznaka() {
  9873.         return oznaka;
  9874.     }
  9875.  
  9876.     public void setOznaka(String oznaka) {
  9877.         this.oznaka = oznaka;
  9878.     }
  9879.  
  9880.     public String getNaziv() {
  9881.         return naziv;
  9882.     }
  9883.  
  9884.     public void setNaziv(String naziv) {
  9885.         this.naziv = naziv;
  9886.     }
  9887.  
  9888.     @Override
  9889.     public String getKey() {
  9890.         // TODO Auto-generated method stub
  9891.         return oznaka;
  9892.     }
  9893.     @Override
  9894.     public String toString() {
  9895.         return naziv;
  9896.     }
  9897.  
  9898. }
  9899. package model.data;
  9900.  
  9901. @SuppressWarnings("serial")
  9902. public class VrstaPiva implements MapElement {
  9903.  
  9904.     private String id;
  9905.     private String nazivVrste;
  9906.    
  9907.     public VrstaPiva(String id, String nazivVrste) {
  9908.         super();
  9909.         this.nazivVrste = nazivVrste;
  9910.         this.id = id;
  9911.     }
  9912.    
  9913.     public VrstaPiva() {
  9914.         super();
  9915.     }
  9916.  
  9917.  
  9918.  
  9919.     public String getNazivVrste() {
  9920.         return nazivVrste;
  9921.     }
  9922.  
  9923.     public String getVPID() {
  9924.         return id;
  9925.     }
  9926.  
  9927.     public void setNazivVrste(String nazivVrste) {
  9928.         this.nazivVrste = nazivVrste;
  9929.     }
  9930.  
  9931.     public void setVPID(String id) {
  9932.         this.id = id;
  9933.     }
  9934.  
  9935.     @Override
  9936.     public String getKey() {
  9937.         // TODO Auto-generated method stub
  9938.         return id;
  9939.     }
  9940.    
  9941.     @Override
  9942.     public String toString() {
  9943.         return nazivVrste;
  9944.     }
  9945.  
  9946. }
  9947. package model.data;
  9948.  
  9949. @SuppressWarnings("serial")
  9950. public class Zaposleni implements MapElement {
  9951.     private Organizacija organizacija;
  9952.     private String identifikator;
  9953.     private String prezime;
  9954.     private String ime;
  9955.     private String pol;
  9956.    
  9957.     public Zaposleni(Organizacija organizacija, String identifikator, String prezime, String ime, String pol) {
  9958.         this.organizacija = organizacija;
  9959.         this.identifikator = identifikator;
  9960.         this.prezime = prezime;
  9961.         this.ime = ime;
  9962.         this.pol = pol;
  9963.     }
  9964.     public Zaposleni() {
  9965.         // TODO Auto-generated constructor stub
  9966.     }
  9967.    
  9968.     public Organizacija getOrganizacija() {
  9969.         return organizacija;
  9970.     }
  9971.     public void setOrganizacija(Organizacija organizacija) {
  9972.         this.organizacija = organizacija;
  9973.     }
  9974.     public String getIdentifikator() {
  9975.         return identifikator;
  9976.     }
  9977.     public void setIdentifikator(String identifikator) {
  9978.         this.identifikator = identifikator;
  9979.     }
  9980.     public String getPrezime() {
  9981.         return prezime;
  9982.     }
  9983.     public void setPrezime(String prezime) {
  9984.         this.prezime = prezime;
  9985.     }
  9986.     public String getIme() {
  9987.         return ime;
  9988.     }
  9989.     public void setIme(String ime) {
  9990.         this.ime = ime;
  9991.     }
  9992.     public String getPol() {
  9993.         return pol;
  9994.     }
  9995.     public void setPol(String pol) {
  9996.         this.pol = pol;
  9997.     }
  9998.    
  9999.     @Override
  10000.     public String toString() {
  10001.         return identifikator + " " + ime + " " + prezime;
  10002.     }
  10003.     @Override
  10004.     public String getKey() {
  10005.         // TODO Auto-generated method stub
  10006.         return identifikator;
  10007.     }
  10008. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement