Analysing: ABMCacheV3.bas
ABMCacheV3.bas[0] B4J=true
ABMCacheV3.bas[0] Group=Default Group
ABMCacheV3.bas[0] ModulesStructureVersion=1
ABMCacheV3.bas[0] Type=Class
ABMCacheV3.bas[0] Version=8.1
ABMCacheV3.bas[0] @EndOfDesignText@
ABMCacheV3.bas[1] Sub Class_Globals
ABMCacheV3.bas[2] ' DO NOT DELETE OR LEAVE THIS CLASS AS IS!!!!!!!!!!!!!!!!!
ABMCacheV3.bas[3] End Sub
ABMCacheV3.bas[4]
ABMCacheV3.bas[5] 'Initializes the object. You can add parameters to this method if needed.
ABMCacheV3.bas[6] Public Sub Initialize
ABMCacheV3.bas[7]
ABMCacheV3.bas[8] End Sub
Analysing: ABMPageTemplate.bas
ABMPageTemplate.bas[0] B4J=true
ABMPageTemplate.bas[0] Group=Default Group
ABMPageTemplate.bas[0] ModulesStructureVersion=1
ABMPageTemplate.bas[0] Type=Class
ABMPageTemplate.bas[0] Version=5.9
ABMPageTemplate.bas[0] @EndOfDesignText@
ABMPageTemplate.bas[1] 'Class module
ABMPageTemplate.bas[2] Sub Class_Globals
ABMPageTemplate.bas[3] Private ws As WebSocket 'ignore
ABMPageTemplate.bas[4] ' will hold our page information
ABMPageTemplate.bas[5] Public page As ABMPage
ABMPageTemplate.bas[6] ' page theme
ABMPageTemplate.bas[7] Private theme As ABMTheme
ABMPageTemplate.bas[8] ' to access the constants
ABMPageTemplate.bas[9] Private ABM As ABMaterial 'ignore
ABMPageTemplate.bas[10] ' name of the page, must be the same as the class name (case sensitive!)
ABMPageTemplate.bas[11] Public Name As String = {0} '<-------------------------------------------------------- IMPORTANT
ABMPageTemplate.bas[12] ' will hold the unique browsers window id
ABMPageTemplate.bas[13] Private ABMPageId As String = {1}
ABMPageTemplate.bas[14]
ABMPageTemplate.bas[15] ' your own variables
ABMPageTemplate.bas[16] Dim ToastId As Int
ABMPageTemplate.bas[17]
ABMPageTemplate.bas[18] End Sub
ABMPageTemplate.bas[19]
ABMPageTemplate.bas[20] 'Initializes the object. You can add parameters to this method if needed.
ABMPageTemplate.bas[21] Public Sub Initialize
ABMPageTemplate.bas[22] ' build the local structure IMPORTANT!
ABMPageTemplate.bas[23] BuildPage
ABMPageTemplate.bas[24] End Sub
ABMPageTemplate.bas[25]
ABMPageTemplate.bas[26] #Region Always needed, no need to change anything at them
ABMPageTemplate.bas[27] Private Sub WebSocket_Connected (WebSocket1 As WebSocket)
ABMPageTemplate.bas[28] Log( {2} )
ABMPageTemplate.bas[29] ws = WebSocket1
ABMPageTemplate.bas[30] ABMPageId = ABM.GetPageID(page, Name,ws)
ABMPageTemplate.bas[31]
ABMPageTemplate.bas[32] Main.Server.Connected(Me, ws, page, ABMPageId)
ABMPageTemplate.bas[33]
ABMPageTemplate.bas[34] Log(ABMPageId)
ABMPageTemplate.bas[35] End Sub
ABMPageTemplate.bas[36]
ABMPageTemplate.bas[37] Private Sub WebSocket_Disconnected
ABMPageTemplate.bas[38] Log( {3} )
ABMPageTemplate.bas[39] Main.Server.Disconnected(ws)
ABMPageTemplate.bas[40] End Sub
ABMPageTemplate.bas[41]
ABMPageTemplate.bas[42] Sub Page_ParseEvent(Params As Map)
ABMPageTemplate.bas[43] Main.Server.Page_ParseEvent(Me, page, ABMPageId, Params)
ABMPageTemplate.bas[44] End Sub
ABMPageTemplate.bas[45] #end region
ABMPageTemplate.bas[46]
ABMPageTemplate.bas[47] ' MUST be in here
ABMPageTemplate.bas[48] public Sub BuildTheme()
ABMPageTemplate.bas[49] ' start with the base theme defined in ABMShared
ABMPageTemplate.bas[50] theme.Initialize( {4} )
ABMPageTemplate.bas[51] theme.AddABMTheme(Main.MyTheme)
ABMPageTemplate.bas[52]
ABMPageTemplate.bas[53] ' add page specific theme elements
ABMPageTemplate.bas[54] theme.AddInputTheme( {5} )
ABMPageTemplate.bas[55] theme.Input( {6} ).BackColor = ABM.COLOR_GREEN
ABMPageTemplate.bas[56] theme.Input( {7} ).BackColorIntensity = ABM.INTENSITY_LIGHTEN4
ABMPageTemplate.bas[57] End Sub
ABMPageTemplate.bas[58]
ABMPageTemplate.bas[59] ' MUST be in here
ABMPageTemplate.bas[60] public Sub BuildPage()
ABMPageTemplate.bas[61] ' initialize the theme
ABMPageTemplate.bas[62] BuildTheme
ABMPageTemplate.bas[63]
ABMPageTemplate.bas[64] ' initialize this page using our theme
ABMPageTemplate.bas[65] page.InitializeWithTheme(Name, {8} & Main.Server.AppName & {9} & Name, False, Main.Server.SessionMaxInactiveIntervalSeconds, theme)
ABMPageTemplate.bas[66] page.ShowLoader=True
ABMPageTemplate.bas[67] page.PageHTMLName = {10}
ABMPageTemplate.bas[68] page.PageTitle = {11}
ABMPageTemplate.bas[69] page.PageDescription = {12}
ABMPageTemplate.bas[70] page.PageKeywords = {13}
ABMPageTemplate.bas[71] page.PageSiteMapPriority = {14}
ABMPageTemplate.bas[72] page.PageSiteMapFrequency = ABM.SITEMAP_FREQ_YEARLY
ABMPageTemplate.bas[73]
ABMPageTemplate.bas[74] page.ShowConnectedIndicator = True
ABMPageTemplate.bas[75]
ABMPageTemplate.bas[76] ' adding a navigation bar
ABMPageTemplate.bas[77] Main.BuildNavigationBar(page, {15} , {16} , {17} , {18} , {19} )
ABMPageTemplate.bas[78]
ABMPageTemplate.bas[79] ' create the page grid, here we create 5 rows, each with one cell of 12 columns wide.
ABMPageTemplate.bas[80] page.AddRowsM(5,True,0,0, {20} ).AddCells12MP(1,0,0,0,0, {21} )
ABMPageTemplate.bas[81] page.BuildGrid 'IMPORTANT once you loaded the complete grid AND before you start adding components
ABMPageTemplate.bas[82]
ABMPageTemplate.bas[83] End Sub
ABMPageTemplate.bas[84]
ABMPageTemplate.bas[85] ' MUST be in here
ABMPageTemplate.bas[86] public Sub ConnectPage()
ABMPageTemplate.bas[87] ' connecting the navigation bar
ABMPageTemplate.bas[88] Main.ConnectNavigationBar(page)
ABMPageTemplate.bas[89]
ABMPageTemplate.bas[90] ' ----------- do your stuff like adding components to your grid, created in BuildPage
ABMPageTemplate.bas[91] Dim input As ABMInput
ABMPageTemplate.bas[92] input.Initialize(page, {22} , ABM.INPUT_TEXT, {23} , False, {24} )
ABMPageTemplate.bas[93] page.Cell(1,1).AddComponent(input)
ABMPageTemplate.bas[94]
ABMPageTemplate.bas[95] Dim button As ABMButton
ABMPageTemplate.bas[96] button.InitializeFlat(page, {25} , {26} , {27} , {28} , {29} )
ABMPageTemplate.bas[97] page.Cell(2,1).AddComponent(button)
ABMPageTemplate.bas[98] ' -----------
ABMPageTemplate.bas[99]
ABMPageTemplate.bas[100] ' refresh the page
ABMPageTemplate.bas[101] page.Refresh
ABMPageTemplate.bas[102] ' Tell the browser we finished loading
ABMPageTemplate.bas[103] page.FinishedLoading
ABMPageTemplate.bas[104] ' restoring the navigation bar position
ABMPageTemplate.bas[105] page.RestoreNavigationBarPosition
ABMPageTemplate.bas[106] End Sub
ABMPageTemplate.bas[107]
ABMPageTemplate.bas[108] Sub button_Clicked(Target As String)
ABMPageTemplate.bas[109] ' get the input compoent
ABMPageTemplate.bas[110] Dim input As ABMInput = page.Component( {30} )
ABMPageTemplate.bas[111] If input.Text = {31} Then
ABMPageTemplate.bas[112] ToastId = ToastId + 1
ABMPageTemplate.bas[113] page.ShowToast(ToastId, {32} , {33} , 5000, False)
ABMPageTemplate.bas[114] Return
ABMPageTemplate.bas[115] End If
ABMPageTemplate.bas[116]
ABMPageTemplate.bas[117] page.Msgbox( {34} , {35} & input.Text & {36} , {37} , {38} , False, ABM.MSGBOX_POS_CENTER_CENTER, {39} )
ABMPageTemplate.bas[118] End Sub
ABMPageTemplate.bas[119]
ABMPageTemplate.bas[120] ' result of clicking the close button on the messagebox
ABMPageTemplate.bas[121] Sub Page_MsgboxResult(returnName As String, result As String)
ABMPageTemplate.bas[122] Select Case returnName
ABMPageTemplate.bas[123] Case {40}
ABMPageTemplate.bas[124] Dim input As ABMInput = page.Component( {41} )
ABMPageTemplate.bas[125] input.Text = {42}
ABMPageTemplate.bas[126] input.Refresh
ABMPageTemplate.bas[127] End Select
ABMPageTemplate.bas[128] End Sub
ABMPageTemplate.bas[129]
ABMPageTemplate.bas[130] ' clicked on the navigation bar
ABMPageTemplate.bas[131] Sub Page_NavigationbarClicked(Action As String, Value As String)
ABMPageTemplate.bas[132] ' saving the navigation bar position
ABMPageTemplate.bas[133] page.SaveNavigationBarPosition
ABMPageTemplate.bas[134] If Action = {43} Then
ABMPageTemplate.bas[135] Main.LogOff(page)
ABMPageTemplate.bas[136] Return
ABMPageTemplate.bas[137] End If
ABMPageTemplate.bas[138]
ABMPageTemplate.bas[139] Main.Server.NavigateToPage(ws, ABMPageId, Value)
ABMPageTemplate.bas[140] End Sub
ABMPageTemplate.bas[141]
ABMPageTemplate.bas[142] Sub Page_FileUploaded(FileName As String, success As Boolean)
ABMPageTemplate.bas[143]
ABMPageTemplate.bas[144] End Sub
ABMPageTemplate.bas[145]
Analysing: Template.b4j
Template.b4j[0] AppType=StandardJava
Template.b4j[0] Build1=Default,com.ab.template
Template.b4j[0] Group=Default Group
Template.b4j[0] Library1=jcore
Template.b4j[0] Library2=jserver
Template.b4j[0] Library3=javaobject
Template.b4j[0] Library4=jsql
Template.b4j[0] Library5=abmaterial4.30
Template.b4j[0] Library6=abmserver
Template.b4j[0] Module1=ABMCacheV3
Template.b4j[0] Module2=ABMPageTemplate
Template.b4j[0] NumberOfFiles=0
Template.b4j[0] NumberOfLibraries=6
Template.b4j[0] NumberOfModules=2
Template.b4j[0] Version=8.1
Template.b4j[0] @EndOfDesignText@
Template.b4j[1] 'Non-UI application (console / server application)
Template.b4j[2] #Region Project Attributes
Template.b4j[3] #CommandLineArgs:
Template.b4j[4] #MergeLibraries: True
Template.b4j[5] #End Region
Template.b4j[6]
Template.b4j[7] Sub Process_Globals
Template.b4j[8] Public Server As ABMServer
Template.b4j[9] Public MyTheme As ABMTheme
Template.b4j[10] Public ABM As ABMaterial 'ignore
Template.b4j[11] End Sub
Template.b4j[12]
Template.b4j[13] Sub AppStart (Args() As String)
Template.b4j[14] ' must be the first line in AppStart. DO NOT DELETE OR CHANGE!
Template.b4j[15] ' ------------------------------------------------------------
Template.b4j[16] ABM.SessionCacheControlV3 = {0}
Template.b4j[17] ' ------------------------------------------------------------
Template.b4j[18]
Template.b4j[19] Dim DonatorKey As String = {1}
Template.b4j[20] Server.Initialize( {2} , DonatorKey, {3} ) ' Application = ' the handler that will be used in the url e.g.
http://localhost:51042/template
Template.b4j[21] ' some parameters
Template.b4j[22] Server.Port = 51042
Template.b4j[23] ' the user needs to login, set to true. the CheckLogin() method will be called if one tries to login
Template.b4j[24] Server.NeedsAuthorization = False
Template.b4j[25] Server.StartPage = {4} ' the first page of your app
Template.b4j[26] Server.CacheScavengePeriodSeconds = 15 * 30 ' 15 minutes
Template.b4j[27] Server.SessionMaxInactiveIntervalSeconds = 30 * 60 ' 30 minutes
Template.b4j[28] Server.UploadFolder = {5}
Template.b4j[29] Server.UploadMaxSize = 1024 * 1024
Template.b4j[30]
Template.b4j[31] ' Build the Theme
Template.b4j[32] BuildTheme( {6} )
Template.b4j[33]
Template.b4j[34] ' create the pages
Template.b4j[35] Dim myPage As ABMPageTemplate
Template.b4j[36] myPage.Initialize
Template.b4j[37] ' add the pages to the app
Template.b4j[38] Server.AddPage(myPage.page)
Template.b4j[39] ' do the same for your own pages: dim, initialize and Server.AddPage
Template.b4j[40] ' ...
Template.b4j[41]
Template.b4j[42] ' start the server
Template.b4j[43] If Server.PortSSL <> 0 Then
Template.b4j[44] Server.StartServerHTTP2( {7} , {8} , {9} )
Template.b4j[45] Else
Template.b4j[46] Server.StartServer
Template.b4j[47] End If
Template.b4j[48]
Template.b4j[49] ' redirect the output of the logs to a file if in release mode
Template.b4j[50] Server.RedirectOutput(File.DirApp, {10} )
Template.b4j[51]
Template.b4j[52] StartMessageLoop
Template.b4j[53] End Sub
Template.b4j[54]
Template.b4j[55] #region If NeedsAuthorization = true
Template.b4j[56] public Sub CheckLogin(login As String, Password As String) As Boolean
Template.b4j[57] ' check if the login is valid and return true if it does
Template.b4j[58] If login = {11} And Password = {12} Then
Template.b4j[59] Return True
Template.b4j[60] End If
Template.b4j[61]
Template.b4j[62] Return False
Template.b4j[63] End Sub
Template.b4j[64]
Template.b4j[65] Sub LogOff(page As ABMPage) 'ignore
Template.b4j[66] ' do whatever you have to do to log off your user
Template.b4j[67]
Template.b4j[68] page.ws.Session.SetAttribute( {13} , {14} )
Template.b4j[69] Server.NavigateToPage(page.ws, page.GetPageID, {15} )
Template.b4j[70] End Sub
Template.b4j[71] #end region
Template.b4j[72]
Template.b4j[73] ' build global themes for ABM objects
Template.b4j[74] #region Themes
Template.b4j[75] Sub BuildTheme(themeName As String)
Template.b4j[76] MyTheme.Initialize(themeName)
Template.b4j[77]
Template.b4j[78] ' the page theme
Template.b4j[79] MyTheme.Page.BackColor = ABM.COLOR_WHITE
Template.b4j[80]
Template.b4j[81] ' the navigation bar theme
Template.b4j[82] MyTheme.AddNavigationBarTheme( {16} )
Template.b4j[83] MyTheme.NavigationBar( {17} ).TopBarZDepth = ABM.ZDEPTH_1
Template.b4j[84] End Sub
Template.b4j[85] #end region
Template.b4j[86]
Template.b4j[87] #Region Navigation Bar
Template.b4j[88]
Template.b4j[89] Sub BuildNavigationBar(page As ABMPage, Title As String, logo As String, ActiveTopReturnName As String, ActiveSideReturnName As String, ActiveSideSubReturnName As String) 'ignore
Template.b4j[90] ' we have to make an ABMImage from our logo url
Template.b4j[91] Dim sbtopimg As ABMImage
Template.b4j[92] sbtopimg.Initialize(page, {18} , logo, 1)
Template.b4j[93] sbtopimg.SetFixedSize(236, 49)
Template.b4j[94]
Template.b4j[95] page.NavigationBar.Initialize(page, {19} , ABM.SIDEBAR_MANUAL_HIDEMEDIUMSMALL, Title, True, True, 330, 48, sbtopimg, ABM.COLLAPSE_ACCORDION, {20} )
Template.b4j[96]
Template.b4j[97] page.NavigationBar.TopBarDropDownConstrainWidth = False
Template.b4j[98] page.NavigationBar.ActiveTopReturnName = ActiveTopReturnName
Template.b4j[99] page.NavigationBar.ActiveSideReturnName = ActiveSideReturnName
Template.b4j[100] page.NavigationBar.ActiveSideSubReturnName = ActiveSideSubReturnName
Template.b4j[101]
Template.b4j[102] ' you must add at least ONE dummy item if you want to add items to the topbar in ConnectNaviagationBar
Template.b4j[103] page.NavigationBar.AddTopItem( {21} , {22} , {23} , {24} , False)
Template.b4j[104]
Template.b4j[105] ' you must add at least ONE dummy item if you want to add items to the sidebar
Template.b4j[106] page.NavigationBar.AddSideBarItem( {25} , {26} , {27} , {28} )
Template.b4j[107]
Template.b4j[108] End Sub
Template.b4j[109]
Template.b4j[110] Sub ConnectNavigationBar(page As ABMPage) 'ignore
Template.b4j[111] ' Clear the dummies we created in BuildNavigationBar
Template.b4j[112] page.NavigationBar.Clear
Template.b4j[113]
Template.b4j[114] ' add the menus to your sidebar
Template.b4j[115] ' examples
Template.b4j[116] page.NavigationBar.AddSideBarItem( {29} , {30} , {31} , {32} )
Template.b4j[117] 'page.NavigationBar.AddSideBarItem( {33} , {34} , {35} , {36} )
Template.b4j[118] 'page.NavigationBar.AddSideBarItem( {37} , {38} , {39} , {40} )
Template.b4j[119] 'page.NavigationBar.AddSideBarItem( {41} , {42} , {43} , {44} )
Template.b4j[120] 'page.NavigationBar.AddTopItemWithSideBar( {45} , {46} , {47} , {48} , ABM.VISIBILITY_ALL, sb)
Template.b4j[121]
Template.b4j[122] page.NavigationBar.Refresh ' IMPORTANT
Template.b4j[123] End Sub
Template.b4j[124] #End Region
Template.b4j[125]
Template.b4j[126]
Template.b4j[127]
Template.b4j[128]
Template.b4j[129]
Template.b4j[130]
Template.b4j[131]
Template.b4j[132]