Advertisement
nex036ara

provera

Jan 14th, 2013
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.96 KB | None | 0 0
  1. package gui.dialog.detailpanels;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.Dimension;
  6. import java.awt.FlowLayout;
  7. import java.util.Date;
  8. import java.text.ParsePosition;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Iterator;
  11. import java.util.Locale;
  12.  
  13.  
  14. import gui.MainFrame;
  15. import gui.dialog.AbstractDialog.StanjeDijaloga;
  16. import gui.exceptions.ElementNePostoji;
  17. import gui.exceptions.RequiredFieldException;
  18. import gui.listeners.MyKeyListener;
  19. import gui.listeners.MyKeyListenerDate;
  20. import gui.listeners.MyKeyListenerTime;
  21.  
  22. import javax.swing.Box;
  23. import javax.swing.BoxLayout;
  24. import javax.swing.JComboBox;
  25. import javax.swing.JFormattedTextField;
  26. import javax.swing.JLabel;
  27. import javax.swing.JPanel;
  28. import javax.swing.JTextField;
  29.  
  30. import model.collections.ServisnaStanica;
  31. import model.data.Igranje;
  32. import model.data.Predstava;
  33.  
  34.  
  35. @SuppressWarnings("serial")
  36. public class PanelDetailIgranje extends AbstractPanelDetail{
  37.  
  38.    
  39.  
  40.     private JLabel lblDatumPredstave;
  41.     private JFormattedTextField txtDatumPredstave;
  42.     private Date datum;
  43.    
  44.     private JLabel lblNazivPredstave;
  45.     private JComboBox cmbNazivPredstave;
  46.     String[] predstava;
  47.    
  48.     private JLabel lblVremePredstave;
  49.     private JFormattedTextField txtVremePredstave;
  50.     private Date vreme;
  51.  
  52.  
  53.     private JLabel lblSalaPredstave;
  54.     private JComboBox cmbSalaPredstave;
  55.     String[] sala;
  56.    
  57.     private JLabel lblKojiPut;
  58.     private JTextField txtKojiPut;
  59.    
  60.     StanjeDijaloga mode;
  61.    
  62. public PanelDetailIgranje(StanjeDijaloga mode) {
  63.        
  64.     setLayout(new BorderLayout());
  65.     Dimension lblDimension = new Dimension(150,20);
  66.     Box boxCentar = new Box(BoxLayout.Y_AXIS);
  67.    
  68.    
  69.     JPanel panNazivPredstave= new JPanel(new FlowLayout(FlowLayout.LEFT));
  70.     lblNazivPredstave= new JLabel(
  71.             MainFrame.getInstance().getResourceBundle().getString("lblNazivPredstave")+" *");
  72.     lblNazivPredstave.setPreferredSize(lblDimension);
  73.    
  74.     cmbNazivPredstave = new JComboBox();
  75.    
  76.     Iterator<String> iterPredstave = ServisnaStanica.getInstance().getPredstave().getPredstavaIterator();
  77.    
  78.     while(iterPredstave.hasNext()){
  79.         try{
  80.             cmbNazivPredstave.addItem(ServisnaStanica.getInstance().getPredstave().getPredstava(iterPredstave.next()));
  81.         }catch(ElementNePostoji e){
  82.             e.printStackTrace();
  83.         }
  84.     }
  85.    
  86.    
  87.     cmbNazivPredstave.setEnabled(mode != StanjeDijaloga.BROWSE);
  88.      panNazivPredstave.add(lblNazivPredstave);
  89.      panNazivPredstave.add(cmbNazivPredstave);
  90.    
  91.  boxCentar.add(panNazivPredstave);
  92.     //-----------------------------------------------------------
  93.     JPanel panDatumPredstave= new JPanel(new FlowLayout(FlowLayout.LEFT));
  94.     lblDatumPredstave= new JLabel(
  95.             MainFrame.getInstance().getResourceBundle().getString("lblDatumPredstave")+
  96.             MainFrame.getInstance().getResourceBundle().getString("lblFormatDatuma")+
  97.             " *");
  98.     lblDatumPredstave.setPreferredSize(lblDimension);
  99.    
  100.    
  101.    
  102.    
  103.     txtDatumPredstave = new JFormattedTextField(new SimpleDateFormat("dd.MM.yyyy"));
  104.     txtDatumPredstave.setColumns(10);
  105.    
  106.     txtDatumPredstave.addKeyListener(new MyKeyListenerDate());
  107.     txtDatumPredstave.setName("DatumIgranjaPredstave");
  108.    
  109.     txtDatumPredstave.setEnabled(mode != StanjeDijaloga.BROWSE && mode != StanjeDijaloga.UPDATE);
  110.     panDatumPredstave.add(lblDatumPredstave);
  111.     panDatumPredstave.add(txtDatumPredstave);
  112.     boxCentar.add(panDatumPredstave);
  113.     //-----------------------------------------------------------
  114.     JPanel panVremePredstave= new JPanel(new FlowLayout(FlowLayout.LEFT));
  115.     lblVremePredstave= new JLabel(
  116.             MainFrame.getInstance().getResourceBundle().getString("lblVremePredstave")+
  117.             MainFrame.getInstance().getResourceBundle().getString("lblFormatVremena")+
  118.             " *");
  119.     lblVremePredstave.setPreferredSize(lblDimension);
  120.    
  121.    
  122.     txtVremePredstave = new JFormattedTextField(new SimpleDateFormat("hh-mm"));
  123.     txtVremePredstave.setColumns(5);
  124.     txtVremePredstave.addKeyListener(new MyKeyListenerTime());
  125.     txtVremePredstave.setName("VremeIgranjaPredstave");
  126.    
  127.     txtVremePredstave.setEnabled(mode != StanjeDijaloga.BROWSE && mode != StanjeDijaloga.UPDATE);
  128.     panVremePredstave.add(lblVremePredstave);
  129.     panVremePredstave.add(txtVremePredstave);
  130.     boxCentar.add(panVremePredstave);
  131.     //-----------------------------------------------------------
  132.     JPanel panSalaPredstave= new JPanel(new FlowLayout(FlowLayout.LEFT));
  133.     lblSalaPredstave= new JLabel(
  134.             MainFrame.getInstance().getResourceBundle().getString("lblSalaPredstave")+" *");
  135.     lblSalaPredstave.setPreferredSize(lblDimension);
  136.    
  137.    
  138.     cmbSalaPredstave = new JComboBox();
  139.    
  140.    
  141.     Iterator<String> iterSale = ServisnaStanica.getInstance().getSale().getSaleIterator();
  142.    
  143.     while(iterSale.hasNext()){
  144.         try{
  145.             cmbSalaPredstave.addItem(ServisnaStanica.getInstance().getSale().getSala(iterSale.next()));
  146.         }catch(ElementNePostoji e){
  147.             e.printStackTrace();
  148.         }
  149.     }
  150.    
  151.    
  152.     cmbSalaPredstave.setEnabled(mode != StanjeDijaloga.BROWSE && mode!= StanjeDijaloga.UPDATE);
  153.      panSalaPredstave.add(lblSalaPredstave);
  154.      panSalaPredstave.add(cmbSalaPredstave);
  155.    
  156.  boxCentar.add(panSalaPredstave);
  157.     //-----------------------------------------------------------
  158.     JPanel panKojiPut= new JPanel(new FlowLayout(FlowLayout.LEFT));
  159.     lblKojiPut= new JLabel(
  160.             MainFrame.getInstance().getResourceBundle().getString("lblKojiPut"));
  161.     lblKojiPut.setPreferredSize(lblDimension);
  162.     txtKojiPut = new JTextField(3);
  163.     txtKojiPut.addKeyListener(new MyKeyListener());
  164.     txtKojiPut.setName("KojiPutIgranje");
  165.    
  166.     txtKojiPut.setEnabled(mode != StanjeDijaloga.BROWSE);
  167.     panKojiPut.add(lblKojiPut);
  168.     panKojiPut.add(txtKojiPut);
  169.     boxCentar.add(panKojiPut);
  170.    
  171.     add(boxCentar, BorderLayout.CENTER);
  172.        
  173.     }
  174.    
  175.    
  176.  
  177.  
  178.     public JComboBox getCmbNazivPredstave() {
  179.         return cmbNazivPredstave;
  180.     }
  181.  
  182.  
  183.     public void setCmbNazivPredstave(JComboBox cmbNazivPredstave) {
  184.         this.cmbNazivPredstave = cmbNazivPredstave;
  185.     }
  186.  
  187.  
  188.  
  189.  
  190.     public JComboBox getCmbSalaPredstave() {
  191.         return cmbSalaPredstave;
  192.     }
  193.  
  194.  
  195.     public void setCmbSalaPredstave(JComboBox cmbSalaPredstave) {
  196.         this.cmbSalaPredstave = cmbSalaPredstave;
  197.     }
  198.  
  199.    
  200.     public JFormattedTextField getTxtDatumPredstave() {
  201.         return txtDatumPredstave;
  202.     }
  203.  
  204.  
  205.  
  206.  
  207.     public void setTxtDatumPredstave(JFormattedTextField txtDatumPredstave) {
  208.         this.txtDatumPredstave = txtDatumPredstave;
  209.     }
  210.  
  211.  
  212.  
  213.  
  214.     public JFormattedTextField getTxtVremePredstave() {
  215.         return txtVremePredstave;
  216.     }
  217.  
  218.  
  219.  
  220.  
  221.     public void setTxtVremePredstave(JFormattedTextField txtVremePredstave) {
  222.         this.txtVremePredstave = txtVremePredstave;
  223.     }
  224.  
  225.  
  226.  
  227.  
  228.     boolean isLegalDate(String s) {
  229.        
  230.         if(Locale.getDefault().equals(new Locale("en", "US")) ) {
  231.              SimpleDateFormat sdf = new SimpleDateFormat("MM.dd.yyyy");
  232.              sdf.setLenient(false);
  233.              return sdf.parse(s, new ParsePosition(0)) != null;
  234.         }
  235.             else {
  236.                 SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
  237.                  sdf.setLenient(false);
  238.                  return sdf.parse(s, new ParsePosition(0)) != null;
  239.             }
  240.        
  241.      
  242.             }
  243.    
  244.     boolean isLegalTime(String s) {
  245.            
  246.        
  247.             SimpleDateFormat sdf=new SimpleDateFormat("hh-mm");
  248.              sdf.setLenient(false);
  249.              return sdf.parse(s, new ParsePosition(0)) != null;
  250.    
  251.         }
  252.    
  253.     public Date getVreme() {
  254.         return vreme;
  255.     }
  256.  
  257.     public void setVreme(Date vreme) {
  258.         this.vreme = vreme;
  259.     }
  260.  
  261.  
  262.     public Date getDatum() {
  263.         return datum;
  264.     }
  265.  
  266.     public void setDatum(Date datum) {
  267.         this.datum = datum;
  268.     }
  269.    
  270.    
  271.    
  272.     public JTextField getTxtKojiPut() {
  273.         return txtKojiPut;
  274.     }
  275.  
  276.  
  277.  
  278.  
  279.     public void setTxtKojiPut(JTextField txtKojiPut) {
  280.         this.txtKojiPut = txtKojiPut;
  281.     }
  282.  
  283.  
  284.  
  285.  
  286.     public JLabel getLblDatumPredstave() {
  287.         return lblDatumPredstave;
  288.     }
  289.  
  290.  
  291.  
  292.     @Override
  293.     public void proveriIspravnostPodataka() throws RequiredFieldException{
  294.    
  295.        
  296.         if (txtKojiPut.getText().trim().equals("")) {
  297.             txtKojiPut.setText("0");
  298.         }  
  299.        
  300.         if (txtDatumPredstave.getText().trim().equals("")) {
  301.             txtDatumPredstave.setBackground(Color.RED);
  302.             RequiredFieldException rfe = new RequiredFieldException(MainFrame.getInstance().getResourceBundle().getString("requiredFieldMessage"));
  303.             throw rfe;
  304.         }
  305.                 else { 
  306.                
  307.                     //datum = (Date) txtDatumPredstave.getValue();
  308.                     String s = txtDatumPredstave.getText();
  309.                     SimpleDateFormat sdf=new SimpleDateFormat("dd.MM.yyyy");
  310.                     sdf.setLenient(false);
  311.                     datum =sdf.parse(s, new ParsePosition(0));
  312.                 }
  313.        
  314.  
  315.         if (txtVremePredstave.getText().trim().equals("") ) {
  316.             txtVremePredstave.setBackground(Color.RED);
  317.             RequiredFieldException rfe = new RequiredFieldException(MainFrame.getInstance().getResourceBundle().getString("requiredFieldMessage"));
  318.             throw rfe;
  319.         }  
  320.         else {
  321.            
  322.             // vreme = (Date) txtVremePredstave.getValue();
  323.             String s =txtVremePredstave.getText();
  324.             SimpleDateFormat sdf=new SimpleDateFormat("hh-mm");
  325.             sdf.setLenient(false);
  326.             vreme = sdf.parse(s, new ParsePosition(0));
  327.        
  328.             if( isInterference() ) {
  329.             txtVremePredstave.setBackground(Color.RED);
  330.             RequiredFieldException rfe = new RequiredFieldException(MainFrame.getInstance().getResourceBundle().getString("interference"));
  331.             throw rfe;
  332.             }
  333.        
  334.         }
  335.        
  336.        
  337.     }
  338.        
  339.        
  340.    
  341.     public boolean isInterference() {
  342.        
  343.         Iterator<String> iterIgranja =ServisnaStanica.getInstance().getIgranjePredstave().getIgranjePredstavaIterator();
  344.        
  345.         while(iterIgranja.hasNext()){
  346.                
  347.             try {
  348.                 Igranje igranje =ServisnaStanica.getInstance().getIgranjePredstave().getIgranje(iterIgranja.next());
  349.                 Predstava p= (Predstava) cmbNazivPredstave.getSelectedItem();
  350.                 int t = p.getTrajanjePredstave();
  351.                 int trajanje_faktor =60*1000;
  352.                 //**********************************************************
  353.                 Date pocetak_nova = vreme;
  354.                 Date zavrsetak_nove = new Date();
  355.                 zavrsetak_nove.setTime(vreme.getTime()+trajanje_faktor * t);
  356.                 //************************************************************
  357.                
  358.                
  359.                 Date pocetak_stare = new Date();
  360.                 pocetak_stare = igranje.getVreme();
  361.                 Date zavrsetak_stare = new Date();
  362.                 zavrsetak_stare = igranje.getDateVremeZavrsetka();
  363.                 //**********************************************************
  364.            
  365.                
  366.                 System.out.println(pocetak_nova);
  367.                 System.out.println(zavrsetak_nove);
  368.                
  369.                 System.out.println(pocetak_stare);
  370.                 System.out.println(zavrsetak_stare);
  371.                 int i = igranje.getDatum().compareTo(datum);
  372.                 System.out.println(i);
  373.         /*     
  374.     if( igranje.getSala().equals(cmbSalaPredstave.getSelectedItem() ) && i==1 ) {
  375.                    
  376.                    
  377.         if(zavrsetak_nove.before(pocetak_stare) )
  378.             return false;
  379.                    
  380.        
  381.        
  382.     return true;
  383.    
  384.     }
  385.    
  386.     if( igranje.getSala().equals(cmbSalaPredstave.getSelectedItem() ) && i== -1 ) {
  387.        
  388.        
  389.         if( zavrsetak_stare.before(pocetak_nova) )
  390.             return false;
  391.                    
  392.                    
  393.        
  394.     return true;
  395.    
  396.     }*/
  397.                
  398.     if(igranje.getSala().equals(cmbSalaPredstave.getSelectedItem()) && igranje.getDatum().equals(datum) ) {
  399.            
  400.                 if( zavrsetak_nove.before(pocetak_stare) )
  401.                         return false;
  402.            
  403.                 if(pocetak_nova.after(zavrsetak_stare) )
  404.                         return false;
  405.                
  406.                
  407.                 return true;
  408.                
  409.         }
  410.    
  411.    
  412.             }catch(ElementNePostoji e){
  413.                     e.printStackTrace();
  414.                 }
  415.                
  416.        
  417.         }
  418.         return false;
  419.     }
  420.        
  421. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement