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.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 formulra pro spravu smen zamestnancem.
* Zamestnanec se muze prihlasovat, potvrzovat a odhlasovat ze smeny.
*
* @author Martin Kosek
*/
public class OverviewEmployeeShiftForm extends AbstractForm {
private StatusBar statusBar = null;
private MainFrame parent = null;
private Point point = new Point(550, 210);
private JPopupMenu contextMenu = null;
private OverviewEmployeeShiftForm currentForm = this;
private Locale locale = new Locale("cs", "CZ");
String[] comboBoxItems = new String[]{"Vše", "Moje role", "Moje přihlášené", "Mnou obsazené", "Mnou potvrzené", "Mnou přihlášené nebo obsazené"};
/**
* Konstruktor tridy CreateShiftForm.
*
* @param parent
* @param bar
* @throws java.rmi.RemoteException
* @throws java.rmi.NotBoundException
* @throws java.io.FileNotFoundException
*/
public OverviewEmployeeShiftForm(MainFrame parent, StatusBar bar) throws FileNotFoundException, NotBoundException, RemoteException {
//osf = this;
this.parent = parent;
this.statusBar = bar;
initAllData();
initComponents();
initMyComponents();
setDateFromToWeek();
refresh();
}
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);
}
private void initMyComponents() {
contextMenu = new JPopupMenu();
contextMenu.add(new LoginCurrentUserAction(this, this.jTableWorkShiftOverview));
contextMenu.add(new LogoutCurrentUserAction(this, this.jTableWorkShiftOverview));
contextMenu.add(new ApproveOccupyAction(this, this.jTableWorkShiftOverview));
contextMenu.add(new RequestCancelOccupationAction(this, 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 point = e.getPoint();
// get the row index that contains that coordinate
int rowNumber = jTableWorkShiftOverview.rowAtPoint(point);
// 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) point.getX(), (int) point.getY());
currentForm.repaint(); //always redisplay screen
}
}
});
jComboBoxFilter.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent me) {
currentForm.repaint();
}
});
}
/**
* Metoda prenastavuje statusBar.
*/
@Override
protected void refresh() {
statusBar.setMessage("Tento formulář slouží k přihlašování a odhlašování na směny.");
}
/** 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();
jLabelOverviewWorkShift = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jButtonPreviousWeek = new javax.swing.JButton();
jButtonNextWeek = new javax.swing.JButton();
jTextFieldWeekRange = new javax.swing.JTextField();
jLabelWeek = 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();
jButtonLoginUser = new javax.swing.JButton();
jButtonLogoutUser = new javax.swing.JButton();
jButtonApprovedOccupy = new javax.swing.JButton();
jButtonRequestCancel = 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 - zaměstnanec");
jLabelTitle.setOpaque(true);
jLabelOverviewWorkShift.setFont(new java.awt.Font("Calibri", 1, 22));
jLabelOverviewWorkShift.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");
jLabelWeek.setFont(new java.awt.Font("Calibri", 1, 14));
jLabelWeek.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, 230, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(refreshTableButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabelWeek)
.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, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.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(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jComboBoxFilter, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE)
.addComponent(refreshTableButton, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldWeekRange, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE)
.addComponent(jTextFieldWeek, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, 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)
.addComponent(jLabelWeek)))
.addContainerGap())
);
jPanel2.setPreferredSize(new java.awt.Dimension(620, 371));
jTableWorkShiftOverview.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
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, 690, 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);
jButtonLoginUser.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/left-red.png"))); // NOI18N
jButtonLoginUser.setText("Přihlásit");
jButtonLoginUser.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jButtonLoginUser.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonLoginUserActionPerformed(evt);
}
});
jButtonLogoutUser.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/left-red.png"))); // NOI18N
jButtonLogoutUser.setText("Odhlásit");
jButtonLogoutUser.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jButtonLogoutUser.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonLogoutUserActionPerformed(evt);
}
});
jButtonApprovedOccupy.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/left-red.png"))); // NOI18N
jButtonApprovedOccupy.setText("Potvrdit obsazení");
jButtonApprovedOccupy.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jButtonApprovedOccupy.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonApprovedOccupyActionPerformed(evt);
}
});
jButtonRequestCancel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/left-red.png"))); // NOI18N
jButtonRequestCancel.setText("Žádost o zrušení obsazení");
jButtonRequestCancel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jButtonRequestCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonRequestCancelActionPerformed(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(jButtonLoginUser, javax.swing.GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE)
.addComponent(jButtonLogoutUser, javax.swing.GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE)
.addComponent(jButtonApprovedOccupy, javax.swing.GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE)
.addComponent(jButtonRequestCancel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(49, 49, 49)
.addComponent(jButtonLoginUser, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonLogoutUser, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonApprovedOccupy, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonRequestCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(27, 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, 981, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabelOverviewWorkShift)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 584, Short.MAX_VALUE))
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 710, 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(32, 32, 32))
);
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(jLabelOverviewWorkShift, 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, 358, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(61, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
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 jButtonNextWeekActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonNextWeekActionPerformed
setDaysInWeek(7, 13);
reloadTable(getCurrentFilter());
}//GEN-LAST:event_jButtonNextWeekActionPerformed
private void jButtonLoginUserActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonLoginUserActionPerformed
int rowNumber = this.jTableWorkShiftOverview.getSelectedRow(); //bude slouzit jako index pro datovou strukturu ve ktere bude ulozeno id smeny
if (rowNumber > -1) {
try {
int workShiftId = SmenyController.getInstance().getWorkShiftIdFromOverViewTable(rowNumber);
SmenyController.getInstance().saveCurrentUserToWorkShift(workShiftId);
reloadTable(getCurrentFilter());
} catch (FileNotFoundException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (RemoteException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
logError(ex);
}
} else {
parent.showMessageDialogInformation("Vyberte řádek", "Informace");
}
}//GEN-LAST:event_jButtonLoginUserActionPerformed
private void jButtonLogoutUserActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonLogoutUserActionPerformed
int rowNumber = this.jTableWorkShiftOverview.getSelectedRow(); //bude slouzit jako index pro datovou strukturu ve ktere bude ulozeno id smeny
if (rowNumber > -1) {
try {
int idWorkshift = SmenyController.getInstance().getWorkShiftIdFromOverViewTable(rowNumber);
SmenyController.getInstance().logoutCurrentUserFromWorkShift(idWorkshift);
reloadTable(getCurrentFilter());
} catch (FileNotFoundException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (RemoteException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
logError(ex);
}
} else {
parent.showMessageDialogInformation("Vyberte řádek", "Informace");
}
}//GEN-LAST:event_jButtonLogoutUserActionPerformed
private void jButtonApprovedOccupyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonApprovedOccupyActionPerformed
int rowNumber = this.jTableWorkShiftOverview.getSelectedRow(); //bude slouzit jako index pro datovou strukturu ve ktere bude ulozeno id smeny
String message = "Potvrzeno";
if (rowNumber > -1) {
try {
int idWorkshift = SmenyController.getInstance().getWorkShiftIdFromOverViewTable(rowNumber);
SmenyController.getInstance().updateOccupationMessageUser(idWorkshift, message);
reloadTable(getCurrentFilter());
} catch (FileNotFoundException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (RemoteException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
parent.showMessageDialogInformation("Vyberte řádek", "Informace");
}
}//GEN-LAST:event_jButtonApprovedOccupyActionPerformed
private void jButtonRequestCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonRequestCancelActionPerformed
int rowNumber = this.jTableWorkShiftOverview.getSelectedRow(); //bude slouzit jako index pro datovou strukturu ve ktere bude ulozeno id smeny
String message = "Zažádáno o zrušení";
if (rowNumber > -1) {
try {
int idWorkshift = SmenyController.getInstance().getWorkShiftIdFromOverViewTable(rowNumber);
SmenyController.getInstance().updateOccupationMessageUser(idWorkshift, message);
reloadTable(getCurrentFilter());
} catch (FileNotFoundException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (RemoteException ex) {
logError(ex);
Logger.getLogger(OverviewEmployeeShiftForm.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
parent.showMessageDialogInformation("Vyberte řádek", "Informace");
}
}//GEN-LAST:event_jButtonRequestCancelActionPerformed
/**
* 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();
}
private void jButtonPreviousWeekActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonPreviousWeekActionPerformed
setDaysInWeek(-7, -1);
reloadTable(getCurrentFilter());
}//GEN-LAST:event_jButtonPreviousWeekActionPerformed
/**
* 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.ROLE_USER;
case 2:
return WorkShiftFilter.LOGIN_USER;
case 3:
return WorkShiftFilter.OCCUPATION_USER;
case 4:
return WorkShiftFilter.CONFIRMED_USER;
case 5:
return WorkShiftFilter.LOGIN_OR_OCCUPATION_USER;
default:
return WorkShiftFilter.ALL;
}
}
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 jButtonApprovedOccupy;
private javax.swing.JButton jButtonLoginUser;
private javax.swing.JButton jButtonLogoutUser;
private javax.swing.JButton jButtonNextWeek;
private javax.swing.JButton jButtonPreviousWeek;
private javax.swing.JButton jButtonRequestCancel;
private javax.swing.JComboBox jComboBoxFilter;
private javax.swing.JLabel jLabelOverviewWorkShift;
private javax.swing.JLabel jLabelTitle;
private javax.swing.JLabel jLabelWeek;
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
}