code: protected Map<String, List<String>> getParams(NavigationCase navCase, AbstractNavLink button) {
  		Map<String, List<String>> params = new LinkedHashMap<String, List<String>>();
  
  		// UIParams
  		for (UIComponent child : ((UIComponent) button).getChildren()) {
  			if (child.isRendered() && (child instanceof UIParameter)) {
  				UIParameter uiParam = (UIParameter) child;
  
  				if (!uiParam.isDisable()) {
  					List<String> paramValues = params.get(uiParam.getName());
  					if (paramValues == null) {
  						paramValues = new ArrayList<String>();
  						params.put(uiParam.getName(), paramValues);
  					}
  
  					paramValues.add(String.valueOf(uiParam.getValue()));
  				}
  			}
  		}
  
  		// NavCase Params
  		Map<String, List<String>> navCaseParams = navCase.getParameters();
  		if (navCaseParams != null && !navCaseParams.isEmpty()) {
  			for (Map.Entry<String, List<String>> entry : navCaseParams.entrySet()) {
  				String key = entry.getKey();
  
  				// UIParams take precedence
  				if (!params.containsKey(key)) {
  					params.put(key, entry.getValue());
  				}
  			}
  		}
  
  		return params;
  	}
docs: Find all parameters to include by looking at nested uiparams and params of
  navigation case