|
|
1.1 ! root 1: {\rtf0\ansi{\fonttbl\f2\fswiss Helvetica;\f5\fnil Bookman-Light;} ! 2: \paperw10800 ! 3: \paperh6720 ! 4: \margl120 ! 5: \margr100 ! 6: {\colortbl;\red0\green0\blue0;} ! 7: \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f2\b\i0\ulnone\fs36\fc0\cf0 Ledger ! 8: \b0\fs24 \ ! 9: by Kristofer Younger, NeXT Systems Engineering\ ! 10: ! 11: \i (with help from Joe Freeman's runtime wizardry)\ ! 12: ! 13: \i0 \ ! 14: ! 15: \b\fs28 Overview ! 16: \b0\fs24 \ ! 17: \ ! 18: Ledger is a simple example of using IXRecordManagers for the storage of simple transaction data. It uses DBTableViews to disply the list of data held by each IXRecordManager.\ ! 19: ! 20: \fc1\cf1 \ ! 21: ! 22: \b\fs28 Program Organization ! 23: \b0\fs24 \ ! 24: \ ! 25: ! 26: \b Major Classes in the Application ! 27: \b0 \ ! 28: \ ! 29: ! 30: \pard\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1900\li1900\fc1\cf1 LedgerController Used to maintain the Ledger document - controls all access from the UI into the IXRecordManager.\ ! 31: ! 32: \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fc1\cf1 \ ! 33: ! 34: \pard\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1900\li1900\fc1\cf1 MainDelegate Contains the schema information and the controller methods for the simple Account management. (Add, Open, Close, etc.)\ ! 35: \ ! 36: MoneyWell Used to handle the transfer of non-zero amounts from one account to another. Uses the new 3.0 drag service.\ ! 37: \ ! 38: JFTableViewLoader This object loads and provides editing for data bearing objects fronted by a DBTableView. It uses two lists, a data list and a config list. The data list holds the data bearing objects � in this case, it is an IXPostingList of Transaction objects. The config list holds JFTableVectorConfiguration objects, used to bind columns in the DBTableView to ivars in the data bearing objects. This object knows how to fill the DBTableView and how to pass edits from the DBTableView back into the objects in the data list.\ ! 39: \ ! 40: ! 41: \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b\fc1\cf1 Other Peculiarities ! 42: \b0 \ ! 43: ! 44: \pard\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1900\li1900\fc1\cf1 GlobalThings Keeps a monotonically increasing serial number to label the Transaction objects so that they stay in order. There is an IXAttribute (index) on this ivar used to order the transactions in the tableview (of the LedgerController.)\ ! 45: \ ! 46: ! 47: \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0\cf0 This is the view of the schema inside of the Ledger.store. The named objects are in "" and the classes of these objects are in (). \ ! 48: \ ! 49: ! 50: {{\NeXTGraphic1649 paste.eps \width8460 \height6480 ! 51: } ! 52: �}\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f2\b0\i0\ulnone\fs24\fc0\cf0 \ ! 53: \ ! 54: Generally, the idea is to show how to use IXRecordManagers, IXPostingLists, and DBTableViews to build a simple recordkeeping application.\ ! 55: \ ! 56: ! 57: \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b\fs28\fc1\cf1 \ ! 58: ! 59: \pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\fc1\cf1 Other References ! 60: \b0\fs24 \ ! 61: \ ! 62: Make sure you look through Chapter 7 of the NeXTSTEP General Reference.\ ! 63: This example uses IXKit extensively, so it is valid for 3.0 and 3.1.\ ! 64: \ ! 65: ! 66: \b\fs28 Change History (optional) ! 67: \b0\fs24 \ ! 68: \ ! 69: 06/Jan/93 First release of Ledger Code.\ ! 70: 23/Jan/93 Cleaned up for 3.1 release.\ ! 71: \ ! 72: ! 73: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.