public void onClick(ClickEvent clickEvent) {
if (propertyList.getList().size() >= propertyDefinitionList.getMax()) {
SC.say(MSG.view_configEdit_maxBoundsExceeded(String.valueOf(propertyDefinitionList.getMax())));
} else {
final Window popup = createPopup(MSG.view_configEdit_addItem(), 400, 150);
VLayout vLayout = new VLayout();
vLayout.setMargin(10);
HTMLFlow description = new HTMLFlow(propertyDefinitionList.getDescription());
vLayout.addMember(description);
final DynamicForm form = new DynamicForm();
PropertyDefinitionSimple memberPropertyDefinitionSimple = (PropertyDefinitionSimple) propertyDefinitionList
.getMemberDefinition();
final String propertyName = memberPropertyDefinitionSimple.getName();
final PropertySimple newMemberPropertySimple = new PropertySimple(propertyName, null);
FormItem simpleField = buildSimpleField(memberPropertyDefinitionSimple, newMemberPropertySimple);
simpleField.setTitle(memberPropertyDefinitionSimple.getDisplayName());
simpleField.setShowTitle(true);
simpleField.setAlign(Alignment.CENTER);
simpleField.setDisabled(false);
simpleField.setRequired(true);
simpleField.setEndRow(true);
SpacerItem spacer = new SpacerItem();
spacer.setHeight(9);
form.setItems(simpleField, spacer);
vLayout.addMember(form);
final IButton okButton = new EnhancedIButton(MSG.common_button_ok(), ButtonColor.BLUE);
okButton.disable();
okButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
public void onClick(ClickEvent clickEvent) {
propertyList.add(newMemberPropertySimple);
// Rebuild the select item options.
LinkedHashMap<String, String> memberValueToIndexMap = buildValueMap(propertyList);
membersItem.setValueMap(memberValueToIndexMap);
firePropertyChangedEvent(propertyList, propertyDefinitionList, true);
CoreGUI.getMessageCenter().notify(
new Message(MSG.view_configEdit_msg_4(), EnumSet.of(Message.Option.Transient)));
popup.destroy();
}
});
form.addItemChangedHandler(new ItemChangedHandler() {
public void onItemChanged(ItemChangedEvent itemChangedEvent) {
Object newValue = itemChangedEvent.getNewValue();
newMemberPropertySimple.setValue(newValue);
// Only enable the OK button, allowing the user to add the property to the map, if the
// property is valid.
boolean isValid = form.validate();
okButton.setDisabled(!isValid);
}
});
final IButton cancelButton = new EnhancedIButton(MSG.common_button_cancel());
cancelButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
public void onClick(ClickEvent clickEvent) {
popup.destroy();
}
});
ToolStrip buttonBar = new ToolStrip();
buttonBar.setPadding(5);
buttonBar.setWidth100();
buttonBar.setMembersMargin(15);
buttonBar.setAlign(Alignment.CENTER);
buttonBar.setMembers(okButton, cancelButton);
vLayout.addMember(buttonBar);
popup.addItem(vLayout);
popup.show();
simpleField.focusInItem();
}
}
});