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

Support for device and fallback device specific layout

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Major
    • Resolution: Later
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: wicket
    • Labels:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: