Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
extending [2016/03/24 10:59] christian [Add attributes] |
extending [2016/09/28 23:05] (current) 93.204.170.83 ↷ Links adapted because of a move operation |
||
---|---|---|---|
Line 42: | Line 42: | ||
=== Choose a class name === | === Choose a class name === | ||
- | As name for this example, I use '' | + | As name for this example, I use '' |
=== Choose the superclass === | === Choose the superclass === | ||
Line 143: | Line 143: | ||
</ | </ | ||
- | add attribute method | + | An attribute method |
- | add pragmas | + | === The type: pragma === |
+ | |||
+ | Mandatory is the ''< | ||
+ | |||
+ | === The documentation pragma === | ||
+ | |||
+ | The documentation is specified in the ''< | ||
+ | |||
+ | The documentation is taken directly from the specification and edited, so that all information is removed which is expressed directly in the method. In our example, the " | ||
+ | |||
+ | The description of the default value is also removed, because this is evident from the access code. | ||
+ | |||
+ | Also references to other parts of the specification are removed (which is not the case in the example). | ||
+ | |||
+ | === The version: pragma === | ||
+ | |||
+ | Often, new attributes were added with later PDF versions. The version of an attribute, if it is higher than the version of the type, can be noted with the ''< | ||
+ | |||
+ | === The access code === | ||
+ | |||
+ | The access code can be either | ||
+ | <code smalltalk> | ||
+ | ^self objectAt: #Type ifAbsent: [#Border asPDF] | ||
+ | </ | ||
+ | |||
+ | for optional attributes with a default value, or | ||
+ | <code smalltalk> | ||
+ | ^self objectAt: #Type | ||
+ | </ | ||
+ | |||
+ | for a required attribute. This will raise an error if the attribute is not present in the object. | ||
+ | |||
+ | The method will return the object of the value of the attribute. The object is either stored directly in the attribute or a reference to it. In any case, the object is returned. To access the value (object or reference), the following methods can be used: | ||
+ | <code smalltalk> | ||
+ | ^self at: #Type ifAbsent: [#Border asPDF] | ||
+ | </ | ||
+ | <code smalltalk> | ||
+ | ^self at: #Type | ||
+ | </ | ||
- | copy and edit comment | ||
===== Customize an object type ===== | ===== Customize an object type ===== | ||
- | docs, icon, string, attributes | + | Now, the PDF type is sufficiently defined to be usefully displayed in the PDFExplorer. But more can be done by defining some of the following methods. |
+ | |||
+ | ==== Optional customization methods ==== | ||
+ | |||
+ | === Display name === | ||
+ | |||
+ | The method '' | ||
+ | |||
+ | === Icon === | ||
+ | |||
+ | The method '' | ||
+ | |||
+ | === Excluding | ||
+ | |||
+ | Some attributes clutter the treeview on the left side of the PDFExplorer. For example, every '' | ||
+ | |||
+ | By defining the method '' | ||
+ | |||
+ | <code smalltalk> | ||
+ | displayKeysToOmit | ||
+ | ^super displayKeysToOmit | ||
+ | </ |