Browse Source

Create new items with RPC (#19929)

When the user creates a new item, send it with client to
server RPC.

Change-Id: I1b92073dc2791911e4916d17f749dc1f35e54bca
feature/combobox-communication
Henri Sara 8 years ago
parent
commit
252450979d

+ 1
- 2
client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java View File

@@ -378,8 +378,7 @@ public class ComboBoxConnector extends AbstractFieldConnector implements
* user entered string value for the new item
*/
public void sendNewItem(String itemValue) {
getConnection().updateVariable(getConnectorId(), "newitem", itemValue,
immediate);
rpc.createNewItem(itemValue);
}

/**

+ 12
- 10
server/src/com/vaadin/ui/ComboBox.java View File

@@ -76,7 +76,18 @@ public class ComboBox extends AbstractSelect implements
}

private ComboBoxServerRpc rpc = new ComboBoxServerRpc() {

@Override
public void createNewItem(String itemValue) {
if (isNewItemsAllowed()) {
// New option entered (and it is allowed)
if (itemValue != null && itemValue.length() > 0) {
getNewItemHandler().addNewItem(itemValue);
// rebuild list
filterstring = null;
prevfilterstring = null;
}
}
}
};

/**
@@ -733,15 +744,6 @@ public class ComboBox extends AbstractSelect implements
filterstring = filterstring.toLowerCase(getLocale());
}
requestRepaint();
} else if (isNewItemsAllowed()) {
// New option entered (and it is allowed)
final String newitem = (String) variables.get("newitem");
if (newitem != null && newitem.length() > 0) {
getNewItemHandler().addNewItem(newitem);
// rebuild list
filterstring = null;
prevfilterstring = null;
}
}

if (variables.containsKey(FocusEvent.EVENT_ID)) {

+ 8
- 1
shared/src/com/vaadin/shared/ui/combobox/ComboBoxServerRpc.java View File

@@ -23,5 +23,12 @@ import com.vaadin.shared.communication.ServerRpc;
* @since
*/
public interface ComboBoxServerRpc extends ServerRpc {

/**
* Create a new item in the combo box. This method can only be used when the
* ComboBox is configured to allow the creation of new items by the user.
*
* @param itemValue
* user entered string value for the new item
*/
public void createNewItem(String itemValue);
}

Loading…
Cancel
Save