*/
public void requestFirstPage() {
sendSelection(null);
- getConnection().updateVariable(getConnectorId(), "filter", "", false);
- getConnection().updateVariable(getConnectorId(), "page", 0, true);
+ requestPage("", 0);
}
/**
* the page number to get
*/
public void requestPage(String filter, int page) {
- getConnection().updateVariable(getConnectorId(), "filter", filter,
- false);
- getConnection().updateVariable(getConnectorId(), "page", page,
- immediate);
+ rpc.requestPage(filter, page);
}
/**
}
}
}
+
+ @Override
+ public void requestPage(String filter, int page) {
+ filterstring = filter;
+ if (filterstring != null) {
+ filterstring = filterstring.toLowerCase(getLocale());
+ }
+ currentPage = page;
+
+ // TODO this should trigger a data-only update instead of a full
+ // repaint
+ requestRepaint();
+ }
};
FocusAndBlurServerRpcImpl focusBlurRpc = new FocusAndBlurServerRpcImpl(this) {
// Not calling super.changeVariables due the history of select
// component hierarchy
- String newFilter;
- if ((newFilter = (String) variables.get("filter")) != null) {
- // this is a filter request
- currentPage = ((Integer) variables.get("page")).intValue();
- filterstring = newFilter;
- if (filterstring != null) {
- filterstring = filterstring.toLowerCase(getLocale());
- }
- requestRepaint();
- }
+ // all the client to server requests are now handled by RPC
}
@Override
* the id of a single item or null to deselect the current value
*/
public void setSelectedItem(String item);
+
+ /**
+ * Request the server to send a page of the item list.
+ *
+ * @param filter
+ * filter string interpreted according to the current filtering
+ * mode
+ * @param page
+ * zero based page number
+ */
+ public void requestPage(String filter, int page);
}