fix enable save button problem when update
Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>
This commit is contained in:
@@ -32,8 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory;
|
import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory;
|
||||||
import org.vaadin.spring.events.EventBus;
|
import org.vaadin.spring.events.EventBus;
|
||||||
|
|
||||||
import com.vaadin.data.Property.ValueChangeEvent;
|
|
||||||
import com.vaadin.event.FieldEvents.TextChangeEvent;
|
|
||||||
import com.vaadin.spring.annotation.SpringComponent;
|
import com.vaadin.spring.annotation.SpringComponent;
|
||||||
import com.vaadin.spring.annotation.ViewScope;
|
import com.vaadin.spring.annotation.ViewScope;
|
||||||
import com.vaadin.ui.AbstractField;
|
import com.vaadin.ui.AbstractField;
|
||||||
@@ -84,9 +82,15 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se
|
|||||||
|
|
||||||
private CommonDialogWindow window;
|
private CommonDialogWindow window;
|
||||||
|
|
||||||
private String oldDescriptionValue;
|
private String originalDescriptionValue;
|
||||||
|
|
||||||
private String oldVendorValue;
|
private String originalVendorValue;
|
||||||
|
|
||||||
|
private String originalNameValue;
|
||||||
|
|
||||||
|
private String originalVersionValue;
|
||||||
|
|
||||||
|
private String originalComboBoxValue;
|
||||||
|
|
||||||
private Boolean editSwModule = Boolean.FALSE;
|
private Boolean editSwModule = Boolean.FALSE;
|
||||||
|
|
||||||
@@ -135,26 +139,31 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se
|
|||||||
nameTextField = SPUIComponentProvider.getTextField(i18n.get("textfield.name"), "", ValoTheme.TEXTFIELD_TINY,
|
nameTextField = SPUIComponentProvider.getTextField(i18n.get("textfield.name"), "", ValoTheme.TEXTFIELD_TINY,
|
||||||
true, null, i18n.get("textfield.name"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
true, null, i18n.get("textfield.name"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
nameTextField.setId(SPUIComponentIdProvider.SOFT_MODULE_NAME);
|
nameTextField.setId(SPUIComponentIdProvider.SOFT_MODULE_NAME);
|
||||||
nameTextField.addTextChangeListener(this::listenerNameTextFieldChanged);
|
nameTextField.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalNameValue));
|
||||||
|
nameTextField.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, nameTextField));
|
||||||
|
|
||||||
/* version text field */
|
/* version text field */
|
||||||
versionTextField = SPUIComponentProvider.getTextField(i18n.get("textfield.version"), "",
|
versionTextField = SPUIComponentProvider.getTextField(i18n.get("textfield.version"), "",
|
||||||
ValoTheme.TEXTFIELD_TINY, true, null, i18n.get("textfield.version"), true,
|
ValoTheme.TEXTFIELD_TINY, true, null, i18n.get("textfield.version"), true,
|
||||||
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
versionTextField.setId(SPUIComponentIdProvider.SOFT_MODULE_VERSION);
|
versionTextField.setId(SPUIComponentIdProvider.SOFT_MODULE_VERSION);
|
||||||
versionTextField.addTextChangeListener(this::listenerVersionTextFieldChanged);
|
versionTextField
|
||||||
|
.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalVersionValue));
|
||||||
|
versionTextField.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, versionTextField));
|
||||||
|
|
||||||
/* Vendor text field */
|
/* Vendor text field */
|
||||||
vendorTextField = SPUIComponentProvider.getTextField(i18n.get("textfield.vendor"), "", ValoTheme.TEXTFIELD_TINY,
|
vendorTextField = SPUIComponentProvider.getTextField(i18n.get("textfield.vendor"), "", ValoTheme.TEXTFIELD_TINY,
|
||||||
false, null, i18n.get("textfield.vendor"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
false, null, i18n.get("textfield.vendor"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
vendorTextField.setId(SPUIComponentIdProvider.SOFT_MODULE_VENDOR);
|
vendorTextField.setId(SPUIComponentIdProvider.SOFT_MODULE_VENDOR);
|
||||||
|
vendorTextField
|
||||||
|
.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalVendorValue));
|
||||||
|
|
||||||
descTextArea = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "text-area-style",
|
descTextArea = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "text-area-style",
|
||||||
ValoTheme.TEXTAREA_TINY, false, null, i18n.get("textfield.description"),
|
ValoTheme.TEXTAREA_TINY, false, null, i18n.get("textfield.description"),
|
||||||
SPUILabelDefinitions.TEXT_AREA_MAX_LENGTH);
|
SPUILabelDefinitions.TEXT_AREA_MAX_LENGTH);
|
||||||
descTextArea.setId(SPUIComponentIdProvider.ADD_SW_MODULE_DESCRIPTION);
|
descTextArea.setId(SPUIComponentIdProvider.ADD_SW_MODULE_DESCRIPTION);
|
||||||
addDescriptionTextChangeListener();
|
descTextArea
|
||||||
addVendorTextChangeListener();
|
.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalDescriptionValue));
|
||||||
|
|
||||||
typeComboBox = SPUIComponentProvider.getComboBox(i18n.get("upload.swmodule.type"), "", "", null, null, true,
|
typeComboBox = SPUIComponentProvider.getComboBox(i18n.get("upload.swmodule.type"), "", "", null, null, true,
|
||||||
null, i18n.get("upload.swmodule.type"));
|
null, i18n.get("upload.swmodule.type"));
|
||||||
@@ -162,43 +171,40 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se
|
|||||||
typeComboBox.setStyleName(SPUIDefinitions.COMBO_BOX_SPECIFIC_STYLE + " " + ValoTheme.COMBOBOX_TINY);
|
typeComboBox.setStyleName(SPUIDefinitions.COMBO_BOX_SPECIFIC_STYLE + " " + ValoTheme.COMBOBOX_TINY);
|
||||||
typeComboBox.setNewItemsAllowed(Boolean.FALSE);
|
typeComboBox.setNewItemsAllowed(Boolean.FALSE);
|
||||||
typeComboBox.setImmediate(Boolean.TRUE);
|
typeComboBox.setImmediate(Boolean.TRUE);
|
||||||
typeComboBox.addValueChangeListener(this::listenerTypeComboBoxChanged);
|
|
||||||
|
|
||||||
populateTypeNameCombo();
|
populateTypeNameCombo();
|
||||||
|
typeComboBox.addValueChangeListener(
|
||||||
resetOldValues();
|
event -> window.checkMandatoryEditedValue(event, typeComboBox, originalComboBoxValue));
|
||||||
}
|
|
||||||
|
|
||||||
private void listenerNameTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
window.checkMandatoryTextField(event, nameTextField);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void listenerVersionTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
window.checkMandatoryTextField(event, versionTextField);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void listenerTypeComboBoxChanged(final ValueChangeEvent event) {
|
|
||||||
window.checkMandatoryComboBox(event, typeComboBox);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void populateTypeNameCombo() {
|
private void populateTypeNameCombo() {
|
||||||
typeComboBox.setContainerDataSource(HawkbitCommonUtil.createLazyQueryContainer(
|
typeComboBox.setContainerDataSource(HawkbitCommonUtil.createLazyQueryContainer(
|
||||||
new BeanQueryFactory<SoftwareModuleTypeBeanQuery>(SoftwareModuleTypeBeanQuery.class)));
|
new BeanQueryFactory<SoftwareModuleTypeBeanQuery>(SoftwareModuleTypeBeanQuery.class)));
|
||||||
typeComboBox.setItemCaptionPropertyId(SPUILabelDefinitions.VAR_NAME);
|
typeComboBox.setItemCaptionPropertyId(SPUILabelDefinitions.VAR_NAME);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetOldValues() {
|
private void resetComponents() {
|
||||||
oldDescriptionValue = null;
|
|
||||||
oldVendorValue = null;
|
vendorTextField.clear();
|
||||||
|
nameTextField.clear();
|
||||||
|
versionTextField.clear();
|
||||||
|
descTextArea.clear();
|
||||||
|
typeComboBox.clear();
|
||||||
|
|
||||||
|
originalDescriptionValue = null;
|
||||||
|
originalVendorValue = null;
|
||||||
|
originalComboBoxValue = null;
|
||||||
|
originalNameValue = null;
|
||||||
|
originalVersionValue = null;
|
||||||
|
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
window.resetMandatoryAndEditedFields();
|
window.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createWindow() {
|
private void createWindow() {
|
||||||
|
|
||||||
|
resetComponents();
|
||||||
|
|
||||||
final Label madatoryStarLabel = new Label("*");
|
final Label madatoryStarLabel = new Label("*");
|
||||||
madatoryStarLabel.setStyleName("v-caption v-required-field-indicator");
|
madatoryStarLabel.setStyleName("v-caption v-required-field-indicator");
|
||||||
madatoryStarLabel.setWidth(null);
|
madatoryStarLabel.setWidth(null);
|
||||||
@@ -223,9 +229,9 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se
|
|||||||
/* add main layout to the window */
|
/* add main layout to the window */
|
||||||
window = SPUIComponentProvider.getWindow(i18n.get("upload.caption.add.new.swmodule"), null,
|
window = SPUIComponentProvider.getWindow(i18n.get("upload.caption.add.new.swmodule"), null,
|
||||||
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveOrUpdate(), event -> closeThisWindow(), null,
|
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveOrUpdate(), event -> closeThisWindow(), null,
|
||||||
getMandatoryFields(formLayout), null, i18n);
|
getMandatoryFields(formLayout), geEditedFields(), i18n);
|
||||||
window.getButtonsLayout().removeStyleName("actionButtonsMargin");
|
window.getButtonsLayout().removeStyleName("actionButtonsMargin");
|
||||||
nameTextField.focus();
|
typeComboBox.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Boolean> getMandatoryFields(final FormLayout formLayout) {
|
private Map<String, Boolean> getMandatoryFields(final FormLayout formLayout) {
|
||||||
@@ -234,18 +240,20 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se
|
|||||||
while (iterate.hasNext()) {
|
while (iterate.hasNext()) {
|
||||||
final Component c = iterate.next();
|
final Component c = iterate.next();
|
||||||
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
||||||
requiredFields.put(c.getCaption(), null);
|
requiredFields.put(c.getId(), Boolean.FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return requiredFields;
|
return requiredFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addDescriptionTextChangeListener() {
|
private Map<String, Boolean> geEditedFields() {
|
||||||
descTextArea.addTextChangeListener(event -> window.setSaveButtonEnabled(hasDescriptionChanged(event)));
|
final Map<String, Boolean> editedFields = new HashMap<>();
|
||||||
}
|
editedFields.put(typeComboBox.getId(), Boolean.FALSE);
|
||||||
|
editedFields.put(nameTextField.getId(), Boolean.FALSE);
|
||||||
private void addVendorTextChangeListener() {
|
editedFields.put(vendorTextField.getId(), Boolean.FALSE);
|
||||||
vendorTextField.addTextChangeListener(event -> window.setSaveButtonEnabled(hasVendorChanged(event)));
|
editedFields.put(versionTextField.getId(), Boolean.FALSE);
|
||||||
|
editedFields.put(descTextArea.getId(), Boolean.FALSE);
|
||||||
|
return editedFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -309,13 +317,13 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se
|
|||||||
: HawkbitCommonUtil.trimAndNullIfEmpty(swModle.getVendor()));
|
: HawkbitCommonUtil.trimAndNullIfEmpty(swModle.getVendor()));
|
||||||
descTextArea.setValue(swModle.getDescription() == null ? HawkbitCommonUtil.SP_STRING_EMPTY
|
descTextArea.setValue(swModle.getDescription() == null ? HawkbitCommonUtil.SP_STRING_EMPTY
|
||||||
: HawkbitCommonUtil.trimAndNullIfEmpty(swModle.getDescription()));
|
: HawkbitCommonUtil.trimAndNullIfEmpty(swModle.getDescription()));
|
||||||
oldDescriptionValue = descTextArea.getValue();
|
originalDescriptionValue = descTextArea.getValue();
|
||||||
oldVendorValue = vendorTextField.getValue();
|
originalVendorValue = vendorTextField.getValue();
|
||||||
|
originalComboBoxValue = swModle.getType().getName();
|
||||||
if (swModle.getType().isDeleted()) {
|
if (swModle.getType().isDeleted()) {
|
||||||
typeComboBox.addItem(swModle.getType().getName());
|
typeComboBox.addItem(swModle.getType().getName());
|
||||||
}
|
}
|
||||||
typeComboBox.setValue(swModle.getType().getName());
|
typeComboBox.setValue(swModle.getType().getName());
|
||||||
window.setSaveButtonEnabled(Boolean.FALSE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -324,7 +332,6 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se
|
|||||||
private void closeThisWindow() {
|
private void closeThisWindow() {
|
||||||
window.close();
|
window.close();
|
||||||
UI.getCurrent().removeWindow(window);
|
UI.getCurrent().removeWindow(window);
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -361,15 +368,6 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se
|
|||||||
} else {
|
} else {
|
||||||
addNewBaseSoftware();
|
addNewBaseSoftware();
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean hasDescriptionChanged(final TextChangeEvent event) {
|
|
||||||
return !(event.getText().equals(oldDescriptionValue) && vendorTextField.getValue().equals(oldVendorValue));
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean hasVendorChanged(final TextChangeEvent event) {
|
|
||||||
return !(event.getText().equals(oldVendorValue) && descTextArea.getValue().equals(oldDescriptionValue));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public FormLayout getFormLayout() {
|
public FormLayout getFormLayout() {
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ import com.vaadin.ui.UI;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Header of Software module table.
|
* Header of Software module table.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
@SpringComponent
|
@SpringComponent
|
||||||
@ViewScope
|
@ViewScope
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory;
|
import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory;
|
||||||
|
|
||||||
import com.vaadin.data.Property.ValueChangeEvent;
|
import com.vaadin.data.Property.ValueChangeEvent;
|
||||||
import com.vaadin.event.FieldEvents.TextChangeEvent;
|
|
||||||
import com.vaadin.shared.ui.colorpicker.Color;
|
import com.vaadin.shared.ui.colorpicker.Color;
|
||||||
import com.vaadin.spring.annotation.SpringComponent;
|
import com.vaadin.spring.annotation.SpringComponent;
|
||||||
import com.vaadin.spring.annotation.ViewScope;
|
import com.vaadin.spring.annotation.ViewScope;
|
||||||
@@ -92,13 +91,15 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout
|
|||||||
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TYPE_NAME, true, "", i18n.get("textfield.name"), true,
|
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TYPE_NAME, true, "", i18n.get("textfield.name"), true,
|
||||||
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
tagName.setId(SPUIDefinitions.NEW_SOFTWARE_TYPE_NAME);
|
tagName.setId(SPUIDefinitions.NEW_SOFTWARE_TYPE_NAME);
|
||||||
tagName.addTextChangeListener(this::listenerTagNameTextFieldChanged);
|
tagName.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, getOriginalTagName()));
|
||||||
|
tagName.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, tagName));
|
||||||
|
|
||||||
typeKey = SPUIComponentProvider.getTextField(i18n.get("textfield.key"), "",
|
typeKey = SPUIComponentProvider.getTextField(i18n.get("textfield.key"), "",
|
||||||
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TYPE_KEY, true, "", i18n.get("textfield.key"), true,
|
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TYPE_KEY, true, "", i18n.get("textfield.key"), true,
|
||||||
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
typeKey.setId(SPUIDefinitions.NEW_SOFTWARE_TYPE_KEY);
|
typeKey.setId(SPUIDefinitions.NEW_SOFTWARE_TYPE_KEY);
|
||||||
typeKey.addTextChangeListener(this::typeKeyTextFieldChanged);
|
typeKey.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, getOriginalTypeKey()));
|
||||||
|
typeKey.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, typeKey));
|
||||||
|
|
||||||
tagDesc = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "",
|
tagDesc = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "",
|
||||||
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TYPE_DESC, false, "",
|
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TYPE_DESC, false, "",
|
||||||
@@ -106,19 +107,11 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout
|
|||||||
tagDesc.setId(SPUIDefinitions.NEW_SOFTWARE_TYPE_DESC);
|
tagDesc.setId(SPUIDefinitions.NEW_SOFTWARE_TYPE_DESC);
|
||||||
tagDesc.setImmediate(true);
|
tagDesc.setImmediate(true);
|
||||||
tagDesc.setNullRepresentation("");
|
tagDesc.setNullRepresentation("");
|
||||||
tagDesc.addTextChangeListener(this::listenerTagDescTextAreaChanged);
|
tagDesc.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, getOriginalTagDesc()));
|
||||||
|
|
||||||
singleMultiOptionGroup();
|
singleMultiOptionGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void listenerTagNameTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
window.checkMandatoryTextField(event, tagName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void typeKeyTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
window.checkMandatoryTextField(event, typeKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildLayout() {
|
protected void buildLayout() {
|
||||||
|
|
||||||
@@ -142,7 +135,7 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout
|
|||||||
while (iterate.hasNext()) {
|
while (iterate.hasNext()) {
|
||||||
final Component c = iterate.next();
|
final Component c = iterate.next();
|
||||||
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
||||||
requiredFields.put(c.getCaption(), null);
|
requiredFields.put(c.getId(), Boolean.FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return requiredFields;
|
return requiredFields;
|
||||||
@@ -164,6 +157,7 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout
|
|||||||
} else {
|
} else {
|
||||||
assignOptiongroup.setEnabled(true);
|
assignOptiongroup.setEnabled(true);
|
||||||
}
|
}
|
||||||
|
assignOptiongroup.select(singleAssignStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -195,18 +189,19 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout
|
|||||||
@Override
|
@Override
|
||||||
protected void setTagDetails(final String targetTagSelected) {
|
protected void setTagDetails(final String targetTagSelected) {
|
||||||
tagName.setValue(targetTagSelected);
|
tagName.setValue(targetTagSelected);
|
||||||
|
setOriginalTagName(targetTagSelected);
|
||||||
final SoftwareModuleType selectedTypeTag = swTypeManagementService
|
final SoftwareModuleType selectedTypeTag = swTypeManagementService
|
||||||
.findSoftwareModuleTypeByName(targetTagSelected);
|
.findSoftwareModuleTypeByName(targetTagSelected);
|
||||||
if (null != selectedTypeTag) {
|
if (null != selectedTypeTag) {
|
||||||
tagDesc.setValue(selectedTypeTag.getDescription());
|
tagDesc.setValue(selectedTypeTag.getDescription());
|
||||||
setTagDescOriginal(selectedTypeTag.getDescription());
|
setOriginalTagDesc(selectedTypeTag.getDescription());
|
||||||
typeKey.setValue(selectedTypeTag.getKey());
|
typeKey.setValue(selectedTypeTag.getKey());
|
||||||
|
setOriginalTypeKey(selectedTypeTag.getKey());
|
||||||
if (selectedTypeTag.getMaxAssignments() == Integer.MAX_VALUE) {
|
if (selectedTypeTag.getMaxAssignments() == Integer.MAX_VALUE) {
|
||||||
assignOptiongroup.setValue(multiAssignStr);
|
assignOptiongroup.setValue(multiAssignStr);
|
||||||
} else {
|
} else {
|
||||||
assignOptiongroup.setValue(singleAssignStr);
|
assignOptiongroup.setValue(singleAssignStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
setColorPickerComponentsColor(selectedTypeTag.getColour());
|
setColorPickerComponentsColor(selectedTypeTag.getColour());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -245,7 +240,7 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout
|
|||||||
|
|
||||||
updateSWModuleType(existingSMTypeByName);
|
updateSWModuleType(existingSMTypeByName);
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(false);
|
// window.setSaveButtonEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createNewSWModuleType() {
|
private void createNewSWModuleType() {
|
||||||
|
|||||||
@@ -11,8 +11,10 @@ package org.eclipse.hawkbit.ui.common;
|
|||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.eclipse.hawkbit.ui.artifacts.smtable.SoftwareModuleAddUpdateWindow;
|
import org.eclipse.hawkbit.ui.artifacts.smtable.SoftwareModuleAddUpdateWindow;
|
||||||
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
|
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
|
||||||
@@ -22,16 +24,14 @@ import org.eclipse.hawkbit.ui.management.targettable.TargetAddUpdateWindowLayout
|
|||||||
import org.eclipse.hawkbit.ui.utils.I18N;
|
import org.eclipse.hawkbit.ui.utils.I18N;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPUIComponentIdProvider;
|
import org.eclipse.hawkbit.ui.utils.SPUIComponentIdProvider;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions;
|
import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
|
|
||||||
import com.vaadin.data.Property.ValueChangeEvent;
|
import com.vaadin.data.Property.ValueChangeEvent;
|
||||||
import com.vaadin.data.Property.ValueChangeListener;
|
import com.vaadin.data.Property.ValueChangeListener;
|
||||||
import com.vaadin.event.FieldEvents.TextChangeEvent;
|
import com.vaadin.event.FieldEvents.TextChangeEvent;
|
||||||
import com.vaadin.server.FontAwesome;
|
import com.vaadin.server.FontAwesome;
|
||||||
import com.vaadin.shared.ui.colorpicker.Color;
|
import com.vaadin.shared.ui.colorpicker.Color;
|
||||||
|
import com.vaadin.ui.AbstractComponent;
|
||||||
import com.vaadin.ui.AbstractOrderedLayout;
|
import com.vaadin.ui.AbstractOrderedLayout;
|
||||||
import com.vaadin.ui.AbstractSelect;
|
|
||||||
import com.vaadin.ui.AbstractTextField;
|
|
||||||
import com.vaadin.ui.Alignment;
|
import com.vaadin.ui.Alignment;
|
||||||
import com.vaadin.ui.Button;
|
import com.vaadin.ui.Button;
|
||||||
import com.vaadin.ui.Button.ClickListener;
|
import com.vaadin.ui.Button.ClickListener;
|
||||||
@@ -74,9 +74,8 @@ public class CommonDialogWindow extends Window implements Serializable {
|
|||||||
|
|
||||||
private Map<String, Boolean> requiredFields;
|
private Map<String, Boolean> requiredFields;
|
||||||
|
|
||||||
private final Map<String, Boolean> editedFields;
|
private Map<String, Boolean> editedFields;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private final I18N i18n;
|
private final I18N i18n;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -104,41 +103,155 @@ public class CommonDialogWindow extends Window implements Serializable {
|
|||||||
this.saveButtonClickListener = saveButtonClickListener;
|
this.saveButtonClickListener = saveButtonClickListener;
|
||||||
this.cancelButtonClickListener = cancelButtonClickListener;
|
this.cancelButtonClickListener = cancelButtonClickListener;
|
||||||
this.requiredFields = requiredFields;
|
this.requiredFields = requiredFields;
|
||||||
|
if (requiredFields == null) {
|
||||||
|
this.requiredFields = Collections.emptyMap();
|
||||||
|
}
|
||||||
|
|
||||||
this.editedFields = editedFields;
|
this.editedFields = editedFields;
|
||||||
|
if (editedFields == null) {
|
||||||
|
this.editedFields = Collections.emptyMap();
|
||||||
|
}
|
||||||
this.i18n = i18n;
|
this.i18n = i18n;
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkMandatoryTextField(final TextChangeEvent event, final AbstractTextField textfield) {
|
/**
|
||||||
|
* Checks if all mandatory fields are filled, and if there are changes in
|
||||||
if (StringUtils.isNotBlank(event.getText())) {
|
* the current field. If yes, the save button will be enabled.
|
||||||
if (StringUtils.isNotBlank(textfield.getCaption())) {
|
*
|
||||||
requiredFields.put(textfield.getCaption(), Boolean.TRUE);
|
* @param event
|
||||||
}
|
* TextChangeEvent
|
||||||
getRequiredFields().put(textfield.getId(), Boolean.TRUE);
|
* @param originalValue
|
||||||
} else {
|
* original Value of the current field
|
||||||
if (StringUtils.isNotBlank(textfield.getCaption())) {
|
*/
|
||||||
requiredFields.put(textfield.getCaption(), Boolean.FALSE);
|
public void checkMandatoryEditedTextField(final TextChangeEvent event, final String originalValue) {
|
||||||
}
|
final Component component = event.getComponent();
|
||||||
requiredFields.put(textfield.getId(), Boolean.FALSE);
|
if (!(component instanceof AbstractComponent)) {
|
||||||
|
throw new IllegalStateException("Only AbstractComponent not allow");
|
||||||
}
|
}
|
||||||
checkMandatoryFieldsFilled();
|
|
||||||
|
if (requiredFields.containsKey(component.getId())) {
|
||||||
|
final boolean isTextChangeNotEmpty = StringUtils.isNotBlank(event.getText());
|
||||||
|
setRequiredFieldChangeValue((AbstractComponent) component, isTextChangeNotEmpty);
|
||||||
|
}
|
||||||
|
checkChanges(component.getId(), event.getText(), originalValue);
|
||||||
|
checkSaveButtonEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkMandatoryComboBox(final ValueChangeEvent event, final AbstractSelect select) {
|
/**
|
||||||
|
* Checks if all mandatory fields are filled, and if there are changes in
|
||||||
if (event.getProperty().getValue() != null) {
|
* the current field. If yes, the save button will be enabled.
|
||||||
if (StringUtils.isNotBlank(select.getCaption())) {
|
*
|
||||||
requiredFields.put(select.getCaption(), Boolean.TRUE);
|
* @param event
|
||||||
}
|
* ValueChangeEvent
|
||||||
requiredFields.put(select.getId(), Boolean.TRUE);
|
* @param component
|
||||||
} else {
|
* current Component
|
||||||
if (StringUtils.isNotBlank(select.getCaption())) {
|
* @param originalValue
|
||||||
requiredFields.put(select.getCaption(), Boolean.FALSE);
|
* original Value of the current field
|
||||||
}
|
*/
|
||||||
requiredFields.put(select.getId(), Boolean.FALSE);
|
public void checkMandatoryEditedValue(final ValueChangeEvent event, final AbstractComponent component,
|
||||||
|
final String originalValue) {
|
||||||
|
final boolean isChangedValueNotNull = event.getProperty().getValue() != null;
|
||||||
|
if (requiredFields.containsKey(component.getId())) {
|
||||||
|
setRequiredFieldChangeValue(component, isChangedValueNotNull);
|
||||||
}
|
}
|
||||||
checkMandatoryFieldsFilled();
|
if (event.getProperty().getValue() != null) {
|
||||||
|
checkChanges(component.getId(), event.getProperty().getValue().toString(), originalValue);
|
||||||
|
} else {
|
||||||
|
checkChanges(component.getId(), null, originalValue);
|
||||||
|
}
|
||||||
|
checkSaveButtonEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if all mandatory fields are filled, and if there are changes in
|
||||||
|
* the current field. (Boolean) If yes, the save button will be enabled.
|
||||||
|
*
|
||||||
|
* @param event
|
||||||
|
* ValueChangeEvent
|
||||||
|
* @param component
|
||||||
|
* current Component
|
||||||
|
* @param originalValue
|
||||||
|
* original Boolean Value of the current field
|
||||||
|
*/
|
||||||
|
public void checkMandatoryEditedValueBoolean(final ValueChangeEvent event, final AbstractComponent component,
|
||||||
|
final Boolean originalValue) {
|
||||||
|
final boolean isChangedValueNotNull = event.getProperty().getValue() != null;
|
||||||
|
if (requiredFields.containsKey(component.getId())) {
|
||||||
|
setRequiredFieldChangeValue(component, isChangedValueNotNull);
|
||||||
|
}
|
||||||
|
final Boolean changed = (Boolean) event.getProperty().getValue();
|
||||||
|
editedFields.put(component.getId(), BooleanUtils.compare(changed, originalValue) != 0);
|
||||||
|
checkSaveButtonEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the map of required fields if a value is set. (e.g. on Update
|
||||||
|
* when editing a component)
|
||||||
|
*
|
||||||
|
* @param event
|
||||||
|
* ValueChangeEvent
|
||||||
|
* @param component
|
||||||
|
* current Component
|
||||||
|
*/
|
||||||
|
public void setRequiredFieldWhenUpdate(final ValueChangeEvent event, final AbstractComponent component) {
|
||||||
|
final boolean isChangedValueNotNull = event.getProperty().getValue() != null;
|
||||||
|
setRequiredFieldChangeValue(component, isChangedValueNotNull);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* * Updates the map of required fields if a value is set. (e.g. on Update
|
||||||
|
* when editing a component)
|
||||||
|
*
|
||||||
|
* @param fieldId
|
||||||
|
* Id of the current component
|
||||||
|
* @param filled
|
||||||
|
* Boolean if field is filled
|
||||||
|
*/
|
||||||
|
public void updateRequiredFields(final String fieldId, final Boolean filled) {
|
||||||
|
|
||||||
|
requiredFields.put(fieldId, filled);
|
||||||
|
checkSaveButtonEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if Color is changed
|
||||||
|
*
|
||||||
|
* @param fieldId
|
||||||
|
* Id of the current component
|
||||||
|
* @param newColor
|
||||||
|
* new Color
|
||||||
|
* @param oldColor
|
||||||
|
* old Color
|
||||||
|
*/
|
||||||
|
public void checkColorChange(final String fieldId, final Color newColor, final Color oldColor) {
|
||||||
|
editedFields.put(fieldId, !newColor.equals(oldColor));
|
||||||
|
checkSaveButtonEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the map of fields which can be edited.
|
||||||
|
*
|
||||||
|
* @param fieldId
|
||||||
|
* Id of the current component
|
||||||
|
* @param hasTextValueChanged
|
||||||
|
* Boolean if value has changed
|
||||||
|
*/
|
||||||
|
public void updateEditedFields(final String fieldId, final Boolean hasTextValueChanged) {
|
||||||
|
editedFields.put(fieldId, hasTextValueChanged);
|
||||||
|
checkSaveButtonEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets the map of mandatory and edited Fields and disable the save button
|
||||||
|
*/
|
||||||
|
public void reset() {
|
||||||
|
saveButton.setEnabled(false);
|
||||||
|
resetFields();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setRequiredFieldChangeValue(final AbstractComponent component, final boolean isTextChangeNotEmpty) {
|
||||||
|
requiredFields.put(component.getId(), isTextChangeNotEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -146,69 +259,23 @@ public class CommonDialogWindow extends Window implements Serializable {
|
|||||||
* mandatory fields are filled the save button is enabled. Otherwise the
|
* mandatory fields are filled the save button is enabled. Otherwise the
|
||||||
* save button is disabled.
|
* save button is disabled.
|
||||||
*/
|
*/
|
||||||
private void checkMandatoryFieldsFilled() {
|
private void checkSaveButtonEnabled() {
|
||||||
|
saveButton.setEnabled(!requiredFields.containsValue(Boolean.FALSE) && editedFields.containsValue(Boolean.TRUE));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkChanges(final String fieldName, final String newText, final String oldText) {
|
||||||
|
final boolean hasTextValueChanged = (StringUtils.isNotBlank(newText) && !newText.equals(oldText))
|
||||||
|
|| (StringUtils.isNotBlank(oldText) && !oldText.equals(newText));
|
||||||
|
editedFields.put(fieldName, hasTextValueChanged);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resetFields() {
|
||||||
for (final Map.Entry<String, Boolean> entry : requiredFields.entrySet()) {
|
for (final Map.Entry<String, Boolean> entry : requiredFields.entrySet()) {
|
||||||
if (entry.getValue() == null || entry.getValue().equals(Boolean.FALSE)) {
|
entry.setValue(Boolean.FALSE);
|
||||||
saveButton.setEnabled(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
saveButton.setEnabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkExistsChanges() {
|
|
||||||
|
|
||||||
if (editedFields == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (final Map.Entry<String, Boolean> entry : editedFields.entrySet()) {
|
for (final Map.Entry<String, Boolean> entry : editedFields.entrySet()) {
|
||||||
if (entry.getValue() != null && entry.getValue().equals(Boolean.TRUE)) {
|
entry.setValue(Boolean.FALSE);
|
||||||
saveButton.setEnabled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
saveButton.setEnabled(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateRequiredFields(final String fieldId, final Boolean filled) {
|
|
||||||
|
|
||||||
requiredFields.put(fieldId, filled);
|
|
||||||
checkMandatoryFieldsFilled();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkChanges(final String fieldName, final String newText, final String oldText) {
|
|
||||||
|
|
||||||
if ((StringUtils.isNotBlank(newText) && !newText.equals(oldText))
|
|
||||||
|| (StringUtils.isNotBlank(oldText) && !oldText.equals(newText))) {
|
|
||||||
editedFields.put(fieldName, Boolean.TRUE);
|
|
||||||
} else {
|
|
||||||
editedFields.put(fieldName, Boolean.FALSE);
|
|
||||||
}
|
|
||||||
checkExistsChanges();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkColorChange(final String fieldName, final Color newColor, final Color oldColor) {
|
|
||||||
|
|
||||||
if (newColor.equals(oldColor)) {
|
|
||||||
editedFields.put(fieldName, Boolean.FALSE);
|
|
||||||
} else {
|
|
||||||
editedFields.put(fieldName, Boolean.TRUE);
|
|
||||||
}
|
|
||||||
checkExistsChanges();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void resetMandatoryAndEditedFields() {
|
|
||||||
resetFields(requiredFields);
|
|
||||||
resetFields(editedFields);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void resetFields(final Map<String, Boolean> fields) {
|
|
||||||
// Reset mandatory fields are filled marker / fields are edited marker
|
|
||||||
if (fields != null) {
|
|
||||||
for (final Map.Entry<String, Boolean> entry : fields.entrySet()) {
|
|
||||||
entry.setValue(null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,20 +325,22 @@ public class CommonDialogWindow extends Window implements Serializable {
|
|||||||
|
|
||||||
private void createMandatoryLabel() {
|
private void createMandatoryLabel() {
|
||||||
|
|
||||||
if (existsMandatoryFieldsInWindowContent()) {
|
if (!existsMandatoryFieldsInWindowContent()) {
|
||||||
final Label mandatoryLabel = new Label(i18n.get("label.mandatory.field"));
|
return;
|
||||||
mandatoryLabel.addStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR + " " + ValoTheme.LABEL_TINY);
|
|
||||||
|
|
||||||
if (content instanceof TargetAddUpdateWindowLayout) {
|
|
||||||
((TargetAddUpdateWindowLayout) content).getFormLayout().addComponent(mandatoryLabel);
|
|
||||||
} else if (content instanceof SoftwareModuleAddUpdateWindow) {
|
|
||||||
((SoftwareModuleAddUpdateWindow) content).getFormLayout().addComponent(mandatoryLabel);
|
|
||||||
} else if (content instanceof AbstractCreateUpdateTagLayout) {
|
|
||||||
((AbstractCreateUpdateTagLayout) content).getMainLayout().addComponent(mandatoryLabel);
|
|
||||||
}
|
|
||||||
|
|
||||||
mainLayout.addComponent(mandatoryLabel);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final Label mandatoryLabel = new Label(i18n.get("label.mandatory.field"));
|
||||||
|
mandatoryLabel.addStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR + " " + ValoTheme.LABEL_TINY);
|
||||||
|
|
||||||
|
if (content instanceof TargetAddUpdateWindowLayout) {
|
||||||
|
((TargetAddUpdateWindowLayout) content).getFormLayout().addComponent(mandatoryLabel);
|
||||||
|
} else if (content instanceof SoftwareModuleAddUpdateWindow) {
|
||||||
|
((SoftwareModuleAddUpdateWindow) content).getFormLayout().addComponent(mandatoryLabel);
|
||||||
|
} else if (content instanceof AbstractCreateUpdateTagLayout) {
|
||||||
|
((AbstractCreateUpdateTagLayout) content).getMainLayout().addComponent(mandatoryLabel);
|
||||||
|
}
|
||||||
|
|
||||||
|
mainLayout.addComponent(mandatoryLabel);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createCancelButton() {
|
private void createCancelButton() {
|
||||||
@@ -292,18 +361,14 @@ public class CommonDialogWindow extends Window implements Serializable {
|
|||||||
saveButton.setSizeUndefined();
|
saveButton.setSizeUndefined();
|
||||||
saveButton.addStyleName("default-color");
|
saveButton.addStyleName("default-color");
|
||||||
saveButton.addClickListener(saveButtonClickListener);
|
saveButton.addClickListener(saveButtonClickListener);
|
||||||
saveButton.setEnabled(!existsMandatoryFieldsInWindowContent());
|
saveButton.setEnabled(false);
|
||||||
buttonsLayout.addComponent(saveButton);
|
buttonsLayout.addComponent(saveButton);
|
||||||
buttonsLayout.setComponentAlignment(saveButton, Alignment.MIDDLE_RIGHT);
|
buttonsLayout.setComponentAlignment(saveButton, Alignment.MIDDLE_RIGHT);
|
||||||
buttonsLayout.setExpandRatio(saveButton, 1.0F);
|
buttonsLayout.setExpandRatio(saveButton, 1.0F);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean existsMandatoryFieldsInWindowContent() {
|
private boolean existsMandatoryFieldsInWindowContent() {
|
||||||
|
return !requiredFields.isEmpty();
|
||||||
if (requiredFields != null && requiredFields.size() > 0) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addHelpLink() {
|
private void addHelpLink() {
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||||
import org.eclipse.hawkbit.repository.EntityFactory;
|
import org.eclipse.hawkbit.repository.EntityFactory;
|
||||||
import org.eclipse.hawkbit.repository.SoftwareManagement;
|
import org.eclipse.hawkbit.repository.SoftwareManagement;
|
||||||
@@ -41,7 +40,6 @@ import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer;
|
|||||||
import com.vaadin.data.Item;
|
import com.vaadin.data.Item;
|
||||||
import com.vaadin.data.Property.ValueChangeEvent;
|
import com.vaadin.data.Property.ValueChangeEvent;
|
||||||
import com.vaadin.data.util.IndexedContainer;
|
import com.vaadin.data.util.IndexedContainer;
|
||||||
import com.vaadin.event.FieldEvents.TextChangeEvent;
|
|
||||||
import com.vaadin.server.FontAwesome;
|
import com.vaadin.server.FontAwesome;
|
||||||
import com.vaadin.spring.annotation.SpringComponent;
|
import com.vaadin.spring.annotation.SpringComponent;
|
||||||
import com.vaadin.spring.annotation.ViewScope;
|
import com.vaadin.spring.annotation.ViewScope;
|
||||||
@@ -93,6 +91,8 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
|
|
||||||
private IndexedContainer originalSelectedTableContainer;
|
private IndexedContainer originalSelectedTableContainer;
|
||||||
|
|
||||||
|
private String originalTypeKey;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createRequiredComponents() {
|
protected void createRequiredComponents() {
|
||||||
|
|
||||||
@@ -102,13 +102,15 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.DIST_SET_TYPE_NAME, true, "",
|
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.DIST_SET_TYPE_NAME, true, "",
|
||||||
i18n.get("textfield.name"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
i18n.get("textfield.name"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
tagName.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_NAME);
|
tagName.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_NAME);
|
||||||
tagName.addTextChangeListener(this::listenerTagNameTextFieldChanged);
|
tagName.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, getOriginalTagName()));
|
||||||
|
tagName.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, tagName));
|
||||||
|
|
||||||
typeKey = SPUIComponentProvider.getTextField(i18n.get("textfield.key"), "",
|
typeKey = SPUIComponentProvider.getTextField(i18n.get("textfield.key"), "",
|
||||||
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.DIST_SET_TYPE_KEY, true, "", i18n.get("textfield.key"),
|
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.DIST_SET_TYPE_KEY, true, "", i18n.get("textfield.key"),
|
||||||
true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
typeKey.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_KEY);
|
typeKey.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_KEY);
|
||||||
typeKey.addTextChangeListener(this::listenerTypeKeyTextFieldChanged);
|
typeKey.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalTypeKey));
|
||||||
|
typeKey.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, typeKey));
|
||||||
|
|
||||||
tagDesc = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "",
|
tagDesc = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "",
|
||||||
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.DIST_SET_TYPE_DESC, false, "",
|
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.DIST_SET_TYPE_DESC, false, "",
|
||||||
@@ -116,16 +118,7 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
tagDesc.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_DESC);
|
tagDesc.setId(SPUIDefinitions.NEW_DISTRIBUTION_TYPE_DESC);
|
||||||
tagDesc.setImmediate(true);
|
tagDesc.setImmediate(true);
|
||||||
tagDesc.setNullRepresentation("");
|
tagDesc.setNullRepresentation("");
|
||||||
tagDesc.addTextChangeListener(this::listenerTagDescTextAreaChanged);
|
tagDesc.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, getOriginalTagDesc()));
|
||||||
}
|
|
||||||
|
|
||||||
private void listenerTagNameTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
|
|
||||||
window.checkMandatoryTextField(event, tagName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void listenerTypeKeyTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
window.checkMandatoryTextField(event, typeKey);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -279,14 +272,7 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
for (final Long id : selectedIds) {
|
for (final Long id : selectedIds) {
|
||||||
addTargetTableData(id);
|
addTargetTableData(id);
|
||||||
}
|
}
|
||||||
if (optiongroup.getValue().equals(updateTypeStr)) {
|
window.updateRequiredFields(selectedTable.getId(), hasContentChanged());
|
||||||
updateMandatoryFields();
|
|
||||||
window.updateRequiredFields(selectedTable.getId(), hasContentChanged());
|
|
||||||
} else {
|
|
||||||
if (!selectedTableContainer.getItemIds().isEmpty()) {
|
|
||||||
window.updateRequiredFields(selectedTable.getId(), Boolean.TRUE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -298,19 +284,20 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
for (final Long id : selectedIds) {
|
for (final Long id : selectedIds) {
|
||||||
addSourceTableData(id);
|
addSourceTableData(id);
|
||||||
selectedTable.removeItem(id);
|
selectedTable.removeItem(id);
|
||||||
if (optiongroup.getValue().equals(updateTypeStr)) {
|
window.updateRequiredFields(selectedTable.getId(), hasContentChanged());
|
||||||
updateMandatoryFields();
|
|
||||||
window.updateRequiredFields(selectedTable.getId(), hasContentChanged());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Boolean hasContentChanged() {
|
private Boolean hasContentChanged() {
|
||||||
|
|
||||||
|
if (originalSelectedTableContainer == null) {
|
||||||
|
originalSelectedTableContainer = new IndexedContainer();
|
||||||
|
}
|
||||||
for (final Iterator itemIterator = selectedTableContainer.getItemIds().iterator(); itemIterator.hasNext();) {
|
for (final Iterator itemIterator = selectedTableContainer.getItemIds().iterator(); itemIterator.hasNext();) {
|
||||||
final long itemId = (Long) itemIterator.next();
|
final long itemId = (Long) itemIterator.next();
|
||||||
if (!originalSelectedTableContainer.containsId(itemId)) {
|
if (!originalSelectedTableContainer.containsId(itemId)) {
|
||||||
|
window.updateEditedFields(selectedTable.getId(), Boolean.TRUE);
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -319,23 +306,17 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
.hasNext();) {
|
.hasNext();) {
|
||||||
final long itemId = (Long) itemIterator.next();
|
final long itemId = (Long) itemIterator.next();
|
||||||
if (selectedTableContainer.size() > 0 && !selectedTableContainer.containsId(itemId)) {
|
if (selectedTableContainer.size() > 0 && !selectedTableContainer.containsId(itemId)) {
|
||||||
|
window.updateEditedFields(selectedTable.getId(), Boolean.TRUE);
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (selectedTableContainer.size() > 0) {
|
||||||
|
window.updateRequiredFields(selectedTable.getId(), Boolean.TRUE);
|
||||||
|
}
|
||||||
return Boolean.FALSE;
|
return Boolean.FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateMandatoryFields() {
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(tagName.getValue())) {
|
|
||||||
window.getRequiredFields().put("Name", Boolean.TRUE);
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(typeKey.getValue())) {
|
|
||||||
window.getRequiredFields().put("Key", Boolean.TRUE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private void getSourceTableData() {
|
private void getSourceTableData() {
|
||||||
|
|
||||||
@@ -543,6 +524,7 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
super.optionValueChanged(event);
|
super.optionValueChanged(event);
|
||||||
|
|
||||||
if (updateTypeStr.equals(event.getProperty().getValue())) {
|
if (updateTypeStr.equals(event.getProperty().getValue())) {
|
||||||
|
window.updateRequiredFields(selectedTable.getId(), Boolean.TRUE);
|
||||||
selectedTable.getContainerDataSource().removeAllItems();
|
selectedTable.getContainerDataSource().removeAllItems();
|
||||||
getSourceTableData();
|
getSourceTableData();
|
||||||
distTypeSelectLayout.setEnabled(false);
|
distTypeSelectLayout.setEnabled(false);
|
||||||
@@ -600,14 +582,15 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
protected void setTagDetails(final String distSetTypeSelected) {
|
protected void setTagDetails(final String distSetTypeSelected) {
|
||||||
|
|
||||||
tagName.setValue(distSetTypeSelected);
|
tagName.setValue(distSetTypeSelected);
|
||||||
|
setOriginalTagName(distSetTypeSelected);
|
||||||
getSourceTableData();
|
getSourceTableData();
|
||||||
selectedTable.getContainerDataSource().removeAllItems();
|
selectedTable.getContainerDataSource().removeAllItems();
|
||||||
final DistributionSetType selectedTypeTag = fetchDistributionSetType(distSetTypeSelected);
|
final DistributionSetType selectedTypeTag = fetchDistributionSetType(distSetTypeSelected);
|
||||||
if (null != selectedTypeTag) {
|
if (null != selectedTypeTag) {
|
||||||
tagDesc.setValue(selectedTypeTag.getDescription());
|
tagDesc.setValue(selectedTypeTag.getDescription());
|
||||||
setTagDescOriginal(selectedTypeTag.getDescription());
|
setOriginalTagDesc(selectedTypeTag.getDescription());
|
||||||
typeKey.setValue(selectedTypeTag.getKey());
|
typeKey.setValue(selectedTypeTag.getKey());
|
||||||
setTypeKeyOriginal(selectedTypeTag.getKey());
|
setOriginalTypeKey(selectedTypeTag.getKey());
|
||||||
if (distributionSetManagement.countDistributionSetsByType(selectedTypeTag) <= 0) {
|
if (distributionSetManagement.countDistributionSetsByType(selectedTypeTag) <= 0) {
|
||||||
distTypeSelectLayout.setEnabled(true);
|
distTypeSelectLayout.setEnabled(true);
|
||||||
selectedTable.setEnabled(true);
|
selectedTable.setEnabled(true);
|
||||||
@@ -669,7 +652,6 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
} else {
|
} else {
|
||||||
updateDistributionSetType(existingDistTypeByKey);
|
updateDistributionSetType(existingDistTypeByKey);
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -687,14 +669,24 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
while (iterate.hasNext()) {
|
while (iterate.hasNext()) {
|
||||||
final Component c = iterate.next();
|
final Component c = iterate.next();
|
||||||
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
||||||
requiredFields.put(c.getCaption(), null);
|
requiredFields.put(c.getId(), Boolean.FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Selected SoftwareModulesType
|
// Selected SoftwareModulesType
|
||||||
requiredFields.put(selectedTable.getId(), null);
|
requiredFields.put(selectedTable.getId(), Boolean.FALSE);
|
||||||
return requiredFields;
|
return requiredFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Map<String, Boolean> getEditedFields() {
|
||||||
|
final Map<String, Boolean> changeMap = new HashMap<>();
|
||||||
|
changeMap.put(tagName.getId(), Boolean.FALSE);
|
||||||
|
changeMap.put(colorPickerLayout.getId(), Boolean.FALSE);
|
||||||
|
changeMap.put(tagDesc.getId(), Boolean.FALSE);
|
||||||
|
changeMap.put(selectedTable.getId(), Boolean.FALSE);
|
||||||
|
return changeMap;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void previewButtonClicked() {
|
protected void previewButtonClicked() {
|
||||||
if (!tagPreviewBtnClicked) {
|
if (!tagPreviewBtnClicked) {
|
||||||
@@ -729,4 +721,14 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
|
|||||||
optiongroup.setId(SPUIDefinitions.CREATE_OPTION_GROUP_DISTRIBUTION_SET_TYPE_ID);
|
optiongroup.setId(SPUIDefinitions.CREATE_OPTION_GROUP_DISTRIBUTION_SET_TYPE_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getOriginalTypeKey() {
|
||||||
|
return originalTypeKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOriginalTypeKey(final String originalTypeKey) {
|
||||||
|
this.originalTypeKey = originalTypeKey;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ import org.vaadin.spring.events.EventBus;
|
|||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
import com.vaadin.data.Property.ValueChangeEvent;
|
import com.vaadin.data.Property.ValueChangeEvent;
|
||||||
import com.vaadin.data.Property.ValueChangeListener;
|
import com.vaadin.data.Property.ValueChangeListener;
|
||||||
import com.vaadin.event.FieldEvents.TextChangeEvent;
|
|
||||||
import com.vaadin.server.Page;
|
import com.vaadin.server.Page;
|
||||||
import com.vaadin.shared.ui.colorpicker.Color;
|
import com.vaadin.shared.ui.colorpicker.Color;
|
||||||
import com.vaadin.ui.AbstractField;
|
import com.vaadin.ui.AbstractField;
|
||||||
@@ -110,8 +109,9 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
protected String tagNameValue;
|
protected String tagNameValue;
|
||||||
protected String tagDescValue;
|
protected String tagDescValue;
|
||||||
|
|
||||||
protected Color selectedColorOriginal;
|
private Color originalSelectedColor;
|
||||||
private String tagDescOriginal;
|
private String originalTagDesc;
|
||||||
|
private String originalTagName;
|
||||||
|
|
||||||
protected void createWindow() {
|
protected void createWindow() {
|
||||||
reset();
|
reset();
|
||||||
@@ -126,7 +126,7 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
while (iterate.hasNext()) {
|
while (iterate.hasNext()) {
|
||||||
final Component c = iterate.next();
|
final Component c = iterate.next();
|
||||||
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
||||||
requiredFields.put(c.getCaption(), null);
|
requiredFields.put(c.getId(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return requiredFields;
|
return requiredFields;
|
||||||
@@ -134,8 +134,9 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
|
|
||||||
protected Map<String, Boolean> getEditedFields() {
|
protected Map<String, Boolean> getEditedFields() {
|
||||||
final Map<String, Boolean> changeMap = new HashMap<>();
|
final Map<String, Boolean> changeMap = new HashMap<>();
|
||||||
changeMap.put(tagDesc.getCaption(), Boolean.FALSE);
|
changeMap.put(tagName.getId(), Boolean.FALSE);
|
||||||
changeMap.put(colorPickerLayout.getId(), Boolean.FALSE);
|
changeMap.put(colorPickerLayout.getId(), Boolean.FALSE);
|
||||||
|
changeMap.put(tagDesc.getId(), Boolean.FALSE);
|
||||||
return changeMap;
|
return changeMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -192,7 +193,8 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TAG_NAME, true, "", i18n.get("textfield.name"), true,
|
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TAG_NAME, true, "", i18n.get("textfield.name"), true,
|
||||||
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
tagName.setId(SPUIDefinitions.NEW_TARGET_TAG_NAME);
|
tagName.setId(SPUIDefinitions.NEW_TARGET_TAG_NAME);
|
||||||
tagName.addTextChangeListener(this::listenerTagNameTextFieldChanged);
|
tagName.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalTagName));
|
||||||
|
tagName.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, tagName));
|
||||||
|
|
||||||
tagDesc = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "",
|
tagDesc = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "",
|
||||||
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TAG_DESC, false, "", i18n.get("textfield.description"),
|
ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TAG_DESC, false, "", i18n.get("textfield.description"),
|
||||||
@@ -200,7 +202,7 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
tagDesc.setId(SPUIDefinitions.NEW_TARGET_TAG_DESC);
|
tagDesc.setId(SPUIDefinitions.NEW_TARGET_TAG_DESC);
|
||||||
tagDesc.setImmediate(true);
|
tagDesc.setImmediate(true);
|
||||||
tagDesc.setNullRepresentation("");
|
tagDesc.setNullRepresentation("");
|
||||||
tagDesc.addTextChangeListener(this::listenerTagDescTextAreaChanged);
|
tagDesc.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalTagDesc));
|
||||||
|
|
||||||
tagNameComboBox = SPUIComponentProvider.getComboBox(null, "", "", null, null, false, "",
|
tagNameComboBox = SPUIComponentProvider.getComboBox(null, "", "", null, null, false, "",
|
||||||
i18n.get("label.combobox.tag"));
|
i18n.get("label.combobox.tag"));
|
||||||
@@ -214,16 +216,6 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
tagColorPreviewBtn.setStyleName(TAG_DYNAMIC_STYLE);
|
tagColorPreviewBtn.setStyleName(TAG_DYNAMIC_STYLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void listenerTagNameTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
|
|
||||||
window.checkMandatoryTextField(event, tagName);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void listenerTagDescTextAreaChanged(final TextChangeEvent event) {
|
|
||||||
|
|
||||||
window.checkChanges(tagDesc.getCaption(), event.getText(), tagDescOriginal);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void buildLayout() {
|
protected void buildLayout() {
|
||||||
|
|
||||||
mainLayout = new GridLayout(3, 2);
|
mainLayout = new GridLayout(3, 2);
|
||||||
@@ -352,7 +344,7 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
comboLayout.removeComponent(comboLabel);
|
comboLayout.removeComponent(comboLabel);
|
||||||
comboLayout.removeComponent(tagNameComboBox);
|
comboLayout.removeComponent(tagNameComboBox);
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(false);
|
window.reset();
|
||||||
// close the color picker layout
|
// close the color picker layout
|
||||||
tagPreviewBtnClicked = false;
|
tagPreviewBtnClicked = false;
|
||||||
// reset the selected color - Set default color
|
// reset the selected color - Set default color
|
||||||
@@ -383,7 +375,7 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
tagPreviewBtnClicked = false;
|
tagPreviewBtnClicked = false;
|
||||||
|
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
window.resetMandatoryAndEditedFields();
|
window.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -474,13 +466,12 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
colorPickerLayout.getColorSelect().setColor(colorPickerLayout.getSelPreview().getColor());
|
colorPickerLayout.getColorSelect().setColor(colorPickerLayout.getSelPreview().getColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
window.checkColorChange(colorPickerLayout.getId(), colorPickerLayout.getSelectedColor(), selectedColorOriginal);
|
window.checkColorChange(colorPickerLayout.getId(), colorPickerLayout.getSelectedColor(), originalSelectedColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void closeWindow() {
|
protected void closeWindow() {
|
||||||
window.close();
|
window.close();
|
||||||
UI.getCurrent().removeWindow(window);
|
UI.getCurrent().removeWindow(window);
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -687,23 +678,39 @@ public abstract class AbstractCreateUpdateTagLayout extends CustomComponent
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Color getSelectedColorOriginal() {
|
public Color getSelectedColorOriginal() {
|
||||||
return selectedColorOriginal;
|
return originalSelectedColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSelectedColorOriginal(final Color selectedColorOriginal) {
|
public void setSelectedColorOriginal(final Color selectedColorOriginal) {
|
||||||
this.selectedColorOriginal = selectedColorOriginal;
|
this.originalSelectedColor = selectedColorOriginal;
|
||||||
}
|
|
||||||
|
|
||||||
public String getTagDescOriginal() {
|
|
||||||
return tagDescOriginal;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTagDescOriginal(final String tagDescOriginal) {
|
|
||||||
this.tagDescOriginal = tagDescOriginal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GridLayout getMainLayout() {
|
public GridLayout getMainLayout() {
|
||||||
return mainLayout;
|
return mainLayout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Color getOriginalSelectedColor() {
|
||||||
|
return originalSelectedColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOriginalSelectedColor(final Color originalSelectedColor) {
|
||||||
|
this.originalSelectedColor = originalSelectedColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOriginalTagDesc() {
|
||||||
|
return originalTagDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOriginalTagDesc(final String originalTagDesc) {
|
||||||
|
this.originalTagDesc = originalTagDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOriginalTagName() {
|
||||||
|
return originalTagName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOriginalTagName(final String originalTagName) {
|
||||||
|
this.originalTagName = originalTagName;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,10 +33,8 @@ import com.vaadin.ui.components.colorpicker.ColorSelector;
|
|||||||
import com.vaadin.ui.themes.ValoTheme;
|
import com.vaadin.ui.themes.ValoTheme;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Superclass defining common properties and methods for creating/updating
|
* Superclass defining common properties and methods for creating/updating
|
||||||
* types.
|
* types.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout {
|
public class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout {
|
||||||
|
|
||||||
@@ -45,7 +43,7 @@ public class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout {
|
|||||||
protected String createTypeStr;
|
protected String createTypeStr;
|
||||||
protected String updateTypeStr;
|
protected String updateTypeStr;
|
||||||
protected TextField typeKey;
|
protected TextField typeKey;
|
||||||
protected String typeKeyOriginal;
|
protected String originalTypeKey;
|
||||||
|
|
||||||
public static final String TYPE_NAME_DYNAMIC_STYLE = "new-tag-name";
|
public static final String TYPE_NAME_DYNAMIC_STYLE = "new-tag-name";
|
||||||
private static final String TYPE_DESC_DYNAMIC_STYLE = "new-tag-desc";
|
private static final String TYPE_DESC_DYNAMIC_STYLE = "new-tag-desc";
|
||||||
@@ -152,14 +150,13 @@ public class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout {
|
|||||||
} else {
|
} else {
|
||||||
typeKey.setEnabled(true);
|
typeKey.setEnabled(true);
|
||||||
tagName.setEnabled(true);
|
tagName.setEnabled(true);
|
||||||
window.setSaveButtonEnabled(true);
|
|
||||||
tagName.clear();
|
tagName.clear();
|
||||||
tagDesc.clear();
|
tagDesc.clear();
|
||||||
typeKey.clear();
|
typeKey.clear();
|
||||||
comboLayout.removeComponent(comboLabel);
|
comboLayout.removeComponent(comboLabel);
|
||||||
comboLayout.removeComponent(tagNameComboBox);
|
comboLayout.removeComponent(tagNameComboBox);
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(false);
|
window.reset();
|
||||||
restoreComponentStyles();
|
restoreComponentStyles();
|
||||||
getPreviewButtonColor(ColorPickerConstants.DEFAULT_COLOR);
|
getPreviewButtonColor(ColorPickerConstants.DEFAULT_COLOR);
|
||||||
getColorPickerLayout().getSelPreview()
|
getColorPickerLayout().getSelPreview()
|
||||||
@@ -186,7 +183,8 @@ public class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout {
|
|||||||
createDynamicStyleForComponents(tagName, typeKey, tagDesc, colorPickedPreview);
|
createDynamicStyleForComponents(tagName, typeKey, tagDesc, colorPickedPreview);
|
||||||
getColorPickerLayout().getColorSelect().setColor(getColorPickerLayout().getSelPreview().getColor());
|
getColorPickerLayout().getColorSelect().setColor(getColorPickerLayout().getSelPreview().getColor());
|
||||||
}
|
}
|
||||||
window.checkColorChange(colorPickerLayout.getId(), colorPickerLayout.getSelectedColor(), selectedColorOriginal);
|
window.checkColorChange(colorPickerLayout.getId(), colorPickerLayout.getSelectedColor(),
|
||||||
|
getOriginalSelectedColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -324,22 +322,12 @@ public class CreateUpdateTypeLayout extends AbstractCreateUpdateTagLayout {
|
|||||||
// is implemented in the inherited class
|
// is implemented in the inherited class
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public String getOriginalTypeKey() {
|
||||||
public Color getSelectedColorOriginal() {
|
return originalTypeKey;
|
||||||
return selectedColorOriginal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public void setOriginalTypeKey(final String originalTypeKey) {
|
||||||
public void setSelectedColorOriginal(final Color selectedColorOriginal) {
|
this.originalTypeKey = originalTypeKey;
|
||||||
this.selectedColorOriginal = selectedColorOriginal;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTypeKeyOriginal() {
|
|
||||||
return typeKeyOriginal;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTypeKeyOriginal(final String typeKeyOriginal) {
|
|
||||||
this.typeKeyOriginal = typeKeyOriginal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.eclipse.hawkbit.ui.management.dstable;
|
package org.eclipse.hawkbit.ui.management.dstable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
@@ -44,10 +42,6 @@ import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer;
|
|||||||
import org.vaadin.addons.lazyquerycontainer.LazyQueryDefinition;
|
import org.vaadin.addons.lazyquerycontainer.LazyQueryDefinition;
|
||||||
import org.vaadin.spring.events.EventBus;
|
import org.vaadin.spring.events.EventBus;
|
||||||
|
|
||||||
import com.vaadin.data.Property.ValueChangeEvent;
|
|
||||||
import com.vaadin.data.Property.ValueChangeListener;
|
|
||||||
import com.vaadin.event.FieldEvents.TextChangeEvent;
|
|
||||||
import com.vaadin.event.FieldEvents.TextChangeListener;
|
|
||||||
import com.vaadin.spring.annotation.SpringComponent;
|
import com.vaadin.spring.annotation.SpringComponent;
|
||||||
import com.vaadin.spring.annotation.ViewScope;
|
import com.vaadin.spring.annotation.ViewScope;
|
||||||
import com.vaadin.ui.AbstractField;
|
import com.vaadin.ui.AbstractField;
|
||||||
@@ -62,8 +56,7 @@ import com.vaadin.ui.UI;
|
|||||||
import com.vaadin.ui.themes.ValoTheme;
|
import com.vaadin.ui.themes.ValoTheme;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* WindowContent for adding/editing a Distribution
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
@SpringComponent
|
@SpringComponent
|
||||||
@ViewScope
|
@ViewScope
|
||||||
@@ -104,12 +97,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
private String originalDistDescription;
|
private String originalDistDescription;
|
||||||
private Boolean originalReqMigStep;
|
private Boolean originalReqMigStep;
|
||||||
private String originalDistSetType;
|
private String originalDistSetType;
|
||||||
private final List<Component> changedComponents = new ArrayList<>();
|
|
||||||
private ValueChangeListener reqMigStepCheckboxListerner;
|
|
||||||
private TextChangeListener descTextAreaListener;
|
|
||||||
private TextChangeListener distNameTextFieldListener;
|
|
||||||
private TextChangeListener distVersionTextFieldListener;
|
|
||||||
private ValueChangeListener distsetTypeNameComboBoxListener;
|
|
||||||
|
|
||||||
private FormLayout formLayout;
|
private FormLayout formLayout;
|
||||||
|
|
||||||
@@ -139,7 +126,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
formLayout.addComponent(reqMigStepCheckbox);
|
formLayout.addComponent(reqMigStepCheckbox);
|
||||||
|
|
||||||
setCompositionRoot(formLayout);
|
setCompositionRoot(formLayout);
|
||||||
|
|
||||||
distNameTextField.focus();
|
distNameTextField.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,43 +137,42 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
true, null, i18n.get("textfield.name"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
true, null, i18n.get("textfield.name"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
distNameTextField.setId(SPUIComponentIdProvider.DIST_ADD_NAME);
|
distNameTextField.setId(SPUIComponentIdProvider.DIST_ADD_NAME);
|
||||||
distNameTextField.setNullRepresentation("");
|
distNameTextField.setNullRepresentation("");
|
||||||
distNameTextField.addTextChangeListener(this::listenerDistNameTextFieldChanged);
|
distNameTextField.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalDistName));
|
||||||
|
distNameTextField.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, distNameTextField));
|
||||||
|
|
||||||
distVersionTextField = SPUIComponentProvider.getTextField(i18n.get("textfield.version"), "",
|
distVersionTextField = SPUIComponentProvider.getTextField(i18n.get("textfield.version"), "",
|
||||||
ValoTheme.TEXTFIELD_TINY, true, null, i18n.get("textfield.version"), true,
|
ValoTheme.TEXTFIELD_TINY, true, null, i18n.get("textfield.version"), true,
|
||||||
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
distVersionTextField.setId(SPUIComponentIdProvider.DIST_ADD_VERSION);
|
distVersionTextField.setId(SPUIComponentIdProvider.DIST_ADD_VERSION);
|
||||||
distVersionTextField.setNullRepresentation("");
|
distVersionTextField.setNullRepresentation("");
|
||||||
distVersionTextField.addTextChangeListener(this::listenerDistVersionTextFieldChanged);
|
distVersionTextField
|
||||||
|
.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalDistVersion));
|
||||||
|
distVersionTextField
|
||||||
|
.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, distVersionTextField));
|
||||||
|
|
||||||
distsetTypeNameComboBox = SPUIComponentProvider.getComboBox(i18n.get("label.combobox.type"), "", "", null, "",
|
distsetTypeNameComboBox = SPUIComponentProvider.getComboBox(i18n.get("label.combobox.type"), "", "", null, "",
|
||||||
false, "", i18n.get("label.combobox.type"));
|
false, "", i18n.get("label.combobox.type"));
|
||||||
distsetTypeNameComboBox.setImmediate(true);
|
distsetTypeNameComboBox.setImmediate(true);
|
||||||
distsetTypeNameComboBox.setNullSelectionAllowed(false);
|
distsetTypeNameComboBox.setNullSelectionAllowed(false);
|
||||||
distsetTypeNameComboBox.setId(SPUIComponentIdProvider.DIST_ADD_DISTSETTYPE);
|
distsetTypeNameComboBox.setId(SPUIComponentIdProvider.DIST_ADD_DISTSETTYPE);
|
||||||
|
populateDistSetTypeNameCombo();
|
||||||
|
distsetTypeNameComboBox.addValueChangeListener(
|
||||||
|
event -> window.checkMandatoryEditedValue(event, distsetTypeNameComboBox, originalDistSetType));
|
||||||
|
|
||||||
descTextArea = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "text-area-style",
|
descTextArea = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "text-area-style",
|
||||||
ValoTheme.TEXTAREA_TINY, false, null, i18n.get("textfield.description"),
|
ValoTheme.TEXTAREA_TINY, false, null, i18n.get("textfield.description"),
|
||||||
SPUILabelDefinitions.TEXT_AREA_MAX_LENGTH);
|
SPUILabelDefinitions.TEXT_AREA_MAX_LENGTH);
|
||||||
descTextArea.setId(SPUIComponentIdProvider.DIST_ADD_DESC);
|
descTextArea.setId(SPUIComponentIdProvider.DIST_ADD_DESC);
|
||||||
descTextArea.setNullRepresentation("");
|
descTextArea.setNullRepresentation("");
|
||||||
|
descTextArea
|
||||||
|
.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalDistDescription));
|
||||||
|
|
||||||
reqMigStepCheckbox = SPUIComponentProvider.getCheckBox(i18n.get("checkbox.dist.required.migration.step"),
|
reqMigStepCheckbox = SPUIComponentProvider.getCheckBox(i18n.get("checkbox.dist.required.migration.step"),
|
||||||
"dist-checkbox-style", null, false, "");
|
"dist-checkbox-style", null, false, "");
|
||||||
reqMigStepCheckbox.addStyleName(ValoTheme.CHECKBOX_SMALL);
|
reqMigStepCheckbox.addStyleName(ValoTheme.CHECKBOX_SMALL);
|
||||||
reqMigStepCheckbox.setId(SPUIComponentIdProvider.DIST_ADD_MIGRATION_CHECK);
|
reqMigStepCheckbox.setId(SPUIComponentIdProvider.DIST_ADD_MIGRATION_CHECK);
|
||||||
}
|
reqMigStepCheckbox.addValueChangeListener(
|
||||||
|
event -> window.checkMandatoryEditedValueBoolean(event, reqMigStepCheckbox, originalReqMigStep));
|
||||||
private void listenerDistNameTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
if (!editDistribution) {
|
|
||||||
window.checkMandatoryTextField(event, distNameTextField);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void listenerDistVersionTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
if (!editDistribution) {
|
|
||||||
window.checkMandatoryTextField(event, distVersionTextField);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -209,26 +194,17 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
return disttypeContainer;
|
return disttypeContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enableSaveButton() {
|
|
||||||
window.setSaveButtonEnabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DistributionSetType getDefaultDistributionSetType() {
|
private DistributionSetType getDefaultDistributionSetType() {
|
||||||
final TenantMetaData tenantMetaData = systemManagement.getTenantMetadata();
|
final TenantMetaData tenantMetaData = systemManagement.getTenantMetadata();
|
||||||
return tenantMetaData.getDefaultDsType();
|
return tenantMetaData.getDefaultDsType();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void disableSaveButton() {
|
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void saveDistribution() {
|
private void saveDistribution() {
|
||||||
if (editDistribution) {
|
if (editDistribution) {
|
||||||
updateDistribution();
|
updateDistribution();
|
||||||
} else {
|
} else {
|
||||||
addNewDistribution();
|
addNewDistribution();
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -262,19 +238,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addListeners() {
|
|
||||||
reqMigStepCheckboxListerner = event -> checkValueChanged(originalReqMigStep, event);
|
|
||||||
descTextAreaListener = event -> checkValueChanged(originalDistDescription, event);
|
|
||||||
distNameTextFieldListener = event -> checkValueChanged(originalDistName, event);
|
|
||||||
distVersionTextFieldListener = event -> checkValueChanged(originalDistVersion, event);
|
|
||||||
distsetTypeNameComboBoxListener = event -> checkValueChanged(originalDistSetType, event);
|
|
||||||
reqMigStepCheckbox.addValueChangeListener(reqMigStepCheckboxListerner);
|
|
||||||
descTextArea.addTextChangeListener(descTextAreaListener);
|
|
||||||
distNameTextField.addTextChangeListener(distNameTextFieldListener);
|
|
||||||
distVersionTextField.addTextChangeListener(distVersionTextFieldListener);
|
|
||||||
distsetTypeNameComboBox.addValueChangeListener(distsetTypeNameComboBoxListener);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add new Distribution set.
|
* Add new Distribution set.
|
||||||
*/
|
*/
|
||||||
@@ -308,7 +271,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
private void closeThisWindow() {
|
private void closeThisWindow() {
|
||||||
window.close();
|
window.close();
|
||||||
UI.getCurrent().removeWindow(window);
|
UI.getCurrent().removeWindow(window);
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -381,7 +343,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
if (distSetTypeName == null) {
|
if (distSetTypeName == null) {
|
||||||
distsetTypeNameComboBox.addStyleName(SPUIStyleDefinitions.SP_COMBOFIELD_ERROR);
|
distsetTypeNameComboBox.addStyleName(SPUIStyleDefinitions.SP_COMBOFIELD_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
notificationMessage.displayValidationError(i18n.get("message.mandatory.check"));
|
notificationMessage.displayValidationError(i18n.get("message.mandatory.check"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -391,7 +352,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
|
|
||||||
private void discardDistribution() {
|
private void discardDistribution() {
|
||||||
/* Just close this window */
|
/* Just close this window */
|
||||||
distsetTypeNameComboBox.removeValueChangeListener(distsetTypeNameComboBoxListener);
|
|
||||||
closeThisWindow();
|
closeThisWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,14 +367,15 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
distsetTypeNameComboBox.removeStyleName(SPUIStyleDefinitions.SP_COMBOFIELD_ERROR);
|
distsetTypeNameComboBox.removeStyleName(SPUIStyleDefinitions.SP_COMBOFIELD_ERROR);
|
||||||
descTextArea.clear();
|
descTextArea.clear();
|
||||||
reqMigStepCheckbox.clear();
|
reqMigStepCheckbox.clear();
|
||||||
if (window != null) {
|
|
||||||
window.setSaveButtonEnabled(true);
|
originalDistDescription = null;
|
||||||
}
|
originalDistName = null;
|
||||||
removeListeners();
|
originalDistSetType = null;
|
||||||
changedComponents.clear();
|
originalDistVersion = null;
|
||||||
|
originalReqMigStep = Boolean.FALSE;
|
||||||
|
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
window.resetMandatoryAndEditedFields();
|
window.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -422,71 +383,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
populateDistSetTypeNameCombo();
|
populateDistSetTypeNameCombo();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeListeners() {
|
|
||||||
reqMigStepCheckbox.removeValueChangeListener(reqMigStepCheckboxListerner);
|
|
||||||
descTextArea.removeTextChangeListener(descTextAreaListener);
|
|
||||||
distNameTextField.removeTextChangeListener(distNameTextFieldListener);
|
|
||||||
distVersionTextField.removeTextChangeListener(distVersionTextFieldListener);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginalDistName(final String originalDistName) {
|
|
||||||
this.originalDistName = originalDistName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginalDistVersion(final String originalDistVersion) {
|
|
||||||
this.originalDistVersion = originalDistVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginalDistDescription(final String originalDistDescription) {
|
|
||||||
this.originalDistDescription = originalDistDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkValueChanged(final String originalValue, final TextChangeEvent event) {
|
|
||||||
if (editDistribution) {
|
|
||||||
final String newValue = event.getText();
|
|
||||||
if (!originalValue.equalsIgnoreCase(newValue)) {
|
|
||||||
changedComponents.add(event.getComponent());
|
|
||||||
} else {
|
|
||||||
changedComponents.remove(event.getComponent());
|
|
||||||
}
|
|
||||||
enableDisableSaveButton();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkValueChanged(final Boolean originalValue, final ValueChangeEvent event) {
|
|
||||||
if (editDistribution) {
|
|
||||||
if (!originalValue.equals(event.getProperty().getValue())) {
|
|
||||||
changedComponents.add(reqMigStepCheckbox);
|
|
||||||
} else {
|
|
||||||
changedComponents.remove(reqMigStepCheckbox);
|
|
||||||
}
|
|
||||||
enableDisableSaveButton();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkValueChanged(final String originalValue, final ValueChangeEvent event) {
|
|
||||||
if (editDistribution) {
|
|
||||||
if (!originalValue.equals(event.getProperty().getValue())) {
|
|
||||||
changedComponents.add(distsetTypeNameComboBox);
|
|
||||||
} else {
|
|
||||||
changedComponents.remove(distsetTypeNameComboBox);
|
|
||||||
}
|
|
||||||
enableDisableSaveButton();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void enableDisableSaveButton() {
|
|
||||||
if (changedComponents.isEmpty()) {
|
|
||||||
disableSaveButton();
|
|
||||||
} else {
|
|
||||||
enableSaveButton();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setOriginalReqMigStep(final Boolean originalReqMigStep) {
|
|
||||||
this.originalReqMigStep = originalReqMigStep;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* populate data.
|
* populate data.
|
||||||
*
|
*
|
||||||
@@ -495,7 +391,6 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
public void populateValuesOfDistribution(final Long editDistId) {
|
public void populateValuesOfDistribution(final Long editDistId) {
|
||||||
this.editDistId = editDistId;
|
this.editDistId = editDistId;
|
||||||
editDistribution = Boolean.TRUE;
|
editDistribution = Boolean.TRUE;
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
final DistributionSet distSet = distributionSetManagement.findDistributionSetByIdWithDetails(editDistId);
|
final DistributionSet distSet = distributionSetManagement.findDistributionSetByIdWithDetails(editDistId);
|
||||||
if (distSet != null) {
|
if (distSet != null) {
|
||||||
distNameTextField.setValue(distSet.getName());
|
distNameTextField.setValue(distSet.getName());
|
||||||
@@ -508,23 +403,24 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
if (distSet.getDescription() != null) {
|
if (distSet.getDescription() != null) {
|
||||||
descTextArea.setValue(distSet.getDescription());
|
descTextArea.setValue(distSet.getDescription());
|
||||||
}
|
}
|
||||||
setOriginalDistName(distSet.getName());
|
originalDistName = distSet.getName();
|
||||||
setOriginalDistVersion(distSet.getVersion());
|
originalDistVersion = distSet.getVersion();
|
||||||
setOriginalDistDescription(distSet.getDescription());
|
originalDistDescription = distSet.getDescription();
|
||||||
setOriginalReqMigStep(distSet.isRequiredMigrationStep());
|
originalReqMigStep = distSet.isRequiredMigrationStep();
|
||||||
setOriginalDistSetTYpe(distSet.getType().getName());
|
originalDistSetType = distSet.getType().getName();
|
||||||
addListeners();
|
window.updateEditedFields(distsetTypeNameComboBox.getId(), Boolean.FALSE);
|
||||||
|
window.updateEditedFields(reqMigStepCheckbox.getId(), Boolean.FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommonDialogWindow getWindow() {
|
public CommonDialogWindow getWindow() {
|
||||||
eventBus.publish(this, DragEvent.HIDE_DROP_HINT);
|
eventBus.publish(this, DragEvent.HIDE_DROP_HINT);
|
||||||
populateRequiredComponents();
|
|
||||||
resetComponents();
|
|
||||||
window = SPUIComponentProvider.getWindow(i18n.get("caption.add.new.dist"), null,
|
window = SPUIComponentProvider.getWindow(i18n.get("caption.add.new.dist"), null,
|
||||||
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveDistribution(), event -> discardDistribution(),
|
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveDistribution(), event -> discardDistribution(),
|
||||||
null, getMandatoryFields(), null, i18n);
|
null, getMandatoryFields(), getEditedFields(), i18n);
|
||||||
window.getButtonsLayout().removeStyleName("actionButtonsMargin");
|
window.getButtonsLayout().removeStyleName("actionButtonsMargin");
|
||||||
|
populateRequiredComponents();
|
||||||
|
resetComponents();
|
||||||
return window;
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -534,12 +430,22 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
while (iterate.hasNext()) {
|
while (iterate.hasNext()) {
|
||||||
final Component c = iterate.next();
|
final Component c = iterate.next();
|
||||||
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
||||||
requiredFields.put(c.getCaption(), null);
|
requiredFields.put(c.getId(), Boolean.FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return requiredFields;
|
return requiredFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<String, Boolean> getEditedFields() {
|
||||||
|
final Map<String, Boolean> editedFields = new HashMap<>();
|
||||||
|
editedFields.put(distsetTypeNameComboBox.getId(), Boolean.FALSE);
|
||||||
|
editedFields.put(distNameTextField.getId(), Boolean.FALSE);
|
||||||
|
editedFields.put(distVersionTextField.getId(), Boolean.FALSE);
|
||||||
|
editedFields.put(descTextArea.getId(), Boolean.FALSE);
|
||||||
|
editedFields.put(reqMigStepCheckbox.getId(), Boolean.FALSE);
|
||||||
|
return editedFields;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Populate DistributionSet Type name combo.
|
* Populate DistributionSet Type name combo.
|
||||||
*/
|
*/
|
||||||
@@ -549,12 +455,4 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
|||||||
distsetTypeNameComboBox.setValue(getDefaultDistributionSetType().getName());
|
distsetTypeNameComboBox.setValue(getDefaultDistributionSetType().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param originalDistSetTYpe
|
|
||||||
* the originalDistSetTYpe to set
|
|
||||||
*/
|
|
||||||
public void setOriginalDistSetTYpe(final String originalDistSetType) {
|
|
||||||
this.originalDistSetType = originalDistSetType;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,9 +32,7 @@ import com.vaadin.ui.Button.ClickEvent;
|
|||||||
import com.vaadin.ui.UI;
|
import com.vaadin.ui.UI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Class for Create/Update Tag Layout of distribution set
|
* Class for Create/Update Tag Layout of distribution set
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
@SpringComponent
|
@SpringComponent
|
||||||
@ViewScope
|
@ViewScope
|
||||||
@@ -98,7 +96,6 @@ public class CreateUpdateDistributionTagLayoutWindow extends AbstractCreateUpdat
|
|||||||
updateExistingTag(existingDistTag);
|
updateExistingTag(existingDistTag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -157,10 +154,11 @@ public class CreateUpdateDistributionTagLayoutWindow extends AbstractCreateUpdat
|
|||||||
@Override
|
@Override
|
||||||
public void setTagDetails(final String distTagSelected) {
|
public void setTagDetails(final String distTagSelected) {
|
||||||
tagName.setValue(distTagSelected);
|
tagName.setValue(distTagSelected);
|
||||||
|
setOriginalTagName(distTagSelected);
|
||||||
final DistributionSetTag selectedDistTag = tagManagement.findDistributionSetTag(distTagSelected);
|
final DistributionSetTag selectedDistTag = tagManagement.findDistributionSetTag(distTagSelected);
|
||||||
if (null != selectedDistTag) {
|
if (null != selectedDistTag) {
|
||||||
tagDesc.setValue(selectedDistTag.getDescription());
|
tagDesc.setValue(selectedDistTag.getDescription());
|
||||||
setTagDescOriginal(selectedDistTag.getDescription());
|
setOriginalTagDesc(selectedDistTag.getDescription());
|
||||||
if (null == selectedDistTag.getColour()) {
|
if (null == selectedDistTag.getColour()) {
|
||||||
setTagColor(getColorPickerLayout().getDefaultColor(), ColorPickerConstants.DEFAULT_COLOR);
|
setTagColor(getColorPickerLayout().getDefaultColor(), ColorPickerConstants.DEFAULT_COLOR);
|
||||||
setSelectedColorOriginal(getColorPickerLayout().getDefaultColor());
|
setSelectedColorOriginal(getColorPickerLayout().getDefaultColor());
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import java.util.Iterator;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.eclipse.hawkbit.repository.EntityFactory;
|
import org.eclipse.hawkbit.repository.EntityFactory;
|
||||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||||
import org.eclipse.hawkbit.repository.model.Target;
|
import org.eclipse.hawkbit.repository.model.Target;
|
||||||
@@ -35,15 +34,12 @@ import org.eclipse.hawkbit.ui.utils.UINotification;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.vaadin.spring.events.EventBus;
|
import org.vaadin.spring.events.EventBus;
|
||||||
|
|
||||||
import com.vaadin.event.FieldEvents.TextChangeEvent;
|
|
||||||
import com.vaadin.event.FieldEvents.TextChangeListener;
|
|
||||||
import com.vaadin.spring.annotation.SpringComponent;
|
import com.vaadin.spring.annotation.SpringComponent;
|
||||||
import com.vaadin.spring.annotation.VaadinSessionScope;
|
import com.vaadin.spring.annotation.VaadinSessionScope;
|
||||||
import com.vaadin.ui.AbstractField;
|
import com.vaadin.ui.AbstractField;
|
||||||
import com.vaadin.ui.Component;
|
import com.vaadin.ui.Component;
|
||||||
import com.vaadin.ui.CustomComponent;
|
import com.vaadin.ui.CustomComponent;
|
||||||
import com.vaadin.ui.FormLayout;
|
import com.vaadin.ui.FormLayout;
|
||||||
import com.vaadin.ui.Label;
|
|
||||||
import com.vaadin.ui.TextArea;
|
import com.vaadin.ui.TextArea;
|
||||||
import com.vaadin.ui.TextField;
|
import com.vaadin.ui.TextField;
|
||||||
import com.vaadin.ui.UI;
|
import com.vaadin.ui.UI;
|
||||||
@@ -57,7 +53,7 @@ import com.vaadin.ui.themes.ValoTheme;
|
|||||||
@VaadinSessionScope
|
@VaadinSessionScope
|
||||||
public class TargetAddUpdateWindowLayout extends CustomComponent {
|
public class TargetAddUpdateWindowLayout extends CustomComponent {
|
||||||
private static final long serialVersionUID = -6659290471705262389L;
|
private static final long serialVersionUID = -6659290471705262389L;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private I18N i18n;
|
private I18N i18n;
|
||||||
|
|
||||||
@@ -69,10 +65,10 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private transient UINotification uINotification;
|
private transient UINotification uINotification;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private transient EntityFactory entityFactory;
|
private transient EntityFactory entityFactory;
|
||||||
|
|
||||||
private TextField controllerIDTextField;
|
private TextField controllerIDTextField;
|
||||||
private TextField nameTextField;
|
private TextField nameTextField;
|
||||||
private TextArea descTextArea;
|
private TextArea descTextArea;
|
||||||
@@ -81,47 +77,47 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
|
|||||||
private FormLayout formLayout;
|
private FormLayout formLayout;
|
||||||
private CommonDialogWindow window;
|
private CommonDialogWindow window;
|
||||||
|
|
||||||
private String oldTargetName;
|
private String originalTargetName;
|
||||||
private String oldTargetDesc;
|
private String originalTargetDesc;
|
||||||
|
private String originalControllerId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize the Add Update Window Component for Target.
|
* Initialize the Add Update Window Component for Target.
|
||||||
*/
|
*/
|
||||||
public void init() {
|
public void init() {
|
||||||
/* create components */
|
|
||||||
createRequiredComponents();
|
createRequiredComponents();
|
||||||
/* display components in layout */
|
|
||||||
buildLayout();
|
buildLayout();
|
||||||
/* register all listeners related to the Window */
|
|
||||||
addListeners();
|
|
||||||
setCompositionRoot(formLayout);
|
setCompositionRoot(formLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createRequiredComponents() {
|
private void createRequiredComponents() {
|
||||||
/* Textfield for controller Id */
|
/* Textfield for controller Id */
|
||||||
controllerIDTextField = SPUIComponentProvider.getTextField( i18n.get("prompt.target.id"), "", ValoTheme.TEXTFIELD_TINY, true, null,
|
controllerIDTextField = SPUIComponentProvider.getTextField(i18n.get("prompt.target.id"), "",
|
||||||
i18n.get("prompt.target.id"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
ValoTheme.TEXTFIELD_TINY, true, null, i18n.get("prompt.target.id"), true,
|
||||||
|
SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
controllerIDTextField.setId(SPUIComponentIdProvider.TARGET_ADD_CONTROLLER_ID);
|
controllerIDTextField.setId(SPUIComponentIdProvider.TARGET_ADD_CONTROLLER_ID);
|
||||||
controllerIDTextField.addTextChangeListener(this::listenerControllerIDTextFieldChanged);
|
controllerIDTextField
|
||||||
|
.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalControllerId));
|
||||||
|
controllerIDTextField
|
||||||
|
.addValueChangeListener(event -> window.setRequiredFieldWhenUpdate(event, controllerIDTextField));
|
||||||
|
|
||||||
/* Textfield for target name */
|
/* Textfield for target name */
|
||||||
nameTextField = SPUIComponentProvider.getTextField( i18n.get("textfield.name"), "", ValoTheme.TEXTFIELD_TINY, false, null,
|
nameTextField = SPUIComponentProvider.getTextField(i18n.get("textfield.name"), "", ValoTheme.TEXTFIELD_TINY,
|
||||||
i18n.get("textfield.name"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
false, null, i18n.get("textfield.name"), true, SPUILabelDefinitions.TEXT_FIELD_MAX_LENGTH);
|
||||||
nameTextField.setId(SPUIComponentIdProvider.TARGET_ADD_NAME);
|
nameTextField.setId(SPUIComponentIdProvider.TARGET_ADD_NAME);
|
||||||
|
nameTextField.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalTargetName));
|
||||||
|
|
||||||
/* Textarea for target description */
|
/* Textarea for target description */
|
||||||
descTextArea = SPUIComponentProvider.getTextArea( i18n.get("textfield.description"), "text-area-style", ValoTheme.TEXTFIELD_TINY, false, null,
|
descTextArea = SPUIComponentProvider.getTextArea(i18n.get("textfield.description"), "text-area-style",
|
||||||
i18n.get("textfield.description"), SPUILabelDefinitions.TEXT_AREA_MAX_LENGTH);
|
ValoTheme.TEXTFIELD_TINY, false, null, i18n.get("textfield.description"),
|
||||||
|
SPUILabelDefinitions.TEXT_AREA_MAX_LENGTH);
|
||||||
descTextArea.setId(SPUIComponentIdProvider.TARGET_ADD_DESC);
|
descTextArea.setId(SPUIComponentIdProvider.TARGET_ADD_DESC);
|
||||||
descTextArea.setNullRepresentation(HawkbitCommonUtil.SP_STRING_EMPTY);
|
descTextArea.setNullRepresentation(HawkbitCommonUtil.SP_STRING_EMPTY);
|
||||||
}
|
descTextArea.addTextChangeListener(event -> window.checkMandatoryEditedTextField(event, originalTargetDesc));
|
||||||
|
|
||||||
private void listenerControllerIDTextFieldChanged(final TextChangeEvent event) {
|
|
||||||
window.checkMandatoryTextField(event, controllerIDTextField);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buildLayout() {
|
private void buildLayout() {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The main layout of the window contains mandatory info, textboxes
|
* The main layout of the window contains mandatory info, textboxes
|
||||||
* (controller Id, name & description) and action buttons layout
|
* (controller Id, name & description) and action buttons layout
|
||||||
@@ -131,56 +127,10 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
|
|||||||
formLayout.addComponent(controllerIDTextField);
|
formLayout.addComponent(controllerIDTextField);
|
||||||
formLayout.addComponent(nameTextField);
|
formLayout.addComponent(nameTextField);
|
||||||
formLayout.addComponent(descTextArea);
|
formLayout.addComponent(descTextArea);
|
||||||
|
|
||||||
controllerIDTextField.focus();
|
controllerIDTextField.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addListeners() {
|
|
||||||
|
|
||||||
addTargetNameChangeListner();
|
|
||||||
addTargetDescChangeListner();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addTargetNameChangeListner() {
|
|
||||||
nameTextField.addTextChangeListener(new TextChangeListener() {
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static final long serialVersionUID = 1761855781481115921L;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void textChange(final TextChangeEvent event) {
|
|
||||||
if (event.getText().equals(oldTargetName) && descTextArea.getValue().equals(oldTargetDesc)) {
|
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
} else {
|
|
||||||
window.setSaveButtonEnabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addTargetDescChangeListner() {
|
|
||||||
descTextArea.addTextChangeListener(new TextChangeListener() {
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static final long serialVersionUID = 5770734934988115068L;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void textChange(final TextChangeEvent event) {
|
|
||||||
if (event.getText().equals(oldTargetDesc) && nameTextField.getValue().equals(oldTargetName)) {
|
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
} else {
|
|
||||||
window.setSaveButtonEnabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the Target if modified.
|
* Update the Target if modified.
|
||||||
*/
|
*/
|
||||||
@@ -210,7 +160,6 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
|
|||||||
} else {
|
} else {
|
||||||
addNewTarget();
|
addNewTarget();
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void discardTargetListner() {
|
private void discardTargetListner() {
|
||||||
@@ -244,37 +193,49 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
|
|||||||
public Window getWindow() {
|
public Window getWindow() {
|
||||||
eventBus.publish(this, DragEvent.HIDE_DROP_HINT);
|
eventBus.publish(this, DragEvent.HIDE_DROP_HINT);
|
||||||
window = SPUIComponentProvider.getWindow(i18n.get("caption.add.new.target"), null,
|
window = SPUIComponentProvider.getWindow(i18n.get("caption.add.new.target"), null,
|
||||||
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveTargetListner(), event -> discardTargetListner(), null, getMandatoryFields(), null, i18n);
|
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveTargetListner(),
|
||||||
|
event -> discardTargetListner(), null, getMandatoryFields(), getEditedFields(), i18n);
|
||||||
return window;
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Boolean> getMandatoryFields() {
|
private Map<String, Boolean> getMandatoryFields() {
|
||||||
final Map<String, Boolean> requiredFields = new HashMap<>();
|
final Map<String, Boolean> requiredFields = new HashMap<>();
|
||||||
final Iterator<Component> iterate = formLayout.iterator();
|
final Iterator<Component> iterate = formLayout.iterator();
|
||||||
while (iterate.hasNext()) {
|
while (iterate.hasNext()) {
|
||||||
final Component c = iterate.next();
|
final Component c = iterate.next();
|
||||||
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
if (c instanceof AbstractField && ((AbstractField) c).isRequired()) {
|
||||||
requiredFields.put(c.getCaption(), null);
|
requiredFields.put(c.getId(), Boolean.FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return requiredFields;
|
return requiredFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<String, Boolean> getEditedFields() {
|
||||||
|
final Map<String, Boolean> editedFields = new HashMap<>();
|
||||||
|
editedFields.put(controllerIDTextField.getId(), Boolean.FALSE);
|
||||||
|
editedFields.put(nameTextField.getId(), Boolean.FALSE);
|
||||||
|
editedFields.put(descTextArea.getId(), Boolean.FALSE);
|
||||||
|
return editedFields;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clear all fields of Target Edit Window.
|
* clear all fields of Target Edit Window.
|
||||||
*/
|
*/
|
||||||
public void resetComponents() {
|
public void resetComponents() {
|
||||||
nameTextField.clear();
|
nameTextField.clear();
|
||||||
nameTextField.removeStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR);
|
nameTextField.removeStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR);
|
||||||
controllerIDTextField.setEnabled(true);
|
controllerIDTextField.setEnabled(Boolean.TRUE);
|
||||||
controllerIDTextField.setReadOnly(false);
|
|
||||||
controllerIDTextField.removeStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR);
|
controllerIDTextField.removeStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR);
|
||||||
controllerIDTextField.clear();
|
controllerIDTextField.clear();
|
||||||
descTextArea.clear();
|
descTextArea.clear();
|
||||||
editTarget = Boolean.FALSE;
|
editTarget = Boolean.FALSE;
|
||||||
|
|
||||||
|
originalControllerId = null;
|
||||||
|
originalTargetDesc = null;
|
||||||
|
originalTargetName = null;
|
||||||
|
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
window.resetMandatoryAndEditedFields();
|
window.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,7 +243,6 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
|
|||||||
editTarget = Boolean.FALSE;
|
editTarget = Boolean.FALSE;
|
||||||
window.close();
|
window.close();
|
||||||
UI.getCurrent().removeWindow(window);
|
UI.getCurrent().removeWindow(window);
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setTargetValues(final Target target, final String name, final String description) {
|
private void setTargetValues(final Target target, final String name, final String description) {
|
||||||
@@ -303,7 +263,8 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
|
|||||||
private boolean duplicateCheck(final String newControlllerId) {
|
private boolean duplicateCheck(final String newControlllerId) {
|
||||||
final Target existingTarget = targetManagement.findTargetByControllerID(newControlllerId.trim());
|
final Target existingTarget = targetManagement.findTargetByControllerID(newControlllerId.trim());
|
||||||
if (existingTarget != null) {
|
if (existingTarget != null) {
|
||||||
uINotification.displayValidationError(i18n.get("message.target.duplicate.check", new Object[] {newControlllerId}));
|
uINotification.displayValidationError(
|
||||||
|
i18n.get("message.target.duplicate.check", new Object[] { newControlllerId }));
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
@@ -319,15 +280,15 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
|
|||||||
editTarget = Boolean.TRUE;
|
editTarget = Boolean.TRUE;
|
||||||
final Target target = targetManagement.findTargetByControllerID(controllerId);
|
final Target target = targetManagement.findTargetByControllerID(controllerId);
|
||||||
controllerIDTextField.setValue(target.getControllerId());
|
controllerIDTextField.setValue(target.getControllerId());
|
||||||
controllerIDTextField.setReadOnly(Boolean.TRUE);
|
controllerIDTextField.setEnabled(Boolean.FALSE);
|
||||||
nameTextField.setValue(target.getName());
|
nameTextField.setValue(target.getName());
|
||||||
if (target.getDescription() != null) {
|
if (target.getDescription() != null) {
|
||||||
descTextArea.setValue(target.getDescription());
|
descTextArea.setValue(target.getDescription());
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(Boolean.FALSE);
|
|
||||||
|
|
||||||
oldTargetDesc = descTextArea.getValue();
|
originalTargetDesc = descTextArea.getValue();
|
||||||
oldTargetName = nameTextField.getValue();
|
originalTargetName = nameTextField.getValue();
|
||||||
|
originalControllerId = controllerIDTextField.getValue();
|
||||||
window.addStyleName("target-update-window");
|
window.addStyleName("target-update-window");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -88,10 +88,11 @@ public class CreateUpdateTargetTagLayoutWindow extends AbstractCreateUpdateTagLa
|
|||||||
@Override
|
@Override
|
||||||
public void setTagDetails(final String targetTagSelected) {
|
public void setTagDetails(final String targetTagSelected) {
|
||||||
tagName.setValue(targetTagSelected);
|
tagName.setValue(targetTagSelected);
|
||||||
|
setOriginalTagName(targetTagSelected);
|
||||||
final TargetTag selectedTargetTag = tagManagement.findTargetTag(targetTagSelected);
|
final TargetTag selectedTargetTag = tagManagement.findTargetTag(targetTagSelected);
|
||||||
if (null != selectedTargetTag) {
|
if (null != selectedTargetTag) {
|
||||||
tagDesc.setValue(selectedTargetTag.getDescription());
|
tagDesc.setValue(selectedTargetTag.getDescription());
|
||||||
setTagDescOriginal(selectedTargetTag.getDescription());
|
setOriginalTagDesc(selectedTargetTag.getDescription());
|
||||||
if (null == selectedTargetTag.getColour()) {
|
if (null == selectedTargetTag.getColour()) {
|
||||||
setTagColor(getColorPickerLayout().getDefaultColor(), ColorPickerConstants.DEFAULT_COLOR);
|
setTagColor(getColorPickerLayout().getDefaultColor(), ColorPickerConstants.DEFAULT_COLOR);
|
||||||
setSelectedColorOriginal(getColorPickerLayout().getDefaultColor());
|
setSelectedColorOriginal(getColorPickerLayout().getDefaultColor());
|
||||||
@@ -115,7 +116,6 @@ public class CreateUpdateTargetTagLayoutWindow extends AbstractCreateUpdateTagLa
|
|||||||
updateExistingTag(existingTag);
|
updateExistingTag(existingTag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window.setSaveButtonEnabled(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -75,9 +75,7 @@ import com.vaadin.ui.UI;
|
|||||||
import com.vaadin.ui.themes.ValoTheme;
|
import com.vaadin.ui.themes.ValoTheme;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Rollout add or update popup layout.
|
* Rollout add or update popup layout.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
@SpringComponent
|
@SpringComponent
|
||||||
@ViewScope
|
@ViewScope
|
||||||
@@ -150,19 +148,21 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
|
|
||||||
private TextArea targetFilterQuery;
|
private TextArea targetFilterQuery;
|
||||||
|
|
||||||
private Boolean updateMode = Boolean.FALSE;
|
private String originalDistributionSet;
|
||||||
|
|
||||||
private String distributionSetOriginal;
|
private Object originalActionGroup;
|
||||||
|
|
||||||
private Object actionGroupOriginal;
|
private String originalRolloutName;
|
||||||
|
|
||||||
private String rolloutNameOriginal;
|
private String originalErrorThreshold;
|
||||||
|
|
||||||
private String errorThresholdOriginal;;
|
private String originalTriggerThreshold;
|
||||||
|
|
||||||
private String triggerThresholdOriginal;
|
private String originalDescription;
|
||||||
|
|
||||||
private String descriptionOriginal;
|
private String originalTargetFilterQueryCombo;
|
||||||
|
|
||||||
|
private String originalNoOfGroups;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create components and layout.
|
* Create components and layout.
|
||||||
@@ -174,6 +174,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public CommonDialogWindow getWindow() {
|
public CommonDialogWindow getWindow() {
|
||||||
|
|
||||||
window = SPUIComponentProvider.getWindow(i18n.get("caption.configure.rollout"), null,
|
window = SPUIComponentProvider.getWindow(i18n.get("caption.configure.rollout"), null,
|
||||||
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> onRolloutSave(), event -> onDiscard(),
|
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> onRolloutSave(), event -> onDiscard(),
|
||||||
uiProperties.getLinks().getDocumentation().getRolloutView(), getMandatoryFields(), getEditedFields(),
|
uiProperties.getLinks().getDocumentation().getRolloutView(), getMandatoryFields(), getEditedFields(),
|
||||||
@@ -181,25 +182,14 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
return window;
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommonDialogWindow createUpdateWindow() {
|
|
||||||
updateMode = Boolean.TRUE;
|
|
||||||
return getWindow();
|
|
||||||
}
|
|
||||||
|
|
||||||
public CommonDialogWindow createAddWindow() {
|
|
||||||
updateMode = Boolean.FALSE;
|
|
||||||
return getWindow();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<String, Boolean> getMandatoryFields() {
|
private Map<String, Boolean> getMandatoryFields() {
|
||||||
final Map<String, Boolean> requiredFields = new HashMap<>();
|
final Map<String, Boolean> requiredFields = new HashMap<>();
|
||||||
requiredFields.put(rolloutName.getId(), null);
|
requiredFields.put(rolloutName.getId(), Boolean.FALSE);
|
||||||
requiredFields.put(distributionSet.getId(), null);
|
requiredFields.put(distributionSet.getId(), Boolean.FALSE);
|
||||||
requiredFields.put(targetFilterQueryCombo.getId(), null);
|
requiredFields.put(targetFilterQueryCombo.getId(), Boolean.FALSE);
|
||||||
requiredFields.put(noOfGroups.getId(), null);
|
requiredFields.put(noOfGroups.getId(), Boolean.FALSE);
|
||||||
requiredFields.put(triggerThreshold.getId(), null);
|
requiredFields.put(triggerThreshold.getId(), Boolean.FALSE);
|
||||||
requiredFields.put(errorThreshold.getId(), null);
|
requiredFields.put(errorThreshold.getId(), Boolean.FALSE);
|
||||||
|
|
||||||
return requiredFields;
|
return requiredFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,7 +214,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
rolloutForEdit = null;
|
rolloutForEdit = null;
|
||||||
|
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
window.resetMandatoryAndEditedFields();
|
window.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -319,13 +309,8 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
|
|
||||||
private void listenerActionGroupValueChanged(final ValueChangeEvent event) {
|
private void listenerActionGroupValueChanged(final ValueChangeEvent event) {
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
if (!updateMode) {
|
window.checkMandatoryEditedValue(event, actionTypeOptionGroupLayout.getActionTypeOptionGroup(),
|
||||||
window.checkMandatoryComboBox(event, actionTypeOptionGroupLayout.getActionTypeOptionGroup());
|
originalActionGroup.toString());
|
||||||
}
|
|
||||||
if (event.getProperty().getValue() != null) {
|
|
||||||
window.checkChanges(actionTypeOptionGroupLayout.getActionTypeOptionGroup().getId(),
|
|
||||||
event.getProperty().getValue().toString(), actionGroupOriginal.toString());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,9 +331,16 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
filterField.setNullRepresentation(HawkbitCommonUtil.SP_STRING_EMPTY);
|
filterField.setNullRepresentation(HawkbitCommonUtil.SP_STRING_EMPTY);
|
||||||
filterField.setEnabled(false);
|
filterField.setEnabled(false);
|
||||||
filterField.setSizeUndefined();
|
filterField.setSizeUndefined();
|
||||||
|
filterField.addValueChangeListener(event -> listenerFilterFieldValueChanged(event, filterField));
|
||||||
return filterField;
|
return filterField;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void listenerFilterFieldValueChanged(final ValueChangeEvent event, final TextArea filterField) {
|
||||||
|
if (window != null) {
|
||||||
|
window.setRequiredFieldWhenUpdate(event, targetFilterQueryCombo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Label createTotalTargetsLabel() {
|
private Label createTotalTargetsLabel() {
|
||||||
final Label targetCountLabel = SPUIComponentProvider.getLabel("", SPUILabelDefinitions.SP_LABEL_SIMPLE);
|
final Label targetCountLabel = SPUIComponentProvider.getLabel("", SPUILabelDefinitions.SP_LABEL_SIMPLE);
|
||||||
targetCountLabel.addStyleName(ValoTheme.LABEL_TINY + " " + "rollout-target-count-message");
|
targetCountLabel.addStyleName(ValoTheme.LABEL_TINY + " " + "rollout-target-count-message");
|
||||||
@@ -404,9 +396,9 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
totalTargetsCount = 0L;
|
totalTargetsCount = 0L;
|
||||||
totalTargetsLabel.setVisible(false);
|
totalTargetsLabel.setVisible(false);
|
||||||
}
|
}
|
||||||
onGroupNumberChange();
|
onGroupNumberChange(event);
|
||||||
|
window.setRequiredFieldWhenUpdate(event, targetFilterQueryCombo);
|
||||||
window.checkMandatoryComboBox(event, targetFilterQueryCombo);
|
window.checkMandatoryEditedValue(event, targetFilterQueryCombo, originalTargetFilterQueryCombo);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getTotalTargetMessage() {
|
private String getTotalTargetMessage() {
|
||||||
@@ -618,11 +610,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
|
|
||||||
private void listenerDescriptionTextFieldChanged(final TextChangeEvent event) {
|
private void listenerDescriptionTextFieldChanged(final TextChangeEvent event) {
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
if (!updateMode) {
|
window.checkMandatoryEditedTextField(event, originalDescription);
|
||||||
window.checkMandatoryTextField(event, description);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
window.checkChanges(description.getId(), event.getText(), descriptionOriginal);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -633,16 +621,19 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
errorField.setMaxLength(7);
|
errorField.setMaxLength(7);
|
||||||
errorField.setSizeUndefined();
|
errorField.setSizeUndefined();
|
||||||
errorField.addTextChangeListener(this::listenerErrorThresholdTextFieldChanged);
|
errorField.addTextChangeListener(this::listenerErrorThresholdTextFieldChanged);
|
||||||
|
errorField.addValueChangeListener(event -> listenerErrorThresholdValueChanged(event, errorField));
|
||||||
return errorField;
|
return errorField;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void listenerErrorThresholdTextFieldChanged(final TextChangeEvent event) {
|
private void listenerErrorThresholdTextFieldChanged(final TextChangeEvent event) {
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
if (!updateMode) {
|
window.checkMandatoryEditedTextField(event, originalErrorThreshold);
|
||||||
window.checkMandatoryTextField(event, errorThreshold);
|
}
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
window.checkChanges(errorThreshold.getId(), event.getText(), errorThresholdOriginal);
|
private void listenerErrorThresholdValueChanged(final ValueChangeEvent event, final TextField errorField) {
|
||||||
|
if (window != null) {
|
||||||
|
window.setRequiredFieldWhenUpdate(event, errorField);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -653,16 +644,19 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
thresholdField.setSizeUndefined();
|
thresholdField.setSizeUndefined();
|
||||||
thresholdField.setMaxLength(3);
|
thresholdField.setMaxLength(3);
|
||||||
thresholdField.addTextChangeListener(this::listenerTriggerThresholdTextFieldChanged);
|
thresholdField.addTextChangeListener(this::listenerTriggerThresholdTextFieldChanged);
|
||||||
|
thresholdField.addValueChangeListener(event -> listenerTriggerTresholdValueChanged(event, thresholdField));
|
||||||
return thresholdField;
|
return thresholdField;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void listenerTriggerTresholdValueChanged(final ValueChangeEvent event, final TextField thresholdField) {
|
||||||
|
if (window != null) {
|
||||||
|
window.setRequiredFieldWhenUpdate(event, thresholdField);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void listenerTriggerThresholdTextFieldChanged(final TextChangeEvent event) {
|
private void listenerTriggerThresholdTextFieldChanged(final TextChangeEvent event) {
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
if (!updateMode) {
|
window.checkMandatoryEditedTextField(event, originalTriggerThreshold);
|
||||||
window.checkMandatoryTextField(event, triggerThreshold);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
window.checkChanges(triggerThreshold.getId(), event.getText(), triggerThresholdOriginal);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -672,28 +666,27 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
noOfGroupsField.addValidator(new GroupNumberValidator());
|
noOfGroupsField.addValidator(new GroupNumberValidator());
|
||||||
noOfGroupsField.setSizeUndefined();
|
noOfGroupsField.setSizeUndefined();
|
||||||
noOfGroupsField.setMaxLength(3);
|
noOfGroupsField.setMaxLength(3);
|
||||||
noOfGroupsField.addValueChangeListener(evevt -> onGroupNumberChange());
|
noOfGroupsField.addValueChangeListener(this::onGroupNumberChange);
|
||||||
noOfGroupsField.addTextChangeListener(this::listenerNoOfGroupsTextFieldChanged);
|
noOfGroupsField.addTextChangeListener(this::listenerNoOfGroupsTextFieldChanged);
|
||||||
return noOfGroupsField;
|
return noOfGroupsField;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void listenerNoOfGroupsTextFieldChanged(final TextChangeEvent event) {
|
private void listenerNoOfGroupsTextFieldChanged(final TextChangeEvent event) {
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
if (!updateMode) {
|
window.checkMandatoryEditedTextField(event, originalNoOfGroups);
|
||||||
window.checkMandatoryTextField(event, noOfGroups);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
window.checkChanges(noOfGroups.getId(), event.getText(), noOfGroups.getValue());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onGroupNumberChange() {
|
private void onGroupNumberChange(final ValueChangeEvent event) {
|
||||||
if (noOfGroups.isValid() && !Strings.isNullOrEmpty(noOfGroups.getValue())) {
|
if (noOfGroups.isValid() && !Strings.isNullOrEmpty(noOfGroups.getValue())) {
|
||||||
groupSizeLabel.setValue(getTargetPerGroupMessage(String.valueOf(getGroupSize())));
|
groupSizeLabel.setValue(getTargetPerGroupMessage(String.valueOf(getGroupSize())));
|
||||||
groupSizeLabel.setVisible(true);
|
groupSizeLabel.setVisible(true);
|
||||||
} else {
|
} else {
|
||||||
groupSizeLabel.setVisible(false);
|
groupSizeLabel.setVisible(false);
|
||||||
}
|
}
|
||||||
|
if (window != null) {
|
||||||
|
window.setRequiredFieldWhenUpdate(event, noOfGroups);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ComboBox createDistributionSetCombo() {
|
private ComboBox createDistributionSetCombo() {
|
||||||
@@ -710,14 +703,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
|
|
||||||
private void listenerDistributionSetChanged(final ValueChangeEvent event) {
|
private void listenerDistributionSetChanged(final ValueChangeEvent event) {
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
if (!updateMode) {
|
window.checkMandatoryEditedValue(event, distributionSet, originalDistributionSet);
|
||||||
window.checkMandatoryComboBox(event, distributionSet);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (event.getProperty().getValue() != null) {
|
|
||||||
window.checkChanges(distributionSet.getId(), event.getProperty().getValue().toString(),
|
|
||||||
distributionSetOriginal);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -732,7 +718,6 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
return new LazyQueryContainer(
|
return new LazyQueryContainer(
|
||||||
new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME),
|
new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME),
|
||||||
distributionQF);
|
distributionQF);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private TextField createRolloutNameField() {
|
private TextField createRolloutNameField() {
|
||||||
@@ -740,16 +725,19 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
rolloutNameField.setId(SPUIComponentIdProvider.ROLLOUT_NAME_FIELD_ID);
|
rolloutNameField.setId(SPUIComponentIdProvider.ROLLOUT_NAME_FIELD_ID);
|
||||||
rolloutNameField.setSizeUndefined();
|
rolloutNameField.setSizeUndefined();
|
||||||
rolloutNameField.addTextChangeListener(this::listenerRolloutNameTextFieldChanged);
|
rolloutNameField.addTextChangeListener(this::listenerRolloutNameTextFieldChanged);
|
||||||
|
rolloutNameField.addValueChangeListener(event -> listenerRolloutNameValueChanged(event, rolloutNameField));
|
||||||
return rolloutNameField;
|
return rolloutNameField;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void listenerRolloutNameTextFieldChanged(final TextChangeEvent event) {
|
private void listenerRolloutNameTextFieldChanged(final TextChangeEvent event) {
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
if (!updateMode) {
|
window.checkMandatoryEditedTextField(event, originalRolloutName);
|
||||||
window.checkMandatoryTextField(event, rolloutName);
|
}
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
window.checkChanges(rolloutName.getId(), event.getText(), rolloutNameOriginal);
|
private void listenerRolloutNameValueChanged(final ValueChangeEvent event, final TextField rolloutNameField) {
|
||||||
|
if (window != null) {
|
||||||
|
window.setRequiredFieldWhenUpdate(event, rolloutNameField);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -851,7 +839,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
description.setValue(rolloutForEdit.getDescription());
|
description.setValue(rolloutForEdit.getDescription());
|
||||||
distributionSet.setValue(DistributionSetIdName.generate(rolloutForEdit.getDistributionSet()));
|
distributionSet.setValue(DistributionSetIdName.generate(rolloutForEdit.getDistributionSet()));
|
||||||
final List<RolloutGroup> rolloutGroups = rolloutForEdit.getRolloutGroups();
|
final List<RolloutGroup> rolloutGroups = rolloutForEdit.getRolloutGroups();
|
||||||
setThresoldValues(rolloutGroups);
|
setThresholdValues(rolloutGroups);
|
||||||
setActionType(rolloutForEdit);
|
setActionType(rolloutForEdit);
|
||||||
if (rolloutForEdit.getStatus() != RolloutStatus.READY) {
|
if (rolloutForEdit.getStatus() != RolloutStatus.READY) {
|
||||||
disableRequiredFieldsOnEdit();
|
disableRequiredFieldsOnEdit();
|
||||||
@@ -870,30 +858,28 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setOriginalValues() {
|
private void setOriginalValues() {
|
||||||
distributionSetOriginal = distributionSet.getValue().toString();
|
originalDistributionSet = distributionSet.getValue().toString();
|
||||||
actionGroupOriginal = actionTypeOptionGroupLayout.getActionTypeOptionGroup().getValue();
|
originalActionGroup = actionTypeOptionGroupLayout.getActionTypeOptionGroup().getValue();
|
||||||
rolloutNameOriginal = rolloutName.getValue();
|
originalRolloutName = rolloutName.getValue();
|
||||||
triggerThresholdOriginal = triggerThreshold.getValue();
|
originalTriggerThreshold = triggerThreshold.getValue();
|
||||||
errorThresholdOriginal = errorThreshold.getValue();
|
originalErrorThreshold = errorThreshold.getValue();
|
||||||
descriptionOriginal = description.getValue();
|
originalDescription = description.getValue();
|
||||||
|
originalNoOfGroups = noOfGroups.getValue();
|
||||||
|
if (targetFilterQueryCombo.getValue() != null) {
|
||||||
|
originalTargetFilterQueryCombo = targetFilterQueryCombo.getValue().toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Boolean> getEditedFields() {
|
private Map<String, Boolean> getEditedFields() {
|
||||||
final Map<String, Boolean> changeMap = new HashMap<>();
|
final Map<String, Boolean> changeMap = new HashMap<>();
|
||||||
if (rolloutForEdit == null) {
|
changeMap.put(rolloutName.getId(), Boolean.FALSE);
|
||||||
return changeMap;
|
changeMap.put(distributionSet.getId(), Boolean.FALSE);
|
||||||
}
|
changeMap.put(targetFilterQueryCombo.getId(), Boolean.FALSE);
|
||||||
if (rolloutForEdit.getStatus() != RolloutStatus.READY) {
|
changeMap.put(noOfGroups.getId(), Boolean.FALSE);
|
||||||
changeMap.put(rolloutName.getId(), Boolean.FALSE);
|
changeMap.put(triggerThreshold.getId(), Boolean.FALSE);
|
||||||
changeMap.put(description.getId(), Boolean.FALSE);
|
changeMap.put(errorThreshold.getId(), Boolean.FALSE);
|
||||||
} else {
|
changeMap.put(description.getId(), Boolean.FALSE);
|
||||||
changeMap.put(rolloutName.getId(), Boolean.FALSE);
|
changeMap.put(actionTypeOptionGroupLayout.getActionTypeOptionGroup().getId(), Boolean.FALSE);
|
||||||
changeMap.put(distributionSet.getId(), Boolean.FALSE);
|
|
||||||
changeMap.put(triggerThreshold.getId(), Boolean.FALSE);
|
|
||||||
changeMap.put(errorThreshold.getId(), Boolean.FALSE);
|
|
||||||
changeMap.put(description.getId(), Boolean.FALSE);
|
|
||||||
changeMap.put(actionTypeOptionGroupLayout.getActionTypeOptionGroup().getId(), Boolean.FALSE);
|
|
||||||
}
|
|
||||||
return changeMap;
|
return changeMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -933,7 +919,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
|
|||||||
/**
|
/**
|
||||||
* @param rolloutGroups
|
* @param rolloutGroups
|
||||||
*/
|
*/
|
||||||
private void setThresoldValues(final List<RolloutGroup> rolloutGroups) {
|
private void setThresholdValues(final List<RolloutGroup> rolloutGroups) {
|
||||||
if (null != rolloutGroups && !rolloutGroups.isEmpty()) {
|
if (null != rolloutGroups && !rolloutGroups.isEmpty()) {
|
||||||
errorThreshold.setValue(rolloutGroups.get(0).getErrorConditionExp());
|
errorThreshold.setValue(rolloutGroups.get(0).getErrorConditionExp());
|
||||||
triggerThreshold.setValue(rolloutGroups.get(0).getSuccessConditionExp());
|
triggerThreshold.setValue(rolloutGroups.get(0).getSuccessConditionExp());
|
||||||
|
|||||||
@@ -67,9 +67,7 @@ import com.vaadin.ui.renderers.ClickableRenderer.RendererClickEvent;
|
|||||||
import com.vaadin.ui.renderers.HtmlRenderer;
|
import com.vaadin.ui.renderers.HtmlRenderer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Rollout list grid component.
|
* Rollout list grid component.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
@SpringComponent
|
@SpringComponent
|
||||||
@ViewScope
|
@ViewScope
|
||||||
@@ -159,7 +157,6 @@ public class RolloutListGrid extends AbstractGrid {
|
|||||||
}
|
}
|
||||||
item.getItemProperty(ROLLOUT_RENDERER_DATA)
|
item.getItemProperty(ROLLOUT_RENDERER_DATA)
|
||||||
.setValue(new RolloutRendererData(rollout.getName(), rollout.getStatus().toString()));
|
.setValue(new RolloutRendererData(rollout.getName(), rollout.getStatus().toString()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -200,7 +197,6 @@ public class RolloutListGrid extends AbstractGrid {
|
|||||||
|
|
||||||
rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.ACTION, String.class,
|
rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.ACTION, String.class,
|
||||||
FontAwesome.CIRCLE_O.getHtml(), false, false);
|
FontAwesome.CIRCLE_O.getHtml(), false, false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -292,7 +288,6 @@ public class RolloutListGrid extends AbstractGrid {
|
|||||||
for (final Object propertyId : columnsToBeHidden) {
|
for (final Object propertyId : columnsToBeHidden) {
|
||||||
getColumn(propertyId).setHidden(true);
|
getColumn(propertyId).setHidden(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -315,7 +310,6 @@ public class RolloutListGrid extends AbstractGrid {
|
|||||||
final RolloutRenderer customObjectRenderer = new RolloutRenderer(RolloutRendererData.class);
|
final RolloutRenderer customObjectRenderer = new RolloutRenderer(RolloutRendererData.class);
|
||||||
customObjectRenderer.addClickListener(this::onClickOfRolloutName);
|
customObjectRenderer.addClickListener(this::onClickOfRolloutName);
|
||||||
getColumn(ROLLOUT_RENDERER_DATA).setRenderer(customObjectRenderer);
|
getColumn(ROLLOUT_RENDERER_DATA).setRenderer(customObjectRenderer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createRolloutStatusToFontMap() {
|
private void createRolloutStatusToFontMap() {
|
||||||
@@ -437,8 +431,8 @@ public class RolloutListGrid extends AbstractGrid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void onUpdate(final ContextMenuData contextMenuData) {
|
private void onUpdate(final ContextMenuData contextMenuData) {
|
||||||
|
final CommonDialogWindow addTargetWindow = addUpdateRolloutWindow.getWindow();
|
||||||
addUpdateRolloutWindow.populateData(contextMenuData.getRolloutId());
|
addUpdateRolloutWindow.populateData(contextMenuData.getRolloutId());
|
||||||
final CommonDialogWindow addTargetWindow = addUpdateRolloutWindow.createUpdateWindow();
|
|
||||||
addTargetWindow.setCaption(i18n.get("caption.update.rollout"));
|
addTargetWindow.setCaption(i18n.get("caption.update.rollout"));
|
||||||
UI.getCurrent().addWindow(addTargetWindow);
|
UI.getCurrent().addWindow(addTargetWindow);
|
||||||
addTargetWindow.setVisible(Boolean.TRUE);
|
addTargetWindow.setVisible(Boolean.TRUE);
|
||||||
@@ -684,7 +678,6 @@ public class RolloutListGrid extends AbstractGrid {
|
|||||||
public Class<String> getPresentationType() {
|
public Class<String> getPresentationType() {
|
||||||
return String.class;
|
return String.class;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ public class RolloutListHeader extends AbstractGridHeader {
|
|||||||
@Override
|
@Override
|
||||||
protected void addNewItem(final ClickEvent event) {
|
protected void addNewItem(final ClickEvent event) {
|
||||||
addUpdateRolloutWindow.resetComponents();
|
addUpdateRolloutWindow.resetComponents();
|
||||||
final Window addTargetWindow = addUpdateRolloutWindow.createAddWindow();
|
final Window addTargetWindow = addUpdateRolloutWindow.getWindow();
|
||||||
UI.getCurrent().addWindow(addTargetWindow);
|
UI.getCurrent().addWindow(addTargetWindow);
|
||||||
addTargetWindow.setVisible(Boolean.TRUE);
|
addTargetWindow.setVisible(Boolean.TRUE);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user