B4J Library [Web][ABMaterial] Framework for WebApps

TIP: For absolute beginners with ABM, Get started with the Mini Template
TIP: Get started with 'ABMaterial For Dummies' by Harris here! (lessons)
TIP:
My mini course on Youtube by MichalK73

ABMaterial is a framework combining a tuned Materialize CSS with the free programming tool B4J. It allows creating WebApps that not only look great thanks to Googles Material Design, but can be programmed with the powerful free tool from Anywhere Software without any knowledge of HTML, CSS or Javascript.

ABMDragonfly4.00.png


ABMaterial has over 45 themeable controls and some useful helpers.

Components:

  • ABMActionButton
  • ABMAudioPlayer (1.08)
  • ABMBadge
  • ABMButton
  • ABMCanvas
  • ABMCalendar
  • ABMCard
  • ABMChart (Plugin support 2.00)
  • ABMChat (2.50)
  • ABMCheckbox
  • ABMChronologyList (2.00)
  • ABMCombo
  • ABMCustomControl (1.05)
  • ABMChip
  • ABMCodeLabel
  • ABMDivider
  • ABMDateTimeScroller (1.06)
  • ABMDateTimePicker (1.06)
  • ABMEditor (1.07)
  • ABMFileInput (1.20+)
  • ABMGoogleMap
  • ABMLabel
  • ABMList
  • ABMImage
  • ABMImageSlider
  • ABMInputField
  • ABMRadioGroup
  • ABMPagination (1.04)
  • ABMPatternLock (1.20+)
  • ABMPDFViewer (1.08)
  • ABMPercentSlider (2.50)
  • ABMPlanner (2.50)
  • ABMPivotTable (1.08)
  • ABMRange (1.05)
  • ABMSignaturePad
  • ABMTimeLine (1.10, depreciated in 4.00)
  • ABMSlider (1.05)
  • ABMSmartWizard (3.00)
  • ABMSocialShare (1.07)
  • ABMSocialOAuth
  • ABMSVGSurface (1.20+)
  • ABMSwitch
  • ABMTabs
  • ABMTreeTable (1.04)
  • ABMUpload
  • ABMVideo

Helpers:
  • ABMContainer
  • ABMFlexWall (1.10)
  • ABMGenerator (1.07)
  • ABMModalSheet
  • ABMNavigationBar
  • ABMPage
  • ABMParallax
  • ABMSideBar (2.00)
  • ABMTable
  • ABMTableMutable (1.20+)
Other:
  • Firebase Auth (1.20+)
  • Firebase Storage (1.20+)
  • Configurable App and Content folders (2.00)
  • Lorem Ipsum Generator (2.00)
  • Grid Builder (2.00+)
The Grid Builder:
With the Grid Builder you can build the responsive framework very easy. This has been the most difficult part for beginners to understand. But now with the builder, you have no reason to not use ABMaterial :)

gridbuilder1.png


There is an online demo at http://abmaterial.com
Alternative url: http://prd.one-two.com:51042/demo/

NEW: You can now support BANano and ABMaterial here too: https://www.patreon.com/alwaysbusy


This means it is free to use, but consider this: it took me already thousands of hours to program ABMaterial, all done in my free time early in the morning and deep into the night. Not only will a donation push me to continue developing ABMaterial , remember, you'll get a warm and fuzzy feeling doing it!

Download version 5.14 - for jServer 4.00 (open source, library only):

ALWAYS TAKE A BACKUP BEFORE USING A NEW VERSION!


ABMaterial 5.12 is now available on github and is open sourced :cool: (AS IS)! This version has been in heavy use (development and production) within our company for over a year now without major alterations, so I consider it very stable and ready to be open sourced.

I trust no one here will publish a clone or take credit for my work and I would consider it common courtesy if you find a bug/fix/new feature, you report back to me so I can make the same changes in the official library and everyone can benefit from it.


Note: next to downloading the library, you need also to download the accompanying www zip files from the same github (releases) containing the latest javascript/css/font files.

The procedure from Github for 5.14:

1. Download https://github.com/RealAlwaysbusy/A...eleases/download/v5.14/ABMaterial5.14-bin.zip
2. Download https://github.com/RealAlwaysbusy/A...r4.00/releases/download/v5.14-www/www5.14.zip
3. Unzip ABMaterial5.14-bin.zip and copy all .xml and .jar files to you B4J Libraries folder
4. Unzip www5.14.zip
5. In the projects you are working on (e.g. a for Dummies project) delete the following folders in \www
  • css
  • font
  • js
6. Copy from the unzipped www5.12.zip the 3 folder (css/font/js) to the \www folder where you just deleted these 3 folders.

Additional Resources:

Demo source code (for v4.51, not yet updated for 5.12, but still usefull to learn ABM): https://gorgeousapps.com/ABMExtras4.51.zip

I hope you enjoy it as much as I did creating it and I look forward to see the killer apps you will make with ABMaterial!

Also consider BANano if you are planning to write Websites/Apps in B4J!

Alain Bailleul
Alwaysbusy's Corner
 
Last edited:

LWGShane

Well-Known Member
Licensed User
Longtime User
My site, created the home page within 30 minutes. ABMaterial is a fantastic framework. Image is attached.
 

Attachments

  • Site.PNG
    Site.PNG
    104.4 KB · Views: 312

alwaysbusy

Expert
Licensed User
Longtime User

alwaysbusy

Expert
Licensed User
Longtime User
ABMExchange you can just 'unclick', that is my own library to connect the ABMCalendar component to an exchange server but is not used in the Demo.

jPDFJet is not my library, so you'll have to download it from this forum. It is used in the CompTreeTablePage.

https://www.b4x.com/android/forum/threads/jpdfjet.37842/#content
 

alwaysbusy

Expert
Licensed User
Longtime User
New upcoming feature for version 1.06: Getting more out of the Theme system. Just by using the .Colorize() method, you can change the base color of ABMaterial.

Some examples:

MyTheme.Colorize(ABM.COLOR_LIME):

abmcol1.jpg


MyTheme.Colorize(ABM.COLOR_ORANGE):

abmcol4.jpg


MyTheme.Colorize(ABM.COLOR_INDIGO):

abmcol2.jpg


MyTheme.Colorize(ABM.COLOR_BLACK):

abmcol3.jpg
 

Cableguy

Expert
Licensed User
Longtime User
how do you set the height difference between the top bar and the side bar for the Logo?, Remember me saying it was too small to be considered a LOGO? (post#75 of this thread)
 

alwaysbusy

Expert
Licensed User
Longtime User
Right, was build-in in the meantime, but probably forgot to mention it :oops:

In ABMshared BuildNavigationBar() use:

page.NavigationBar.Initialize(page, "nav1", Title, ABM.TEXTALIGN_LEFT, False, True, False,True, 300, 48, logo, ABM.COLLAPSE_ACCORDION, "nav1theme")
page.NavigationBar.SideBarLogoHeight = 149 <-- height in pixels
 

Cableguy

Expert
Licensed User
Longtime User
can the clock be set for 24h dial?
I use an app for work that has this dial, overlapping (2 circles) from O to 11 inner circle, 12 to 23 outer circle
 

LWGShane

Well-Known Member
Licensed User
Longtime User
Bug - ABMaterial thinks page is in a folder named after the page. (Best to watch it on Vimeo. Shrunk player degrades quality.)

 

LWGShane

Well-Known Member
Licensed User
Longtime User
@alwaysbusy - Yep, I'm using the PageHTMLName property. For the HomePage, it's "index.html", and for the HammerMeasureUtilityInfoPage, it's "hmu-info.html".
 

LWGShane

Well-Known Member
Licensed User
Longtime User
@alwaysbusy - I solved it :) You now need to add the page's HTML file name to the navigation bar URL.

Ex:
B4X:
page.NavigationBar.AddSideBarSubItem("My Work", "Hammer Measure Utility", "Hammer Measure Utility", Null, "../HammerMeasureUtilityInfoPage/hmu-info.html")
 
Top