List of usage examples for com.vaadin.ui TextField TextField
public TextField()
TextField
with no caption. From source file:com.mycollab.vaadin.web.ui.MailFormWindow.java
License:Open Source License
private void initUI() { GridLayout mainLayout = new GridLayout(1, 5); mainLayout.setWidth("100%"); mainLayout.setMargin(true);/* w w w . ja va2s . c o m*/ mainLayout.setSpacing(true); CssLayout inputPanel = new CssLayout(); inputPanel.setWidth("100%"); inputPanel.setStyleName("mail-panel"); inputLayout = new GridLayout(3, 4); inputLayout.setSpacing(true); inputLayout.setWidth("100%"); inputLayout.setColumnExpandRatio(0, 1.0f); inputPanel.addComponent(inputLayout); mainLayout.addComponent(inputPanel); tokenFieldMailTo = new EmailTokenField(); inputLayout.addComponent(createTextFieldMail("To:", tokenFieldMailTo), 0, 0); if (lstMail != null) { for (String mail : lstMail) { if (StringUtils.isNotBlank(mail)) { if (mail.indexOf("<") > -1) { String strMail = mail.substring(mail.indexOf("<") + 1, mail.lastIndexOf(">")); if (strMail != null && !strMail.equalsIgnoreCase("null")) { } } else { } } } } final TextField subject = new TextField(); subject.setRequired(true); subject.setWidth("100%"); subjectField = createTextFieldMail("Subject:", subject); inputLayout.addComponent(subjectField, 0, 1); initButtonLinkCcBcc(); ccField = createTextFieldMail("Cc:", tokenFieldMailCc); bccField = createTextFieldMail("Bcc:", tokenFieldMailBcc); final RichTextArea noteArea = new RichTextArea(); noteArea.setWidth("100%"); noteArea.setHeight("200px"); mainLayout.addComponent(noteArea, 0, 1); mainLayout.setComponentAlignment(noteArea, Alignment.MIDDLE_CENTER); final AttachmentPanel attachments = new AttachmentPanel(); attachments.setWidth("500px"); MButton cancelBtn = new MButton(UserUIContext.getMessage(GenericI18Enum.BUTTON_CANCEL), clickEvent -> close()).withStyleName(WebThemes.BUTTON_OPTION); MButton sendBtn = new MButton(UserUIContext.getMessage(GenericI18Enum.ACTION_SEND_EMAIL), clickEvent -> { if (tokenFieldMailTo.getListRecipient().size() <= 0 || subject.getValue().equals("")) { NotificationUtil.showErrorNotification( "To Email field and Subject field must be not empty! Please fulfil them before sending email."); return; } if (UserUIContext.getUser().getEmail() != null && UserUIContext.getUser().getEmail().length() > 0) { ExtMailService systemMailService = AppContextUtil.getSpringBean(ExtMailService.class); List<File> listFile = attachments.files(); List<AttachmentSource> attachmentSource = null; if (listFile != null && listFile.size() > 0) { attachmentSource = new ArrayList<>(); for (File file : listFile) { attachmentSource.add(new FileAttachmentSource(file)); } } systemMailService.sendHTMLMail(UserUIContext.getUser().getEmail(), UserUIContext.getUser().getDisplayName(), tokenFieldMailTo.getListRecipient(), tokenFieldMailCc.getListRecipient(), tokenFieldMailBcc.getListRecipient(), subject.getValue(), noteArea.getValue(), attachmentSource, true); close(); } else { NotificationUtil .showErrorNotification("Your email is empty value, please fulfil it before sending email!"); } }).withIcon(FontAwesome.SEND).withStyleName(WebThemes.BUTTON_ACTION); MHorizontalLayout controlsLayout = new MHorizontalLayout(attachments, cancelBtn, sendBtn) .expand(attachments).withFullWidth(); mainLayout.addComponent(controlsLayout, 0, 2); this.setContent(mainLayout); }
From source file:com.mycollab.vaadin.web.ui.MultiSelectComp.java
License:Open Source License
public MultiSelectComp(final String displayName, boolean canAddNew) { this.canAddNew = canAddNew; propertyDisplayField = displayName;//from w ww.ja va 2s. c om componentsText = new TextField(); componentsText.setNullRepresentation(""); componentsText.setReadOnly(true); componentsText.addStyleName("noBorderRight"); componentsText.setWidth("100%"); componentPopupSelection = new PopupButton(); componentPopupSelection.addClickListener(clickEvent -> initContentPopup()); popupContent = new MVerticalLayout(); componentPopupSelection.setContent(popupContent); }
From source file:com.mycollab.vaadin.web.ui.SavedFilterComboBox.java
License:Open Source License
@Override protected Component initContent() { componentsText = new TextField(); componentsText.setNullRepresentation(""); componentsText.setReadOnly(true);//from w ww.j ava2 s .c o m componentsText.addStyleName("noBorderRight"); componentsText.setWidth("100%"); componentPopupSelection = new PopupButton(); componentPopupSelection.addStyleName(WebThemes.MULTI_SELECT_BG); componentPopupSelection.setDirection(Alignment.TOP_LEFT); componentPopupSelection.addClickListener(clickEvent -> initContentPopup()); popupContent = new OptionPopupContent(); componentPopupSelection.setContent(popupContent); MHorizontalLayout content = new MHorizontalLayout(componentsText).withAlign(componentsText, Alignment.MIDDLE_LEFT); MHorizontalLayout multiSelectComp = new MHorizontalLayout(componentsText, componentPopupSelection) .withSpacing(false).expand(componentsText); content.with(multiSelectComp); return content; }
From source file:com.mycollab.vaadin.web.ui.SearchTextField.java
License:Open Source License
public SearchTextField() { this.setDefaultComponentAlignment(Alignment.MIDDLE_RIGHT); ELabel icon = ELabel.fontIcon(FontAwesome.SEARCH); innerField = new TextField(); innerField.setImmediate(true);// w w w. j a va 2s .c o m innerField.setInputPrompt(UserUIContext.getMessage(GenericI18Enum.BUTTON_SEARCH)); innerField.setWidth("180px"); this.with(icon, innerField).withStyleName("searchfield"); ShortcutListener shortcutListener = new ShortcutListener("searchfield", ShortcutAction.KeyCode.ENTER, null) { @Override public void handleAction(Object sender, Object target) { String value = ((TextField) target).getValue(); if (isNotBlank(value)) { doSearch(value); } else { emptySearch(); } } }; ShortcutExtension.installShortcutAction(innerField, shortcutListener); }
From source file:com.nfl.dm.clubsites.cms.articles.subapp.articleeditor.tagging.TaggingViewImpl.java
License:Open Source License
private void buildCustomTagsLayout() { final VerticalLayout customTags = new VerticalLayout(); customTags.setCaption("Custom Tags"); final HorizontalLayout newTagLayout = new HorizontalLayout(); newTagLayout.setSizeUndefined();/*from w w w .ja v a 2s . c o m*/ final TextField newTagTextField = new TextField(); newTagTextField.addStyleName("new-tag-textfield"); newTagTextField.setHeight("52px"); newTagTextField.setWidth("320px"); newTagTextField.setNullRepresentation(""); newTagTextField.setInputPrompt("Add new tag"); NativeButton addTagButton = new NativeButton("", new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { addCustomTag(newTagTextField); } }); addTagButton.addStyleName("add-tag-button"); newTagLayout.addComponent(newTagTextField); newTagLayout.addComponent(addTagButton); newTagLayout.setExpandRatio(newTagTextField, 1f); /* NativeButton addGenerateTagsButton = new NativeButton("", new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { // Generate Tags } }); addGenerateTagsButton.addStyleName("generate-tags-button"); addGenerateTagsButton.setCaption("Generate Tags"); newTagLayout.addComponent(addGenerateTagsButton); */ customTags.addComponent(newTagLayout); customTags.addComponent(customTagLayout); this.tagLayout.addComponent(customTags); }
From source file:com.ocs.dynamo.domain.model.impl.ModelBasedFieldFactory.java
License:Apache License
/** * Creates a field//from w w w . j ava 2s .c o m * * @param propertyId * the name of the property that can be edited by this field * @param fieldEntityModel * the custom entity model for the field * @return */ public Field<?> createField(String propertyId, EntityModel<?> fieldEntityModel) { // in case of a read-only field, return <code>null</code> so Vaadin will // render a label instead AttributeModel attributeModel = model.getAttributeModel(propertyId); if (attributeModel.isReadOnly() && (!attributeModel.isUrl() && !AttributeType.DETAIL.equals(attributeModel.getAttributeType())) && !search) { return null; } Field<?> field = null; if (AttributeTextFieldMode.TEXTAREA.equals(attributeModel.getTextFieldMode()) && !search) { // text area field field = new TextArea(); } else if (attributeModel.isWeek()) { // special case - week field in a table TextField tf = new TextField(); tf.setConverter(new WeekCodeConverter()); field = tf; } else if (search && attributeModel.getType().equals(Boolean.class)) { // in a search screen, we need to offer the true, false, and // undefined options field = constructSearchBooleanComboBox(attributeModel); } else if (AbstractEntity.class.isAssignableFrom(attributeModel.getType())) { // lookup or combo field for an entity field = constructSelectField(attributeModel, fieldEntityModel, null); } else if (AttributeType.ELEMENT_COLLECTION.equals(attributeModel.getAttributeType())) { // use a "collection table" for an element collection FormOptions fo = new FormOptions(); fo.setShowRemoveButton(true); if (String.class.equals(attributeModel.getMemberType())) { CollectionTable<String> table = new CollectionTable<>(false, fo, String.class); table.setMinLength(attributeModel.getMinLength()); table.setMaxLength(attributeModel.getMaxLength()); field = table; } else if (Integer.class.equals(attributeModel.getMemberType())) { CollectionTable<Integer> table = new CollectionTable<>(false, fo, Integer.class); field = table; } else { // other types not supported for now throw new OCSRuntimeException(); } } else if (Collection.class.isAssignableFrom(attributeModel.getType())) { // render a multiple select component for a collection field = constructCollectionSelect(attributeModel.getNestedEntityModel(), attributeModel, null, true, search); } else if (AttributeDateType.TIME.equals(attributeModel.getDateType())) { TimeField tf = new TimeField(); tf.setResolution(Resolution.MINUTE); tf.setLocale(VaadinSession.getCurrent() == null ? DynamoConstants.DEFAULT_LOCALE : VaadinSession.getCurrent().getLocale()); field = tf; } else if (attributeModel.isUrl()) { // URL field (offers clickable link in readonly mode) TextField tf = (TextField) createField(attributeModel.getType(), Field.class); tf.addValidator(new URLValidator(messageService.getMessage("ocs.no.valid.url"))); tf.setNullRepresentation(null); tf.setSizeFull(); // wrap text field in URL field field = new URLField(tf, attributeModel, false); field.setSizeFull(); } else { // just a regular field field = createField(attributeModel.getType(), Field.class); } field.setCaption(attributeModel.getDisplayName()); postProcessField(field, attributeModel); // add a field validator based on JSR-303 bean validation if (validate) { field.addValidator(new BeanValidator(model.getEntityClass(), (String) propertyId)); // disable the field if it cannot be edited if (!attributeModel.isUrl()) { field.setEnabled(!attributeModel.isReadOnly()); } if (attributeModel.isNumerical()) { field.addStyleName(DynamoConstants.CSS_NUMERICAL); } } return field; }
From source file:com.ocs.dynamo.ui.composite.table.CustomTreeTable.java
License:Apache License
@Override public void build() { setEditable(true);//from w w w .j av a 2 s .co m setSizeFull(); // retrieve the rows to display final List<V> parentCollection = getParentCollection(); addContainerProperties(); int nrOfProperties = getContainerPropertyIds().size(); String[] sumColumns = getSumColumns(); // adds a style generator that highlights the parent rows in bold setCellStyleGenerator(new CellStyleGenerator() { @Override public String getStyle(Table source, Object itemId, Object propertyId) { if (itemId.toString().startsWith(PREFIX_PARENTROW)) { return "parentRow"; } else { return getCustomStyle(itemId, propertyId); } } }); // custom field factory for creating editable fields for certain // properties this.setTableFieldFactory(new TableFieldFactory() { private boolean editAllowed = isEditAllowed(); @Override public Field<?> createField(Container container, Object itemId, final Object propertyId, Component uiContext) { if (!isViewMode() && editAllowed && isEditable(propertyId.toString()) && itemId.toString().startsWith(PREFIX_CHILDROW)) { final TextField tf = new TextField(); tf.setData(itemId); tf.setNullRepresentation(""); tf.setNullSettingAllowed(true); // set the appropriate converter tf.setConverter(createConverter(propertyId.toString())); tf.addFocusListener(new FocusListener() { @Override public void focus(FocusEvent event) { clickedColumn = propertyId.toString(); } }); // add a value change listener (for responding to paste // events and normal changes) tf.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) { if (propagateChanges) { handleChange(tf, propertyId.toString(), (String) event.getProperty().getValue()); } } }); // align all text field to the right tf.setStyleName(DynamoConstants.CSS_NUMERICAL); postProcessField(propertyId, itemId, tf); return tf; } return null; } }); int parentCounter = 0; int childCounter = 0; // footer sums Map<String, BigDecimal> totalSumMap = new HashMap<>(); for (String s : sumColumns) { totalSumMap.put(s, BigDecimal.ZERO); } for (V v : parentCollection) { // sum on the parent level Map<String, BigDecimal> sumMap = new HashMap<>(); for (String s : sumColumns) { sumMap.put(s, BigDecimal.ZERO); } Object[] parentRow = new Object[nrOfProperties]; fillParentRow(parentRow, v); Object parentId = this.addItem(parentRow, PREFIX_PARENTROW + parentCounter); this.setChildrenAllowed(parentId, true); this.setCollapsed(parentId, false); List<U> rowCollection = getRowCollection(v); for (U u : rowCollection) { Object[] childRow = new Object[nrOfProperties]; fillChildRow(childRow, u, v); // add the child and set the connection to the parent Object childId = this.addItem(childRow, PREFIX_CHILDROW + childCounter); this.setParent(childId, parentId); this.setChildrenAllowed(childId, false); // update the sum columns on the parent level for (String column : sumColumns) { Number value = (Number) this.getItem(childId).getItemProperty(column).getValue(); BigDecimal sum = sumMap.get(column); sumMap.put(column, sum.add(value == null ? BigDecimal.ZERO : toBigDecimal(value))); } childCounter++; } // set the sum on the parent level and update the grand total for (String s : sumColumns) { BigDecimal sum = sumMap.get(s); this.getItem(parentId).getItemProperty(s).setValue(convertNumber(sum, s)); BigDecimal totalSum = totalSumMap.get(s); totalSumMap.put(s, totalSum.add(sum)); } parentCounter++; } // update the footer sums for (String column : sumColumns) { BigDecimal bd = totalSumMap.get(column); this.setColumnFooter(column, convertToString(bd, column)); } setFooterVisible(true); // right align certain columns for (Object propertyId : this.getContainerPropertyIds()) { if (isRightAligned(propertyId.toString())) { this.setColumnAlignment(propertyId, Table.Align.RIGHT); } } // respond to a click by storing the column ID this.addItemClickListener(new ItemClickListener() { @Override public void itemClick(ItemClickEvent event) { if (MouseButton.RIGHT.equals(event.getButton())) { clickedColumn = (String) event.getPropertyId(); } } }); if (isShowActionMenu()) { constructActionMenu(parentCollection); } }
From source file:com.openhris.employee.EmployeeAddress.java
private TextField createTextField(String str) { TextField t = new TextField(); t.setCaption(str);//from w w w . j a va 2 s . c om t.setWidth("100%"); t.setStyleName(Reindeer.TEXTFIELD_SMALL); t.setNullSettingAllowed(true); return t; }
From source file:com.openhris.timekeeping.AttendanceTableContainerWindow.java
VerticalLayout generateAttendanceTable() { VerticalLayout vlayout = new VerticalLayout(); vlayout.setSizeFull();/*from w w 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 . j av a 2s . c o 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; }