[Yanel-commits] rev 59350 - public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources
michi at wyona.com
michi at wyona.com
Wed Jul 13 20:58:26 CEST 2011
Author: michi
Date: 2011-07-13 20:58:25 +0200 (Wed, 13 Jul 2011)
New Revision: 59350
Modified:
public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources/BasicXMLResource.java
Log:
is mobile view introduced
Modified: public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources/BasicXMLResource.java
===================================================================
--- public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources/BasicXMLResource.java 2011-07-13 17:36:34 UTC (rev 59349)
+++ public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/resources/BasicXMLResource.java 2011-07-13 18:58:25 UTC (rev 59350)
@@ -114,6 +114,7 @@
protected static String DEFAULT_VIEW_ID = "default";
protected static String SOURCE_VIEW_ID = "source";
+ protected static String MOBILE_VIEW_ID = "mobile";
protected HashMap<String, ViewDescriptor> viewDescriptors;
@@ -261,6 +262,7 @@
/**
* @param xmlInputStream XML as input stream
+ * @param viewDescriptor View descriptor
*/
private InputStream getTransformedInputStream(InputStream xmlInputStream, ConfigurableViewDescriptor viewDescriptor, StringWriter errorWriter) throws Exception {
//log.debug("View descriptor: " + viewDescriptor.getId());
@@ -316,6 +318,7 @@
}
xsltHandlers[i].getTransformer().setURIResolver(uriResolver);
xsltHandlers[i].getTransformer().setErrorListener(errorListener);
+ //log.debug("Requested view ID: " + viewDescriptor.getId());
passTransformerParameters(xsltHandlers[i].getTransformer());
}
@@ -456,6 +459,28 @@
transformer.setParameter("is-mobile-device", "false");
}
+ // INFO: Set whether mobile view should be set to true
+ String queryStringViewId = getEnvironment().getRequest().getParameter("yanel.resource.viewid");
+ if (queryStringViewId != null) {
+ if (queryStringViewId.equals(MOBILE_VIEW_ID)) {
+ if (getViewDescriptor(MOBILE_VIEW_ID) == null) {
+ log.warn("No mobile view configured, but set 'is-mobile-view' XSLT parameter to true anyway!");
+ }
+ transformer.setParameter("is-mobile-view", "true");
+ } else {
+ transformer.setParameter("is-mobile-view", "false");
+ }
+ } else {
+ if (isMobileView()) {
+ if (getViewDescriptor(MOBILE_VIEW_ID) == null) {
+ //log.debug("No mobile view configured (" + getPath() + "), but set 'is-mobile-view' XSLT parameter to true anyway!");
+ }
+ transformer.setParameter("is-mobile-view", "true");
+ } else {
+ transformer.setParameter("is-mobile-view", "false");
+ }
+ }
+
// Set query string
String queryString = getEnvironment().getRequest().getQueryString();
if (queryString != null) {
@@ -502,6 +527,13 @@
}
/**
+ * Check whether mobile view is requested. Please overwrite this method in case there exist other rules than just being a mobile device.
+ */
+ protected boolean isMobileView() {
+ return isMobileDevice();
+ }
+
+ /**
* Get operating system
*/
protected String getOS(String userAgent) {
More information about the Yanel-commits
mailing list