Create Progress Bar in your Netgem application
Posted By : Raman Joshi | 20-Aug-2014
In this blog I am going to tell you that how we can use the progress bar in our Netgem application. In this we use a simple progress bar with a background and foreground bar, one other simple progress bar with an additionnal loading bar and five other progress bar which are drawn with generic thema.
Now first show you the code in thema.json file which define a pBar member that inherits from "Progress Bar" default member. You can see all the main members of "Progress Bar" (i.e "fg", "bg" and "loading").
-
The member "bg" is used for the background of the progress bar.
-
The member "fg" is used for the foreground bar (progressing bar). It has a "padding" property relative to the background bar.
-
The member "loading" inherits from "fg" and has a "stripes" property (set to true). It is used for the loading bar of the progress bar.
"pBars<@progressBar": { "bg": { "rx":8 }, "fg": { "padding": 2, "rx":8 }, "loading The Progress bar are defined by two or more sub-objects (i.e "bars"). First bar is the background bar which object doesn't need a ratio (keep only the custo object).
var custo = this.themaData.pBars, custoBg = custo.bg, custoLoading = custo.loading, custoFg = custo.fg, w = this.width, margin = pBarData.margin; // Define the progress bar bounds in pbar thema var pbarBounds = new Rect(margin, (margin + 50), (w-(margin*2)), 18); // x, y, w, h // Draw a simple pbar this.drawNewProgressBar(ctx, pbarBounds, {"custo":custoBg}, {"ratio":0.6, "custo":custoFg} ); // Only for animation simulation purpose // (the drawPbars function is called every 50 ms with refresh() ) var ratio = pBarData.curRatio += pBarData.incrementRatio; if (ratio >= 1) ratio = 1; // 1 is the maximal value else if (ratio <= 0) ratio = 0; // 0 is the minimal value var ratioFg = ratio * 0.4; // Draw a pbar with a stripy loading bar pbarBounds.y += margin; this.drawNewProgressBar(ctx, pbarBounds, {"custo":custoBg}, // bg {"ratio":ratio, "custo":custoLoading}, {"ratio":ratioFg, "custo":custoFg} ); // Inverse progress if (ratio == 1 || ratio == 0) pBarData.incrementRatio = - pBarData.incrementRatio;
var custo = this.themaData.genPBars, custoBg = custo.bg, custoFg = custo.fg; // Draw a pbar with default state pbarBounds.y += margin; this.drawNewProgressBar(ctx, pbarBounds, {"custo":custoBg}, {"ratio":0.16, "custo":custoFg} ); // Draw a pbar with download state pbarBounds.y += margin; this.drawNewProgressBar(ctx, pbarBounds, {"custo":custoBg}, {"ratio":0.33, "custo":custoFg.getState("download")} ); // Draw a pbar with free state pbarBounds.y += margin; this.drawNewProgressBar(ctx, pbarBounds, {"custo":custoBg}, {"ratio":0.50, "custo":custoFg.getState("free")} ); // Draw a pbar with warning state pbarBounds.y += margin; this.drawNewProgressBar(ctx, pbarBounds, {"custo":custoBg}, {"ratio":0.66, "custo":custoFg.getState("warning")} ); // Draw a pbar with alert state pbarBounds.y += margin; this.drawNewProgressBar(ctx, pbarBounds, {"custo":custoBg}, {"ratio":0.83, "custo":custoFg.getState("alert")} );
Thanks
Cookies are important to the proper functioning of a site. To improve your experience, we use cookies to remember log-in details and provide secure log-in, collect statistics to optimize site functionality, and deliver content tailored to your interests. Click Agree and Proceed to accept cookies and go directly to the site or click on View Cookie Settings to see detailed descriptions of the types of cookies and choose whether to accept certain cookies while on the site.
About Author
Raman Joshi
Raman is a bright web app developer with experience in Java , Groovy and Grails frameworks