Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EDT:Tutorial: RUI With DataBase Lesson 7"
(→Create a Library part) |
|||
(One intermediate revision by the same user not shown) | |||
Line 5: | Line 5: | ||
|[[EDT:Tutorial: RUI With DataBase Lesson 6|< Previous]] | [[EDT:Tutorial: RUI With DataBase Lesson 8|Next >]] | |[[EDT:Tutorial: RUI With DataBase Lesson 6|< Previous]] | [[EDT:Tutorial: RUI With DataBase Lesson 8|Next >]] | ||
|} | |} | ||
− | = Lesson 7: Create a library of reusable functions = | + | = Lesson 7: Create a library of reusable functions = |
− | Create a library to format money values and to associate | + | Create a library to format money values and to associate category numbers with descriptions.Libraries contain functions, constants, and variables that you can use in multiple locations. |
− | category numbers with descriptions.Libraries contain functions, constants, and variables that | + | |
− | you can use in multiple locations. | + | |
− | When you reference a declaration | + | When you reference a declaration in the library from other logic such as a service or handler, you can include the library name as a prefix. For example, '''MyLibrary.myLibraryVariable''' is appropriate if the library name is '''MyLibrary''' and the library includes the '''myLibraryVariable''' variable. Alternatively, you can include the library name in a '''use''' statement in the other logic and avoid the need to qualify every reference. In that case, '''myLibraryVariable''' is sufficient to reference that variable. |
− | in the library from other logic such as a service or handler, you | + | |
− | can include the library name as a prefix. For example, '''MyLibrary.myLibraryVariable''' is | + | |
− | appropriate if the library name is '''MyLibrary''' and | + | |
− | the library includes the '''myLibraryVariable''' variable. | + | |
− | Alternatively, you can include the library name in a '''use''' statement | + | |
− | in the other logic and avoid the need to qualify every reference. | + | |
− | In that case, '''myLibraryVariable''' is sufficient to | + | |
− | reference that variable. | + | |
− | == Create a Library | + | == Create a Library == |
+ | To create a Library: | ||
− | + | *Right-click the PaymentClient folder, then click '''New''' > '''Library'''. | |
− | + | ||
− | + | ||
− | *Right-click the PaymentClient folder, then click '''New''' > '''Library'''. | + | |
*In the New EGL Library window, enter the following information: | *In the New EGL Library window, enter the following information: | ||
− | **In the '''EGL source file name''' field, enter the name '''PaymentLib'''. | + | **In the '''EGL source file name''' field, enter the name '''PaymentLib'''. |
− | **In the '''Package''' field, enter the name '''libraries'''. | + | **In the '''Package''' field, enter the name '''libraries'''. |
**Under '''EGL Library Type''', leave the default value of '''Basic''' selected. | **Under '''EGL Library Type''', leave the default value of '''Basic''' selected. | ||
− | :The new Library | + | |
− | *Replace the boilerplate code in the Library | + | :The new Library opens in the EGL editor. |
+ | |||
+ | *Replace the boilerplate code in the Library with the following lines: | ||
+ | |||
package libraries; | package libraries; | ||
Line 39: | Line 30: | ||
end | end | ||
+ | |||
*Save the file. | *Save the file. | ||
− | == Create the categories array == | + | == Create the categories array == |
+ | |||
+ | Add the following code before the final '''end''' statement: <code></code>The value is an array, and as is true of all arrays in EGL, the index of the first element is 1, not 0. | ||
− | |||
− | |||
categories string[] =[ | categories string[] =[ | ||
Line 55: | Line 47: | ||
"Other" // 7 | "Other" // 7 | ||
]; | ]; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | The array is used in logic that acts as follows: | |
− | The next functions convert between the following two formats | + | *Places an expense category into the database in integer form, to save space. |
− | for expense categories: integer and string. | + | *Places the expense category onto the web page in string form, for clarity. |
+ | |||
+ | == Create the get functions for categories == | ||
+ | |||
+ | The next functions convert between the following two formats for expense categories: integer and string. | ||
+ | |||
+ | Add the following code before the final '''end''' statement: <code></code>The function receives the integer format of an expense category and returns the related array element. If the input value is 0, the function returns an empty string. | ||
− | |||
− | |||
function getCategoryDesc(cat int in) returns(string) | function getCategoryDesc(cat int in) returns(string) | ||
− | if(cat != 0) // the integer is not 0 | + | if(cat != 0) // the integer is not 0 |
return(categories[cat]); | return(categories[cat]); | ||
else | else | ||
Line 82: | Line 68: | ||
end | end | ||
end | end | ||
− | |||
− | |||
− | |||
− | |||
− | Add the following code before the final '''end''' statement: | + | |
− | <code> | + | |
+ | Add the following code before the final '''end''' statement: <code></code>This function receives the string format of an expense category and returns the integer format, if possible. If no match is found for the received string, the function returns 0. | ||
+ | |||
function getCategoryNum(desc string in) returns(int) | function getCategoryNum(desc string in) returns(int) | ||
for(i int from 1 to categories.getSize()) | for(i int from 1 to categories.getSize()) | ||
Line 97: | Line 81: | ||
return(0); // no match | return(0); // no match | ||
end | end | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | #Format the file. | + | == Save your changes == |
+ | |||
+ | The complete your coding of the payment library: | ||
+ | |||
+ | #Format the file. | ||
#Save and close the '''PaymentLib''' Library. If you see errors in your source file, compare your code to the file contents in [[EDT:Tutorial: RUI With DataBase Lesson 7 Code|Code for PaymentLib.egl after lesson 7]]. | #Save and close the '''PaymentLib''' Library. If you see errors in your source file, compare your code to the file contents in [[EDT:Tutorial: RUI With DataBase Lesson 7 Code|Code for PaymentLib.egl after lesson 7]]. | ||
− | == Lesson checkpoint == | + | == Lesson checkpoint == |
− | You learned how to complete the following tasks: | + | You learned how to complete the following tasks: |
− | + | *Create a Library type. | |
− | + | *Add functions and a variable to a library. | |
− | + | ||
− | {| style="float: right" | + | {| style="float: right" class="FCK__ShowTableBorders" |
− | |[[EDT:Tutorial: RUI With DataBase Lesson 6|< Previous]] | + | |- |
+ | | [[EDT:Tutorial: RUI With DataBase Lesson 6|< Previous]] | [[EDT:Tutorial: RUI With DataBase Lesson 8|Next >]] | ||
|} | |} | ||
[[Category:EDT]] | [[Category:EDT]] |
Latest revision as of 18:02, 6 December 2011
Access a database with EGL Rich UI
< Previous | Next > |
Contents
Lesson 7: Create a library of reusable functions
Create a library to format money values and to associate category numbers with descriptions.Libraries contain functions, constants, and variables that you can use in multiple locations.
When you reference a declaration in the library from other logic such as a service or handler, you can include the library name as a prefix. For example, MyLibrary.myLibraryVariable is appropriate if the library name is MyLibrary and the library includes the myLibraryVariable variable. Alternatively, you can include the library name in a use statement in the other logic and avoid the need to qualify every reference. In that case, myLibraryVariable is sufficient to reference that variable.
Create a Library
To create a Library:
- Right-click the PaymentClient folder, then click New > Library.
- In the New EGL Library window, enter the following information:
- In the EGL source file name field, enter the name PaymentLib.
- In the Package field, enter the name libraries.
- Under EGL Library Type, leave the default value of Basic selected.
- The new Library opens in the EGL editor.
- Replace the boilerplate code in the Library with the following lines:
package libraries; library PaymentLib {} end
- Save the file.
Create the categories array
Add the following code before the final end statement: The value is an array, and as is true of all arrays in EGL, the index of the first element is 1, not 0.
categories string[] =[ "Rent", // 1 "Food", // 2 "Entertainment", // 3 "Automotive", // 4 "Utilities", // 5 "Clothes", // 6 "Other" // 7 ];
The array is used in logic that acts as follows:
- Places an expense category into the database in integer form, to save space.
- Places the expense category onto the web page in string form, for clarity.
Create the get functions for categories
The next functions convert between the following two formats for expense categories: integer and string.
Add the following code before the final end statement: The function receives the integer format of an expense category and returns the related array element. If the input value is 0, the function returns an empty string.
function getCategoryDesc(cat int in) returns(string) if(cat != 0) // the integer is not 0 return(categories[cat]); else return(""); end end
Add the following code before the final end statement: This function receives the string format of an expense category and returns the integer format, if possible. If no match is found for the received string, the function returns 0.
function getCategoryNum(desc string in) returns(int) for(i int from 1 to categories.getSize()) if(categories[i] == desc) return(i); end end return(0); // no match end
Save your changes
The complete your coding of the payment library:
- Format the file.
- Save and close the PaymentLib Library. If you see errors in your source file, compare your code to the file contents in Code for PaymentLib.egl after lesson 7.
Lesson checkpoint
You learned how to complete the following tasks:
- Create a Library type.
- Add functions and a variable to a library.
< Previous | Next > |