Author: dsvyatobatsko
Date: 2008-06-17 09:50:53 -0400 (Tue, 17 Jun 2008)
New Revision: 9076
Modified:
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/common/ComponentNavigator.java
Log:
extracted a method
Modified:
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/common/ComponentNavigator.java
===================================================================
---
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/common/ComponentNavigator.java 2008-06-17
12:53:17 UTC (rev 9075)
+++
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/common/ComponentNavigator.java 2008-06-17
13:50:53 UTC (rev 9076)
@@ -238,21 +238,10 @@
*/
public void tabPanelSwitched(ValueChangeEvent event) {
FacesContext facesContext = FacesContext.getCurrentInstance();
- String activeTab = getCurrentComponent().getActiveTab();
ViewHandler viewHandler = facesContext.getApplication().getViewHandler();
String viewId = facesContext.getViewRoot().getViewId();
String actionURL = viewHandler.getActionURL(facesContext, viewId);
- String tabParam = "tab=" + activeTab;
- actionURL.replaceAll("[\\?]tab=[\\w]*", "?" + tabParam);
- actionURL.replaceAll("[&]tab=[\\w]*", "&" +
tabParam);
- if (!actionURL.contains(tabParam)) {
- if (actionURL.contains("?")) {
- actionURL += "&";
- } else {
- actionURL += "?";
- }
- actionURL += tabParam;
- }
+ actionURL = patchURL(actionURL, "tab",
getCurrentComponent().getActiveTab());
try {
facesContext.getExternalContext().redirect(actionURL);
} catch (IOException e) {
@@ -261,4 +250,30 @@
}
}
+ /**
+ * Adds/replaces a query parameter in a given "GET request URL"-like
string.
+ *
+ * @param param
+ * name of query parameter
+ * @param value
+ * value of query parameter
+ * @return string representing parched url
+ */
+ private String patchURL(String url, String param, String value) {
+ String queryPair = param + "=" + value;
+ url.replaceAll("[\\?]" + param + "=[\\w]*", "?" +
queryPair);
+ url.replaceAll("[&]" + param + "=[\\w]*",
"&" + queryPair);
+
+ if (!url.contains("?" + param + "=") &&
!url.contains("&" + param + "=")) {
+ if (url.contains("?")) {
+ url += "&";
+ } else {
+ url += "?";
+ }
+ url += queryPair;
+ }
+
+ return url;
+ }
+
}
Show replies by date