Adobe 65007312 Programming Guide - Page 14

Creating objects, Class, Description, Object creation, Namespace

Page 14 highlights

CHAPTER 1: Using the Lightroom SDK The Lightroom SDK scripting environment 14 Namespace LrView LrXml Description Both a namespace and a class. The namespace functions allow you to obtain the factory object, create bindings between UI elements and data tables, and share placement between UI elements. Both a namespace and a class. The namespace functions allows you to create an XML builder object, and to parse existing XML documents into read-only XML DOM objects. Creating objects When you use the import() function with a class, it returns a constructor function, rather than a table. Use the constructor to create objects, which you can initialize with specific property values. You can then access the functions and properties through the object using colon notation. This example shows the standard way to create and use an object: local LrLogger = import 'LrLogger' -- LrLogger is a constructor function, not a table with more functions local logger = LrLogger( 'myPlugin' ) -- Calling this function returns an instance of LrLogger, which is assigned to -- local variable logger. Notice the lowercase naming convention for objects. logger:enable( 'print' ) logger:warn( 'something bad happened' ) -- Method calls on the object that was just created. There are some exceptions to this technique. You can create some objects using functions in other objects or namespaces, such as LrApplication.activeCatalog(). Others are created and passed to you by Lightroom. The Lightroom SDK defines these classes; for complete details, see the Lightroom SDK API Reference. Class LrCatalog LrCollection Description Provides access to a Lightroom catalog. Provides access to a photo collection. Object creation Returned by LrApplication.activeCatalog() Most classes provide a pointer back to the catalog that contains an object, such as LrPhoto.catalog. Returned by: LrCatalog:createCollection() LrCatalog:createSmartCollection() LrCatalog:getActiveSources() LrCatalog:getCollections() LrCatalog:getCollectionByLocalIdentifier() LrCollectionSet:getChildren() LrCollectionSet:getChildCollections LrPhoto:getContainedCollections()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204

C
HAPTER
1: Using the Lightroom SDK
The Lightroom SDK scripting environment
14
Creating objects
When you use the
import()
function with a class, it returns a constructor function, rather than a table. Use
the constructor to create objects, which you can initialize with specific property values. You can then
access the functions and properties through the object using colon notation.
This example shows the standard way to create and use an object:
local LrLogger = import 'LrLogger'
-- LrLogger is a constructor function, not a table with more functions
local logger = LrLogger( 'myPlugin' )
-- Calling this function returns an instance of LrLogger, which is assigned to
-- local variable logger. Notice the lowercase naming convention for objects.
logger:enable( 'print' )
logger:warn( 'something bad happened' )
-- Method calls on the object that was just created.
There are some exceptions to this technique. You can create some objects using functions in other objects
or namespaces, such as
LrApplication.activeCatalog()
. Others are created and passed to you by
Lightroom.
The Lightroom SDK defines these classes; for complete details, see the
Lightroom SDK API Reference
.
LrView
Both a namespace and a class. The namespace functions allow you to obtain
the factory object, create bindings between UI elements and data tables, and
share placement between UI elements.
LrXml
Both a namespace and a class. The namespace functions allows you to create
an XML builder object, and to parse existing XML documents into read-only
XML DOM objects.
Class
Description
Object creation
LrCatalog
Provides access to a
Lightroom catalog.
Returned by
LrApplication.activeCatalog()
Most classes provide a pointer back to the catalog
that contains an object, such as
LrPhoto.catalog
.
LrCollection
Provides access to a
photo collection.
Returned by:
LrCatalog:createCollection()
LrCatalog:createSmartCollection()
LrCatalog:getActiveSources()
LrCatalog:getCollections()
LrCatalog:getCollectionByLocalIdentifier()
LrCollectionSet:getChildren()
LrCollectionSet:getChildCollections
LrPhoto:getContainedCollections()
Namespace
Description