devexpress asp.net mvc pdf viewer : Deleting pages from pdf online SDK control API wpf azure asp.net sharepoint AppleScriptLanguageGuide33-part570

C H A P T E R   9
Script Objects
Inheritance and Delegation
331
5/5/99  ã Apple Computer, Inc.
Note
The distinction between defining a script object and 
initializing a script object is similar to the distinction 
between a class and an instance in object-oriented design. 
When you define a script object, you define a class of 
objects. When AppleScript initializes a script object, it 
creates an instance of the class. The script object gets its 
initial context (property values and handlers) from the 
script object definition, but its context can change as it 
responds to commands.
u
Inheritance and Delegation 
9
You can use AppleScript’s inheritance mechanism to define related script 
objects in terms of one another. This allows you to share property and handler 
definitions among many script objects without repeating the shared definitions. 
Inheritance and delegation are described in the following sections.
n
“Defining Inheritance” (page 331) describes how to a define a script object 
that inherits properties and handlers from another script object.
n
“How Inheritance Works” (page 332) demonstrates inheritance in the 
relationships between several parent-child scripts.
n
“The Continue Statement” (page 336) describes how to extend the behavior 
of an inherited handler without completely replacing it.
Defining Inheritance
9
Inheritance is the ability of a child script object to take on the properties and 
handlers of a parent script object. You specify inheritance with the Parent 
property. A script object that includes a Parent property inherits the properties 
and handlers of the script object listed in the Parent property. 
The script object listed in a Parent property definition is called the parent script 
object, or parent. A script object that includes a Parent property is referred to as 
a child script object, or child. The Parent property is not required. A script 
object can have many children, but a child script object can have only one 
parent.     
Deleting pages from pdf online - SDK control API:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
www.rasteredge.com
Deleting pages from pdf online - SDK control API:VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
www.rasteredge.com
C H A P T E R   9  
Script Objects
332
Inheritance and Delegation
5/5/99  ã Apple Computer, Inc.
The syntax for defining a parent script object is
( property | prop ) parent : 
variable
where
variable is a variable that contains the parent script object.
A script object must be initialized before it can be assigned as a parent of 
another script object. This means that the definition of the parent script object 
(or a command that calls a function that creates the parent script object) must 
come before the definition of the child in the same script.
How Inheritance Works
9
The inheritance relationship between script objects should be familiar to those 
who are acquainted with C++ or other object-oriented programming languages. 
A child script object that inherits the handlers and properties defined in its 
parent is like a C++ class that inherits methods and instance variables from its 
parent class. If the child does not have its own definition of a property or 
handler, it uses the inherited (hidden) property or handler. If the child has its 
own definition of a particular property or handler, then it ignores (or overrides) 
the inherited property or handler.
Figure 9-1 shows the relationship between a parent script object called 
John
and 
a simple child script object called 
Simple
. The figure includes two versions of 
the child script object. The version on the left shows the actual script object 
definition for the child script 
Simple
. The version on the right shows how the 
script object definition would look with the inherited properties and handlers 
copied in. The inherited properties and handlers are shown between dotted 
lines, to indicate that they aren’t actually a part of the script object definition for 
Simple
. As you can see, 
Simple
inherits the HowManyTimes property and the 
sayHello
handler from its parent.
Figure 9-2 shows another parent-child relationship. As in the previous example, 
the child script object inherits the HowManyTimes property and the 
sayHello
handler from its parent, 
John
. But this time, the child script object, called 
Rebel
has its own HowManyTimes property, so it doesn’t use the one inherited from 
the parent. In the figure, the inherited property that is not used is crossed out.
SDK control API:VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Enable specified pages deleting from PDF in Visual Basic .NET class. Free trial SDK library download for Visual Studio .NET program. Online source codes for
www.rasteredge.com
SDK control API:C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Free online C# class source code for deleting specified PDF pages in .NET console application. Able to remove a single page from PDF document.
www.rasteredge.com
C H A P T E R   9
Script Objects
Inheritance and Delegation
333
5/5/99  ã Apple Computer, Inc.
Figure 9-1
Relationship between a simple child script and its parent
Figure 9-2
Another child-parent relationship
Consider the parent and child script objects in the following script. At first 
glance, it might appear that the result of the 
sayHello
command is 
"Hello 
Emily"
. However, because script object 
Y
has its own 
getName
handler, the actual 
result is 
"Hello Andrew"
. The inheritance relationships for the script are shown 
in Figure 9-3.
script John
property HowManyTimes : 0
to sayHello to someone
set HowManyTimes to HowManyTimes + 1
return "Hello " & someone
end sayHello
end script
script Simple
property HowManyTimes : 0
to sayHello to someone
set HowManyTimes to HowManyTimes + 1
return "Hello " & someone
end sayHello
end script
script Simple
property parent : John
end script
parent
script John
property HowManyTimes : 0
to sayHello to someone
set HowManyTimes to HowManyTimes + 1
return "Hello " & someone
end sayHello
end script
script Rebel
property HowManyTimes : 0
to sayHello to someone
set HowManyTimes to HowManyTimes + 1
return "Hello " & someone
end sayHello
property HowManyTimes : 10
end script
script Rebel
property parent : John
property HowManyTimes : 10
end script
parent
SDK control API:C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
split PDF file into two or small files, you may refer to this online guide adding an (empty) page to a PDF and adding empty pages to a PDF from a Deleting Pages.
www.rasteredge.com
SDK control API:VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
PDF file into two or small files, you may refer to this online guide. You may feel free to define some continuous PDF pages through deleting pages in VB
www.rasteredge.com
C H A P T E R   9  
Script Objects
334
Inheritance and Delegation
5/5/99  ã Apple Computer, Inc.
script X
on sayHello()
return "Hello, " & getName()
end sayHello
on getName()
return "Emily"
end getName
end script
script Y
property parent : X
on getName()
return "Andrew"
end getName
end script
tell Y to sayHello()
Figure 9-3
A more complicated child-parent relationship
Even though script 
X
in Figure 9-3 sends itself the 
getName
command, the 
command is intercepted by the child script, which substitutes its own version of 
script X
on sayHello()
return "Hello, " & getName()
end sayHello
on getName()
return "Emily"
end getName
end script
script Y
property parent : X
on getName()
return "Andrew"
end getName
end script
parent
script Y
on sayHello()
return "Hello, " & getName()
end sayHello
on getName()
return "Emily"
end getName
on getName()
return "Andrew"
end getName
end script
SDK control API:C# Word - Delete Word Document Page in C#.NET
C# Word - Delete Word Document Page in C#.NET. Provides Users with Mature Document Manipulating Function for Deleting Word Pages. Overview.
www.rasteredge.com
SDK control API:VB.NET TIFF: Modify TIFF File by Adding, Deleting & Sort TIFF
Please check following TIFF page deleting methods and &ltsummary> ''' Sort TIFF document pages in designed & profession imaging controls, PDF document, image
www.rasteredge.com
C H A P T E R   9
Script Objects
Inheritance and Delegation
335
5/5/99  ã Apple Computer, Inc.
the 
getName
handler. AppleScript always maintains the first target of a 
command as the “self” to which inherited commands are sent, redirecting to the 
child any inherited commands the parent sends to itself.
The relationship between a parent script object and its child script objects is 
dynamic. If the properties of the parent change, so do the inherited properties 
of the children. For example, the script object 
Simple
in the following script 
inherits its Vegetable property from script object 
John
.
script John
property Vegetable : "Spinach"
end script
script Simple
property parent : John
end script
set Vegetable of John to "Swiss chard"
Vegetable of Simple
--result: "Swiss chard"
When you change the Vegetable property of script object 
John
with the Set 
command, you also change the Vegetable property of the child script object 
Simple
. The result of the last line of the script is 
"Swiss chard"
.
Similarly, if a child changes one of its inherited properties, the value of the 
parent property changes. For example, the script object 
JohnSon
in the following 
script inherits the Vegetable property from script object 
John
.
script John
property Vegetable : "Spinach"
end script
script JohnSon
property parent : John
on changeVegetable()
set my Vegetable to "Zucchini"
end changeVegetable
end script
tell JohnSon to changeVegetable()
Vegetable of John
--result: "Zucchini"
SDK control API:C# PowerPoint - Delete PowerPoint Document Page in C#.NET
C# PowerPoint - Delete PowerPoint Document Page in C#.NET. Provides Users with Mature Document Manipulating Function for Deleting PowerPoint Pages. Overview.
www.rasteredge.com
SDK control API:VB.NET TIFF: An Easy VB.NET Solution to Delete or Remove TIFF File
also empowers users to insert blank pages into TIFF I have tried the function of deleting page from powerful & profession imaging controls, PDF document, image
www.rasteredge.com
C H A P T E R   9  
Script Objects
336
Inheritance and Delegation
5/5/99  ã Apple Computer, Inc.
When you change the Vegetable property of script object 
JohnSon
to 
"Zucchini"
with the 
changeVegetable
command, the Vegetable property of script object 
John
also changes.
The previous example demonstrates an important point about inherited 
properties: to refer to an inherited property from within a child script object, 
you must use the reserved word 
my
or 
of me
to indicate that the value to which 
you’re referring is a property of the current script object. (You can also use the 
words 
of parent
to indicate that the value is a property of the parent script 
object.) If you don’t, AppleScript assumes the value is a local variable.
For example, if you refer to 
Vegetable
instead of 
my Vegetable
in the 
changeVegetable
handler in the previous example, the result is 
"Spinach"
.
script John
property Vegetable : "Spinach"
end script
script JohnSon
property parent : John
on changeVegetable()
set Vegetable to "Zucchini"
-- Creates a local variable called Vegetable;
-- doesn't change value of the parent's Vegetable property.
end changeVegetable
end script
tell JohnSon to changeVegetable()
Vegetable of John
--result: "Spinach"
The Continue Statement 
9
Normally, if a child script object and its parent both have handlers for the same 
command, the child uses its own handler. However, the handler in a child script 
object can handle a command first, and then use a Continue statement to call 
the handler for the same command in the parent.
The use of a Continue statement to call a handler in a parent script object is 
called delegation. By delegating commands to a parent script object, a child can 
extend the behavior of a handler contained in the parent without having to 
SDK control API:C# PDF remove image library: remove, delete images from PDF in C#.
NET comment annotate PDF, VB.NET delete PDF pages, VB.NET Provide C# Demo Code for Deleting and Removing Image Free .NET PDF SDK library download and online C#
www.rasteredge.com
SDK control API:C#: How to Delete Cached Files from Your Web Viewer
PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET VB.NET How-to, VB.NET PDF, VB.NET Word Visual C#.NET Developers the Ways of Deleting Cache Files.
www.rasteredge.com
C H A P T E R   9
Script Objects
Inheritance and Delegation
337
5/5/99  ã Apple Computer, Inc.
repeat the entire handler definition. After the parent handles the command, 
AppleScript continues at the place in the child where the Continue statement 
was called. Handlers in child script objects that contain Continue statements are 
similar to wrapper methods in object-oriented programming. 
The syntax of a Continue statement is
continue 
commandName
parameterList
where
commandName is the name of the current command.
parameterList is the list of parameters to be passed with the command. The list 
must follow the same format as the parameter definitions in the handler 
definition for the command. For handlers with labeled parameters, this means 
that the parameter labels must match those in the handler definition. For 
handlers with positional parameters, the parameters must appear in the correct 
order. You can list actual values or parameter variables. If you list actual values, 
those values replace the parameter values that were specified in the original 
command. If you list parameter variables, the Continue statement passes the 
parameter values that were specified in the original command. 
The following script includes two script object definitions similar to those 
shown in Figure 9-1 (page 333). The first, 
Elizabeth
, works just like the script 
John
in the figure. The second, 
ChildOfElizabeth
, includes a handler with a 
Continue statement that is not included in the child script object (
Simple
) shown 
in the figure.
script Elizabeth
property HowManyTimes : 0
to sayHello to someone
set HowManyTimes to HowManyTimes + 1
return "Hello " & someone
end sayHello
end script
script ChildOfElizabeth
property parent : Elizabeth
on sayHello to someone
if my HowManyTimes > 3 then
return "No, I'm tired of saying hello."
else
C H A P T E R   9  
Script Objects
338
Inheritance and Delegation
5/5/99  ã Apple Computer, Inc.
continue sayHello to someone
end if
end sayHello
end script
tell Elizabeth to sayHello to "Matt" 
--result: "Hello Matt", no matter how often the tell is executed
tell ChildOfElizabeth to sayHello to "Bob" 
--result: "Hello Bob", the first four times the tell is executed;
--
after the fourth time: "No, I’m tired of saying hello."
In the preceding example, the handler defined by 
ChildOfElizabeth
for the 
sayHello
command checks the value of the HowManyTimes property each time 
the handler is run. If the value is greater than 3, 
ChildOfElizabeth
returns a 
message refusing to say hello. Otherwise, 
ChildOfElizabeth
calls the 
sayHello
handler in the parent script object (
Elizabeth
), which returns the standard hello 
message. The word 
someone
in the Continue statement is a parameter variable. It 
indicates that the parameter received with the original 
sayHello
command will 
be passed to the handler in the parent script.
Note
The reserved word 
my
in the statement 
if
my HowManyTimes > 10
in the previous example is 
required to indicate that 
HowManyTimes
is a property of the 
script object. Without the word 
my
, AppleScript assumes 
that 
HowManyTimes
is an undefined local variable.
u
A Continue statement can change the parameters of a command before 
delegating it. For example, suppose the following script object is defined in the 
same script as the preceding example. The first Continue statement changes the 
direct parameter of the 
sayHello
command from 
"Bill"
to 
"William"
. It does 
this by specifying the value 
"William"
instead of the parameter variable 
someone
.
script AnotherChildOfElizabeth
property parent : Elizabeth
on sayHello to someone
if someone = "Bill" then
continue sayHello to "William"
else
continue sayHello to someone
C H A P T E R   9
Script Objects
Inheritance and Delegation
339
5/5/99  ã Apple Computer, Inc.
end if
end sayHello
end script
tell AnotherChildOfElizabeth to sayHello to "Matt"
--result: "Hello Matt"
tell AnotherChildOfElizabeth to sayHello to "Bill"
--result: "Hello William"
If you override a parent’s handler in this manner, the reserved words 
me
and 
my
in the parent’s handler no longer refer to the parent, as demonstrated in the 
example that follows.
script Hugh
on identify()
me
end identify
end script
script Andrea
property parent : Hugh
on identify()
continue identify()
end identify
end script
tell Hugh to identify()
--result: «script Hugh»
tell Andrea to identify()
--result: «script Andrea»
Using Continue Statements to Pass Commands to Applications
9
A scripting addition command or application command sent to a script object 
doesn’t trigger any action until it is passed on to the default target application. 
As a result, you can use a command handler in script object to modify the way a 
command works.
C H A P T E R   9  
Script Objects
340
Inheritance and Delegation
5/5/99  ã Apple Computer, Inc.
For example, the handler for the Beep command in the example that follows 
modifies the scripting addition version of the Beep command by displaying a 
dialog box and allowing the user to decide whether to continue or not:
script Joe
on beep
set x to display dialog ¬
"Do you really want to hear this awful noise?" ¬
buttons {"Yes", "No"}
if the button returned of x is "Yes" then ¬
continue beep -- Let scripting addition handle the beep.
end beep
end script
tell Joe to beep --result: dialog to confirm whether to beep
When AppleScript encounters the Tell statement, it sends a Beep command to 
script 
Joe
. The Beep handler causes the default target application (for example, 
the Script Editor) to display a dialog box that gives the user a choice about 
hearing the alert sound. If the user clicks Yes, the handler uses a Continue 
statement to pass the Beep command to the default target application. If the 
user clicks No, the target application never receives the Beep command and no 
alert sound is heard.
In applications that allow you to attach script objects to application objects, you 
can use a handler for an application command in a script object to modify the 
way the application responds to the command.
For example, if a drawing application allows you to associate script objects with 
geometric shapes such as circles or squares, you could include a handler like 
this in a script object associated with a shape in a document:
on move to {x, y} 
continue move to {x, item 2 of my position}
end move
Whenever the shape the script object is associated with is named as the target of 
a Move command, the 
on move
handler handles the command by modifying one 
of the parameters and using the continue statement to pass the command on to 
the default parent—that is, the drawing application. The location specified by 
{x, item 2 of my position}
has the same horizontal coordinate as the location 
specified by the original Move command, but specifies the shape’s original 
Documents you may be interested
Documents you may be interested