B4J Library [ABMaterial] IMPORTANT B4J v6.00+ (SOLVED)

Discussion in 'B4J Libraries & Classes' started by alwaysbusy, Nov 28, 2017.

  1. alwaysbusy

    alwaysbusy Expert Licensed User

    This is now fixed!

    As this was a major issue everyone (donator or not) can download the upgrade to 4.03.

    See https://www.b4x.com/android/forum/threads/abmaterial-framework-for-webapps.60072/ for the download link.

    Or donators can also use the feedback app to download version 4.03.

    For anyone upgrading from Chipmunk, it is very important you also read the included Checklist 4.00 pdf file!

    Here is also the latest readme.txt for version 4.03:

    Code:
    INTRO
    -----
    This 
    is a maintenance update to make ABM compatible with B4J 6.00, so no major typical ABM changes, just some new features.

    As this version is simulatiously released to donators and the public, users that still work with Chipmunk NEED to read the 'ABMaterial 4.00 Checklist.pdf' file!

    **************************************************************************************************
    Some older quicklists 
    for updates from earlier versions can be found in the other README files.
    **************************************************************************************************

    NOTE: When you add a 
    case to the Feedback App, please check from time to time as I may need some extra info before I can proceed.

    GENERAL
    -------
    If you are upgrading from 3.00or earlier versions of ABMaterial.
    please see the document(s). I saved it 
    in a couple of formats, so you can copy/paste code:
    Also, you can use the Template project 
    to copy and paste code into your own projects.

         ABMaterial 
    3.20 Checklist.docx
         ABMaterial 
    3.20 Checklist.pdf
        
    Version 
    2.20+ of ABMaterial introduces the ABMGridBuilder!

    The ABMGridBuilder 
    is a tool to make grids easy.  It is based on the excellent system introduced by Shoelace.io.  I adapted the system so it is usefull for ABMaterial and added some specific functionalities like adding rows and cells before others.
    With the tool, you can generate the needed AddRow 
    and AddCell B4J methods.  Using the Clipboard, you can then paste it at the relevant place in your code.
    But even more! You can copy your AddRow 
    and AddCell methods to the clipboardand ABMGridBuilder can parse this code an 'rebuild' the visual representation. Cool, no?

    You can find the ABMGridBuilder 
    in the zip file.  I've created two .bat files to start them: one for a 'light' themed version and one for a 'dark' themed version:

    Start.bat
    StartDark.bat

    The code 
    in the bat file contains a very important parameter: -Dprism.order=sw
    This parameter 
    is needed because I use a very big canvasand without it, it will not work.

    ----------------------------------------------
    java -jar -Dprism.order=sw ABMGridBuilder.jar
    ----------------------------------------------

    INSTALL NOTES:
    --------------
    Take a backup of your existing version.  These zips contains the library files 
    AND the new javascript/css files.
    1. Download: Donators -> see the Download section in the feedback app http://feedback.abmaterial.com
      
    Public -> see the forum post https://www.b4x.com/android/forum/threads/abmaterial-framework-for-webapps.60072/
    2. Copy the library files to your b4j library folder (all jars and xml)
    5For your own projects, copy the www folder to your project www folder and overwrite the files

    Refreshing the browser (F5) may be needed! (
    Or pulling down on your mobile device to refresh the browser).

    NEW/FIXES
    ---------
    [NEW] Made ABMaterial compatible with B4J 
    6.00
    ----------------------------------------------
    The major reason 
    for this quick release.  As the file structure of B4J 6.00 has changed, I had to update the Analysing code of ABMaterial too.

    [NEW] Support 
    for the Browsers Passive Event Listeners
    ------------------------------------------------------
    Browsers have introduced a feature 
    to speed up scrolling on mobile browsers. Thanks to EventListenerOptions you have the ability to tell the browser that you just want to do your stuff and you are not gonna call preventDefault.  However, unfortunately they decided to change a parameter of an existing function so it kind of breaks all existing libraries. I found some kind of polyfill and improved it so there will be fewer warnings/errors.  Some libraries (like google maps) are not yet updated by Google, so they still can broadcast warnings.

    You can toggle this feature with the ABM.EnablePassiveEventListeners() property (default = 
    true)

    [NEW] UseAlternativeScrollBar now also works with a dynamic 
    Navigation Bar
    --------------------------------------------------------------------------
    The previous version only worked when you create all the sidebar items 
    in the BuildNavigationBar method.  The new version can now also handle it when you add your sidebar items in the ConnectNavigationBar method. 

    Note: You still need 
    to set .UseAlternativeScrollBar() in the BuildNavigationBar method so the necessary libraries are loaded!

    [NEW] 
    Do not block zoom
    -----------------------
    In ABM 4.00, by default zoom in mobile devices is disabled.  You can enable it again:

    Usage:

    in ABMApplication, Initialize:

    ABM.AllowZoom = 
    True

    This sets the meta tag 
    as it was in ABM 3.

    [NEW] Frappé Charts print support
    ---------------------------------
    I added the needed javascript code so Frappé Charts (see tutorial https://www.b4x.com/android/forum/threads/abmaterial-alternative-lightweight-charts
    .86010/#content) can now also be printed.

    Note that you will need 
    to use the new www\js\custom\frappe-charts.min.iife.403.js

    [NEW] ABMLabel Blockquote set block width
    -----------------------------------------
    In the label theme, you can set the width of the little bar on the left (in pixels)

    [NEW] ABMCustomComponent set style 
    and class on the wrapper div
    ---------------------------------------------------------------
    Usage:

    ABMComp.Initialize(
    "ABMComp", Me, InternalPage, ID, CSS)
    ABMComp.SetWrapperDivStyle(
    "min-height:" & HeightPx & "px;")
    ABMComp.SetWrapperDivStyle(
    "myclass1 myclass2")


    Happy programming!

    Alwaysbusy
     
    Last edited: Nov 30, 2017
    joulongleu and incendio like this.
  2. alwaysbusy

    alwaysbusy Expert Licensed User

    This is just for info to keep everyone updated on my progress:

    1. The problem for local files.
    ABM checked the first line in a .bas file for the Type. In B4J 6.00+ the order has changed:

    Old header:
    Code:
    Type=Class  '<-- first line
    Version=5.9
    ModulesStructureVersion=
    1
    B4J=
    true
    @EndOfDesignText@
    New B4J 6.00+ header:
    Code:
    B4J=true
    Group=Default Group
    ModulesStructureVersion=
    1
    Type=Class  '<-- not the first line
    Version=5.9
    @EndOfDesignText@
    Status: Solved in 4.03+, where it is should not matter anymore: the order can change.

    2. B4J before 6.00 had its source code in a fixed folder. In B4J 6.00+ this is not always so as the user can have shared modules, located elsewhere.

    Status: Solved in 4.03+. ABM now also handles relative and absolute paths for the modules
     
    Last edited: Nov 29, 2017
  3. Cableguy

    Cableguy Expert Licensed User

    At worst, one can keep v5.8 to work with ABM and V6 for the other projects!
     
    joulongleu likes this.
  4. alwaysbusy

    alwaysbusy Expert Licensed User

    This night, I think I fixed this. I've tried it with several of my apps and it looks like it is working now. As this version will be released to everyone, it would be nice if some donators could also test it on their apps before releasing it into the wild :). I still have to setup the download, but if you are interested in testing it, drop me a PM with your email and as soon as I have something, I'll send you the library for evaluation.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice