Skip to content

Commit

Permalink
feat: implmenet a license manager
Browse files Browse the repository at this point in the history
  • Loading branch information
hyyan committed Aug 2, 2019
1 parent 5b7e626 commit fcc9329
Show file tree
Hide file tree
Showing 12 changed files with 78 additions and 56 deletions.
41 changes: 30 additions & 11 deletions BBjGridExWidget.bbj
Expand Up @@ -48,6 +48,7 @@ use ::BBjGridExWidget/BBjGridExWidgetClientEvents.bbj::BBjGridExWidgetClientEven
use ::BBjGridExWidget/BBjGridExWidgetClientEvents.bbj::BBjGridExWidgetClientEventsRowEditing
use ::BBjGridExWidget/BBjGridExWidgetClientEvents.bbj::BBjGridExWidgetClientEventsRangeSelection
use ::BBjGridExWidget/BBjGridExWidgetClientEvents.bbj::BBjGridExWidgetClientEventsKeypress
use ::BBjGridExWidget/util/LicenseManager.bbj::LicenseManager
rem /**
rem * The Grid Core Class.This class works as a columns manager and api provider.
rem * It contains a big number of methods and properties to configure the column from A..Z.
Expand Down Expand Up @@ -90,7 +91,12 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns
rem */
field public static BBjString LicenseKey$
rem /**
rem * When true the grid will use the unminifed version of the Javascript code then open the debugger
rem * When true , the grid will force using the community version of the grid whether there
rem * is a license key or not.
rem */
field public static BBjNumber ForceCommunityBuild! = 0
rem /**
rem * When true the grid will use the unminifed version of the Javascript code then open the debugger
rem * in the browser when the CHROMIUM_HTMLVIEW is in use&#183;<br>
rem * <b>Note :</b> in BBj 19.10 and higher the grid will open the debugger only when the debugging port is set
rem * <pre><code>
Expand Down Expand Up @@ -134,6 +140,10 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns
rem * The client's HTML template to use in order to build the grid&#183;
rem */
field protected BBjString Template$ = ""
rem /**
rem * Instnace of the grid's license manager
rem */
field protected static LicenseManager LicenseManager! = new LicenseManager()
field protected BBjHtmlView HTMLView!
field protected Boolean IsReady! = BBjAPI.FALSE
field protected BBjVector backlog! = new BBjVector()
Expand Down Expand Up @@ -452,6 +462,15 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns
methodret BBjGridExWidget.imageToBase64(filename!)
methodend
rem /**
rem * The method will check whether the grid has license key or not.
rem *
rem * @return BBjNumber true when a license key is found , false otherwise
rem */
method public static BBjNumber isLicensed()
#getLicenseManager().setLicenseKey(#getLicenseKey())
methodret #getLicenseManager().isLicensed()
methodend
rem /**
rem * disabled default constructor
rem */
method private BBjGridExWidget()
Expand Down Expand Up @@ -577,12 +596,6 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns
declare BBjHtmlView htmlview!

if (f_init!) then
lic!=System.getProperty("bbjgridexwidget.license")

if lic! <> null() and str(lic!) <> "" then
#setLicenseKey(str(lic!))
FI

html$ = #getTemplate()

if (info(3,6)<>"5" and #Debug>0) then
Expand Down Expand Up @@ -612,7 +625,6 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns
htmlview!.setNoEdge(1)
htmlview!.setVisible(1)
htmlview!.setText(html$)

#HTMLView!=htmlview!
else
#HTMLView!.setSize(#getCanvas().getWidth(),#getCanvas().getHeight())
Expand Down Expand Up @@ -659,13 +671,19 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns
rem * @param BBjEvent ev! The onLoad event
rem */
method public void onInit(BBjEvent ev!)
isLicensed! = 0

if (#getForceCommunityBuild() = 0) then
isLicensed! = #isLicensed()
FI

ch=unt
distBase$ = "BBjGridExWidget/client/dist"
rem include the grid
if #getDebug() = 1 then
gridPath$ = iff(LEN(#LicenseKey$) > 0,distBase$ + "/ag-grid-enterprise.noStyle.js",distBase$ +"/ag-grid-community.noStyle.js")
gridPath$ = iff(isLicensed!,distBase$ + "/ag-grid-enterprise.noStyle.js",distBase$ +"/ag-grid-community.noStyle.js")
else
gridPath$ = iff(LEN(#LicenseKey$) > 0,distBase$ + "/ag-grid-enterprise.min.noStyle.js",distBase$ +"/ag-grid-community.min.noStyle.js")
gridPath$ = iff(isLicensed!,distBase$ + "/ag-grid-enterprise.min.noStyle.js",distBase$ +"/ag-grid-community.min.noStyle.js")
FI

open (ch)gridPath$
Expand Down Expand Up @@ -708,6 +726,7 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns
rem */
method public void onLoaded(BBjEvent ev!)
#HTMLView!.clearCallback(#HTMLView!.ON_PAGE_LOADED)
#getLicenseManager().register(#this!)
#IsReady! = BBjAPI.TRUE
REM if #RS! <> null() or #URL$>"" then
REM #render()
Expand Down Expand Up @@ -2530,4 +2549,4 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns
#fireEvent(#ON_GRID_KEYPRESS(), event!)
methodend

classend
classend
12 changes: 3 additions & 9 deletions demo/Enterprise/AggregationDemo.bbj
Expand Up @@ -8,24 +8,18 @@ rem */
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use ::BBjGridExWidget/BBjGridExWidgetRenderers.bbj::BBjGridExWidgetRendererGroupCellRenderer
use ::BBjGridExWidget/BBjGridExWidgetExpressions.bbj::BBjGridExWidgetExpression
use ::BBjGridExWidget/Demo/assets/Utilities.bbj::BBjGridExWidgetDemoUtilities
use com.basiscomponents.bc.SqlQueryBC
use java.sql.Types
use com.google.gson.JsonObject

? 'HIDE'

BBjGridExWidgetDemoUtilities.nagAboutLicense()

declare auto BBjTopLevelWindow wnd!
declare BBjGridExWidget grid!

lic!=System.getProperty("bbjgridexwidget.license")

if lic!=null() or str(lic!)="" then
a=msgbox("set license key in bbj.properties under bbjgridexwidget.license=<yourlicense>",48,"Demo for Enterprise Features")
release
fi

BBjGridExWidget.setLicenseKey(lic!)

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,800,600,"BBj Grid Ex Demo")
wnd! .setCallback(BBjAPI.ON_CLOSE,"byebye")
wnd! .setCallback(BBjAPI.ON_RESIZE,"resize")
Expand Down
3 changes: 3 additions & 0 deletions demo/Enterprise/ChartingDemo.bbj
Expand Up @@ -9,6 +9,7 @@ use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use ::BBjGridExWidget/BBjGridExWidgetClientModels.bbj::BBjGridExWidgetClientAddRangeChartModel
use ::BBjGridExWidget/BBjGridExWidgetClientModels.bbj::BBjGridExWidgetClientAddRangeSelectionModel
use ::BBjGridExWidget/BBjGridExWidgetContextMenu.bbj::BBjGridContextMenuItem
use ::BBjGridExWidget/Demo/assets/Utilities.bbj::BBjGridExWidgetDemoUtilities
use com.basiscomponents.db.ResultSet
use com.basiscomponents.bc.SqlQueryBC
use java.util.ArrayList
Expand All @@ -17,6 +18,8 @@ use java.util.Random

? 'HIDE'

BBjGridExWidgetDemoUtilities.nagAboutLicense()

declare auto BBjTopLevelWindow wnd!

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,800,600,"BBj Grid Range Selection Demo")
Expand Down
3 changes: 3 additions & 0 deletions demo/Enterprise/ContextMenuDemo.bbj
Expand Up @@ -8,11 +8,14 @@ rem */
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use ::BBjGridExWidget/BBjGridExWidgetContextMenu.bbj::BBjGridContextMenu
use ::BBjGridExWidget/BBjGridExWidgetContextMenu.bbj::BBjGridContextMenuItem
use ::BBjGridExWidget/Demo/assets/Utilities.bbj::BBjGridExWidgetDemoUtilities
use com.basiscomponents.db.ResultSet
use com.basiscomponents.bc.SqlQueryBC

? 'HIDE'

BBjGridExWidgetDemoUtilities.nagAboutLicense()

declare auto BBjTopLevelWindow wnd!
declare BBjGridExWidget grid!

Expand Down
11 changes: 4 additions & 7 deletions demo/Enterprise/PivotDemo.bbj
Expand Up @@ -7,25 +7,22 @@ rem * file that was distributed with this source code.
rem */
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use ::BBjGridExWidget/BBjGridExWidgetSidebar.bbj::BBjGridExWidgetColumnsToolpanel
use ::BBjGridExWidget/Demo/assets/Utilities.bbj::BBjGridExWidgetDemoUtilities
use com.basiscomponents.db.ResultSet
use com.basiscomponents.bc.SqlQueryBC

? 'HIDE'

BBjGridExWidgetDemoUtilities.nagAboutLicense()

declare auto BBjTopLevelWindow wnd!
declare BBjGridExWidget grid!

lic!=System.getProperty("bbjgridexwidget.license")

if lic!=null() or str(lic!)="" then
a=msgbox("set license key in bbj.properties under bbjgridexwidget.license=<yourlicense>",48,"Demo for Enterprise Features")
release
fi

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,800,600,"Simple CD-Store Demo")
wnd!.setCallback(BBjAPI.ON_CLOSE,"byebye")
wnd!.setCallback(BBjAPI.ON_RESIZE,"resize")


REM init the grid
grid! = new BBjGridExWidget(wnd!,100,0,0,800,600)

Expand Down
3 changes: 3 additions & 0 deletions demo/Enterprise/RangeSelectionDemo.bbj
Expand Up @@ -10,6 +10,7 @@ use ::BBjGridExWidget/BBjGridExWidgetStatusBar.bbj::BBjGridExWidgetStatusBarAggr
use ::BBjGridExWidget/BBjGridExWidgetClientModels.bbj::BBjGridExWidgetClientRangeSelectionModel
use ::BBjGridExWidget/BBjGridExWidgetClientModels.bbj::BBjGridExWidgetClientColumnModel
use ::BBjGridExWidget/BBjGridExWidgetClientModels.bbj::BBjGridExWidgetClientAddRangeSelectionModel
use ::BBjGridExWidget/Demo/assets/Utilities.bbj::BBjGridExWidgetDemoUtilities
use com.basiscomponents.db.ResultSet
use com.basiscomponents.bc.SqlQueryBC
use java.sql.Types
Expand All @@ -19,6 +20,8 @@ use java.util.Random

? 'HIDE'

BBjGridExWidgetDemoUtilities.nagAboutLicense()

declare auto BBjTopLevelWindow wnd!

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,800,600,"BBj Grid Range Selection Demo")
Expand Down
19 changes: 10 additions & 9 deletions demo/Enterprise/RowGroupingDemo.bbj
@@ -1,25 +1,26 @@
rem /**
rem * This file is part of the BBjGridExWidget plugin.
rem * (c) Basis Europe <eu@basis.com>
rem *
rem * For the full copyright and license information, please view the LICENSE
rem * file that was distributed with this source code.
rem */
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use ::BBjGridExWidget/BBjGridExWidgetColumns.bbj::BBjGridExWidgetColumn
use ::BBjGridExWidget/BBjGridExWidgetColumnsToolpanel.bbj::BBjGridExWidgetColumnsToolpanel
use ::BBjGridExWidget/Demo/assets/Utilities.bbj::BBjGridExWidgetDemoUtilities
use com.basiscomponents.db.ResultSet
use com.basiscomponents.bc.SqlQueryBC
use com.google.gson.JsonObject
use java.sql.Types

? 'HIDE'

BBjGridExWidgetDemoUtilities.nagAboutLicense()

declare auto BBjTopLevelWindow wnd!
declare BBjGridExWidget grid!

lic!=System.getProperty("bbjgridexwidget.license")

if lic!=null() or str(lic!)="" then
a=msgbox("set license key in bbj.properties under bbjgridexwidget.license=<yourlicense>",48,"Row Grouping Demo")
release
FI

BBjGridExWidget.setLicenseKey(lic!)

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,800,600,"BBj Grid Ex Demo")
wnd!.setCallback(BBjAPI.ON_CLOSE,"byebye")
wnd!.setCallback(BBjAPI.ON_RESIZE,"resize")
Expand Down
17 changes: 10 additions & 7 deletions demo/Enterprise/SidebarDemo.bbj
@@ -1,21 +1,24 @@
rem /**
rem * This file is part of the BBjGridExWidget plugin.
rem * (c) Basis Europe <eu@basis.com>
rem *
rem * For the full copyright and license information, please view the LICENSE
rem * file that was distributed with this source code.
rem */
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use ::BBjGridExWidget/BBjGridExWidgetSidebar.bbj::BBjGridExWidgetColumnsToolpanel
use ::BBjGridExWidget/Demo/assets/Utilities.bbj::BBjGridExWidgetDemoUtilities
use com.basiscomponents.bc.SqlQueryBC
use java.sql.Types
use com.google.gson.JsonObject

? 'HIDE'

BBjGridExWidgetDemoUtilities.nagAboutLicense()

declare auto BBjTopLevelWindow wnd!
declare BBjGridExWidget grid!

lic!=System.getProperty("bbjgridexwidget.license")

if lic!=null() or str(lic!)="" then
a=msgbox("set license key in bbj.properties under bbjgridexwidget.license=<yourlicense>",48,"Demo for Enterprise Features")
release
fi

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,800,600,"BBj Grid Ex Demo")

grid! = new BBjGridExWidget(wnd!,100,0,30,800,570)
Expand Down
12 changes: 3 additions & 9 deletions demo/Enterprise/StatusbarDemo.bbj
Expand Up @@ -3,23 +3,17 @@ use ::BBjGridExWidget/BBjGridExWidgetStatusBar.bbj::BBjGridExWidgetStatusBarTota
use ::BBjGridExWidget/BBjGridExWidgetStatusBar.bbj::BBjGridExWidgetStatusBarFilteredRowCountComponent
use ::BBjGridExWidget/BBjGridExWidgetStatusBar.bbj::BBjGridExWidgetStatusBarTotalAndFilteredRowCountComponent
use ::BBjGridExWidget/BBjGridExWidgetStatusBar.bbj::BBjGridExWidgetStatusBarSelectedRowCountComponent
use ::BBjGridExWidget/Demo/assets/Utilities.bbj::BBjGridExWidgetDemoUtilities
use com.basiscomponents.bc.SqlQueryBC
use java.sql.Types

? 'HIDE'

BBjGridExWidgetDemoUtilities.nagAboutLicense()

declare auto BBjTopLevelWindow wnd!
declare BBjGridExWidget grid!

lic!=System.getProperty("bbjgridexwidget.license")

if lic!=null() or str(lic!)="" then
a=msgbox("set license key in bbj.properties under bbjgridexwidget.license=<yourlicense>",48,"Demo for Enterprise Features")
release
fi

BBjGridExWidget.setLicenseKey(lic!)

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,800,600,"Statusbar Demo")
wnd!.setCallback(BBjAPI.ON_CLOSE,"byebye")
wnd!.setCallback(BBjAPI.ON_RESIZE,"resize")
Expand Down
2 changes: 2 additions & 0 deletions demo/Enterprise/TreeDataDemo.bbj
Expand Up @@ -13,6 +13,8 @@ use com.basiscomponents.db.ResultSet

? 'HIDE'

BBjGridExWidgetDemoUtilities.nagAboutLicense()

declare auto BBjTopLevelWindow wnd!
declare BBjGridExWidget grid!

Expand Down
11 changes: 7 additions & 4 deletions demo/assets/Utilities.bbj
Expand Up @@ -3,13 +3,20 @@ use java.util.ArrayList
use com.google.gson.JsonObject
use com.google.gson.Gson
use com.basiscomponents.db.ResultSet
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
REM /**
REM * Several Utilities Used in Demos
REM *
REM * @author Hyyan Abo Fakher
REM */
class public BBjGridExWidgetDemoUtilities

method public static void nagAboutLicense()
if(!BBjGridExWidget.isLicensed())
let x=MSGBOX("This is a BBjGridWidget enterprise demo and it requires a license key in order to work." ,48," Failed To Set License" )
FI
methodend

method public static BBjString readAssetsAsString(BBjString file$)
template$ = ""
ch=unt
Expand All @@ -22,16 +29,12 @@ class public BBjGridExWidgetDemoUtilities
method public static ArrayList buildArrayListFromDir(BBjString root$, BBjString sub!)
rootResolved! = BBjAPI().getFileSystem().resolvePath(root$)
path! = iff(sub! > "" , sub! , rootResolved!)

data! = new ArrayList()

folder! = new File(path!)
list! = folder!.list()
length! = list!.length - 1

files! = new ArrayList()
dirs! = new ArrayList()

FOR i = 0 TO length!
current! = new File(path! + "/" + list![i])

Expand Down
Binary file added util/LicenseManager.bbj
Binary file not shown.

0 comments on commit fcc9329

Please sign in to comment.