Skip to content

Commit

Permalink
npe fix + search property selection fix
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Sep 24, 2020
1 parent 472d2a6 commit 1526f80
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 9 deletions.
Expand Up @@ -67,6 +67,7 @@ public class SearchPropertiesConfigPanel<O extends ObjectType> extends AbstractS
private static final String ID_ADD_BUTTON = "addButton";

private SelectableListDataProvider<SelectableBean<ValueSearchFilterItem>, ValueSearchFilterItem> provider;
private Property selectedPropertyChoice = null;

public SearchPropertiesConfigPanel(String id, IModel<BasicSearchFilter<O>> searchModel, Class<O> type) {
super(id, searchModel, type);
Expand All @@ -81,7 +82,7 @@ protected void initConfigurationPanel(WebMarkupContainer configPanel) {
configPanel.add(propertyConfigContainer);

DropDownChoicePanel<Property> propertyChoicePanel = new DropDownChoicePanel<Property>(ID_PROPERTY_CHOICE,
Model.of(getDefaultPropertyChoice()), getAvailablePropertiesListModel(), new IChoiceRenderer<Property>() {
getDefaultPropertyChoiceModel(), getAvailablePropertiesListModel(), new IChoiceRenderer<Property>() {

private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -125,12 +126,25 @@ public void onClick(AjaxRequestTarget ajaxRequestTarget) {
initTable(configPanel);
}

private Property getDefaultPropertyChoice() {
List<Property> availablePropertiesList = getAvailablePropertiesListModel().getObject();
if (CollectionUtils.isNotEmpty(availablePropertiesList)) {
return availablePropertiesList.get(0);
}
return null;
private IModel<Property> getDefaultPropertyChoiceModel() {
return new IModel<Property>() {
private static final long serialVersionUID = 1L;

@Override
public Property getObject() {
if (selectedPropertyChoice == null) {
List<Property> availablePropertiesList = getAvailablePropertiesListModel().getObject();
if (CollectionUtils.isNotEmpty(availablePropertiesList)) {
selectedPropertyChoice = availablePropertiesList.get(0);
}
}
return selectedPropertyChoice;
}

public void setObject(Property property){
selectedPropertyChoice = property;
}
};
}

private void initTable(WebMarkupContainer configPanel) {
Expand Down Expand Up @@ -388,7 +402,7 @@ private DropDownChoicePanel<Property> getPropertyChoicePanel() {
}

private void resetPropertyChoicePanelModel() {
getPropertyChoicePanel().getModel().setObject(getDefaultPropertyChoice());
getPropertyChoicePanel().getModel().setObject(null);
}

private ValueSearchFilterItem createDefaultValueFilter(Property property) {
Expand Down
Expand Up @@ -122,7 +122,7 @@ public void onClick(AjaxRequestTarget target) {
switchButton.setOutputMarkupId(true);
switchButton.add(new VisibleBehaviour(() -> {
ItemDefinition propertyDef = getPropertyItemDefinition();
return propertyDef == null || !propertyDef.getTypeClass().equals(boolean.class) && !Boolean.class.isAssignableFrom(propertyDef.getTypeClass());
return propertyDef == null || propertyDef.getTypeClass() != null && !boolean.class.equals(propertyDef.getTypeClass()) && !Boolean.class.isAssignableFrom(propertyDef.getTypeClass());
}));
switchButton.add(AttributeAppender.append("title", new LoadableModel<String>() {
@Override
Expand Down

0 comments on commit 1526f80

Please sign in to comment.