Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

http://rollermobile.blogspot.com/2011/06/adding-meta-data-in-themexml-to.html

Changes discussed:

  • New theme meta-data value - type in theme.xml

...

http://rollermobile.blogspot.com/2011/06/tag-to-define-template-type-in-themexml.html

Changes discussed:

  • Type values: standard, mobile

...

http://rollermobile.blogspot.com/2011/06/creating-custom-template.html

Changes discussed:

  • Change to template management
      -
      • Each template has a standard and a mobile parts

    Blog: Editing templates

    http://rollermobile.blogspot.com/2011/06/editing-templates.html

    Changes discussed:

    • Change to template UI

    Blog: Changing Mobile Theme template

    http://rollermobile.blogspot.com/2011/07/changing-mobile-theme-template.html

    Changes discussed:

    • Design for selecting mobile theme vs. standard theme

    ...

    Implementation started well and made good progress. Below is a list of the changes, grouped into related blocks and with each block, a comment about the changes.

    Code Block
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/SharedTheme.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplate.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/pojos/StaticTemplate.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/pojos/StaticThemeTemplate.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/pojos/Template.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/pojos/Theme.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.java
    M /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/sotto/theme.xml
    M /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/basic/theme.xml
    M /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/brushedmetal/theme.xml
    M /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/fauxcoly/theme.xml
    M /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/frontpage/theme.xml
    

    Those changes add a new property named type to themes and to templates. So far so good.

    Code Block

    ...

    
    A /weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/mobile/MobileDeviceRepository.java
    

    That change adds mobile device detection. Good.

    Code Block
    A /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/mobile
    A /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/mobile/_day.vm
    A /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/mobile/basic-custom.css
    A /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/mobile/basic-preview.png
    A /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/mobile/permalink.vm
    A /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/mobile/searchresults.vm
    A /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/mobile/sidebar.vm
    A /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/mobile/theme.xml
    A /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/themes/mobile/weblog.vm
    

    Beginnings of a mobile theme. Good.

    Code Block
    M /roller/branches/roller_mobile/weblogger-business/src/main/resources/sql/createdb.vm
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
    

    Here we add a new column "mobilethemename" to the table "weblog." This could be viewed as a problem because there may be more types of themes in the future, e.g. touch screen, TV set-top box, etc. and we don't want to have to add a new column to the weblog table every time we add one.

    Code Block
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManager.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
    

    ...

    getEnabledThemeList(String type)

    Code Block
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/WeblogManager.java
    M /roller/branches/roller_mobile/weblogger-business/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
    

    This changes the getPageByLink() to getPagesByLink() which returns multiple pages, because different types of themes share the same link.

    Code Block
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java
    

    These changes modify the rendering Servlets to check the incoming request and to determine which type of theme and templates should be used to render the response.

    Code Block
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/core/CreateWeblog.java
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/core/CreateWeblogBean.java
    M /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
    M /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
    M /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/ThemeEditSharedThemesOnly.jsp
    

    These changes enable users to pick both a standard and mobile theme at theme creation time. Here are are "hardcoding" knowledge of the mobile theme type into the UI, which is not ideal but is hard to avoid without some serious UI design and dev work.

    Code Block
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java
    M /roller/branches/roller_mobile/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
    M /roller/branches/roller_mobile/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp
    

    ...

    Code Block
    create table rol_templatecode (
        id                 varchar(48)  not null primary key,
        templateid varchar(48) not null,    
        template     $db.TEXT_SQL_TYPE not null,
        #columnNotNullWithDefault('type' 'varchar(16)' 'standard')
    );