package cz.cvut.fel.restauracefel.smeny.smeny_gui;
import java.awt.Point;
import java.io.FileNotFoundException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import cz.cvut.fel.restauracefel.library.service.EmptyListException;
import cz.cvut.fel.restauracefel.smeny.SmenyController.SmenyController;
import cz.cvut.fel.restauracefel.smeny.SmenyController.SmenyController.WorkShiftFilter;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JPopupMenu;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;
/**
* Trida reprezentujici formular pro spravu planovanych smen ze strany vedouciho.
*
* @author Martin Kosek
*/
public class OverviewLeaderShiftForm extends AbstractForm {
private ChooseEmployeeDialog chooseEmployeeDialog = null;
private ChooseOcuppyEmployeeDialog chooseOcuppyEmployeeDialog = null;
private StatusBar statusBar = null;
private MainFrame parent = null;
private Point point = new Point(550, 210);
private JPopupMenu contextMenu = null;
private OverviewLeaderShiftForm currentForm = this;
private Locale locale = new Locale("cs", "CZ");
String[] comboBoxItems = new String[]{"Vše", "Obsazené", "Neobsazené", "Potvrzené", "Nepotvrzené", "Žádosti o zrušení"};
/**
* Constructor of the OverviewLeaderShiftForm.
*
* @param parent
* @param bar
* @throws java.rmi.RemoteException
* @throws java.rmi.NotBoundException
* @throws java.io.FileNotFoundException
*/
public OverviewLeaderShiftForm(MainFrame parent, StatusBar bar) throws FileNotFoundException, NotBoundException, RemoteException {
this.parent = parent;
this.statusBar = bar;
initAllData();
initComponents();
initMyComponents();
setDateFromToWeek();
refresh();
}
private void initMyComponents() {
contextMenu = new JPopupMenu();
contextMenu.add(new OccupyAction(parent, this, jTableWorkShiftOverview));
contextMenu.add(new CancelOccupationAction(this, jTableWorkShiftOverview));
contextMenu.add(new LoginEmployeeAction(parent, this, jTableWorkShiftOverview));
contextMenu.addSeparator();
contextMenu.add("Konec");
jTableWorkShiftOverview.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) { //enable selection of row int table with left and right mouse button
// Left mouse click
if (SwingUtilities.isLeftMouseButton(e)) {
// Do something
} // Right mouse click
else if (SwingUtilities.isRightMouseButton(e)) {
// get the coordinates of the mouse click
Point p = e.getPoint();
// get the row index that contains that coordinate
int rowNumber = jTableWorkShiftOverview.rowAtPoint(p);
// Get the ListSelectionModel of the JTable
ListSelectionModel model = jTableWorkShiftOverview.getSelectionModel();
// set the selected interval of rows. Using the "rowNumber"
// variable for the beginning and end selects only that one row.
model.setSelectionInterval(rowNumber, rowNumber);
contextMenu.show(jTableWorkShiftOverview, (int) p.getX(), (int) p.getY());
currentForm.repaint(); //always redisplay screen
}
}
});
jComboBoxFilter.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent me) {
currentForm.repaint(); //always redisplay screen
}
});
}
/**
* Metoda prenastavuje statusBar.
*/
@Override
protected void refresh() {
statusBar.setMessage("Tento formulář slouží k přihlašování a obsazování směn.");
}
private void initAllData() throws FileNotFoundException, RemoteException, NotBoundException {
SmenyController.getInstance().initRangeDate(locale);
SmenyController.getInstance().generateTableWorkShiftsOverview(SmenyController.WorkShiftFilter.ALL);
}
protected void reloadTable(WorkShiftFilter filter) {
try {
SmenyController.getInstance().generateTableWorkShiftsOverview(filter);
jTableWorkShiftOverview.setModel(SmenyController.getInstance().getModelOverviewWorkShift());
} catch (FileNotFoundException ex) {
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (RemoteException ex) {
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void setDateFromToWeek() {
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
String firstDate = sdf.format(SmenyController.getInstance().getDateFrom());
String lastDate = sdf.format(SmenyController.getInstance().getDateTo());
int week = SmenyController.getInstance().getWeek();
jTextFieldWeek.setText(String.valueOf(week));
jTextFieldWeekRange.setText(firstDate + " - " + lastDate);
}
/** 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() {
jLabelTitle = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jButtonPreviousWeek = new javax.swing.JButton();
jButtonNextWeek = new javax.swing.JButton();
jTextFieldWeekRange = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
jTextFieldWeek = new javax.swing.JTextField();
jComboBoxFilter = new javax.swing.JComboBox();
refreshTableButton = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jTableWorkShiftOverview = new javax.swing.JTable();
jPanel3 = new javax.swing.JPanel();
jButtonOccupy = new javax.swing.JButton();
jButtonCancelOccupy = new javax.swing.JButton();
jButtonLoginEmployee = new javax.swing.JButton();
setBackground(javax.swing.UIManager.getDefaults().getColor("CheckBox.light"));
setPreferredSize(new java.awt.Dimension(948, 577));
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("Přehled směn - vedoucí");
jLabelTitle.setOpaque(true);
jLabel5.setFont(new java.awt.Font("Calibri", 1, 22));
jLabel5.setText("Přehled směn");
jPanel1.setOpaque(false);
jButtonPreviousWeek.setText("<");
jButtonPreviousWeek.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonPreviousWeekActionPerformed(evt);
}
});
jButtonNextWeek.setText(">");
jButtonNextWeek.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonNextWeekActionPerformed(evt);
}
});
jTextFieldWeekRange.setEditable(false);
jTextFieldWeekRange.setFont(new java.awt.Font("Calibri", 0, 14));
jTextFieldWeekRange.setText("9.5.2011-14.5.2011");
jTextFieldWeekRange.setToolTipText("První a poslední den zvoleného týdne.");
jLabel8.setFont(new java.awt.Font("Calibri", 1, 14));
jLabel8.setText("Týden:");
jTextFieldWeek.setEditable(false);
jTextFieldWeek.setFont(new java.awt.Font("Calibri", 0, 14));
jTextFieldWeek.setText("14");
jComboBoxFilter.setFont(new java.awt.Font("Calibri", 0, 14));
jComboBoxFilter.setModel(new javax.swing.DefaultComboBoxModel(comboBoxItems));
jComboBoxFilter.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBoxFilterActionPerformed(evt);
}
});
refreshTableButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/refresh.png"))); // NOI18N
refreshTableButton.setToolTipText("Aktualizovat tabulku");
refreshTableButton.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
refreshTableButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
refreshTableButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jComboBoxFilter, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(refreshTableButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextFieldWeek, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextFieldWeekRange, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonPreviousWeek, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButtonNextWeek, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(refreshTableButton, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jComboBoxFilter, javax.swing.GroupLayout.DEFAULT_SIZE, 33, Short.MAX_VALUE)
.addComponent(jTextFieldWeekRange, javax.swing.GroupLayout.DEFAULT_SIZE, 33, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldWeek, javax.swing.GroupLayout.DEFAULT_SIZE, 33, Short.MAX_VALUE)
.addComponent(jLabel8))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonPreviousWeek, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButtonNextWeek, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
jTableWorkShiftOverview.setFont(new java.awt.Font("Calibri", 0, 14));
jTableWorkShiftOverview.setModel(SmenyController.getInstance().getModelOverviewWorkShift());
jTableWorkShiftOverview.setRowHeight(25);
jScrollPane1.setViewportView(jTableWorkShiftOverview);
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 602, Short.MAX_VALUE)
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 336, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel3.setOpaque(false);
jButtonOccupy.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/left-red.png"))); // NOI18N
jButtonOccupy.setText("Obsadit");
jButtonOccupy.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jButtonOccupy.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonOccupyActionPerformed(evt);
}
});
jButtonCancelOccupy.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/left-red.png"))); // NOI18N
jButtonCancelOccupy.setText("Zrušit obsazení");
jButtonCancelOccupy.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jButtonCancelOccupy.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonCancelOccupyActionPerformed(evt);
}
});
jButtonLoginEmployee.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/left-red.png"))); // NOI18N
jButtonLoginEmployee.setText("Přihlásit");
jButtonLoginEmployee.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jButtonLoginEmployee.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonLoginEmployeeActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButtonOccupy, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE)
.addComponent(jButtonCancelOccupy, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE)
.addComponent(jButtonLoginEmployee, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE))
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(49, 49, 49)
.addComponent(jButtonOccupy, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonCancelOccupy, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonLoginEmployee, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelTitle, javax.swing.GroupLayout.DEFAULT_SIZE, 950, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel5)
.addContainerGap(814, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(131, 131, 131))
);
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(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(60, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
private void jButtonNextWeekActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonNextWeekActionPerformed
setDaysInWeek(7, 13);
reloadTable(getCurrentFilter());
}//GEN-LAST:event_jButtonNextWeekActionPerformed
private void jButtonOccupyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOccupyActionPerformed
int rowNumber = jTableWorkShiftOverview.getSelectedRow();
if (rowNumber > -1) {
try {
chooseOcuppyEmployeeDialog = new ChooseOcuppyEmployeeDialog(parent, true, rowNumber, this);
chooseOcuppyEmployeeDialog.setLocation(point);
chooseOcuppyEmployeeDialog.setVisible(true);
} catch (RemoteException ex) {
logError(ex);
Logger.getLogger(CreateTemplateForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
logError(ex);
Logger.getLogger(CreateTemplateForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (FileNotFoundException ex) {
logError(ex);
Logger.getLogger(CreateTemplateForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
logError(ex);
}
} else {
parent.showMessageDialogInformation("Vyberte řádek", "Informace");
}
}//GEN-LAST:event_jButtonOccupyActionPerformed
private void jButtonCancelOccupyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelOccupyActionPerformed
try {
SmenyController.getInstance().cancelOccupationWorkshift(this.jTableWorkShiftOverview);
reloadTable(getCurrentFilter());
} catch (FileNotFoundException ex) {
Logger.getLogger(OverviewLeaderShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
Logger.getLogger(OverviewLeaderShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (RemoteException ex) {
Logger.getLogger(OverviewLeaderShiftForm.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButtonCancelOccupyActionPerformed
/**
* Open window for selecting employee.
*/
private void selectLoginUser() {
int rowNumber = jTableWorkShiftOverview.getSelectedRow(); //slouzi jako index pro datovou strukturu ve ktere jsou ulozena id smen
if (rowNumber > -1) {
try {
chooseEmployeeDialog = new ChooseEmployeeDialog(parent, true, rowNumber, this);
chooseEmployeeDialog.setLocation(point);
chooseEmployeeDialog.setVisible(true);
} catch (EmptyListException ex) {
logError(ex);
Logger.getLogger(CreateTemplateForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (RemoteException ex) {
logError(ex);
Logger.getLogger(CreateTemplateForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
logError(ex);
Logger.getLogger(CreateTemplateForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (FileNotFoundException ex) {
logError(ex);
Logger.getLogger(CreateTemplateForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
logError(ex);
}
} else {
parent.showMessageDialogInformation("Vyberte řádek.", "Informace");
}
}
/**
* Add or subtract number of the days from first day of thce current week
* and set new week dates.
* @param from
* @param to
*/
private void setDaysInWeek(int from, int to) {
Date date = SmenyController.getInstance().getDateFrom();
Calendar cal = Calendar.getInstance(locale);
cal.setTime(date);
cal.add(Calendar.DAY_OF_WEEK, from);//first date of the week
SmenyController.getInstance().setDateFrom(cal.getTime());
cal.setTime(date);
cal.add(Calendar.DAY_OF_WEEK, to);//last date of the week
SmenyController.getInstance().setDateTo(cal.getTime());
SmenyController.getInstance().setWeek(cal.get(Calendar.WEEK_OF_YEAR));
setDateFromToWeek();
}
/**
* Returns current filter selected in ComboBox with filters.
* @return
*/
protected SmenyController.WorkShiftFilter getCurrentFilter() {
int index = jComboBoxFilter.getSelectedIndex();
switch (index) {
case 0:
return WorkShiftFilter.ALL;
case 1:
return WorkShiftFilter.OCCUPATION;
case 2:
return WorkShiftFilter.UNOCCUPATION;
case 3:
return WorkShiftFilter.CONFIRMED;
case 4:
return WorkShiftFilter.UNCONFIRMED;
case 5:
return WorkShiftFilter.REQUEST_CANCEL;
default:
return WorkShiftFilter.ALL;
}
}
private void logError(Exception ex) {
try {
PrintWriter vystup = new PrintWriter(new FileWriter("log-chyb.txt"));
StackTraceElement[] el = ex.getStackTrace();
for (StackTraceElement els : el) {
vystup.println(els.toString());
}
vystup.println(ex.getMessage());
vystup.close();
} catch (IOException ex1) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex1);
}
}
private void jButtonLoginEmployeeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonLoginEmployeeActionPerformed
selectLoginUser();
}//GEN-LAST:event_jButtonLoginEmployeeActionPerformed
private void jButtonPreviousWeekActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonPreviousWeekActionPerformed
setDaysInWeek(-7, -1);
reloadTable(getCurrentFilter());
}//GEN-LAST:event_jButtonPreviousWeekActionPerformed
private void jComboBoxFilterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxFilterActionPerformed
reloadTable(getCurrentFilter());
this.repaint();
}//GEN-LAST:event_jComboBoxFilterActionPerformed
private void refreshTableButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshTableButtonActionPerformed
reloadTable(getCurrentFilter());
}//GEN-LAST:event_refreshTableButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButtonCancelOccupy;
private javax.swing.JButton jButtonLoginEmployee;
private javax.swing.JButton jButtonNextWeek;
private javax.swing.JButton jButtonOccupy;
private javax.swing.JButton jButtonPreviousWeek;
private javax.swing.JComboBox jComboBoxFilter;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabelTitle;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTableWorkShiftOverview;
private javax.swing.JTextField jTextFieldWeek;
private javax.swing.JTextField jTextFieldWeekRange;
private javax.swing.JButton refreshTableButton;
// End of variables declaration//GEN-END:variables
}