From 39712b90a31625249d521890ab9bf3010c4d65f6 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Fri, 21 Oct 2016 13:04:30 +0200 Subject: [PATCH] fix NPE on color picking on dist and software types Signed-off-by: Michael Hirsch --- .../CreateUpdateSoftwareTypeLayout.java | 13 ++++++ .../CreateUpdateDistSetTypeLayout.java | 14 ++++++ .../AbstractCreateUpdateTagLayout.java | 43 +++++++++---------- 3 files changed, 48 insertions(+), 22 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java index 5f0442bb4..6c5b3a24e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtype/CreateUpdateSoftwareTypeLayout.java @@ -16,6 +16,7 @@ import org.eclipse.hawkbit.repository.SoftwareManagement; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleTypeEvent; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleTypeEvent.SoftwareModuleTypeEnum; +import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants; import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper; import org.eclipse.hawkbit.ui.common.SoftwareModuleTypeBeanQuery; import org.eclipse.hawkbit.ui.common.builder.LabelBuilder; @@ -93,6 +94,18 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout exten * Open color picker on click of preview button. Auto select the color based * on target tag if already selected. */ - protected void previewButtonClicked() { + private void previewButtonClicked() { if (!tagPreviewBtnClicked) { - setColor(); + final String selectedOption = (String) optiongroup.getValue(); + if (selectedOption == null || !selectedOption.equalsIgnoreCase(updateTagStr)) { + return; + } + + if (tagNameComboBox.getValue() == null) { + colorPickerLayout + .setSelectedColor(ColorPickerHelper.rgbToColorConverter(ColorPickerConstants.DEFAULT_COLOR)); + return; + } + colorPickerLayout.setSelectedColor(getColorForColorPicker()); } tagPreviewBtnClicked = !tagPreviewBtnClicked; colorPickerLayout.setVisible(tagPreviewBtnClicked); } - private void setColor() { - final String selectedOption = (String) optiongroup.getValue(); - if (selectedOption == null || !selectedOption.equalsIgnoreCase(updateTagStr)) { - return; - } - - if (tagNameComboBox.getValue() == null) { - colorPickerLayout - .setSelectedColor(ColorPickerHelper.rgbToColorConverter(ColorPickerConstants.DEFAULT_COLOR)); - return; - } - + /** + * @return the color which should be selected in the color-picker component. + */ + protected Color getColorForColorPicker() { final TargetTag targetTagSelected = tagManagement.findTargetTag(tagNameComboBox.getValue().toString()); - if (targetTagSelected == null) { final DistributionSetTag distTag = tagManagement .findDistributionSetTag(tagNameComboBox.getValue().toString()); - colorPickerLayout.setSelectedColor( - distTag.getColour() != null ? ColorPickerHelper.rgbToColorConverter(distTag.getColour()) - : ColorPickerHelper.rgbToColorConverter(ColorPickerConstants.DEFAULT_COLOR)); - } else { - colorPickerLayout.setSelectedColor(targetTagSelected.getColour() != null - ? ColorPickerHelper.rgbToColorConverter(targetTagSelected.getColour()) - : ColorPickerHelper.rgbToColorConverter(ColorPickerConstants.DEFAULT_COLOR)); + return distTag.getColour() != null ? ColorPickerHelper.rgbToColorConverter(distTag.getColour()) + : ColorPickerHelper.rgbToColorConverter(ColorPickerConstants.DEFAULT_COLOR); } + return targetTagSelected.getColour() != null + ? ColorPickerHelper.rgbToColorConverter(targetTagSelected.getColour()) + : ColorPickerHelper.rgbToColorConverter(ColorPickerConstants.DEFAULT_COLOR); } private void tagNameChosen(final ValueChangeEvent event) {