Example usage for com.vaadin.ui TextField setValue

List of usage examples for com.vaadin.ui TextField setValue

Introduction

In this page you can find the example usage for com.vaadin.ui TextField setValue.

Prototype

@Override
public void setValue(String value) 

Source Link

Document

Sets the value of this text field.

Usage

From source file:com.oodrive.nuage.webui.component.window.VvrAttributesWindow.java

License:Apache License

@SuppressWarnings("serial")
@Override/*from  www .ja v a2 s .c  o  m*/
public final Window init(final AbstractItemModel model) {

    // Cast model in vvrModel
    final VvrModel vvrModel = (VvrModel) model;
    // Add new window
    final Window vvrAttributesWindow = new Window("VVR Attributes");
    vvrAttributesWindow.center();
    vvrAttributesWindow.setWidth("400px");
    vvrAttributesWindow.setResizable(false);

    final VerticalLayout layout = new VerticalLayout();
    vvrAttributesWindow.setContent(layout);
    layout.setMargin(true);

    final FormLayout vvrAttributesLayout = new FormLayout();
    layout.addComponent(vvrAttributesLayout);
    vvrAttributesLayout.setMargin(true);

    // Enter NAME
    String value = vvrModel.getVvrName();
    if (value == null) {
        value = "";
    }
    final TextField name = new TextField("Name", value);
    name.setSizeFull();
    vvrAttributesLayout.addComponent(name);

    // Enter description
    value = vvrModel.getVvrDescription();
    if (value == null) {
        value = "";
    }
    final TextField desc = new TextField("Description", value);
    desc.setSizeFull();
    vvrAttributesLayout.addComponent(desc);

    // Enter name
    final TextField vvrUUID = new TextField("UUID");
    vvrUUID.setValue(vvrUuid.toString());
    vvrUUID.setReadOnly(true);
    vvrUUID.setSizeFull();
    vvrAttributesLayout.addComponent(vvrUUID);

    // OK button
    final HorizontalLayout hzlayout = new HorizontalLayout();
    layout.addComponent(hzlayout);
    hzlayout.setSizeFull();

    final Button okButton = new Button("OK");
    hzlayout.addComponent(okButton);
    hzlayout.setComponentAlignment(okButton, Alignment.MIDDLE_CENTER);

    okButton.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(final ClickEvent event) {
            WaitingComponent.executeBackground(vvrModel, new Background() {
                @Override
                public void processing() {
                    vvrModel.setVvrName(name.getValue());
                    vvrModel.setVvrDescription(desc.getValue());
                }

                @Override
                public void postProcessing() {
                }
            });
            vvrAttributesWindow.close();
        }
    });

    // Cancel button
    final Button cancelButton = new Button("Cancel");
    hzlayout.addComponent(cancelButton);
    hzlayout.setComponentAlignment(cancelButton, Alignment.MIDDLE_CENTER);

    cancelButton.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(final ClickEvent event) {
            // Just close the window
            vvrAttributesWindow.close();
        }
    });
    return vvrAttributesWindow;
}

From source file:com.oodrive.nuage.webui.component.window.VvrCreateWindow.java

License:Apache License

@SuppressWarnings("serial")
@Override/*from  w ww. j  a  va 2  s . co  m*/
public final Window init(final AbstractItemModel model) {

    // Add new window
    vvrCreateWindow.center();
    final FormLayout vvrCreateLayout = new FormLayout();
    vvrCreateLayout.setMargin(true);
    vvrCreateWindow.setContent(vvrCreateLayout);
    vvrCreateWindow.setResizable(false);
    vvrCreateWindow.setClosable(false);

    // Enter name
    final TextField vvrName = new TextField("Name");
    vvrName.setValue("");
    vvrCreateLayout.addComponent(vvrName);

    // Enter decription
    final TextField vvrDescription = new TextField("Description");
    vvrDescription.setValue("");
    vvrCreateLayout.addComponent(vvrDescription);

    // Button create
    final Button vvrCreateButton = new Button("Create");
    vvrCreateLayout.addComponent(vvrCreateButton);
    vvrCreateButton.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(final ClickEvent event) {
            try {
                ((VvrManagerModel) model).createVvr(vvrName.getValue(), vvrDescription.getValue());
                Notification.show("New VVR created", Notification.Type.TRAY_NOTIFICATION);
                postProcessing.execute();
            } catch (final Exception e) {
                final ErrorWindow err = new ErrorWindow("VVR not created: " + e.getMessage());
                err.add(model);
            }
        }
    });
    return vvrCreateWindow;
}

From source file:com.oodrive.nuage.webui.WebUiUtils.java

License:Apache License

/**
 * Create a new long text field with a given setter/getter.
 * //  ww w . j a v a  2  s  .  co m
 * @param operation
 *            the operation to get/set the value contains in the text field.
 * @param fieldName
 *            the name of the field
 * @param rootLayout
 *            the layout to add the text field
 * @param model
 *            the model used to get/set the value
 */
@SuppressWarnings({ "serial" })
public static final void createFieldLong(final LongAttributeOperation operation, final String fieldName,
        final FormLayout rootLayout, final AbstractItemModel model) {

    final TextField field = new TextField(fieldName, Long.toString(operation.getLongValue()));
    field.setWidth("250px");
    field.setImmediate(true);
    rootLayout.addComponent(field);

    field.addValueChangeListener(new ValueChangeListener() {
        @Override
        public void valueChange(final ValueChangeEvent event) {
            final String newValue = String.valueOf(event.getProperty().getValue());
            final String oldValue = Long.toString(operation.getLongValue());
            if (!oldValue.equals(newValue)) {
                try {
                    // Cast here to check format
                    final long longNewValue = Long.valueOf(newValue);

                    // Set value in background (could be a long operation)
                    WaitingComponent.executeBackground(model, new Background() {
                        @Override
                        public void processing() {
                            operation.setLongValue(longNewValue);
                        }

                        @Override
                        public void postProcessing() {
                            // Get the new real value set in the model (can be different)
                            final String newValue = Long.toString(operation.getLongValue());
                            Notification.show(fieldName + " changed", newValue,
                                    Notification.Type.TRAY_NOTIFICATION);
                            // Reset the field with the new value
                            field.setValue(newValue);
                        }
                    });
                } catch (final NumberFormatException e) {
                    final ErrorWindow err = new ErrorWindow("You must enter a valid number");
                    err.add(model);
                    // Reset the last value
                    field.setValue(oldValue);
                }
            }
        }
    });
}

From source file:com.oodrive.nuage.webui.WebUiUtils.java

License:Apache License

/**
 * Create a new integer text field with a given setter/getter.
 * //from ww w .j av a 2 s.  c o  m
 * @param operation
 *            the operation to get/set the value contains in the text field.
 * @param fieldName
 *            the name of the field
 * @param rootLayout
 *            the layout to add the text field
 * @param model
 *            the model used to get/set the value
 */
@SuppressWarnings({ "serial" })
public static final void createFieldInteger(final IntegerAttributeOperation operation, final String fieldName,
        final FormLayout rootLayout, final AbstractItemModel model, final boolean emptyAllowed) {

    final TextField field = new TextField(fieldName, Integer.toString(operation.getIntegerValue()));
    field.setWidth("250px");
    field.setImmediate(true);
    rootLayout.addComponent(field);

    field.addValueChangeListener(new ValueChangeListener() {
        @Override
        public void valueChange(final ValueChangeEvent event) {
            final String newValue = String.valueOf(event.getProperty().getValue());
            final String oldValue = Integer.toString(operation.getIntegerValue());
            if (!oldValue.equals(newValue)) {
                try {
                    final int intNewValue;

                    if (emptyAllowed && "".equals(newValue)) {
                        // Empty equals 0
                        intNewValue = 0;
                    } else {
                        // Cast here to check format
                        intNewValue = Integer.valueOf(newValue);
                    }

                    // Set value in background (could be a long operation)
                    WaitingComponent.executeBackground(model, new Background() {
                        @Override
                        public void processing() {
                            operation.setIntegerValue(intNewValue);
                        }

                        @Override
                        public void postProcessing() {
                            // Get the new real value set in the model (can be different)
                            final String newValue = Integer.toString(operation.getIntegerValue());
                            Notification.show(fieldName + " changed", newValue,
                                    Notification.Type.TRAY_NOTIFICATION);
                            // Reset the field with the new value
                            field.setValue(newValue);
                        }
                    });
                } catch (final NumberFormatException e) {
                    final ErrorWindow err = new ErrorWindow("You must enter a valid number");
                    err.add(model);
                    // Reset the last value
                    field.setValue(oldValue);
                }
            }
        }
    });
}

From source file:com.openhris.employee.NewEmployeeWindow.java

public NewEmployeeWindow(String employeeId) {
    this.employeeId = employeeId;

    setCaption("New Employee");
    setWidth("535px");

    errorLabel.setVisible(false);//from   w w  w .ja va  2  s .c om

    GridLayout grid = new GridLayout(3, 9);
    grid.setSpacing(true);
    grid.setSizeFull();

    final TextField firstname = new HRISTextField("Firstname:");
    grid.addComponent(firstname, 0, 0);

    final TextField middlename = new HRISTextField("Middlename:");
    grid.addComponent(middlename, 1, 0);

    final TextField lastname = new HRISTextField("Lastname:");
    grid.addComponent(lastname, 2, 0);

    corporation = dropDown.populateCorporateComboBox(new ComboBox());
    grid.addComponent(corporation, 0, 1, 1, 1);

    final PopupDateField entryDate = new HRISPopupDateField("Entry Date:");
    grid.addComponent(entryDate, 2, 1);

    trade = new ComboBox("Trade: ");
    trade.setWidth("100%");
    corporation.addListener(corporateListener);
    grid.addComponent(trade, 0, 2, 1, 2);

    final ComboBox dependent = dropDown.populateTotalDependent("Employee's Dependent");
    grid.addComponent(dependent, 2, 2);

    branch = new ComboBox("Branch: ");
    branch.setWidth("100%");
    trade.addListener(tradeListener);
    branch.addListener(branchListener);
    grid.addComponent(branch, 0, 3, 1, 3);

    final TextField department = new HRISTextField("Department: ");
    grid.addComponent(department, 2, 3);

    final TextField position = new HRISTextField("Position: ");
    grid.addComponent(position, 0, 4);

    final TextField sssNo = new HRISTextField("SSS #:");
    grid.addComponent(sssNo, 1, 4);

    final TextField hdmfNo = new HRISTextField("HDMF #: ");
    grid.addComponent(hdmfNo, 2, 4);

    final ComboBox employmentStatus = dropDown.populateEmploymentStatus("Employment Status: ");
    grid.addComponent(employmentStatus, 0, 5);

    final TextField tinNo = new HRISTextField("Tin #:");
    grid.addComponent(tinNo, 1, 5);

    final TextField peicNo = new HRISTextField("Philhealth #");
    grid.addComponent(peicNo, 2, 5);

    final TextField employmentWage = new HRISTextField("Employment Wage: ");
    employmentWage.setValue("0.0");
    employmentWage.addListener(checkEntryIfDoubleListener);
    grid.addComponent(employmentWage, 0, 6);

    final ComboBox employmentWageStatus = dropDown.populateEmploymentWageStatus("Employment Wage Status: ");
    grid.addComponent(employmentWageStatus, 1, 6);

    final ComboBox employmentWageEntry = dropDown.populateEmploymentWageEntry("Employment Wage Entry: ");
    grid.addComponent(employmentWageEntry, 2, 6);

    Button saveButton = new Button("SAVE NEW EMPLOYEE");
    saveButton.setWidth("100%");
    saveButton.addListener(new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            boolean resultQueryInsert, result1, result2, checkId;
            boolean checkResultForDuplicate;
            result1 = utilities.checkInputIfDouble(employmentWage.getValue().toString().trim());

            if (corporation.getValue() == null) {
                getWindow().showNotification("Select Corporation!", Window.Notification.TYPE_ERROR_MESSAGE);
                return;
            }

            if (trade.getValue() == null) {
                getWindow().showNotification("Select Trade!", Window.Notification.TYPE_ERROR_MESSAGE);
                return;
            }

            if (branch.getValue() == null) {
                getWindow().showNotification("Select Branch!", Window.Notification.TYPE_ERROR_MESSAGE);
                return;
            }

            if (dependent.getValue() == null) {
                getWindow().showNotification("Select # of dependent!", Window.Notification.TYPE_ERROR_MESSAGE);
                return;
            }

            if (employmentStatus.getValue() == null) {
                getWindow().showNotification("Select Employment Status!",
                        Window.Notification.TYPE_ERROR_MESSAGE);
                return;
            }

            if (employmentWageStatus.getValue() == null) {
                getWindow().showNotification("Select Employment Wage Status!",
                        Window.Notification.TYPE_ERROR_MESSAGE);
                return;
            }

            if (employmentWageEntry.getValue() == null) {
                getWindow().showNotification("Select Employment Wage Entry!",
                        Window.Notification.TYPE_ERROR_MESSAGE);
                return;
            }

            if (department.getValue() == null) {
                getWindow().showNotification("Select Department!", Window.Notification.TYPE_ERROR_MESSAGE);
                return;
            }

            if (result1 == false) {
                getWindow().showNotification("Invalid Input for EmploymentWage/EmploymentAllowanceEntry",
                        Window.Notification.TYPE_ERROR_MESSAGE);
                return;
            }

            checkResultForDuplicate = employeeService.checkForDuplicateEmployee(
                    firstname.getValue().toString().trim().toLowerCase(),
                    middlename.getValue().toString().trim().toLowerCase(),
                    lastname.getValue().toString().trim().toLowerCase());

            if (checkResultForDuplicate) {
                try {
                    errorLabel.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace(System.out);
                }

                return;
            }

            int corporate_id = companyService.getCorporateId(corporation.getValue().toString());
            int trade_id = companyService.getTradeId(trade.getValue().toString(), getCorporateId());
            int branch_id = companyService.getBranchId(getTradeId(), branch.getValue().toString());

            PostEmploymentInformationBean pe = new PostEmploymentInformationBean();
            pe.setFirstname(firstname.getValue().toString().trim());
            pe.setMiddlename(middlename.getValue().toString().trim());
            pe.setLastname(lastname.getValue().toString().trim());
            pe.setCompany(corporation.getValue().toString());
            pe.setTrade(trade.getValue().toString());
            pe.setBranch(branch.getValue().toString());
            pe.setBranchId(branch_id);
            pe.setDepartment(department.getValue().toString().trim());
            pe.setTotalDependent(dependent.getItem(dependent.getValue()).toString());
            pe.setPosition(position.getValue().toString().trim());
            pe.setEntryDate(
                    utilities.parsingDate(utilities.convertDateFormat(entryDate.getValue().toString())));
            pe.setSssNo(sssNo.getValue().toString().trim());
            pe.setTinNo(tinNo.getValue().toString().trim());
            pe.setPhicNo(peicNo.getValue().toString().trim());
            pe.setHdmfNo(hdmfNo.getValue().toString().trim());
            pe.setEmploymentStatus(employmentStatus.getItem(employmentStatus.getValue()).toString());
            pe.setEmploymentWageStatus(
                    employmentWageStatus.getItem(employmentWageStatus.getValue()).toString());
            pe.setEmploymentWageEntry(employmentWageEntry.getItem(employmentWageEntry.getValue()).toString());
            pe.setEmploymentWage(utilities.convertStringToDouble(employmentWage.getValue().toString().trim()));

            resultQueryInsert = employeeService.insertNewEmployee(pe);
            if (resultQueryInsert == true) {
                close();
            } else {
                getWindow().showNotification("SQL ERROR!");
            }
        }
    });
    grid.addComponent(saveButton, 1, 7, 2, 7);
    grid.addComponent(errorLabel, 1, 8, 2, 8);

    addComponent(grid);
}

From source file:com.openhris.employee.salary.EmployeeSalaryInformation.java

public ComponentContainer layout2() {
    GridLayout glayout = new GridLayout(2, 1);
    glayout.setSpacing(true);//  w  ww.j a v a2 s.c o  m
    glayout.setWidth("600px");

    TextField employmentStatusField = new HRISTextField("Employment Status: ");
    employmentStatusField.setWidth("200px");
    glayout.addComponent(employmentStatusField, 0, 0);

    Button setContributionBtn = new Button("SET EMPLOYEE'S CONTRIBUTIONS MAIN BRANCH");
    setContributionBtn.setWidth("100%");
    setContributionBtn.addListener(new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            Window subWindow = setContributionMainBranch();
            if (subWindow.getParent() == null) {
                getWindow().addWindow(subWindow);
            }
            subWindow.setModal(true);
            subWindow.center();
        }
    });
    glayout.addComponent(setContributionBtn, 1, 0);
    glayout.setColumnExpandRatio(1, 1);
    glayout.setComponentAlignment(setContributionBtn, Alignment.BOTTOM_CENTER);
    if (GlobalVariables.getUserRole().equals("administrator") || GlobalVariables.getUserRole().equals("hr")) {
        setContributionBtn.setEnabled(true);
    } else {
        setContributionBtn.setEnabled(false);
    }

    if (getEmployeeId() != null) {
        EmploymentInformation employmentInformation = si.getEmployeeSalaryInformation(getEmployeeId());
        employmentStatusField.setValue(employmentInformation.getCurrentStatus().toUpperCase());
    }
    employmentStatusField.setReadOnly(true);

    return glayout;
}

From source file:com.openhris.payroll.PayrollSubModules.java

public Window perDiemWindow(Item item) {
    this.item = item;

    VerticalLayout vlayout = new VerticalLayout();
    vlayout.setSpacing(true);/*w  w w.j a  v  a2 s  . c o m*/
    vlayout.setMargin(true);

    final Window sub = new Window("PER DIEM", vlayout);
    sub.setWidth("220px");
    sub.setModal(true);
    sub.center();

    final TextField perDiemAmount = new TextField("Amount: ");
    perDiemAmount.setWidth("100%");
    perDiemAmount
            .setValue(util.convertStringToDouble(getPayrollTableItem().getItemProperty("per diem").toString()));
    perDiemAmount.setNullSettingAllowed(false);
    sub.addComponent(perDiemAmount);

    Button save = new Button("SAVE");
    save.setWidth("100%");
    save.addListener(new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            int payrollId = util
                    .convertStringToInteger(getPayrollTableItem().getItemProperty("id").getValue().toString());
            double amountToBeReceive = util.convertStringToDouble(
                    getPayrollTableItem().getItemProperty("amount to be receive").toString());
            double amountReceived = util
                    .convertStringToDouble(getPayrollTableItem().getItemProperty("amount received").toString());
            double amount = util.convertStringToDouble(perDiemAmount.getValue().toString())
                    - util.convertStringToDouble(
                            getPayrollTableItem().getItemProperty("per diem").getValue().toString());

            boolean result = ps.addPerDiem(payrollId,
                    util.convertStringToDouble(perDiemAmount.getValue().toString()),
                    util.convertStringToDouble(
                            getPayrollTableItem().getItemProperty("per diem").getValue().toString()),
                    amountToBeReceive, amountReceived);
            if (result) {
                getPayrollTableItem().getItemProperty("amount to be receive")
                        .setValue(amountToBeReceive + amount);
                getPayrollTableItem().getItemProperty("amount received").setValue(amountReceived + amount);
                getPayrollTableItem().getItemProperty("per diem").setValue(perDiemAmount.getValue());
                (sub.getParent()).removeWindow(sub);
            }
        }
    });
    sub.addComponent(save);

    return sub;
}

From source file:com.openhris.timekeeping.AttendanceTableContainerWindow.java

VerticalLayout generateAttendanceTable() {
    VerticalLayout vlayout = new VerticalLayout();
    vlayout.setSizeFull();//from ww w  .  j av  a2  s .c o m
    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.java2 s  .c om*/
    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;
}

From source file:com.peergreen.example.webconsole.extensions.NotifierExtension.java

License:Open Source License

@PostConstruct
public void init() {
    HorizontalLayout row = new HorizontalLayout();
    row.setWidth("100%");
    Button simpleButton = new Button("Click to create a notification !");
    final Random random = new Random();
    simpleButton.addClickListener(new Button.ClickListener() {
        @Override/*from   w  w w  .  j av  a2 s  .  c  o m*/
        public void buttonClick(Button.ClickEvent clickEvent) {
            notifierService.addNotification(MESSAGES[random.nextInt(MESSAGES.length)]);
        }
    });
    simpleButton.setWidth("400px");
    row.addComponent(simpleButton);
    row.setComponentAlignment(simpleButton, Alignment.BOTTOM_LEFT);

    final TextField customNotification = new TextField();
    customNotification.setCaption("Write something and type enter");
    final ShortcutListener addNotification = new ShortcutListener("Execute", ShortcutAction.KeyCode.ENTER,
            null) {
        @Override
        public void handleAction(Object o, Object o2) {
            notifierService.addNotification(customNotification.getValue());
            customNotification.setValue("");
        }
    };
    customNotification.addFocusListener(new FieldEvents.FocusListener() {
        @Override
        public void focus(FieldEvents.FocusEvent focusEvent) {
            customNotification.addShortcutListener(addNotification);
        }
    });
    customNotification.addBlurListener(new FieldEvents.BlurListener() {
        @Override
        public void blur(FieldEvents.BlurEvent blurEvent) {
            customNotification.removeShortcutListener(addNotification);
        }
    });
    customNotification.setWidth("400px");
    row.addComponent(customNotification);
    addComponent(row);
    setExpandRatio(row, 1.5f);
}