|
|
1.1 root 1:
2: /*
3: * JFTableVectorConfiguration
4: * Written by Joe Freeman
5: *
6: * A list of these configuration objects is fed to a JFTableViewLoader
7: * to tell it what ivars and titles map into a DBTableView
8: */
9: #import <appkit/appkit.h>
10:
11: @interface JFTableVectorConfiguration:Object
12: {
13: /* vars in this block are archived */
14: const char *templateName; /* class name of the template */
15: const char *title;
16: const char *ivarName;
17:
18: /* these are cached so only figure out once */
19: BOOL kindOfStringTable; /* funny hack put in for kris */
20: Ivar ivarInfo; /* ivar_name ,ivar_type, ivar_offset */
21: SEL setMethod;
22: SEL getMethod;
23: Class template; /* only used when rebuilding */
24: }
25:
26: /*======================================================================
27: * designated initializer
28: *======================================================================*/
29:
30: - initDataClassName:(const char *)aString
31: titleName:(const char *)newTitle
32: ivarName:(const char *)newIvar;
33:
34: /*======================================================================
35: * setup methods for this configuration object
36: *======================================================================*/
37:
38: /* we give the class by name, because we continue to try and look
39: * up the class, so we can configure this object without the data
40: * class being linked into the application
41: */
42: - setDataClassName:(const char *)aString;
43: /* this will become the title of the column */
44: - setTitle:(const char *)newTitle; /* DOES NOT MAKE COPY */
45: /* this supports a special case. subclass of NXStringTable
46: * may put the key to one of their elements here instead of an ivar
47: * this class looks to see if it is a subclass of an NXStringTable
48: */
49: - setIvarName:(const char *)newIvar; /* DOES NOT MAKE COPY */
50:
51: - (const char *)dataClassName;
52: - (const char *)title;
53: - (const char *)ivarName;
54:
55: /*======================================================================
56: * archiving support (for the palette!)
57: *======================================================================*/
58:
59: - awake;
60: - read:(NXTypedStream *)typedStream;
61: - write:(NXTypedStream *)typedStream;
62:
63:
64: /*======================================================================
65: * use this thing to transfer data from dbvalues to datastore objects
66: *======================================================================*/
67:
68: /*
69: * Load up the DBValue object (aValue) from the portion of the
70: * dataObject specified by this configuration object
71: */
72: - getValueFromObject:dataObject into:aValue;
73:
74: /*
75: * save the dbvalue object into the portion of the data object specified by
76: * this configuration object
77: */
78: - setValueForObject:dataObject from:aValue;
79:
80: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.