From: <os...@us...> - 2013-10-16 13:03:33
|
Revision: 9472 http://sourceforge.net/p/oorexx/code-0/9472 Author: osims Date: 2013-10-16 13:03:28 +0000 (Wed, 16 Oct 2013) Log Message: ----------- Added Paths: ----------- ooDialog/trunk/examples/userGuide/exercises/Exercise09/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerFile.txt ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerListView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerModelsData.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.h ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.rc ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.BMP ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.ico ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.cur ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.ico ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonFile.txt ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonListView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonModelsData.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonView.h ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonView.rc ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/bmp/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/bmp/PersonList.ico ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/ReadMe.txt ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderFormView.h ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderFormView.rc ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderFormView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderHeadersFile.txt ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderLinesFile.txt ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderListView.h ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderListView.rc ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderListView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderModelsData.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderView.h ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderView.rc ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/OrderView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/bmp/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/bmp/OrderForm.bmp ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/bmp/OrderForm.ico ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/bmp/OrderList.bmp ooDialog/trunk/examples/userGuide/exercises/Exercise09/Order/bmp/OrderList.ico ooDialog/trunk/examples/userGuide/exercises/Exercise09/OrderMgr/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/OrderMgr/OrderMgrView.h ooDialog/trunk/examples/userGuide/exercises/Exercise09/OrderMgr/OrderMgrView.rc ooDialog/trunk/examples/userGuide/exercises/Exercise09/OrderMgr/OrderMgrView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/OrderMgr/RequiresList.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/ProductFile.txt ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/ProductListView.h ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/ProductListView.rc ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/ProductListView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/ProductModelsData.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/ProductView.h ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/ProductView.rc ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/ProductView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/res/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/res/ProdList.BMP ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/res/ProdList.ico ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/res/Product.cur ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/res/Product.ico ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/res/ProductIcon.bmp ooDialog/trunk/examples/userGuide/exercises/Exercise09/Product/res/res.mak ooDialog/trunk/examples/userGuide/exercises/Exercise09/RequiresList.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Startup.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/Component.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/DragMgr.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/EventMgr.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/GenericFile.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/ListView.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/MVF.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/MessageSender.h ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/MessageSender.rc ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/MessageSender.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/Model.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/NumberOnlyEditEx.cls ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/ObjectMgr.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/View.rex ooDialog/trunk/examples/userGuide/exercises/Exercise09/Support/ViewMgr.rex Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerFile.txt =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerFile.txt (rev 0) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerFile.txt 2013-10-16 13:03:28 UTC (rev 9472) @@ -0,0 +1,6 @@ +CustNo | CustName | CustDisc | CustAddr | Zip +AB0784 | ABC Enterprises Inc. | B1 | 2145 Engle Blvd,Hardtown,FL | 37043 +AC0027 | Frith Motors Inc. | B1 | 124 Freeview St.,Mackfield,TX | 78254 +BA0314 | LMN & Partners | C2 | 116 High St.,Ensleigh,NV | 84394 +BA0526 | EJ Smith United Inc. | C1 | 3 Ventry Rd,Ventry,MS | 38216 +CU0003 | Red-On & Locus Inc. | A1 | 43 Main St,Plingford,AR | 48231 \ No newline at end of file Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerListView.rex =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerListView.rex (rev 0) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerListView.rex 2013-10-16 13:03:28 UTC (rev 9472) @@ -0,0 +1,132 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2011-2013 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/*----------------------------------------------------------------------------*/ +/* ooDialog User Guide - Exercise09 + + Customer List View v04-00 14Oct13 + ------------------ + + Contains: classes "CustomerListView" and "HRSclv". + + Pre-requisite: CustomerListView.rc, CustomerListView.h, CustList.ico, + + Description: Provides a list of Customers and supports viewing any given + Customer via a double-click on that Customer's item in the list. + + v01-00 06Jun12: First Version. + v02-00 08Jan13: Removed stand-alone startup code (not needed after Ex06) + Commented out say's. + v03-00 24May13: Updated to use View and Component mixins. + v04-00 14Oct13: Uses the LisView superclass introduced in Exercise 9. + + Outstanding Problems: None reported. +*******************************************************************************/ + + +--.Application~addToConstDir("Customer\CustomerListView.h") + +::REQUIRES "ooDialog.cls" +::REQUIRES "customer\customerview.rex" +::REQUIRES "Support\View.rex" +::REQUIRES "Support\Component.rex" +::REQUIRES "Support\ListView.rex" + +/*////////////////////////////////////////////////////////////////////////////// + ============================================================================== + CustomerListView v04-00 14Oct13 + ---------------- + The view of a list of Customers. + Changes: + v01-01: First version + v01-02: Corrected for standalone invocation. + v01-03 28Jan12: Changed name of HRS class to HRSplv. + v01-04 11Feb12: moved .application~setDefaults() to app startup file. + changed to .application~addToConstDir() here. + v01-05 19Feb12: Moved .Application~addToConstDir statement from newInstance + method to top of file - just before ::requires statement(s). + v01-06 29Mar12: Very minor mods - all just minor clean-ups. All comments removed + v02-00 17Aug12: Exercise07 - modified to use the MVF. + 08Jan13: Removed stand-alone startup (not now needed). + v03-00 24May13: Inherits directly from RcDialog plus the View & Component mixins + v04-00 14Oct13: Most code provided by the ListView superclass introduced + in Exercise 9. + + + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + + +::CLASS CustomerListView SUBCLASS ListView PUBLIC + /*---------------------------------------------------------------------------- + Class Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + ::METHOD getDlgInfo CLASS PRIVATE + dlgInfo = .Array~new + -- Text to appear on the List View: + dlgInfo[1] = .HRSclv + -- Columns (Fields) to show in List View: + dlgInfo[2] = "1-Number-60-key, 2-Name-170, 5-Zip-80" + dlgInfo[3] = "225-273" -- width-height of dialog + return dlgInfo + + /*---------------------------------------------------------------------------- + Instance Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +/*============================================================================*/ + + + +/*////////////////////////////////////////////////////////////////////////////// + ============================================================================== + HRSclv (Human-Readable Strings for CustomerListView) v02-00 15Oct13 + --- + The HRSclv class provides constant character strings for dialog title, menus, + buttons, and user-visible messages issued by the CustomerListView class. + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + +::CLASS HRSclv PRIVATE -- Human-Readable Strings + ::CONSTANT dlgTitle "Customer List" + ::CONSTANT menu1 "Actions" + ::CONSTANT menu11 "New Customer" + ::CONSTANT menu2 "Help" + ::CONSTANT menu21 "About" + ::CONSTANT noMenu "This menu item is not yet implemented." + ::CONSTANT showButton "Show Customer" + ::CONSTANT cancelButton "Cancel" + +/*============================================================================*/ + Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerModelsData.rex =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerModelsData.rex (rev 0) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerModelsData.rex 2013-10-16 13:03:28 UTC (rev 9472) @@ -0,0 +1,242 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2011-2013 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/*----------------------------------------------------------------------------*/ +/* ooDialog User Guide + Exercise 08: Customer Models and Data Classes v02-00 24May13 + + Contains: classes "CustomerModel" "CustomerListModel" and "CustomerData". + + Pre-requisites: None. + + Outstanding Problems: + None. + + Changes: + v01-00 07Jun12: First version. + v02-00 11Jan13: Modified to use the Model-View Framework with data read from + file using the GenericFile class. CustomerListModel added. + Commented out 'say' instructions. + 31Jan13: Removed 'query' method (it's in the superclass) from both + Customer and CustomerList - also removed code storing data + in self~myData. + 01Apr13: After ooDialog 4.2.2, Support folder moved to exercise + folder, so change to ::Requires needed. + 24May13: Updated comments only to say Ex08. + +------------------------------------------------------------------------------*/ + +::REQUIRES "Support\GenericFile.rex" +::REQUIRES "Support\Model.rex" + +/*////////////////////////////////////////////////////////////////////////////// + ============================================================================== + CustomerModel v01-01 09Aug12 + ------------ + The "model" part of the Customer component. + + Changes: + v01-00 07Jun12: First version. + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + +::CLASS CustomerModel SUBCLASS Model PUBLIC + + ::ATTRIBUTE myData + +/*---------------------------------------------------------------------------- + Class Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + ::METHOD newInstance CLASS PUBLIC + expose noDataError + use strict arg instanceName + --say ".CustomerModel-newInstance-01; class name =" self~objectName + -- Get my data via my superclass: + forward class (super) continue + customerId = RESULT + return customerId + + + +/*---------------------------------------------------------------------------- + Instance Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + ::METHOD init + use strict arg dirData + return self + +/*============================================================================*/ + + + +/*////////////////////////////////////////////////////////////////////////////// + ============================================================================== + CustomerListModel v02-00 13Jan08 + ---------------- + The model for a list of Customers. + Changes: + v00-01 15Aug12: First version + v02-00 13Jan08: Runs under MVF (Ex07). Commented out 'say's. + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + +::CLASS CustomerListModel SUBCLASS Model PUBLIC + + ::ATTRIBUTE myData + /*---------------------------------------------------------------------------- + Class Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + ::METHOD newInstance CLASS PUBLIC + use arg instanceName + self~wantList = .true -- set super's attribute + forward class (super) continue + return RESULT + + + /*---------------------------------------------------------------------------- + Instance Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + ::METHOD init + use arg dirData + --self~myData = arrdata + --say "CustomerListModel-init-01: myData =" self~myData + return self + +-- ::METHOD query PUBLIC + /*---------------------------------------------------------------------------- + query - returns an array of all Customer data. + In MVF this method is invoked by the RcView (or ResView) superclass. + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + --say "CustomerListModel-query-01." +-- return self~myData + +/*============================================================================*/ + + + +/*////////////////////////////////////////////////////////////////////////////// + ============================================================================== + CustomerData v01-01 09Aug12 + ------------ + The "data" part of the Customer component. + Changes: + v01-00 07Jun12: First version. + v02-00 09Aug12: Second version - subclasses GenericFile to read data from + a disk file. + 08Jan13: Commented out some 'say' instructions. + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + +::CLASS CustomerData SUBCLASS GenericFile PUBLIC + + ::ATTRIBUTE created CLASS + +/*---------------------------------------------------------------------------- + Class Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + ::METHOD newInstance CLASS PUBLIC -- Invoked by ObjectMgr + --use strict arg instanceName + if self~created = "CREATED" then do -- If this is first time + --say ".CustomerData-newInstance-01." + customerDataId = self~new() + self~created = .true + return customerDataId + end + else do + say ".CustomerData-newInstance-02 - Error - Singleton component, so can't have more than one instance." + return .false + end + + + /*---------------------------------------------------------------------------- + Instance Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + ::METHOD init PUBLIC + expose fileName numRecords + fileName = "Customer\CustomerFile.txt" + columns = 5 -- colums in the Customer "table" + numRecords = self~init:super(fileName, columns) + --say "CustomerData-init-01: numRecords:" numRecords + /* + if numRecords > 0 then do + say "CustomerData-init-02: Array is:" + say self~fileArray~tostring + end + */ + return self + + +/*============================================================================*/ + +/*////////////////////////////////////////////////////////////////////////////// + ============================================================================== + CustomerDT - A business data type for Customer data. v00-01 05May12 + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ + +::CLASS CustomerDT PUBLIC + + -- dtName XML Name Description + -- --------- ---------- ------------------------------- + -- ProductDT product + ::ATTRIBUTE custNo -- custNo Customer Number + ::ATTRIBUTE custName -- custName Customer Name + ::ATTRIBUTE discount -- discount Discount code + ::ATTRIBUTE address -- address Customer's address + ::ATTRIBUTE zipCode -- zip ZipCode + + ::METHOD makeDir + dir = .Directory~new + dir["custNo"] = self~custNo + dir["custName"] = self~custName + dir["discount"] = self~discount + dir["address"] = self~address + dir["zipCode"] = self~zipCode + return dir + + ::METHOD list PUBLIC + expose custNo custName discount address zipCode + say "---------------" + say "CustomerDT-List:" + say "CustNo: " custNo " CustName:" custName + say "Address: " address + say "Zip: " zipCode " Discount:" discount + say "---------------" + +/*============================================================================*/ Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.h =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.h (rev 0) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.h 2013-10-16 13:03:28 UTC (rev 9472) @@ -0,0 +1,63 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2011-2013 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/*----------------------------------------------------------------------------*/ + +#ifndef IDC_STATIC +#define IDC_STATIC (-1) +#endif + +#define IDD_CUST_DIALOG 102 +#define IDR_CUST_MENU 103 +#define IDI_CUST_DLGICON 105 +#define IDC_CUST_LBL_CUSTNO 1001 +#define IDC_CUST_LBL_DISCOUNT 1002 +#define IDC_CUST_BTN_SHOWLASTORDER 1003 +#define IDM_CUST_NEW 40000 +#define IDM_CUST_UPDATE 40001 +#define IDM_CUST_PRINT 40002 +#define IDM_CUST_LAST_ORDER 40003 +#define IDC_CUST_EDT_CUSTNO 40043 +#define IDC_CUST_EDT_CUSTNAME 40044 +#define IDC_CUST_BTN_RECORDCHANGES 40069 +#define IDC_CUST_LBL_CUSTNAME 40070 +#define IDC_CUST_LBL_CUSTADDR 40071 +#define IDC_CUST_LBL_ZIP 40072 +#define IDC_CUST_LBL_LASTORDER 40073 +#define IDC_CUST_STC_LASTORDERDETAILS 40077 +#define IDC_CUST_EDT_CUSTADDR 40078 +#define IDC_CUST_EDT_DISCOUNT 40079 +#define IDC_CUST_EDT_CUSTZIP 40080 +#define IDC_CUST_STC_ERRORMSG 40081 Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.rc =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.rc (rev 0) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.rc 2013-10-16 13:03:28 UTC (rev 9472) @@ -0,0 +1,85 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2011-2013 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/*----------------------------------------------------------------------------*/ + +#include <windows.h> +#include <commctrl.h> +#include <richedit.h> +#include "customerview.h" + + + + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +IDR_CUST_MENU MENU +{ + POPUP "Actions" + { + MENUITEM "New Customer...", IDM_CUST_NEW + MENUITEM "&Update...", IDM_CUST_UPDATE + MENUITEM "Print...", IDM_CUST_PRINT + MENUITEM "Last Order", IDM_CUST_LAST_ORDER + } +} + + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +IDD_CUST_DIALOG DIALOG 0, 0, 275, 239 +STYLE DS_3DLOOK | DS_CENTER | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_THICKFRAME | WS_SYSMENU +EXSTYLE WS_EX_WINDOWEDGE +CAPTION "*CustomerName*" +FONT 8, "Microsoft Sans Serif" +{ + LTEXT "Name:", IDC_CUST_LBL_CUSTNAME, 18, 47, 22, 8, SS_LEFT + EDITTEXT IDC_CUST_EDT_CUSTNO, 85, 20, 65, 15, ES_AUTOHSCROLL | ES_READONLY + LTEXT "Customer Number:", IDC_CUST_LBL_CUSTNO, 18, 22, 59, 8, SS_LEFT + EDITTEXT IDC_CUST_EDT_CUSTNAME, 85, 45, 165, 14, ES_AUTOHSCROLL | ES_READONLY + LTEXT "Address:", IDC_CUST_LBL_CUSTADDR, 18, 72, 28, 8, SS_LEFT + EDITTEXT IDC_CUST_EDT_CUSTADDR, 85, 70, 167, 40, ES_AUTOHSCROLL | ES_MULTILINE | ES_READONLY + LTEXT "Zip Code:", IDC_CUST_LBL_ZIP, 20, 120, 32, 8, SS_LEFT + EDITTEXT IDC_CUST_EDT_CUSTZIP, 85, 120, 65, 14, ES_AUTOHSCROLL | ES_READONLY + LTEXT "Last Order:", IDC_CUST_LBL_LASTORDER, 18, 177, 36, 8, SS_LEFT + LTEXT " ", IDC_CUST_STC_LASTORDERDETAILS, 88, 177, 145, 8, SS_LEFT + LTEXT "Discount Code:", IDC_CUST_LBL_DISCOUNT, 18, 149, 50, 8, SS_LEFT + EDITTEXT IDC_CUST_EDT_DISCOUNT, 85, 145, 20, 14, ES_AUTOHSCROLL | ES_READONLY + LTEXT " ", IDC_CUST_STC_ERRORMSG, 18, 215, 8, 8, SS_LEFT + DEFPUSHBUTTON "Record Changes", IDC_CUST_BTN_RECORDCHANGES, 130, 195, 58, 14, WS_DISABLED + PUSHBUTTON "Show Last Order", IDC_CUST_BTN_SHOWLASTORDER, 195, 195, 58, 14 +} + + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +IDI_CUST_DLGICON ICON ".\\customer\\bmp\\Customer.ico" Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.rex =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.rex (rev 0) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/CustomerView.rex 2013-10-16 13:03:28 UTC (rev 9472) @@ -0,0 +1,352 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2011-2013 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/*----------------------------------------------------------------------------*/ +/* ooDialog User Guide + Exercise 08: The CustomerView component v03-00 06Jun13 + + Contains: class "CustomerView"; routine "startCustomerView". + Pre-requisites: RcView.rex, CustomerView.rc, CustomerView.h. + + Description: A sample Customer View component - part of the sample + Order Management application. This is a "leaf" component - + it does not invoke other components. + + Changes: + v01-00 01Jun12: First version (Exercise04). + v01-01 07Jun12: Minor changes for Exercise06. + .... + v02-00 09Aug12: Changed to use MVF. + 09Jan13: Removed stand-alone startup (not now needed). + Changes to CustomerView (not at v03-00). + 01Apr13: After ooDialog 4.2.2, Support folder moved to exercise + folder, so change to ::Requires needed. + v03-00 24May13: Inherits directly from RcDialog plus the View & Component mixins + 06Jun13: Added set self as drag/drop source in initDialog method. + +------------------------------------------------------------------------------*/ + + +.Application~addToConstDir("Customer\CustomerView.h") + +::REQUIRES "ooDialog.cls" +--::REQUIRES "support\RcView.rex" +::REQUIRES "support\View.rex" +::REQUIRES "support\Component.rex" + +/*////////////////////////////////////////////////////////////////////////////// + ============================================================================== + CustomerView v03-00 24May13 + ------------- + The "view" (or "gui") part of the Customer component - part of the sample + Order Management application. + Changes: + v00-02: Prevented close on enter key by providing no-op "ok" method. + Changed tab order on window by changing sequence of controls in .rc file + v00-03: Changed symbolic IDs to conform with naming convention + Added initAutoDetection method because deleted dlgData. from + dlg~new statement in starter.rex. + v00-04: Took out the OK method - include that in Exercise05. + v00-05: Modified to use CustomerData and CustomerModel classes. + Mods after Exercise04: + v02-00: Added "newInstance" class method - removed routine "StartCustomerView". + v02-01 19Sep11: Corrected for stand-alone invocation. + v02-02 04Oct11: Added msgbox for unimplemented menu item. + v02-03 28Jan12: Changed class name HRS to HRSclv to allow for multiple + HRS classes in same file at some future time. + v02-04 11Feb12: moved .application~setDefaults() to app startup file. + changed to .application~addToConstDir() here. + v02-05 19Feb12: Moved .Application~addToConstDir statement from newInstance + method to top of file - just before ::requires statement(s). + v03-00 09Aug12: Changed to use MVF. Stand-alone startup removed. + 09Jan13: Removed stand-alone startup (not now needed). + Commented out most 'say' instructions. + Removed 'getData' method - redundant with MVF. + Modified handling of Cust Address due to change in data + format of Cust Address (now provided as string via MVF + from Customer File). + Deleted a number of "say" instructions. + 24May13: Changed inheritance to use the View & Component mixins. + + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + +::CLASS CustomerView SUBCLASS RcDialog PUBLIC INHERIT View Component -- v03-00 + /*---------------------------------------------------------------------------- + Class Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + ::METHOD newInstance CLASS PUBLIC UNGUARDED + use arg idCustomerModel, rootDlg -- Ex07 + -- Create an instance of CustomerView and show it: + dlg = .CustomerView~new("Customer\CustomerView.rc", "IDD_CUST_DIALOG") + dlg~activate(idCustomerModel, rootDlg) -- Ex07 + --say ".CustomerView-newInstance-01: dlg =" dlg + return dlg -- Ex07 + + + /*---------------------------------------------------------------------------- + Dialog Creation Methods: + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + /*-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Init - creates the dialog instance but does not make it visible. --*/ + ::METHOD init + expose menuBar + --say "CustomerView-init-01." + + forward class (super) continue + self~initView -- initialize the mixin. + if \ self~createMenuBar then do -- if there was a problem + self~initCode = 1 + return + end + + + /*-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Create Menu Bar - Creates the menu bar on the dialog. --*/ + ::METHOD createMenuBar + expose menuBar + menuBar = .ScriptMenuBar~new("Customer\CustomerView.rc", "IDR_CUST_MENU", , , .true) + return .true + + + /*-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Activate - Shows the Dialog - i.e. makes it visible to the user. --*/ + ::METHOD activate unguarded + expose custData + use arg idCustomerModel, rootDlg -- ADDED FOR EXERCISE06. Params reversed for Ex07. + forward class (super) continue -- Ex07: Required for MV framework. + custData = RESULT -- Ex07: instance data returned by super + -- Ex07: ('forward' returns any result via 'RESULT'.) + --say "CustomerView-activate-01." + self~popUpAsChild(rootDlg,"SHOWTOP",,"IDI_CUST_DLGICON") -- Ex07: deleted "standalone" startup. + --say "CustomerView-activate-01." + return + + + /*-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + InitDialog - Called by ooDialog -- */ + ::METHOD initDialog + expose menuBar custControls + --say "CustomerView-initDialog-01." + menuBar~attachTo(self) + -- Create objects that map to the edit controls defined by the "customer.rc" + -- so they can be programmatically used elsewhere in the class: + custControls = .Directory~new + custControls[ecCustNo] = self~newEdit("IDC_CUST_EDT_CUSTNO") + custControls[ecCustName] = self~newEdit("IDC_CUST_EDT_CUSTNAME") + custControls[ecCustAddr] = self~newEdit("IDC_CUST_EDT_CUSTADDR") + custControls[ecCustZip] = self~newEdit("IDC_CUST_EDT_CUSTZIP") + custControls[ecCustDiscount] = self~newEdit("IDC_CUST_EDT_DISCOUNT") + custControls[stLastOrder] = self~newStatic("IDC_CUST_STC_LASTORDERDETAILS") + -- Create an object for the "Record Change" pushbutton in order to be able + -- to change its focus later: + custControls[btnRecordChanges] = self~newPushButton("IDC_CUST_BTN_RECORDCHANGES") + -- Define event handler methods for push-buttons: + self~connectButtonEvent("IDC_CUST_BTN_RECORDCHANGES","CLICKED",recordChanges) + self~connectButtonEvent("IDC_CUST_BTN_SHOWLASTORDER","CLICKED",showLastOrder) + + self~setTitle(.HRScv~dlgTitle) -- set dialog title. + + -- set self as drag/drop source. + r = self~dmSetAsSource:super("Customer\bmp\Customer.cur") + + -- Show app data: + self~showData + + /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + + /*---------------------------------------------------------------------------- + MenuBar Methods: + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + New Customer... Not fully implemented - merely tells user to use the + Customer List object. --*/ + ::METHOD newCustomer unguarded + answer = MessageDialog(.HRScv~useList, self~hwnd,.HRScv~useListCap,"INFORMATION") + + + /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Update - Sets fields to edit mode so that user can change the data. + Business Rule: Customer Number cannot be changed. --*/ + ::METHOD update unguarded + expose custControls + custControls[ecCustName]~setReadOnly(.false) + custControls[ecCustAddr]~setReadOnly(.false) + custControls[ecCustZip]~setReadOnly(.false) + custControls[ecCustDiscount]~setReadOnly(.false) + self~enableControl("IDC_CUST_BTN_RECORDCHANGES") + custControls[btnRecordChanges]~state = "FOCUS" -- Put focus on the button + self~focusControl("IDC_CUST_EDT_CUSTNAME") -- place cursor in the CustName edit control. + + + /*-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Last Order - Displays info about the last order placed by this customer.--*/ + ::METHOD lastOrder unguarded + expose custControls + use arg button + orderDate="31/12/11"; orderNum = "ZZ999"; orderTotal = "$999.99" + lastOrder = orderDate " " orderNum " " orderTotal + custControls[stLastOrder]~setText(lastOrder) + + + /*-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Print - Not implemented yet --*/ + ::METHOD print unguarded + msg = "The 'Print...' menu item is not yet implemented." + ret = MessageDialog(.HRScv~noPrint, self~hwnd, .HRScv~noPrintCap, 'WARNING') + + + /*---------------------------------------------------------------------------- + PushButton Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + /*-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Record Changes - Collects new data, checks if there has indeed been a + change, and if not, issues a warning msg and disables + the button. --*/ + ::METHOD recordChanges unguarded + expose custControls custData newCustData + + newCustData = .directory~new + newCustData[custName] = custControls[ecCustName]~getLine(1) + newCustData[custAddr] = .array~new + do i=1 to custControls[ecCustAddr]~lines + newCustData[custAddr][i] = custControls[ecCustAddr]~getLine(i) + end + newCustData[custZip] = custControls[ecCustZip]~getLine(1) + newCustData[custDiscount] = custControls[ecCustDiscount]~getLine(1) + + -- Check if anything's changed: + result = self~checkForChanges + --if result then say "CustomerView-recordChanges-01: There were changes!" + --else say "CustomerView-recordChanges-02: No Changes Found" + + /* Send new data to be checked by CustomerModel (not implemented). */ + + /* Disable controls that were enabled by menu "File-Update" selection: */ + custControls[ecCustName]~setReadOnly(.true) + custControls[ecCustAddr]~setReadOnly(.true) + custControls[ecCustZip]~setReadOnly(.true) + custControls[ecCustDiscount]~setReadOnly(.true) + self~disableControl("IDC_CUST_BTN_RECORDCHANGES") + + + /*---------------------------------------------------------------------------- + Show Last Order - displays mock sales order info in the Last_Order_Details + field; info is hard-coded in this method. --*/ + ::METHOD showLastOrder unguarded + expose CustControls + -- Notionally get last order from "SalesOrder" component. + orderDate="12/2/11"; orderNum = "AB123"; orderTotal = "$524.58" + lastOrder = orderDate " " orderNum " " orderTotal + custControls[stLastOrder]~setText(lastOrder) + + + /*---------------------------------------------------------------------------- + Application Methods + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + /*---------------------------------------------------------------------------- + showData - displays data in the dialog's controls. */ + ::METHOD showData + expose custData custControls + -- Show CustNo and CustName: + custControls[ecCustNo]~setText(custData["CustNo"]) + custControls[ecCustName]~setText(custData["CustName"]) + -- Re-format Cust Address from a comma-separated string into a -- Ex07 + -- line-end-separated string. + strCustAddr = custData["CustAddr"]~changeStr(",",.endOfLine) + custControls[ecCustAddr]~setText(strCustAddr) + -- Finally, show Zip and Discount: + custControls[ecCustZip]~setText(custData["Zip"]) + custControls[ecCustDiscount]~setText(custData["CustDisc"]) + + + /*-------------------------------------------------------------------------- + checkForChanges - after "Record Changes" actioned by the user, check whether + any data has actually changed. If it has: (a) assign new data to old data; + (b) return .true. If it hasn't: return .false. + Note: cannot just compare the two directories since data format in Address + is different. --*/ + ::METHOD checkForChanges + expose custData newCustData + changed = .false + if newCustData[custName] \= custData[custName] then do + custData[custName] = newCustData[custName] + changed = .true + end + if custData[custAddr] \= newCustData[custAddr] then changed = .true + if newCustData[custZip] \= custData[custZip] then do + custdata[custZip] = newCustData[custZip] + changed = .true + end + if newCustData[custDiscount] \= custData[custDiscount] then do + custData[custDiscount] = newCustData[custDiscount] + changed = .true + end + -- If no changes after all, display message box: + if \changed then do + msg = .HRScv~nilChanged + hwnd = self~dlgHandle + answer = MessageDialog(msg,hwnd,.HRScv~nilChangedCap,"OK","WARNING","DEFBUTTON2 APPLMODAL") + end + else do + custData = newCustData + end + return changed + +/*============================================================================*/ + + +/*////////////////////////////////////////////////////////////////////////////// + ============================================================================== + Human-Readable Strings (HRScv) v02-04 13Jan12 + -------- + This class provides constant character strings for user-visible messages. + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + +::CLASS HRScv PRIVATE -- Human-Readable Strings + ::CONSTANT nilChanged "Nothing was changed! Update not done." + ::CONSTANT nilChangedCap "Update Customer" + ::CONSTANT noPrint "The 'Print...' menu item is not yet implemented." + ::CONSTANT noPrintCap "*Customer Name*" + ::CONSTANT dlgTitle "*Customer*" + ::CONSTANT useList "Please use the Customer List to create a new Customer (not yet implemented)." + ::CONSTANT useListCap "Create New Customer" +/*============================================================================*/ + Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.BMP =================================================================== (Binary files differ) Index: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.BMP =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.BMP 2013-10-14 23:41:32 UTC (rev 9471) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.BMP 2013-10-16 13:03:28 UTC (rev 9472) Property changes on: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.BMP ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.ico =================================================================== (Binary files differ) Index: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.ico =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.ico 2013-10-14 23:41:32 UTC (rev 9471) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.ico 2013-10-16 13:03:28 UTC (rev 9472) Property changes on: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/CustList.ico ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.cur =================================================================== (Binary files differ) Index: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.cur =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.cur 2013-10-14 23:41:32 UTC (rev 9471) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.cur 2013-10-16 13:03:28 UTC (rev 9472) Property changes on: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.cur ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.ico =================================================================== (Binary files differ) Index: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.ico =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.ico 2013-10-14 23:41:32 UTC (rev 9471) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.ico 2013-10-16 13:03:28 UTC (rev 9472) Property changes on: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Customer/bmp/Customer.ico ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonFile.txt =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonFile.txt (rev 0) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonFile.txt 2013-10-16 13:03:28 UTC (rev 9472) @@ -0,0 +1,6 @@ +number | familyName | firstName | dob | jobDescr | baseSalary +PA100 | Bloggs | Joseph | 721224 | Director | 250400 +PA150 | James | Alfred | 751513 | Packer | 38000 +PB100 | Smithson | John | 951704 | Programmer | 40170 +PB104 | Patterson | Patricia | 790331 | Office Manager | 76430 +PC200 | Cardaj | Jacob | 740615 | Plant Manager | 148250 Added: ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonListView.rex =================================================================== --- ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonListView.rex (rev 0) +++ ooDialog/trunk/examples/userGuide/exercises/Exercise09/Extras/Person/PersonListView.rex 2013-10-16 13:03:28 UTC (rev 9472) @@ -0,0 +1,123 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2011-2013 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names ... [truncated message content] |