B4J Tutorial [BANanoVuetifyAD3] Create Professional Looking Vuetify WebSites & WebApps with BANano

Ola

**************************************************
Feb 2024: BVAD3 RoadMap

*************************************************

Download Additional Libraries
Download BANanoVuetifyAD3Core Library OR Download BANanoVuetifyAD3 Library
Download Kitchen Sink WebApp (Optional - useful for Learning how this works)
Download BVAD3Builder (Optional - useful to trim your final package)

Full Install Instructions on Github

What's New

To use this free and open source B4J library, you need BANano.

IMPORTANT: BANano License

Join Us

Telegram: https://t.me/bananovuematerial
Twitter: https://twitter.com/mashymbanga
Discord: https://discord.gg/ys8stGgWCU
YouTube: Mashy Teaches Video Series
B4x Blog: Mashy Teaches BVAD3 - New Series
Full Demo: New Awesome Kitchen Sink

Notable Forum Members Contributions

@Erel : Obviously
@alwaysbusy : valuable advice etc, BANano (incl. adjustments that support BVAD3)
@LJG : BANanoServer jRDC2, best overall bug finder
@aeric: Recommendations & Enhancements etc
@Star-Dust : Small solutions to development hitches etc
More...


What's Next?

You will find the most up to date content from this post onwards

Testing DataBase Connectivity (PHP)

The kitchen sink now has connectity testing for the various backends. To ensure that your app will work, you can check if your back-end is accessible.

MySQL
SQLite
MSSQL

WebServers You Can Use

Laragon - publish to c:\laragon\www



USBWebServer
IIS - Publish to C:\inetpub\wwwroot
XAMPP - change your publish folder to use // instead of \

You can find more information here related to IDE Setup

Enjoy

PS: Log Warnings & Compilation Errors

1. Please check the pre-run logs. In most cases modules with warnings will have an underline. Warning, 9, 10, 11, 12 are normal, don't be scared.

1625825241311.png


2. manifext.txt file not found - Download the library source code and RUN to recompile on your PC. "Do not Compile to Library"
3. Do a HARD REFRESH of your browser.[/B]
 
Last edited:

westereng

Member
Licensed User
This is an exception created by BANAno, sadly I dont know how and why? There have been instances of these "manifest.xt" files popping up. BVAD3 does not have such files, perhaps its an internal thing that BANano does.

Can I then please ask you to please check your pre-run logs, i.e. before you run the code example, check the warnings on the log tab, right click on these, copy all to clipboard, save to a file, zip them and attach here. I will check what they are reporting.

I have attached the pre-run logs
 

Attachments

  • prerunlogs.zip
    3.8 KB · Views: 199

RWK

Member
Licensed User
Longtime User
If I experience the errors ....BANano dosn't support..... it's the sign to me to compile the BVAD3 library by myself.....after that these errors are gone an the webproject works for me.
 

westereng

Member
Licensed User
Thanks for the error logs, they are perfect and report nothing out of the ordinary. Perhaps running the BANanoVuetifyAD3 library to compile it will solve the issues just like @RWK is saying.

Just did that now, and it did not make a difference, this is frustrating :(

Got rid of the Banano dosn't support errors though.

I will try to step through to se where it may have a problem.
 

westereng

Member
Licensed User
Im sorry about that, if you dont mind we can try and run anydesk so that I can try and help. Is that ok?

No need to, I forgot to do a hard refresh of the browser after recompiling the BANanoVuetifyAD3 library, and now it seems to work.

Lession learnd for me, always recompile a library first if I have problems

Thanks for the assistance @Mashiane

1625825711235.png
 

LJG

Member
I still get the same, here is my library list:
View attachment 116068

And here is the logs:

Logs:
Waiting for debugger to connect...
Program started.
Reading B4J INI in C:\Users\JUSpwe\AppData\Roaming\Anywhere Software\B4J to find Additional Libraries folder...
Found Additional Libraries folder: D:\Develop\B4JAdditionalLibraries
Starting to transpile...
Loading layout mypdf...
Loading layout mypdfpage1...
Loading layout mypdfpage10...
Loading layout mypdfpage11...
Loading layout mypdfpage2...
Loading layout mypdfpage4...
Loading layout mypdfpage5...
Loading layout mypdfpage6...
Loading layout mypdfpage7...
Loading layout mypdfpage8...
Loading layout mypdfpage9...
Loading layout mypickers...
Loading layout myprism...
Loading layout myprofile...
Loading layout myprogress...
Loading layout myradio...
Loading layout myselects...
Loading layout mysheets...
Loading layout myskeletons...
Loading layout mysliders...
Loading layout mysnackbars...
Loading layout myspark...
Loading layout myspeeds...
Loading layout mystep1...
Loading layout mystep2...
Loading layout mystepper...
Loading layout myswitch...
Loading layout mytable...
Loading layout mytabs...
Loading layout mytextfields...
Loading layout mytime...
Loading layout mytimeline...
Loading layout mytimelineitem...
Loading layout mytimelineitem2...
Loading layout mytimelineitem3...
Loading layout mytooltips...
Loading layout mytreeview...
Loading layout myvchartkick...
Loading layout baselayout...
Loading layout tab1...
Loading layout tiitem...
Loading layout booleanfixer...
Loading layout leafview...
Loading layout myalerts...
Loading layout myanimals...
Loading layout myappbars...
Loading layout myautocomplete...
Loading layout myavatars...
Loading layout mybadges...
Loading layout mybindbuilder...
Loading layout mybottomnav...
Loading layout mybottomsheet...
Loading layout mybreadcrumbs...
Loading layout mybuttons...
Loading layout mycalendar...
Loading layout mycards...
Loading layout mycards1...
Loading layout mycards2...
Loading layout mycarousel...
Loading layout mychartkick...
Loading layout mycheckboxes...
Loading layout mychips...
Loading layout mycolorpicker...
Loading layout mycombo...
Loading layout mydatepicker...
Loading layout mydialog2...
Loading layout mydialog2input...
Loading layout mydialoginput...
Loading layout mydialogs...
Loading layout mydrawer...
Loading layout myelevation...
Loading layout myexpansionpanels...
Loading layout myfabs...
Loading layout myfiles...
Loading layout myfooter...
Loading layout myfootercard...
Loading layout myform...
Loading layout mygmap...
Loading layout mygrid...
Loading layout myhome...
Loading layout myicons...
Loading layout myimages...
Loading layout myinputs...
Loading layout mylogin...
Loading layout mylogindetails...
Loading layout mymenus...
Loading layout myoverlay...
Loading layout mypagination...
Loading layout mypanel1...
Processing b4xlib: jsql
Processing b4xlib: jstringutils
Processing b4xlib: bananofaker
java.io.FileNotFoundException: D:\Develop\B4XTesting\BVAD3BANanoServerKitchenSink\Objects\b4xlibs_BANano\bananofaker\B4J\manifest.txt (Systemet finner ikke angitt bane)
    at java.base/java.io.FileInputStream.open0(Native Method)
    at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
    at java.base/java.io.FileReader.<init>(FileReader.java:60)
    at com.ab.banano.BANano.ProcessB4XLib(Unknown Source)
    at com.ab.banano.BANano.a(Unknown Source)
    at com.ab.banano.BANano.a(Unknown Source)
    at com.ab.banano.BANano.b(Unknown Source)
    at com.ab.banano.BANano.BuildForServer(Unknown Source)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:676)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:240)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:108)
    at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:95)
    at b4j.bvad3bananoserver.main.main(main.java:29)
Processing b4xlib: bananovuetifyad3
java.io.FileNotFoundException: D:\Develop\B4XTesting\BVAD3BANanoServerKitchenSink\Objects\b4xlibs_BANano\bananovuetifyad3\B4J\manifest.txt (Systemet finner ikke angitt bane)
    at java.base/java.io.FileInputStream.open0(Native Method)
    at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
    at java.base/java.io.FileReader.<init>(FileReader.java:60)
    at com.ab.banano.BANano.ProcessB4XLib(Unknown Source)
    at com.ab.banano.BANano.a(Unknown Source)
    at com.ab.banano.BANano.a(Unknown Source)
    at com.ab.banano.BANano.b(Unknown Source)
    at com.ab.banano.BANano.BuildForServer(Unknown Source)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:676)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:240)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:108)
    at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:95)
    at b4j.bvad3bananoserver.main.main(main.java:29)
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method CallInlinePHPWait will not work in old browsers!
[WARNING]: The method CallInlinePHPWait will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method ThenWait will not work in old browsers!
[WARNING]: The method ElseWait will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method CallAjaxWait will not work in old browsers!
[WARNING]: The method AddEventlistenerOpenAsync will not work in old browsers!
[WARNING]: The method ThenWait will not work in old browsers!
[WARNING]: The method ElseWait will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[ERROR 22]: [VImg,designercreateview, around line: 161] bananoanimejs(GLOBALMYCLASSVAR) is not supported in BANano!
-->  Animate.Initialize(mCallBack, {5} )
--> Current index: 1
--> Var :    B4JName: animate, EventName: animate, JSName: _animate ,ISPRIVATE: false,B4JTYPE: bananoanimejs, IsArray: false, InitValue: /* bananoanimejs NOT SUPPORTED */
--> Method : ---- METHOD: designercreateview (MODULE: VImg, ISPRIVATE: false) ----
B4J DECLARE:
   LINE NUMBER: 88
   ORIGINAL LINE: Sub DesignerCreateView (Target As BANanoElement, Props As Map)
   CLEANED LINE: sub designercreateview (target as bananoelement, props as map)
   WORDS: sub|designercreateview|(|target|as|bananoelement|,|props|as|map|)|
INTERNAL VARS:
   B4JName: target, EventName: , JSName: _target ,ISPRIVATE: true,B4JTYPE: bananoelement, IsArray: false, InitValue: null
   B4JName: props, EventName: , JSName: _props ,ISPRIVATE: true,B4JTYPE: map, IsArray: false, InitValue: {}
RETURNS:    B4JTYPE: string, IsArray: false, InitValue: ""
------------------------------
[ERROR 22]: [VImg,designercreateview, around line: 162] bananoanimejs(GLOBALMYCLASSVAR) is not supported in BANano!
-->  Animate.anime.translateX(sAnimeTranslateX)
--> Current index: 1
--> Var :    B4JName: animate, EventName: animate, JSName: _animate ,ISPRIVATE: false,B4JTYPE: bananoanimejs, IsArray: false, InitValue: /* bananoanimejs NOT SUPPORTED */
--> Method : ---- METHOD: designercreateview (MODULE: VImg, ISPRIVATE: false) ----
B4J DECLARE:
   LINE NUMBER: 88
   ORIGINAL LINE: Sub DesignerCreateView (Target As BANanoElement, Props As Map)
   CLEANED LINE: sub designercreateview (target as bananoelement, props as map)
   WORDS: sub|designercreateview|(|target|as|bananoelement|,|props|as|map|)|
INTERNAL VARS:
   B4JName: target, EventName: , JSName: _target ,ISPRIVATE: true,B4JTYPE: bananoelement, IsArray: false, InitValue: null
   B4JName: props, EventName: , JSName: _props ,ISPRIVATE: true,B4JTYPE: map, IsArray: false, InitValue: {}
RETURNS:    B4JTYPE: string, IsArray: false, InitValue: ""
------------------------------
[ERROR 22]: [VImg,designercreateview, around line: 163] bananoanimejs(GLOBALMYCLASSVAR) is not supported in BANano!
-->  Animate.anime.translateY(sAnimeTranslateY)
--> Current index: 1
--> Var :    B4JName: animate, EventName: animate, JSName: _animate ,ISPRIVATE: false,B4JTYPE: bananoanimejs, IsArray: false, InitValue: /* bananoanimejs NOT SUPPORTED */
--> Method : ---- METHOD: designercreateview (MODULE: VImg, ISPRIVATE: false) ----
B4J DECLARE:
   LINE NUMBER: 88
   ORIGINAL LINE: Sub DesignerCreateView (Target As BANanoElement, Props As Map)
   CLEANED LINE: sub designercreateview (target as bananoelement, props as map)
   WORDS: sub|designercreateview|(|target|as|bananoelement|,|props|as|map|)|
INTERNAL VARS:
   B4JName: target, EventName: , JSName: _target ,ISPRIVATE: true,B4JTYPE: bananoelement, IsArray: false, InitValue: null
   B4JName: props, EventName: , JSName: _props ,ISPRIVATE: true,B4JTYPE: map, IsArray: false, InitValue: {}
RETURNS:    B4JTYPE: string, IsArray: false, InitValue: ""
------------------------------
[ERROR 22]: [VImg,designercreateview, around line: 165] bananoanimejs(GLOBALMYCLASSVAR) is not supported in BANano!
-->  Animate.anime.alternate(bAnimeAlternate)
--> Current index: 1
--> Var :    B4JName: animate, EventName: animate, JSName: _animate ,ISPRIVATE: false,B4JTYPE: bananoanimejs, IsArray: false, InitValue: /* bananoanimejs NOT SUPPORTED */
--> Method : ---- METHOD: designercreateview (MODULE: VImg, ISPRIVATE: false) ----
B4J DECLARE:
   LINE NUMBER: 88
   ORIGINAL LINE: Sub DesignerCreateView (Target As BANanoElement, Props As Map)
   CLEANED LINE: sub designercreateview (target as bananoelement, props as map)
   WORDS: sub|designercreateview|(|target|as|bananoelement|,|props|as|map|)|
INTERNAL VARS:
   B4JName: target, EventName: , JSName: _target ,ISPRIVATE: true,B4JTYPE: bananoelement, IsArray: false, InitValue: null
   B4JName: props, EventName: , JSName: _props ,ISPRIVATE: true,B4JTYPE: map, IsArray: false, InitValue: {}
RETURNS:    B4JTYPE: string, IsArray: false, InitValue: ""
------------------------------
[ERROR 22]: [VImg,designercreateview, around line: 167] bananoanimejs(GLOBALMYCLASSVAR) is not supported in BANano!
-->  Animate.anime.direction(sAnimeDirection)
--> Current index: 1
--> Var :    B4JName: animate, EventName: animate, JSName: _animate ,ISPRIVATE: false,B4JTYPE: bananoanimejs, IsArray: false, InitValue: /* bananoanimejs NOT SUPPORTED */
--> Method : ---- METHOD: designercreateview (MODULE: VImg, ISPRIVATE: false) ----
B4J DECLARE:
   LINE NUMBER: 88
   ORIGINAL LINE: Sub DesignerCreateView (Target As BANanoElement, Props As Map)
   CLEANED LINE: sub designercreateview (target as bananoelement, props as map)
   WORDS: sub|designercreateview|(|target|as|bananoelement|,|props|as|map|)|
INTERNAL VARS:
   B4JName: target, EventName: , JSName: _target ,ISPRIVATE: true,B4JTYPE: bananoelement, IsArray: false, InitValue: null
   B4JName: props, EventName: , JSName: _props ,ISPRIVATE: true,B4JTYPE: map, IsArray: false, InitValue: {}
RETURNS:    B4JTYPE: string, IsArray: false, InitValue: ""
------------------------------
[ERROR 22]: [VImg,designercreateview, around line: 169] bananoanimejs(GLOBALMYCLASSVAR) is not supported in BANano!
[ERROR 22]: [VImg,designercreateview, around line: 170] bananoanimejs(GLOBALMYCLASSVAR) is not supported in BANano!
[ERROR 22]: [VImg,designercreateview, around line: 171] bananoanimejs(GLOBALMYCLASSVAR) is not supported in BANano!
-->  Animate.anime.loopIT(bAnimeLoop)
--> Current index: 1
--> Var :    B4JName: animate, EventName: animate, JSName: _animate ,ISPRIVATE: false,B4JTYPE: bananoanimejs, IsArray: false, InitValue: /* bananoanimejs NOT SUPPORTED */
--> Method : ---- METHOD: designercreateview (MODULE: VImg, ISPRIVATE: false) ----
B4J DECLARE:
   LINE NUMBER: 88
   ORIGINAL LINE: Sub DesignerCreateView (Target As BANanoElement, Props As Map)
   CLEANED LINE: sub designercreateview (target as bananoelement, props as map)
   WORDS: sub|designercreateview|(|target|as|bananoelement|,|props|as|map|)|
INTERNAL VARS:
   B4JName: target, EventName: , JSName: _target ,ISPRIVATE: true,B4JTYPE: bananoelement, IsArray: false, InitValue: null
   B4JName: props, EventName: , JSName: _props ,ISPRIVATE: true,B4JTYPE: map, IsArray: false, InitValue: {}
RETURNS:    B4JTYPE: string, IsArray: false, InitValue: ""
------------------------------
-->  Animate.anime.duration(sAnimeDuration)
--> Current index: 1
--> Var :    B4JName: animate, EventName: animate, JSName: _animate ,ISPRIVATE: false,B4JTYPE: bananoanimejs, IsArray: false, InitValue: /* bananoanimejs NOT SUPPORTED */
--> Method : ---- METHOD: designercreateview (MODULE: VImg, ISPRIVATE: false) ----
B4J DECLARE:
   LINE NUMBER: 88
   ORIGINAL LINE: Sub DesignerCreateView (Target As BANanoElement, Props As Map)
   CLEANED LINE: sub designercreateview (target as bananoelement, props as map)
   WORDS: sub|designercreateview|(|target|as|bananoelement|,|props|as|map|)|
INTERNAL VARS:
   B4JName: target, EventName: , JSName: _target ,ISPRIVATE: true,B4JTYPE: bananoelement, IsArray: false, InitValue: null
   B4JName: props, EventName: , JSName: _props ,ISPRIVATE: true,B4JTYPE: map, IsArray: false, InitValue: {}
RETURNS:    B4JTYPE: string, IsArray: false, InitValue: ""
------------------------------
-->  Animate.anime.easing(sAnimeEasing)
--> Current index: 1
--> Var :    B4JName: animate, EventName: animate, JSName: _animate ,ISPRIVATE: false,B4JTYPE: bananoanimejs, IsArray: false, InitValue: /* bananoanimejs NOT SUPPORTED */
--> Method : ---- METHOD: designercreateview (MODULE: VImg, ISPRIVATE: false) ----
B4J DECLARE:
   LINE NUMBER: 88
   ORIGINAL LINE: Sub DesignerCreateView (Target As BANanoElement, Props As Map)
   CLEANED LINE: sub designercreateview (target as bananoelement, props as map)
   WORDS: sub|designercreateview|(|target|as|bananoelement|,|props|as|map|)|
INTERNAL VARS:
   B4JName: target, EventName: , JSName: _target ,ISPRIVATE: true,B4JTYPE: bananoelement, IsArray: false, InitValue: null
   B4JName: props, EventName: , JSName: _props ,ISPRIVATE: true,B4JTYPE: map, IsArray: false, InitValue: {}
RETURNS:    B4JTYPE: string, IsArray: false, InitValue: ""
------------------------------
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method ThenWait will not work in old browsers!
[WARNING]: The method ElseWait will not work in old browsers!
[WARNING]: The method ThenWait will not work in old browsers!
[WARNING]: The method ElseWait will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
[WARNING]: The method Await will not work in old browsers!
Adding Layout baselayout used by browserindex
Adding Layout myfootercard used by browserindex
[WARNING]: The method RunFunctionWithResult will not work in old browsers!
Adding Layout myalerts used by viewadalerts
Adding Layout myanimals used by viewadanimals
Adding Layout myappbars used by viewadappbar
Adding Layout myautocomplete used by viewadautocomplete
Adding Layout myavatars used by viewadavatars
Adding Layout mybadges used by viewadbadges
Adding Layout mybottomnav used by viewadbottomnav
Adding Layout mybottomsheet used by viewadbottomsheet
Adding Layout mybreadcrumbs used by viewadbreadcrumbs
Adding Layout mybuttons used by viewadbtn
Adding Layout mycalendar used by viewadcalendar
Adding Layout mycards1 used by viewadcard1
Adding Layout mycards2 used by viewadcard2
Adding Layout mycards used by viewadcards
Adding Layout myprofile used by viewadcards
Adding Layout mycarousel used by viewadcarousel
Adding Layout mychartkick used by viewadchartkick
Adding Layout mycheckboxes used by viewadcheckboxes
Adding Layout mychips used by viewadchips
Adding Layout mycolorpicker used by viewadcolorpicker
Adding Layout mycombo used by viewadcombo
Adding Layout mytable used by viewaddatatable
Adding Layout mydatepicker used by viewaddatepicker
Adding Layout mydialogs used by viewaddialog
Adding Layout mydialoginput used by viewaddialog1
Adding Layout mydialog2 used by viewaddialog2
Adding Layout mydialog2input used by viewaddialog2
Adding Layout mydrawer used by viewaddrawer
Adding Layout myelevation used by viewadelevation
Adding Layout myexpansionpanels used by viewadexpansionpanels
Adding Layout mypanel1 used by viewadexpansionpanels
Adding Layout myfabs used by viewadfab
Adding Layout myfiles used by viewadfileinput
Adding Layout myfooter used by viewadfooters
Adding Layout myform used by viewadform
Adding Layout mygmap used by viewadgooglemap
Adding Layout mygrid used by viewadgrid
Adding Layout myhome used by viewadhome
Adding Layout myicons used by viewadicons
Adding Layout myimages used by viewadimages
Adding Layout myinputs used by viewadinputs
Adding Layout leafview used by viewadleaflet
Adding Layout mylogin used by viewadlogin
Adding Layout mylogindetails used by viewadlogin
Adding Layout mymenus used by viewadmenus
Adding Layout mydrawer used by viewadnavigationdrawer
Adding Layout myoverlay used by viewadoverlay
Adding Layout mypagination used by viewadpagination
Adding Layout mypickers used by viewadpickers
Adding Layout myprism used by viewadprism
Adding Layout myprogress used by viewadprogress
Adding Layout myradio used by viewadradio
Adding Layout myinputs used by viewadrating
Adding Layout myselects used by viewadselects
Adding Layout mysheets used by viewadsheet
Adding Layout myskeletons used by viewadskeletons
Adding Layout mysliders used by viewadsliders
Adding Layout mysnackbars used by viewadsnackbars
Adding Layout myspark used by viewadsparkline
Adding Layout myspeeds used by viewadspeed
Adding Layout mystepper used by viewadstepper
Adding Layout mystep1 used by viewadstepper
Adding Layout mystep2 used by viewadstepper
Adding Layout myswitch used by viewadswitch
Adding Layout mytabs used by viewadtabs
Adding Layout tab1 used by viewadtabs
Adding Layout mytextfields used by viewadtextfield
Adding Layout mytimeline used by viewadtimeline
Adding Layout mytimelineitem used by viewadtimeline
Adding Layout mytimelineitem2 used by viewadtimeline
Adding Layout mytimelineitem3 used by viewadtimeline
Adding Layout mytime used by viewadtimepicker
Adding Layout mytooltips used by viewadtooltips
Adding Layout mytreeview used by viewadtreeview
Adding Layout mybindbuilder used by viewbindbuilder
Adding Layout booleanfixer used by viewbooleanfix
Adding Layout mypdf used by viewjspdf
Adding Layout mypdfpage1 used by viewjspdf
Adding Layout mypdfpage2 used by viewjspdf
Adding Layout mypdfpage4 used by viewjspdf
Adding Layout mypdfpage5 used by viewjspdf
Adding Layout mypdfpage6 used by viewjspdf
Adding Layout mypdfpage7 used by viewjspdf
Adding Layout mypdfpage8 used by viewjspdf
Adding Layout mypdfpage9 used by viewjspdf
Adding Layout mypdfpage10 used by viewjspdf
Adding Layout mypdfpage11 used by viewjspdf
Building D:\Develop\B4XTesting\BVAD3BANanoServerKitchenSink\Objects\www\scripts\browserindex.js
[WARNING]: The method showswalinputwait will not work in old browsers!
[WARNING]: The method showswalconfirmwait will not work in old browsers!
[WARNING]: The method uploadfilewait will not work in old browsers!
[WARNING]: The method buildgeojson will not work in old browsers!
[WARNING]: The method execute will not work in old browsers!
[WARNING]: The method mysqlexecute will not work in old browsers!
[WARNING]: The method callinlinephpwait will not work in old browsers!
[WARNING]: The method getwait will not work in old browsers!
[WARNING]: The method postwait will not work in old browsers!
[WARNING]: The method putwait will not work in old browsers!
[WARNING]: The method deletewait will not work in old browsers!
[WARNING]: The method patchwait will not work in old browsers!
[WARNING]: The method showswalinputwait will not work in old browsers!
[WARNING]: The method showswalconfirmwait will not work in old browsers!
[WARNING]: The method uploadfilewait will not work in old browsers!
[WARNING]: The method buildgeojson will not work in old browsers!
[WARNING]: The method execute will not work in old browsers!
[WARNING]: The method mysqlexecute will not work in old browsers!
[WARNING]: The method callinlinephpwait will not work in old browsers!
[WARNING]: The method getwait will not work in old browsers!
[WARNING]: The method postwait will not work in old browsers!
[WARNING]: The method putwait will not work in old browsers!
[WARNING]: The method deletewait will not work in old browsers!
[WARNING]: The method patchwait will not work in old browsers!
Copying CSS files to WebApp assets...
Copying Javascript files to WebApp assets...
Done!
2021-07-09 08:08:40.878:INFO::main: Logging initialized @24885ms to org.eclipse.jetty.util.log.StdErrLog
2021-07-09 08:08:40.988:INFO:oejs.Server:main: jetty-9.4.z-SNAPSHOT; built: 2018-05-03T15:56:21.710Z; git: daa59876e6f384329b122929e70a80934569428c; jvm 11.0.1+13
2021-07-09 08:08:41.025:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2021-07-09 08:08:41.026:INFO:oejs.session:main: No SessionScavenger set, using defaults
2021-07-09 08:08:41.027:INFO:oejs.session:main: node0 Scavenging every 660000ms
2021-07-09 08:08:41.047:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@5340477f{/,file:///D:/Develop/B4XTesting/BVAD3BANanoServerKitchenSink/Objects/www/,AVAILABLE}
2021-07-09 08:08:41.049:INFO:oejs.AbstractNCSARequestLog:main: Opened D:\Develop\B4XTesting\BVAD3BANanoServerKitchenSink\Objects\logs\b4j-2021_07_09.request.log
2021-07-09 08:08:41.260:INFO:oejs.AbstractConnector:main: Started ServerConnector@7d9f158f{HTTP/1.1,[http/1.1]}{0.0.0.0:55056}
2021-07-09 08:08:41.261:INFO:oejs.Server:main: Started @25270ms
Emulated network latency: 100ms
2021-07-09 08:08:41.271:INFO:oejs.AbstractConnector:main: Stopped ServerConnector@7d9f158f{HTTP/1.1,[http/1.1]}{0.0.0.0:55056}
2021-07-09 08:08:41.272:INFO:oejs.session:main: node0 Stopped scavenging
2021-07-09 08:08:41.274:INFO:oejsh.ContextHandler:main: Stopped o.e.j.s.ServletContextHandler@5340477f{/,file:///D:/Develop/B4XTesting/BVAD3BANanoServerKitchenSink/Objects/www/,UNAVAILABLE}
2021-07-09 08:08:41.278:INFO:oejs.Server:main: jetty-9.4.z-SNAPSHOT; built: 2018-05-03T15:56:21.710Z; git: daa59876e6f384329b122929e70a80934569428c; jvm 11.0.1+13
2021-07-09 08:08:41.280:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@5340477f{/,file:///D:/Develop/B4XTesting/BVAD3BANanoServerKitchenSink/Objects/www/,AVAILABLE}
2021-07-09 08:08:41.281:INFO:oejs.AbstractNCSARequestLog:main: Opened D:\Develop\B4XTesting\BVAD3BANanoServerKitchenSink\Objects\logs\b4j-2021_07_09.request.log
2021-07-09 08:08:41.282:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2021-07-09 08:08:41.282:INFO:oejs.session:main: No SessionScavenger set, using defaults
2021-07-09 08:08:41.282:INFO:oejs.session:main: node0 Scavenging every 660000ms
2021-07-09 08:08:41.285:INFO:oejs.AbstractConnector:main: Started ServerConnector@7d9f158f{HTTP/1.1,[http/1.1]}{0.0.0.0:55056}
2021-07-09 08:08:41.285:INFO:oejs.Server:main: Started @25295ms
2021-07-09 08:08:41.286:INFO:oejs.session:main: node0 Scavenging every 33000ms
Port: 55056
jul. 09, 2021 8:08:41 A.M. com.mchange.v2.log.MLog
INFO: MLog clients using java 1.4+ standard logging.
jul. 09, 2021 8:08:41 A.M. com.mchange.v2.c3p0.C3P0Registry
INFO: Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10]
jRDC is running (version = 2.22)
Scavenger running... (0 page(s) cached)
Scavenger running... (0 page(s) cached)

Hope it helps.

PS!

The hello handler works:
View attachment 116069

Do the Index handler need the database to be running?
According to my error notes, the last time I received this type of message (java.io.FileNotFoundException: ... manifest.txt) I had to recompile the BANanoSkeleton library (ran it in release mode to re-create the library) ... and it resolved the missing manifest error. I know that your case is not a BANanoSkeleton library issue but it is a possible clue that one of your libraries that you are using is corrupt and needs to be re-compiled. Since "bananofaker" is in the error path, that is the library that I would remove, recompile, and re-try again.
 

Mashiane

Expert
Licensed User
Longtime User
Tip: Creating Forms at Runtime

Sometimes it might happen that you will have to create forms at runtime due to the structure of your app.

We have wrapped vjsf, a json schema based library for Vuetify, https://github.com/koumoul-dev/vuetify-jsonschema-form

With a few lines of code..

B4X:
Sub oncreated
    dynaForm.Clear
    dynaForm.AddTextField("firstname", "First Name", "", 10)
    dynaForm.AddClass("firstname", "mx-4")
    dynaForm.AddStyle("firstname", "background-color", "pink")
    dynaForm.SetHint("firstname", "This is a hint")
    dynaForm.SetCols("firstname", "6")
    dynaForm.SetReadOnly("firstname", True)
    '
    dynaForm.AddFile("imgx", "Browse a file", "", False)
    '
    dynaForm.AddCheckBox("agree", "I agree", True,  "purple")
    dynaForm.AddDate("dateofbirth", "Date of Birth", "", "")
    dynaForm.AddSlider("age", "Age", 48, 0, 100, True, "24")
    dynaForm.AddSwitch("active", "Active", True, "deep-orange", True)
    dynaForm.AddTextArea("notes", "Notes", "", 0)
    dynaForm.SetMinLength("notes", 10)
    dynaForm.SetMaxLength("notes", 255)
   
    dynaForm.AddTelephone("telephone", "Telephone", "")
    dynaForm.AddTextFieldMulti("email", "To", Array("anele@x.com", "xolani@b.com"))
    dynaForm.AddNumber("boxes", "Number Entry", 43, -1, -1)
    dynaForm.AddNumberMulti("stocks", "Multi Numbers", Array(10, 11))
    dynaForm.AddTime("mytime", "Enter Time", "", "")
    dynaForm.AddDateTime("mydatetime", "Date Time", "", "")
    dynaForm.AddColorPicker("mycolor", "Select a color", "")
    '
    'dynaForm.AddComboBox("acx1", "ComboBox", "2", "accounts", "id", "text", False)
    dynaForm.AddComboBox("acx1", "ComboBox", "2")
    dynaForm.AddItem("acx1", "1", "A")
    dynaForm.AddItem("acx1", "2", "B")
    dynaForm.AddItem("acx1", "3", "C")
   
    'dynaForm.SetChips("acx1", True, True)
    '
    dynaForm.AddSwitchMulti("covid", "Covid Test", "blue", True, Array("1"))
    dynaForm.AddItemMulti("covid", "1", "A")
    dynaForm.AddItemMulti("covid", "2", "B")
    dynaForm.AddItemMulti("covid", "3", "C")
    '
    dynaForm.AddCheckBoxMulti("covid1", "Checking Items", "green", Array("2"))
    dynaForm.AddItemMulti("covid1", "1", "AA")
    dynaForm.AddItemMulti("covid1", "2", "BB")
    dynaForm.AddItemMulti("covid1", "3", "CC")
   
    'dynaForm.AddAutoComplete("acx", "Auto Complete", "1", "accounts", "id", "text", False)
    dynaForm.AddAutoComplete("acx", "Auto Complete", "3")
    dynaForm.AddItem("acx", "1", "A")
    dynaForm.AddItem("acx", "2", "B")
    dynaForm.AddItem("acx", "3", "C")
    '
    dynaForm.AddRadio("gender", "Gender", "m")
    dynaForm.AddItem("gender", "m", "Male")
    dynaForm.AddItem("gender", "f", "Female")
   
    dynaForm.Refresh(about)
End Sub

You are able to have a form with content.

DynamicForms.jpg


There are some settings that you need to define in the Abstract Designer for this to work. We have only done the most simplified cases for the form, for complex forms, one will have to use the designer, thus its limited to basic controls. Also there are controls in this library that are custom built like the DateTimePicker, the tagged input controls

1625939614894.png


Ta!
 
Last edited:

Mashiane

Expert
Licensed User
Longtime User
According to my error notes, the last time I received this type of message (java.io.FileNotFoundException: ... manifest.txt) I had to recompile the BANanoSkeleton library (ran it in release mode to re-create the library) ... and it resolved the missing manifest error. I know that your case is not a BANanoSkeleton library issue but it is a possible clue that one of your libraries that you are using is corrupt and needs to be re-compiled. Since "bananofaker" is in the error path, that is the library that I would remove, recompile, and re-try again.
Thanks, just to add, BANanoFaker is part of the BVAD3 child extensions to create fake data for testing purposes.
 

Mashiane

Expert
Licensed User
Longtime User
Tip: Getting Results of Filtered Data-Table Records

The data-table has a search property. To activate it, one should, when creating columns, specify the column as "filterable". This ensures that on the search, all columns marked as filterable can be searchable.

1626026833449.png


This when typing sbp on the search, the data-table will only list those records that have the word sbp by searching all the columns marked as filterable.

To trap the results that get listed after a search results, one needs to

Method 1 - Current Page Filter

1. Trap the Current Items event by generating members for it.

1626026785820.png


2. The event returns the array of objects that are returned by the filter - for the current page. If for example your items per page is 50 and the filter returned 15 results, the returned items by CurrentItems will return 15 items. You can save these items for later retrieval as per indicated in this example.

B4X:
Private Sub dynaTable_CurrentItems(items As List)
    'save the current items for later retrieval
    dynaTable.CurrentItems = items
End Sub

3. Getting the filtered results..

B4X:
Private Sub dynaTable_PDF_Click (e As BANanoEvent)
    'get the filtered items
    get filtered items for the active page
    Dim res As List = dynaTable.CurrentItems
    Log(res)
End Sub

Method 2 - Complete Filter For All Records

The second method involves not using current_items event trapping. It enables one to get all the filtered records across the table and not just the current page. Using the same pdf sub above. We could...

B4X:
Private Sub dynaTable_PDF_Click (e As BANanoEvent)
    'get the filtered items
    mydata.refs = vuetify.getrefs
    Dim res As List = dynaTable.FilteredItems
    Log(res)
End Sub

It's important to refresh the refs with .refs = vuetify.GetRefs

Ta!
 

Mashiane

Expert
Licensed User
Longtime User
Version 5.66 is now available. It features a fully jRDC2 MySQL example.

Download B4J External Libraries
Download New Awesome BANanoVuetifyAD3 BANanoServer Kitchen Sink



PS: The database name for this exercise is test and the table name is animals.

Please note there are only 2 felds in the animals table.

You need to create a test database in MySQL and import this script to create the table.


 
Last edited:
Top