In the continued spirit of collaborating with karol.kalisz, I wanted to see if I could add some additional utility to his new Design Studio SDK: Array Util Component. This was born out of a need to do things you'd want to do with arrays such as How to get "Top X" our of resultset, for example.
Next up is that I wanted to get back a for loop in BIAL. We have a forEach loop but for loops are not yet allowed. Karol also added me as a co-author to his GitHub repository (KarolKalisz/DesignStudioSdkPack · GitHub) so I figured I'd see how easy or hard it is to use GitHub as intended as a code check-in and collaboration tool versus just a sharing code site.
So, I've enhanced DesignStudioSdkPack/contribution.ztl at master · KarolKalisz/DesignStudioSdkPack · GitHub with a new method called 'eaches' -- This also is an example of how you can markup your ZTL code with some JavaDoc information for your BIAL scripters to know what things do.
The code:
/**
Generates an array of integers for use in BIAL forEach statement in order to emulate a traditional for loop.
<example>
Fill a list box with 10 values:
<code>ARRAY_1.eachesAsString(0, 9, 1).forEach(function(element, index) {<br>
LISTBOX_1.addItem(element, "Item " + (element + "") );<br>
});</code>
This would be equivalent to a loop in JavaScript:
<code>
for(var element = 0;element<=9;element++){<br>
Your code here.<br>
}
</code>
</example>
*/
Array eaches(/*Starting int*/ int start, /* Ending int */ int finish, /* Interval increment */int interval) {*
var a = [];
for(var i=start;i<=finish;i+=interval){
a.push(i);
}
return a;
*}
That's it! What's it do? The code documentation is shown above, but it's a bit easier to read during BIAL scripting time:
As we can see here, a little effort in documenting will help out your BIAL scripters know what the method does, so as we see in this tooltip, it does (or should do) what I mentioned, which is a for loop. Let's click the Button and see what the results are at runtime:
Looks like it's working! :smile:
As far as my experience with pulling down Karol's repository, that's easy. I suggest using 'GitHub for Windows' unless you are a big PowerShell fan, the GUI version is very easy to use. Here's the main interface, with some of my own repos aas well as Karol's:
I right-clicked his repository, and cloned it to a location on my hard drive. Next, I switched to my Eclipse SDK and went to File -> Import... and browsed to the location and chose the subfolder containing the project I wanted to import. In this case, it was 'org.kalisz.karol.scn.pack'. I unchecked 'Copy projects into workspace' since I wanted it to stick with the Git repo clone location. Below is an example of what an Eclipse project looks like when it senses there is a Git repo associated with it.
I then made modifications mentioned at the beginning of the blog to the contribution.ztl file.
Once I was done coding and testing on my local repo, I wanted to commit the changes back to Github. After fumbling around, I found the context menu path to do so:
I was then prompted to describe my change, which I said "Added 'eaches' method to Karol's Array component." and then clicked 'Commit and Push'.
When switching back to my GitHub for windows, I could see the changes in the history, as well on on the web. Success!
I'm sure for GitHub veterans, this is child's play but for me this was easier than I expected. There's a bunch of other stuff I'm sure GitHub is good at doing indicated in the context menu screenshot, but this was good for now :smile:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
6 | |
5 | |
4 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 | |
2 |