package cz.cvut.fel.restauracefel.smeny.smeny_gui; import java.awt.Insets; import java.io.FileNotFoundException; import java.rmi.NotBoundException; import java.rmi.RemoteException; import java.util.logging.Level; import java.util.logging.Logger; import cz.cvut.fel.restauracefel.library.service.Validator; import cz.cvut.fel.restauracefel.smeny.SmenyController.SmenyController; import java.util.Date; import cz.cvut.fel.restauracefel.smeny_service.ServiceFacade; import javax.swing.JSpinner; import javax.swing.SpinnerDateModel; /** * Trida reprezentujici GUI formular pro vytvareni noveho typu směny. * * @author Martin Kosek */ public class CreateShiftForm extends AbstractForm { private StatusBar statusBar = null; private MainFrame parent = null; /** * Konstruktor tridy CreateShiftForm. * * @param parent * @param bar * @throws java.rmi.RemoteException * @throws java.rmi.NotBoundException * @throws java.io.FileNotFoundException */ public CreateShiftForm(MainFrame parent, StatusBar bar) throws FileNotFoundException, NotBoundException, RemoteException { this.parent = parent; this.statusBar = bar; loadAllData(); initComponents(); clearFields(); refresh(); } /** * Metoda prenastavuje statusBar. */ @Override protected void refresh() { statusBar.setMessage("Tento formulář slouží k vytváření nového typu směny."); this.repaint(); } /** * Metoda kontrolujici spravnost vyplnenych udaju. * * @return Vraci index urcujici vstupni komponentu, ktera obsahuje * neplatny vstup. Pokud je vse vporadku tak navraci 0. */ @Override /*protected EnumSpravnost isValidInput() { if (!Validator.isText(jTextFieldName)) { return EnumSpravnost.NeniToSpravne; } return EnumSpravnost.JeToSpravne; } */ /** * Metoda cisti vsechny vstupni pole formulare. */ //@Override protected void clearFields() { Validator.clearTextField(shiftNameTextField); this.workRoleComboBox.setSelectedIndex(0); } /** * Metoda vytvari a zobrazuje formular pro objednani polozek na ucet. * * @param accountId id uctu, na ktery se bude objednavat */ protected void loadAllData() throws RemoteException, FileNotFoundException, NotBoundException { SmenyController.getInstance().generateTableDataTypeShifts(); SmenyController.getInstance().generateComboBoxRoles(ServiceFacade.getInstance().getAllRoles()); /*try { CreateOrderForm createOrderForm = new CreateOrderForm(parent, statusBar, accountId, MainFrame.loggedUser.getUserAttendanceId()); parent.panel.getViewport().add(createOrderForm); parent.panel.validate(); parent.panel.repaint(); parent.refreshWindowLayout(); refresh(); } catch (FileNotFoundException fnfe) { JOptionPane.showMessageDialog(this, "Konfigurační soubor \"" + ConfigParser.getConfigFile() + "\" nebyl nalezen.", "Chyba", JOptionPane.ERROR_MESSAGE); } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(this, "Nelze navázat spojení se serverem.", "Chyba komunikace", JOptionPane.ERROR_MESSAGE); } */ } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { billPanel = new BackgroundPanel(); shiftNameTextField = new javax.swing.JTextField(); jLabelInfoText = new javax.swing.JLabel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); workRoleComboBox = new javax.swing.JComboBox(); fromSpinner = new javax.swing.JSpinner(new SpinnerDateModel()); toSpinner = new javax.swing.JSpinner(new SpinnerDateModel()); jButtonSaveShift = new javax.swing.JButton(); jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); shiftTable = new javax.swing.JTable(); jLabelTitle = new javax.swing.JLabel(); setBackground(javax.swing.UIManager.getDefaults().getColor("CheckBox.light")); billPanel.setBackground(javax.swing.UIManager.getDefaults().getColor("CheckBox.light")); billPanel.setOpaque(false); shiftNameTextField.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N shiftNameTextField.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true)); shiftNameTextField.setMargin(new Insets(10, 10, 10, 10)); jLabelInfoText.setFont(new java.awt.Font("Calibri", 1, 22)); jLabelInfoText.setText("Nový typ směny"); jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); jLabel1.setText("Pacovní role:"); jLabel2.setFont(new java.awt.Font("Tahoma", 1, 14)); jLabel2.setText("Od:"); jLabel3.setFont(new java.awt.Font("Calibri", 1, 14)); jLabel3.setForeground(new java.awt.Color(0, 102, 102)); jLabel3.setText("Název směny:"); jLabel4.setFont(new java.awt.Font("Tahoma", 1, 14)); jLabel4.setText("Do:"); workRoleComboBox.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N workRoleComboBox.setModel(SmenyController.getInstance().getModelRoles()); fromSpinner.setFont(new java.awt.Font("Tahoma", 0, 12)); fromSpinner.setMinimumSize(new java.awt.Dimension(50, 20)); JSpinner.DateEditor timeEditor1 = new JSpinner.DateEditor(fromSpinner, "HH:mm"); fromSpinner.setEditor(timeEditor1); fromSpinner.setValue(new Date(0)); toSpinner.setFont(new java.awt.Font("Tahoma", 0, 12)); toSpinner.setMinimumSize(new java.awt.Dimension(50, 20)); JSpinner.DateEditor timeEditor2 = new JSpinner.DateEditor(toSpinner, "HH:mm"); toSpinner.setEditor(timeEditor2); toSpinner.setValue(new Date(0)); jButtonSaveShift.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/left-red.png"))); // NOI18N jButtonSaveShift.setText("Uložit"); jButtonSaveShift.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jButtonSaveShift.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonSaveShiftActionPerformed(evt); } }); jPanel1.setPreferredSize(new java.awt.Dimension(537, 455)); shiftTable.setFont(new java.awt.Font("Calibri", 0, 14)); shiftTable.setModel(SmenyController.getInstance().getModelTypeWorkShift()); jScrollPane1.setViewportView(shiftTable); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 554, Short.MAX_VALUE) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 433, Short.MAX_VALUE) .addContainerGap()) ); javax.swing.GroupLayout billPanelLayout = new javax.swing.GroupLayout(billPanel); billPanel.setLayout(billPanelLayout); billPanelLayout.setHorizontalGroup( billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(billPanelLayout.createSequentialGroup() .addGap(24, 24, 24) .addGroup(billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabelInfoText, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(shiftNameTextField, javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, billPanelLayout.createSequentialGroup() .addGroup(billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel2) .addComponent(jLabel4) .addComponent(jLabel1)) .addGap(18, 18, 18) .addGroup(billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(toSpinner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(fromSpinner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(workRoleComboBox, 0, 140, Short.MAX_VALUE) .addComponent(jButtonSaveShift, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 115, Short.MAX_VALUE) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 574, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); billPanelLayout.setVerticalGroup( billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(billPanelLayout.createSequentialGroup() .addGroup(billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(billPanelLayout.createSequentialGroup() .addGap(19, 19, 19) .addComponent(jLabelInfoText) .addGap(11, 11, 11) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(shiftNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(30, 30, 30) .addGroup(billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(workRoleComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(28, 28, 28) .addGroup(billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(fromSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(39, 39, 39) .addGroup(billPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4) .addComponent(toSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(70, 70, 70) .addComponent(jButtonSaveShift, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(27, Short.MAX_VALUE)) ); jButtonSaveShift.getAccessibleContext().setAccessibleName("Přidat směnu"); jLabelTitle.setBackground(new java.awt.Color(255, 255, 255)); jLabelTitle.setFont(new java.awt.Font("Tahoma", 0, 18)); jLabelTitle.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabelTitle.setText("Vytvořit nový typ směny"); jLabelTitle.setOpaque(true); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(33, 33, 33) .addComponent(billPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(30, Short.MAX_VALUE)) .addComponent(jLabelTitle, javax.swing.GroupLayout.DEFAULT_SIZE, 1032, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabelTitle, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(billPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(82, 82, 82)) ); }// </editor-fold>//GEN-END:initComponents private void saveTypeWorkshift() throws FileNotFoundException, NotBoundException, RemoteException { String shiftName = this.shiftNameTextField.getText(); String roleName = (String) this.workRoleComboBox.getSelectedItem(); Date dateFrom = (Date) fromSpinner.getValue(); Date dateTo = (Date) toSpinner.getValue(); boolean result = SmenyController.getInstance().saveTypeWorkshift(shiftName, roleName, dateFrom, dateTo); if (result) { this.loadAllData(); this.shiftTable.setModel(SmenyController.getInstance().getModelTypeWorkShift()); //nastavení implicitních hodnot this.clearFields(); } } private void jButtonSaveShiftActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSaveShiftActionPerformed try { saveTypeWorkshift(); /* TODO - zobrazit Keyboard KeyboardDialog keyboard = new KeyboardDialog(parent, true); keyboard.setLocation(point); keyboard.setTextField(jTextFieldName); keyboard.setVisible(true); * */ } catch (FileNotFoundException ex) { Logger.getLogger(CreateShiftForm.class.getName()).log(Level.SEVERE, null, ex); } catch (NotBoundException ex) { Logger.getLogger(CreateShiftForm.class.getName()).log(Level.SEVERE, null, ex); } catch (RemoteException ex) { Logger.getLogger(CreateShiftForm.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_jButtonSaveShiftActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel billPanel; private javax.swing.JSpinner fromSpinner; private javax.swing.JButton jButtonSaveShift; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabelInfoText; private javax.swing.JLabel jLabelTitle; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField shiftNameTextField; private javax.swing.JTable shiftTable; private javax.swing.JSpinner toSpinner; private javax.swing.JComboBox workRoleComboBox; // End of variables declaration//GEN-END:variables }