pdf:extending
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
pdf:extending [2016/03/24 10:58] – [Add attributes] christian | pdf:extending [2016/03/24 12:08] – [Customize an object type] christian | ||
---|---|---|---|
Line 125: | Line 125: | ||
The first two attributes (of 4) look like this in the PDF specification: | The first two attributes (of 4) look like this in the PDF specification: | ||
- | {{: | + | {{: |
The corresponding methods look like this: | The corresponding methods look like this: | ||
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 | ||
+ | </ |
/var/www/virtual/code4hl/html/dokuwiki/data/pages/pdf/extending.txt · Last modified: 2016/03/30 09:00 by christian