Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-3813

Support for device and fallback device specific layout

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Later
    • None
    • None
    • wicket
    • None

    Description

      Wicket does a great job at locating resources based on variation, style and location. The current way of locating HTML resources is done by the following schema:

      Page[_variation][_style][_locale].extension

      where:

      • variation is per Component
      • style and locale are per Session

      The feature proposed here is to add another section, separated by a single dot, to be used specifically for HTML files:

      Page[_variation][_style][_locale][.device].extension

      The use case that requires this is one where an user's device is identified as an Android phone and so one could set Session.get().setDevice("android");
      Inside ResourceStreamLocator, the current algorithm can just add that as an array of extensions to iterate.

      Consider the HomePage:

      • HomePage.html
      • HomePage.m.html
      • HomePage.android.html

      For the Android user, HomePage will render HomePage.android.html file.

      A desktop user will render HomePage.html because Session.get().isStandardDevice(); will return true

      To support an iPhone user, one could set Session.get().setFallbackDevice("m"); and so, will render HomePage.m.html which could be a simplier version for other phones but Android.

      I've attached an example of DeviceStreamLocator

      Attachments

        1. devicelayout.patch
          63 kB
          David Phillips
        2. DeviceStreamLocator.java
          1 kB
          Bruno Borges

        Issue Links

          Activity

            People

              Unassigned Unassigned
              bruno.borges Bruno Borges
              Votes:
              2 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: