List of usage examples for com.vaadin.ui Button getListeners
public Collection<?> getListeners(Class<?> eventType)
From source file:com.openhris.timekeeping.AttendanceTableContainerWindow.java
VerticalLayout generateAttendanceTable() { VerticalLayout vlayout = new VerticalLayout(); vlayout.setSizeFull();//from ww w . jav a2 s. com vlayout.setSpacing(true); final Table table = new Table(); table.removeAllItems(); table.setEnabled(true); table.setSizeFull(); table.setImmediate(true); table.setColumnCollapsingAllowed(true); table.addContainerProperty("date", String.class, null); table.addContainerProperty("policy", ComboBox.class, null); table.addContainerProperty("holidays", ComboBox.class, null); table.addContainerProperty("premium", CheckBox.class, null); table.addContainerProperty("lates", TextField.class, null); table.addContainerProperty("undertime", TextField.class, null); table.addContainerProperty("overtime", TextField.class, null); table.addContainerProperty("night differential", TextField.class, null); table.addContainerProperty("duty manager", TextField.class, null); table.addContainerProperty("l/min", Double.class, null); table.addContainerProperty("u/min", Double.class, null); table.addContainerProperty("o/min", Double.class, null); table.addContainerProperty("nd/min", Double.class, null); table.addContainerProperty("dm/min", Double.class, null); table.addContainerProperty("lholiday", Double.class, null); table.addContainerProperty("sholiday", Double.class, null); table.addContainerProperty("wdo", Double.class, null); table.addContainerProperty("psday", Double.class, null); //paid non-working holiday table.addContainerProperty("latesLH", Double.class, null); table.addContainerProperty("latesSH", Double.class, null); table.addContainerProperty("latesWO", Double.class, null); table.addContainerProperty("undertimeLH", Double.class, null); table.addContainerProperty("undertimeSH", Double.class, null); table.addContainerProperty("undertimeWO", Double.class, null); table.setColumnAlignment("date", Table.ALIGN_CENTER); table.setColumnAlignment("policy", Table.ALIGN_CENTER); table.setColumnAlignment("premium", Table.ALIGN_CENTER); table.setColumnAlignment("lates", Table.ALIGN_CENTER); table.setColumnAlignment("undertime", Table.ALIGN_CENTER); table.setColumnAlignment("overtime", Table.ALIGN_CENTER); table.setColumnAlignment("night differential", Table.ALIGN_CENTER); table.setColumnAlignment("duty manager", Table.ALIGN_CENTER); table.setColumnAlignment("l/min", Table.ALIGN_RIGHT); table.setColumnAlignment("u/min", Table.ALIGN_RIGHT); table.setColumnAlignment("o/min", Table.ALIGN_RIGHT); table.setColumnAlignment("nd/min", Table.ALIGN_RIGHT); table.setColumnAlignment("dm/min", Table.ALIGN_RIGHT); table.setColumnAlignment("lholiday", Table.ALIGN_RIGHT); table.setColumnAlignment("sholiday", Table.ALIGN_RIGHT); table.setColumnAlignment("wdo", Table.ALIGN_RIGHT); table.setColumnAlignment("psday", Table.ALIGN_RIGHT); table.setColumnAlignment("latesLH", Table.ALIGN_RIGHT); table.setColumnAlignment("latesSH", Table.ALIGN_RIGHT); table.setColumnAlignment("latesWO", Table.ALIGN_RIGHT); table.setColumnAlignment("undertimeLH", Table.ALIGN_RIGHT); table.setColumnAlignment("undertimeSH", Table.ALIGN_RIGHT); table.setColumnAlignment("undertimeWO", Table.ALIGN_RIGHT); table.setColumnWidth("date", 70); table.setColumnWidth("policy", 125); table.setColumnWidth("holidays", 125); table.setColumnWidth("premium", 60); table.setColumnWidth("lates", 50); table.setColumnWidth("undertime", 60); table.setColumnWidth("overtime", 50); table.setColumnWidth("night differential", 110); table.setColumnWidth("duty manager", 80); table.setColumnWidth("l/min", 40); table.setColumnWidth("u/min", 40); table.setColumnWidth("o/min", 40); table.setColumnWidth("nd/min", 50); table.setColumnCollapsed("latesLH", true); table.setColumnCollapsed("latesSH", true); table.setColumnCollapsed("latesWO", true); table.setColumnCollapsed("undertimeLH", true); table.setColumnCollapsed("undertimeSH", true); table.setColumnCollapsed("undertimeWO", true); final String[] holidayList = { "legal-holiday", "special-holiday" }; if (getEmploymentWageEntry().equals("monthly")) { employmentWage = utilities.roundOffToTwoDecimalPlaces((employmentWage * 12) / 314); } for (int i = 0; i < dateList.size(); i++) { Object itemId = new Integer(i); final ComboBox holidays = dropDown.populateAttendanceHolidayDropDownList(new ComboBox()); holidays.setEnabled(false); holidays.setWidth("120px"); holidays.setNullSelectionAllowed(false); holidays.setData(itemId); final CheckBox premium = new CheckBox(); premium.setData(itemId); premium.setImmediate(true); final TextField lates = new TextField(); lates.setWidth("100%"); lates.setValue("0"); lates.addStyleName("numerical"); lates.setEnabled(true); lates.setData(itemId); lates.setImmediate(true); final TextField undertime = new TextField(); undertime.setWidth("100%"); undertime.setValue("0"); undertime.addStyleName("numerical"); undertime.setEnabled(true); undertime.setData(itemId); undertime.setImmediate(true); final TextField overtime = new TextField(); overtime.setWidth("100%"); overtime.setValue("0"); overtime.addStyleName("numerical"); overtime.setEnabled(true); overtime.setData(itemId); overtime.setImmediate(true); final TextField nightDifferential = new TextField(); nightDifferential.setWidth("70%"); nightDifferential.setValue("0"); nightDifferential.addStyleName("numerical"); nightDifferential.setEnabled(true); nightDifferential.setData(itemId); nightDifferential.setImmediate(true); final TextField dutyManager = new TextField(); dutyManager.setWidth("80%"); dutyManager.setValue("0"); dutyManager.addStyleName("numerical"); dutyManager.setEnabled(true); dutyManager.setData(itemId); dutyManager.setImmediate(true); final ComboBox policy = dropDown.populateAttendancePolicyDropDownList(new ComboBox()); policy.setWidth("120px"); policy.setNullSelectionAllowed(true); policy.setData(itemId); policy.addListener(new Property.ValueChangeListener() { @Override public void valueChange(Property.ValueChangeEvent event) { Object itemId = policy.getData(); Item item = table.getItem(itemId); double additionalWorkingDayOffPay = 0; holidays.removeAllItems(); for (String temp : holidayList) { holidays.addItem(temp); } premium.setValue(false); lates.setValue("0"); undertime.setValue("0"); overtime.setValue("0"); nightDifferential.setValue("0"); item.getItemProperty("l/min").setValue(0.0); item.getItemProperty("u/min").setValue(0.0); item.getItemProperty("o/min").setValue(0.0); item.getItemProperty("nd/min").setValue(0.0); item.getItemProperty("dm/min").setValue(0.0); item.getItemProperty("sholiday").setValue(0.0); item.getItemProperty("lholiday").setValue(0.0); item.getItemProperty("wdo").setValue(0.0); item.getItemProperty("psday").setValue(0.0); item.getItemProperty("psday").setValue(0.0); item.getItemProperty("latesLH").setValue(0.0); item.getItemProperty("latesSH").setValue(0.0); item.getItemProperty("latesWO").setValue(0.0); item.getItemProperty("undertimeLH").setValue(0.0); item.getItemProperty("undertimeSH").setValue(0.0); item.getItemProperty("undertimeWO").setValue(0.0); if (event.getProperty().getValue() == null) { holidays.setEnabled(false); lates.setEnabled(true); undertime.setEnabled(true); overtime.setEnabled(true); nightDifferential.setEnabled(true); dutyManager.setEnabled(true); } else if (event.getProperty().getValue().equals("holiday")) { holidays.setEnabled(true); lates.setEnabled(false); undertime.setEnabled(false); overtime.setEnabled(false); nightDifferential.setEnabled(false); dutyManager.setEnabled(false); } else if (event.getProperty().getValue().equals("working-holiday")) { holidays.setEnabled(true); lates.setEnabled(true); undertime.setEnabled(true); overtime.setEnabled(true); nightDifferential.setEnabled(true); dutyManager.setEnabled(true); } else if (event.getProperty().getValue().equals("working-day-off")) { holidays.setEnabled(true); lates.setEnabled(true); undertime.setEnabled(true); overtime.setEnabled(true); nightDifferential.setEnabled(true); dutyManager.setEnabled(true); additionalWorkingDayOffPay = computation.processAdditionalWorkingDayOff(getEmploymentWage(), getEmploymentWageEntry()); System.out.println("wdo: " + additionalWorkingDayOffPay); if (getBranch().equals("on-call and trainees")) { item.getItemProperty("wdo") .setValue(utilities.roundOffToTwoDecimalPlaces(getEmploymentWage())); } else { item.getItemProperty("wdo") .setValue(utilities.roundOffToTwoDecimalPlaces(additionalWorkingDayOffPay)); } } else { holidays.setEnabled(false); lates.setEnabled(false); undertime.setEnabled(false); overtime.setEnabled(false); nightDifferential.setEnabled(false); dutyManager.setEnabled(false); } } }); policy.setImmediate(true); holidays.addListener(new ComboBox.ValueChangeListener() { @Override public void valueChange(Property.ValueChangeEvent event) { Object itemId = holidays.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); double additionalHolidayPay = 0; double multiplePremiumPay = 0; double additionalWorkingDayOffPay = 0; premium.setValue(false); lates.setValue("0"); undertime.setValue("0"); overtime.setValue("0"); nightDifferential.setValue("0"); item.getItemProperty("sholiday").setValue(0.0); item.getItemProperty("lholiday").setValue(0.0); item.getItemProperty("latesLH").setValue(0.0); item.getItemProperty("latesSH").setValue(0.0); item.getItemProperty("latesWO").setValue(0.0); item.getItemProperty("undertimeLH").setValue(0.0); item.getItemProperty("undertimeSH").setValue(0.0); item.getItemProperty("undertimeWO").setValue(0.0); if (policyStr == null) { } else { if (policyStr.equals("working-holiday")) { if (event.getProperty().getValue().equals("legal-holiday")) { additionalHolidayPay = computation.processAdditionalHolidayPay( event.getProperty().getValue().toString(), getEmploymentWage()); item.getItemProperty("lholiday") .setValue(utilities.roundOffToTwoDecimalPlaces(additionalHolidayPay)); item.getItemProperty("sholiday").setValue(0.0); } else { additionalHolidayPay = computation.processAdditionalHolidayPay( event.getProperty().getValue().toString(), getEmploymentWage()); item.getItemProperty("sholiday") .setValue(utilities.roundOffToTwoDecimalPlaces(additionalHolidayPay)); item.getItemProperty("lholiday").setValue(0.0); } } else if (policyStr.equals("holiday")) { if (event.getProperty().getValue().equals("legal-holiday")) { if (getEmploymentWageEntry().equals("daily")) { additionalHolidayPay = computation.processAdditionalHolidayPay( event.getProperty().getValue().toString(), getEmploymentWage()); item.getItemProperty("psday") .setValue(utilities.roundOffToTwoDecimalPlaces(additionalHolidayPay)); } else { item.getItemProperty("psday").setValue(0.0); } } else { item.getItemProperty("psday").setValue(0.0); } } else if (policyStr.equals("working-day-off")) { if (event.getProperty().getValue() == null) { item.getItemProperty("psday").setValue(0.0); } else if (event.getProperty().getValue().equals("legal-holiday")) { additionalWorkingDayOffPay = computation.processAdditionalWorkingDayOff( getEmploymentWage(), getEmploymentWageEntry()); item.getItemProperty("wdo") .setValue(utilities.roundOffToTwoDecimalPlaces(additionalWorkingDayOffPay)); multiplePremiumPay = computation.processMultiplePremiumPay( event.getProperty().getValue().toString(), getEmploymentWage()); item.getItemProperty("lholiday").setValue(multiplePremiumPay); item.getItemProperty("sholiday").setValue(0.0); } else { additionalWorkingDayOffPay = computation.processAdditionalWorkingDayOff( getEmploymentWage(), getEmploymentWageEntry()); item.getItemProperty("wdo") .setValue(utilities.roundOffToTwoDecimalPlaces(additionalWorkingDayOffPay)); multiplePremiumPay = computation.processMultiplePremiumPay( event.getProperty().getValue().toString(), getEmploymentWage()); item.getItemProperty("sholiday").setValue(multiplePremiumPay); item.getItemProperty("lholiday").setValue(0.0); } } } } }); holidays.setImmediate(true); premium.addListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); lates.setValue("0"); undertime.setValue("0"); overtime.setValue("0"); nightDifferential.setValue("0"); dutyManager.setValue("0"); item.getItemProperty("l/min").setValue(0.0); item.getItemProperty("u/min").setValue(0.0); item.getItemProperty("o/min").setValue(0.0); item.getItemProperty("nd/min").setValue(0.0); item.getItemProperty("dm/min").setValue(0.0); if (event.getButton().booleanValue() == true) { premiumRate = 0.1; } else { premiumRate = 0.0; } item.getItemProperty("wdo") .setValue(utilities.roundOffToTwoDecimalPlaces( Double.parseDouble(item.getItemProperty("wdo").getValue().toString()) + (Double.parseDouble(item.getItemProperty("wdo").getValue().toString()) * premiumRate))); item.getItemProperty("lholiday") .setValue(utilities.roundOffToTwoDecimalPlaces(Double .parseDouble(item.getItemProperty("lholiday").getValue().toString()) + (Double.parseDouble(item.getItemProperty("lholiday").getValue().toString()) * premiumRate))); item.getItemProperty("sholiday") .setValue(utilities.roundOffToTwoDecimalPlaces(Double .parseDouble(item.getItemProperty("sholiday").getValue().toString()) + (Double.parseDouble(item.getItemProperty("sholiday").getValue().toString()) * premiumRate))); } }); lates.addListener(new FieldEvents.TextChangeListener() { @Override public void textChange(FieldEvents.TextChangeEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); String holidayStr = item.getItemProperty("holidays").toString(); double lateDeduction; boolean checkIfInputIsInteger = utilities.checkInputIfInteger(event.getText().trim()); if (!checkIfInputIsInteger) { getWindow().showNotification("Enter numeric format for lates!", Window.Notification.TYPE_WARNING_MESSAGE); return; } if (!event.getText().isEmpty()) { if (getBranch().equals("on-call and trainees")) { lateDeduction = computation.processEmployeesLatesForOnCall(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); item.getItemProperty("l/min") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction)); } else { if (utilities.convertStringToInteger(event.getText().trim()) > 5) { lateDeduction = computation.processEmployeesLates(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); if (policyStr == null || policyStr.isEmpty()) { item.getItemProperty("l/min") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction)); } else if (policyStr.equals("working-holiday") && holidayStr.equals("legal-holiday")) { item.getItemProperty("latesLH") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction)); item.getItemProperty("latesSH").setValue(0.0); item.getItemProperty("latesWO").setValue(0.0); item.getItemProperty("l/min").setValue(0.0); } else if (policyStr.equals("working-holiday") && holidayStr.equals("special-holiday")) { item.getItemProperty("latesLH").setValue(0.0); item.getItemProperty("latesSH") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction * 0.3)); item.getItemProperty("latesWO").setValue(0.0); if (getEmploymentWageEntry().equals("daily")) { item.getItemProperty("l/min").setValue(lateDeduction); } else { item.getItemProperty("l/min").setValue(0.0); } } else if (policyStr.equals("working-day-off")) { item.getItemProperty("latesLH").setValue(0.0); item.getItemProperty("latesSH").setValue(0.0); if (getEmploymentWageEntry().equals("daily")) { item.getItemProperty("latesWO") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction * .3)); item.getItemProperty("l/min").setValue(lateDeduction); } else { item.getItemProperty("latesWO") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction * .3)); item.getItemProperty("l/min").setValue(0.0); } } } else { item.getItemProperty("l/min").setValue(0.0); } } } else { item.getItemProperty("l/min").setValue(0.0); } } }); undertime.addListener(new FieldEvents.TextChangeListener() { @Override public void textChange(FieldEvents.TextChangeEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); String holidayStr = item.getItemProperty("holidays").toString(); double undertimeDeduction; boolean checkIfInputIsInteger = utilities.checkInputIfInteger(event.getText().trim()); if (!checkIfInputIsInteger) { getWindow().showNotification("Enter numeric format for undertime!", Window.Notification.TYPE_WARNING_MESSAGE); return; } if (!event.getText().isEmpty()) { if (getBranch().equals("on-call and trainees")) { undertimeDeduction = computation.processEmployeesUndertimeForOnCall(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); item.getItemProperty("u/min") .setValue(utilities.roundOffToTwoDecimalPlaces(undertimeDeduction)); } else { undertimeDeduction = computation.processEmployeesUndertime(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); if (policyStr == null || policyStr.isEmpty()) { item.getItemProperty("u/min") .setValue(utilities.roundOffToTwoDecimalPlaces(undertimeDeduction)); } else if (policyStr.equals("working-holiday") && holidayStr.equals("legal-holiday")) { item.getItemProperty("undertimeLH") .setValue(utilities.roundOffToTwoDecimalPlaces(undertimeDeduction)); item.getItemProperty("undertimeSH").setValue(0.0); item.getItemProperty("undertimeWO").setValue(0.0); item.getItemProperty("u/min").setValue(0.0); } else if (policyStr.equals("working-holiday") && holidayStr.equals("special-holiday")) { item.getItemProperty("undertimeLH").setValue(0.0); item.getItemProperty("undertimeSH") .setValue(utilities.roundOffToTwoDecimalPlaces(undertimeDeduction * 0.3)); item.getItemProperty("undertimeWO").setValue(0.0); if (getEmploymentWageEntry().equals("daily")) { item.getItemProperty("u/min").setValue(undertimeDeduction); } else { item.getItemProperty("u/min").setValue(0.0); } } else if (policyStr.equals("working-day-off")) { item.getItemProperty("undertimeLH").setValue(0.0); item.getItemProperty("undertimeSH").setValue(0.0); item.getItemProperty("undertimeWO") .setValue(utilities.roundOffToTwoDecimalPlaces(undertimeDeduction)); item.getItemProperty("u/min").setValue(0.0); if (getEmploymentWageEntry().equals("daily")) { item.getItemProperty("undertimeWO").setValue( utilities.roundOffToTwoDecimalPlaces(undertimeDeduction * .3)); item.getItemProperty("u/min").setValue(undertimeDeduction); } else { item.getItemProperty("undertimeWO").setValue( utilities.roundOffToTwoDecimalPlaces(undertimeDeduction * .3)); item.getItemProperty("u/min").setValue(0.0); } } } } else { item.getItemProperty("u/min").setValue(0.0); } } }); overtime.addListener(new FieldEvents.TextChangeListener() { @Override public void textChange(FieldEvents.TextChangeEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); String holidayStr = item.getItemProperty("holidays").toString(); double overtimeAddition; boolean checkIfInputIsInteger = utilities.checkInputIfInteger(event.getText().trim()); if (!checkIfInputIsInteger) { getWindow().showNotification("Enter numeric format for undertime!", Window.Notification.TYPE_WARNING_MESSAGE); return; } if (!event.getText().isEmpty()) { String branch = getBranch().replaceAll("\\(.*?\\)", ""); if (branch.trim().equals("on-call and trainees")) { overtimeAddition = computation.processEmployeesOvertimeForOnCall(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); item.getItemProperty("o/min") .setValue(utilities.roundOffToTwoDecimalPlaces(overtimeAddition)); } else { overtimeAddition = computation.processEmployeesOvertime(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); item.getItemProperty("o/min").setValue(utilities.roundOffToTwoDecimalPlaces( overtimeAddition + (overtimeAddition * premiumRate))); } } else { item.getItemProperty("o/min").setValue(0.0); } } }); nightDifferential.addListener(new FieldEvents.TextChangeListener() { @Override public void textChange(FieldEvents.TextChangeEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); String holidayStr = item.getItemProperty("holidays").toString(); double nightDifferentialAddition; boolean checkIfInputIsInteger = utilities.checkInputIfInteger(event.getText().trim()); if (!checkIfInputIsInteger) { getWindow().showNotification("Enter numeric format for undertime!", Window.Notification.TYPE_WARNING_MESSAGE); return; } if (!event.getText().isEmpty()) { if (getBranch().equals("on-call and trainees")) { nightDifferentialAddition = computation.processEmployeesNightDifferentialForOnCall( policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); item.getItemProperty("nd/min").setValue(utilities.roundOffToTwoDecimalPlaces( nightDifferentialAddition + (nightDifferentialAddition * premiumRate))); } else { nightDifferentialAddition = computation.processEmployeesNightDifferential(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); item.getItemProperty("nd/min").setValue(utilities.roundOffToTwoDecimalPlaces( nightDifferentialAddition + (nightDifferentialAddition * premiumRate))); } } else { item.getItemProperty("nd/min").setValue(0.0); } } }); dutyManager.addListener(new FieldEvents.TextChangeListener() { @Override public void textChange(FieldEvents.TextChangeEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); String holidayStr = item.getItemProperty("holidays").toString(); double dutyManagerAddition; boolean checkIfInputIsInteger = utilities.checkInputIfInteger(event.getText().trim()); if (!checkIfInputIsInteger) { getWindow().showNotification("Enter numeric format for Duty Manager!", Window.Notification.TYPE_WARNING_MESSAGE); return; } if (!event.getText().isEmpty()) { if (getBranch().equals("on-call and trainees")) { dutyManagerAddition = computation.processEmployeeDutyManagerForOnCall(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); item.getItemProperty("dm/min") .setValue(utilities.roundOffToTwoDecimalPlaces(dutyManagerAddition)); } else { dutyManagerAddition = computation.processEmployeeDutyManager(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); item.getItemProperty("dm/min") .setValue(utilities.roundOffToTwoDecimalPlaces(dutyManagerAddition)); } } else { item.getItemProperty("dm/min").setValue(0.0); } } }); table.addItem(new Object[] { utilities.convertDateFormat(dateList.get(i).toString()), policy, holidays, premium, lates, undertime, overtime, nightDifferential, dutyManager, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, //lates from legal & special holiday 0.0, 0.0, 0.0 //undertime from legal & special holiday }, i); } table.setPageLength(table.size()); vlayout.addComponent(table); final Button button = new Button(); button.setCaption("Save Attendance Data"); vlayout.addComponent(button); for (Object listener : button.getListeners(Button.ClickListener.class)) { button.removeListener(Button.ClickListener.class, listener); } button.addListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { try { Collection attendanceTableCollection = table.getContainerDataSource().getItemIds(); List<Timekeeping> attendanceList = new ArrayList<Timekeeping>(); for (int i = 0; i < attendanceTableCollection.size(); i++) { String str = table.getItem(i).toString(); String[] attStr = str.split(" "); List<String> tkeepList = new ArrayList<String>(Arrays.asList(attStr)); Timekeeping t = new Timekeeping(); t.setAttendanceDate(utilities.parsingDate(tkeepList.get(0))); t.setPolicy(tkeepList.get(1)); t.setHoliday(tkeepList.get(2)); t.setPremium(utilities.convertStringToBoolean(tkeepList.get(3))); t.setLates(utilities.convertStringToDouble(tkeepList.get(4))); t.setUndertime(utilities.convertStringToDouble(tkeepList.get(5))); t.setOvertime(utilities.convertStringToDouble(tkeepList.get(6))); t.setNightDifferential(utilities.convertStringToDouble(tkeepList.get(7))); t.setDutyManager(utilities.convertStringToDouble(tkeepList.get(8))); t.setLateDeduction(utilities.convertStringToDouble(tkeepList.get(9))); t.setUndertimeDeduction(utilities.convertStringToDouble(tkeepList.get(10))); t.setOvertimePaid(utilities.convertStringToDouble(tkeepList.get(11))); t.setNightDifferentialPaid(utilities.convertStringToDouble(tkeepList.get(12))); t.setDutyManagerPaid(utilities.convertStringToDouble(tkeepList.get(13))); t.setLegalHolidayPaid(utilities.convertStringToDouble(tkeepList.get(14))); t.setSpecialHolidayPaid(utilities.convertStringToDouble(tkeepList.get(15))); t.setWorkingDayOffPaid(utilities.convertStringToDouble(tkeepList.get(16))); t.setNonWorkingHolidayPaid(utilities.convertStringToDouble(tkeepList.get(17))); t.setLatesLegalHolidayDeduction(utilities.convertStringToDouble(tkeepList.get(18))); t.setLatesSpecialHolidayDeduction(utilities.convertStringToDouble(tkeepList.get(19))); t.setLatesWorkingDayOffDeduction(utilities.convertStringToDouble(tkeepList.get(20))); t.setUndertimeLegalHolidayDeduction(utilities.convertStringToDouble(tkeepList.get(21))); t.setUndertimeSpecialHolidayDeduction(utilities.convertStringToDouble(tkeepList.get(22))); t.setUndertimeWorkingDayOffDeduction(utilities.convertStringToDouble(tkeepList.get(23))); attendanceList.add(t); } ProcessPayrollComputation processPayroll = new ProcessPayrollComputation(employeeId, getBranchId()); processPayroll.initVariables(); processPayroll.initVariablesForComputation(attendanceList); boolean result = processPayroll.processPayrollComputation(payrollDate, payrollPeriod, attendancePeriodFrom, attendancePeriodTo, 0); if (result) { close(); } else { getWindow().showNotification("SQL ERROR"); } } catch (Exception e) { e.getMessage(); } } }); return vlayout; }
From source file:com.openhris.timekeeping.EditAttendanceTableContainerWindow.java
VerticalLayout generateAttendanceTable() { VerticalLayout vlayout = new VerticalLayout(); vlayout.setSizeFull();/*from w w w . j ava2 s .co m*/ vlayout.setSpacing(true); if (getEmploymentWageEntry().equals("monthly")) { employmentWage = utilities.roundOffToTwoDecimalPlaces((employmentWage * 12) / 314); } final Table table = new Table(); table.removeAllItems(); table.setEnabled(true); table.setWidth("100%"); table.setImmediate(true); table.setColumnCollapsingAllowed(true); table.addContainerProperty("edit", CheckBox.class, null); table.addContainerProperty("date", String.class, null); table.addContainerProperty("policy", String.class, null); table.addContainerProperty("holidays", String.class, null); table.addContainerProperty("premium", CheckBox.class, null); table.addContainerProperty("lates", TextField.class, null); table.addContainerProperty("undertime", TextField.class, null); table.addContainerProperty("overtime", TextField.class, null); table.addContainerProperty("night differential", TextField.class, null); table.addContainerProperty("l/min", Double.class, null); table.addContainerProperty("u/min", Double.class, null); table.addContainerProperty("o/min", Double.class, null); table.addContainerProperty("nd/min", Double.class, null); table.addContainerProperty("lholiday", Double.class, null); table.addContainerProperty("sholiday", Double.class, null); table.addContainerProperty("wdo", Double.class, null); table.addContainerProperty("psday", Double.class, null); //paid non-working holiday table.addContainerProperty("latesLH", Double.class, null); table.addContainerProperty("latesSH", Double.class, null); table.addContainerProperty("latesWO", Double.class, null); table.addContainerProperty("undertimeLH", Double.class, null); table.addContainerProperty("undertimeSH", Double.class, null); table.addContainerProperty("undertimeWO", Double.class, null); table.setColumnAlignment("edit", Table.ALIGN_CENTER); table.setColumnAlignment("date", Table.ALIGN_CENTER); table.setColumnAlignment("policy", Table.ALIGN_CENTER); table.setColumnAlignment("premium", Table.ALIGN_CENTER); table.setColumnAlignment("lates", Table.ALIGN_CENTER); table.setColumnAlignment("undertime", Table.ALIGN_CENTER); table.setColumnAlignment("overtime", Table.ALIGN_CENTER); table.setColumnAlignment("night differential", Table.ALIGN_CENTER); table.setColumnAlignment("l/min", Table.ALIGN_RIGHT); table.setColumnAlignment("u/min", Table.ALIGN_RIGHT); table.setColumnAlignment("o/min", Table.ALIGN_RIGHT); table.setColumnAlignment("nd/min", Table.ALIGN_RIGHT); table.setColumnAlignment("lholiday", Table.ALIGN_RIGHT); table.setColumnAlignment("sholiday", Table.ALIGN_RIGHT); table.setColumnAlignment("wdo", Table.ALIGN_RIGHT); table.setColumnAlignment("psday", Table.ALIGN_RIGHT); table.setColumnAlignment("latesLH", Table.ALIGN_RIGHT); table.setColumnAlignment("latesSH", Table.ALIGN_RIGHT); table.setColumnAlignment("latesWO", Table.ALIGN_RIGHT); table.setColumnAlignment("undertimeLH", Table.ALIGN_RIGHT); table.setColumnAlignment("undertimeSH", Table.ALIGN_RIGHT); table.setColumnAlignment("undertimeWO", Table.ALIGN_RIGHT); table.setColumnCollapsed("latesLH", true); table.setColumnCollapsed("latesSH", true); table.setColumnCollapsed("latesWO", true); table.setColumnCollapsed("undertimeLH", true); table.setColumnCollapsed("undertimeSH", true); table.setColumnCollapsed("undertimeWO", true); final String[] holidayList = { "legal-holiday", "special-holiday" }; for (int i = 0; i < getDateList().size(); i++) { Object itemId = new Integer(i); final CheckBox edit = new CheckBox(); edit.setData(i); edit.setEnabled(UserAccessControl.isEditAttendance()); edit.setImmediate(true); final CheckBox premium = new CheckBox(); premium.setData(itemId); premium.setEnabled(false); premium.setImmediate(true); final TextField lates = new TextField(); lates.setWidth("50px"); lates.setValue("0"); lates.setEnabled(true); lates.setData(itemId); lates.setEnabled(false); lates.setImmediate(true); final TextField undertime = new TextField(); undertime.setWidth("50px"); undertime.setValue("0"); undertime.setEnabled(true); undertime.setData(itemId); undertime.setEnabled(false); undertime.setImmediate(true); final TextField overtime = new TextField(); overtime.setWidth("50px"); overtime.setValue("0"); overtime.setEnabled(true); overtime.setData(itemId); overtime.setEnabled(false); overtime.setImmediate(true); final TextField nightDifferential = new TextField(); nightDifferential.setWidth("50px"); nightDifferential.setValue("0"); nightDifferential.setEnabled(true); nightDifferential.setData(itemId); nightDifferential.setEnabled(false); nightDifferential.setImmediate(true); edit.addListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { premium.setEnabled(event.getButton().booleanValue()); lates.setEnabled(event.getButton().booleanValue()); undertime.setEnabled(event.getButton().booleanValue()); overtime.setEnabled(event.getButton().booleanValue()); nightDifferential.setEnabled(event.getButton().booleanValue()); } }); premium.addListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); lates.setValue("0"); undertime.setValue("0"); overtime.setValue("0"); nightDifferential.setValue("0"); item.getItemProperty("l/min").setValue(0.0); item.getItemProperty("u/min").setValue(0.0); item.getItemProperty("o/min").setValue(0.0); item.getItemProperty("nd/min").setValue(0.0); if (event.getButton().booleanValue() == true) { premiumRate = 0.1; } else { premiumRate = 0.0; } item.getItemProperty("wdo") .setValue(utilities.roundOffToTwoDecimalPlaces( Double.parseDouble(item.getItemProperty("wdo").getValue().toString()) + (Double.parseDouble(item.getItemProperty("wdo").getValue().toString()) * premiumRate))); item.getItemProperty("lholiday") .setValue(utilities.roundOffToTwoDecimalPlaces(Double .parseDouble(item.getItemProperty("lholiday").getValue().toString()) + (Double.parseDouble(item.getItemProperty("lholiday").getValue().toString()) * premiumRate))); item.getItemProperty("sholiday") .setValue(utilities.roundOffToTwoDecimalPlaces(Double .parseDouble(item.getItemProperty("sholiday").getValue().toString()) + (Double.parseDouble(item.getItemProperty("sholiday").getValue().toString()) * premiumRate))); } }); lates.addListener(new FieldEvents.TextChangeListener() { @Override public void textChange(FieldEvents.TextChangeEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); String holidayStr = item.getItemProperty("holidays").toString(); double lateDeduction; boolean checkIfInputIsInteger = utilities.checkInputIfInteger(event.getText().trim()); if (!checkIfInputIsInteger) { getWindow().showNotification("Enter numeric format for lates!", Window.Notification.TYPE_WARNING_MESSAGE); return; } if (!event.getText().isEmpty()) { if (utilities.convertStringToInteger(event.getText().trim()) > 5) { lateDeduction = computation.processEmployeesLates(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); if (policyStr == null || policyStr.isEmpty()) { item.getItemProperty("l/min") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction)); } else if (policyStr.equals("working-holiday") && holidayStr.equals("legal-holiday")) { item.getItemProperty("latesLH") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction)); item.getItemProperty("latesSH").setValue(0.0); item.getItemProperty("latesWO").setValue(0.0); item.getItemProperty("l/min").setValue(0.0); } else if (policyStr.equals("working-holiday") && holidayStr.equals("special-holiday")) { item.getItemProperty("latesLH").setValue(0.0); item.getItemProperty("latesSH") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction)); item.getItemProperty("latesWO").setValue(0.0); item.getItemProperty("l/min").setValue(0.0); } else if (policyStr.equals("working-day-off")) { item.getItemProperty("latesLH").setValue(0.0); item.getItemProperty("latesSH").setValue(0.0); item.getItemProperty("latesWO") .setValue(utilities.roundOffToTwoDecimalPlaces(lateDeduction)); item.getItemProperty("l/min").setValue(0.0); } } else { item.getItemProperty("l/min").setValue(0.0); } } else { item.getItemProperty("l/min").setValue(0.0); } } }); undertime.addListener(new FieldEvents.TextChangeListener() { @Override public void textChange(FieldEvents.TextChangeEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); String holidayStr = item.getItemProperty("holidays").toString(); double undertimeDeduction; boolean checkIfInputIsInteger = utilities.checkInputIfInteger(event.getText().trim()); if (!checkIfInputIsInteger) { getWindow().showNotification("Enter numeric format for undertime!", Window.Notification.TYPE_WARNING_MESSAGE); return; } if (!event.getText().isEmpty()) { undertimeDeduction = computation.processEmployeesUndertime(policyStr, holidayStr, utilities.convertStringToInteger(event.getText().trim()), getEmploymentWage()); if (policyStr == null || policyStr.isEmpty()) { item.getItemProperty("u/min") .setValue(utilities.roundOffToTwoDecimalPlaces(undertimeDeduction)); } else if (policyStr.equals("working-holiday") && holidayStr.equals("legal-holiday")) { item.getItemProperty("undertimeLH") .setValue(utilities.roundOffToTwoDecimalPlaces(undertimeDeduction)); item.getItemProperty("undertimeSH").setValue(0.0); item.getItemProperty("undertimeWO").setValue(0.0); item.getItemProperty("u/min").setValue(0.0); } else if (policyStr.equals("working-holiday") && holidayStr.equals("special-holiday")) { item.getItemProperty("undertimeLH").setValue(0.0); item.getItemProperty("undertimeSH") .setValue(utilities.roundOffToTwoDecimalPlaces(undertimeDeduction)); item.getItemProperty("undertimeWO").setValue(0.0); item.getItemProperty("u/min").setValue(0.0); } else if (policyStr.equals("working-day-off")) { item.getItemProperty("undertimeLH").setValue(0.0); item.getItemProperty("undertimeSH").setValue(0.0); item.getItemProperty("undertimeWO") .setValue(utilities.roundOffToTwoDecimalPlaces(undertimeDeduction)); item.getItemProperty("u/min").setValue(0.0); } } else { item.getItemProperty("u/min").setValue(0.0); } } }); overtime.addListener(new FieldEvents.TextChangeListener() { @Override public void textChange(FieldEvents.TextChangeEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); String holidayStr = item.getItemProperty("holidays").toString(); double overtimeAddition; boolean checkIfInputIsInteger = utilities.checkInputIfInteger(event.getText().trim()); if (!checkIfInputIsInteger) { getWindow().showNotification("Enter numeric format for undertime!", Window.Notification.TYPE_WARNING_MESSAGE); return; } if (!event.getText().isEmpty()) { overtimeAddition = computation.processEmployeesOvertime(policyStr, holidayStr, Integer.parseInt(event.getText().trim()), getEmploymentWage()); item.getItemProperty("o/min").setValue(utilities .roundOffToTwoDecimalPlaces(overtimeAddition + (overtimeAddition * premiumRate))); } else { item.getItemProperty("o/min").setValue(0.0); } } }); nightDifferential.addListener(new FieldEvents.TextChangeListener() { @Override public void textChange(FieldEvents.TextChangeEvent event) { Object itemId = lates.getData(); Item item = table.getItem(itemId); String policyStr = item.getItemProperty("policy").toString(); String holidayStr = item.getItemProperty("holidays").toString(); double nightDifferentialAddition; boolean checkIfInputIsInteger = utilities.checkInputIfInteger(event.getText().trim()); if (!checkIfInputIsInteger) { getWindow().showNotification("Enter numeric format for undertime!", Window.Notification.TYPE_WARNING_MESSAGE); return; } if (!event.getText().isEmpty()) { nightDifferentialAddition = computation.processEmployeesNightDifferential(policyStr, holidayStr, Integer.parseInt(event.getText().trim()), getEmploymentWage()); item.getItemProperty("nd/min").setValue(utilities.roundOffToTwoDecimalPlaces( nightDifferentialAddition + (nightDifferentialAddition * premiumRate))); } else { item.getItemProperty("nd/min").setValue(0.0); } } }); List<Timekeeping> timekeepingListByRowData = timekeepingService.getTimekeepingRowData( utilities.convertDateFormat(getDateList().get(i).toString()), getPayrollId()); for (Timekeeping t : timekeepingListByRowData) { String policy; String holiday; if (!t.getPolicy().equals("null")) { policy = t.getPolicy(); } else { policy = ""; } if (!t.getHoliday().equals("null")) { holiday = t.getHoliday(); } else { holiday = ""; } premium.setValue(t.isPremium()); lates.setValue(t.getLates()); undertime.setValue(t.getUndertime()); overtime.setValue(t.getOvertime()); nightDifferential.setValue(t.getNightDifferential()); table.addItem( new Object[] { edit, utilities.convertDateFormat(getDateList().get(i).toString()), policy, holiday, premium, lates, undertime, overtime, nightDifferential, t.getLateDeduction(), t.getUndertimeDeduction(), t.getOvertimePaid(), t.getNightDifferentialPaid(), t.getLegalHolidayPaid(), t.getSpecialHolidayPaid(), t.getWorkingDayOffPaid(), t.getNonWorkingHolidayPaid(), t.getLatesLegalHolidayDeduction(), t.getLatesSpecialHolidayDeduction(), t.getLatesWorkingDayOffDeduction(), t.getUndertimeLegalHolidayDeduction(), t.getUndertimeSpecialHolidayDeduction(), t.getUndertimeWorkingDayOffDeduction() }, new Integer(i)); } } table.setPageLength(table.size()); for (Object listener : table.getListeners(ItemClickEvent.class)) { table.removeListener(ItemClickEvent.class, listener); } table.addListener(new ItemClickEvent.ItemClickListener() { @Override public void itemClick(ItemClickEvent event) { final Object itemId = event.getItemId(); final Item item = table.getItem(itemId); Boolean editRow = Boolean.valueOf(item.getItemProperty("edit").getValue().toString()); if (event.getPropertyId().equals("policy")) { if (editRow) { Window sub = new AttendancePolicyWindow(holidayList, item, getEmploymentWageEntry(), getEmploymentWage()); if (sub.getParent() == null) { getApplication().getMainWindow().addWindow(sub); } } else { getWindow().showNotification("Click Edit!", Window.Notification.TYPE_WARNING_MESSAGE); } } } }); vlayout.addComponent(table); final Button saveButton = new Button(); saveButton.setWidth("200px"); saveButton.setCaption("UPDATE ATTENDANCE DATA"); saveButton.setEnabled(UserAccessControl.isEditAttendance()); for (Object listener : saveButton.getListeners(Button.ClickListener.class)) { saveButton.removeListener(Button.ClickListener.class, listener); } GridLayout glayout = new GridLayout(2, 1); glayout.setSizeFull(); glayout.setSpacing(true); saveButton.addListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { try { Collection attendanceTableCollection = table.getContainerDataSource().getItemIds(); List<Timekeeping> attendanceList = new ArrayList<>(); Iterator iterator = attendanceTableCollection.iterator(); while (iterator.hasNext()) { String str = table.getItem(iterator.next()).toString(); String[] attStr = str.split(" "); List<String> tkeepList = new ArrayList<>(Arrays.asList(attStr)); Timekeeping t = new Timekeeping(); t.setAttendanceDate(utilities.parsingDate(tkeepList.get(1))); t.setPolicy(tkeepList.get(2)); t.setHoliday(tkeepList.get(3)); t.setPremium(utilities.convertStringToBoolean(tkeepList.get(4))); t.setLates(utilities.convertStringToDouble(tkeepList.get(5))); t.setUndertime(utilities.convertStringToDouble(tkeepList.get(6))); t.setOvertime(utilities.convertStringToDouble(tkeepList.get(7))); t.setNightDifferential(utilities.convertStringToDouble(tkeepList.get(8))); t.setLateDeduction(utilities.convertStringToDouble(tkeepList.get(9))); t.setUndertimeDeduction(utilities.convertStringToDouble(tkeepList.get(10))); t.setOvertimePaid(utilities.convertStringToDouble(tkeepList.get(11))); t.setNightDifferentialPaid(utilities.convertStringToDouble(tkeepList.get(12))); t.setLegalHolidayPaid(utilities.convertStringToDouble(tkeepList.get(13))); t.setSpecialHolidayPaid(utilities.convertStringToDouble(tkeepList.get(14))); t.setWorkingDayOffPaid(utilities.convertStringToDouble(tkeepList.get(15))); t.setNonWorkingHolidayPaid(utilities.convertStringToDouble(tkeepList.get(16))); t.setLatesLegalHolidayDeduction(utilities.convertStringToDouble(tkeepList.get(17))); t.setLatesSpecialHolidayDeduction(utilities.convertStringToDouble(tkeepList.get(18))); t.setLatesWorkingDayOffDeduction(utilities.convertStringToDouble(tkeepList.get(19))); t.setUndertimeLegalHolidayDeduction(utilities.convertStringToDouble(tkeepList.get(20))); t.setUndertimeSpecialHolidayDeduction(utilities.convertStringToDouble(tkeepList.get(21))); t.setUndertimeWorkingDayOffDeduction(utilities.convertStringToDouble(tkeepList.get(22))); attendanceList.add(t); } ProcessPayrollComputation processPayroll = new ProcessPayrollComputation(getEmployeeId(), getBranchId()); processPayroll.initVariables(); processPayroll.initVariablesForComputation(attendanceList); boolean result = processPayroll.processPayrollComputation(payrollDate, payrollPeriod, attendancePeriodFrom, attendancePeriodTo, getPayrollId()); if (result) { close(); } else { getWindow().showNotification("SQL ERROR"); } } catch (Exception e) { e.getMessage(); } } }); glayout.addComponent(saveButton, 0, 0); glayout.setComponentAlignment(saveButton, Alignment.MIDDLE_LEFT); // vlayout.addComponent(saveButton); Button printButton = new Button("PRINT ATTENDANCE"); printButton.setWidth("200px"); printButton.addListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { OpenHrisReports reports = new OpenHrisReports(0, null); String fileName = "IndividualAttendanceReport_"; reports.deleteFile(fileName); Window reportWindow = new IndividualAttendanceReport(getPayrollId(), getApplication()); } }); glayout.addComponent(printButton, 1, 0); glayout.setComponentAlignment(printButton, Alignment.MIDDLE_RIGHT); vlayout.addComponent(glayout); return vlayout; }