Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F1127399
Invocation.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
Invocation.js
View Options
if
(
!
dojo
.
_hasResource
[
"dojox.wire.ml.Invocation"
]){
//_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo
.
_hasResource
[
"dojox.wire.ml.Invocation"
]
=
true
;
dojo
.
provide
(
"dojox.wire.ml.Invocation"
);
dojo
.
require
(
"dojox.wire.ml.Action"
);
dojo
.
declare
(
"dojox.wire.ml.Invocation"
,
dojox
.
wire
.
ml
.
Action
,
{
// summary:
// A widget to invoke a method or publish a topic
// description:
// This widget represents a controller task to invoke a method or
// publish a topic when an event (a function) or a topic is issued.
// object:
// A scope of a method to invoke
// method:
// A name of a method to invoke
// topic:
// A name of a topic to publish
// parameters:
// Arguments for the method or the topic
// result:
// A property to store a return value of the method call
// error:
// A property to store an error on the method call
object
:
""
,
method
:
""
,
topic
:
""
,
parameters
:
""
,
result
:
""
,
error
:
""
,
_run
:
function
(){
// summary:
// Invoke a method or publish a topic
// description:
// If 'topic' is specified, the topic is published with arguments
// specified to 'parameters'.
// If 'method' and 'object' are specified, the method is invoked
// with arguments specified to 'parameters' and set the return
// value to a property specified to 'result'.
// 'object', 'parameters' and 'result' can specify properties of
// a widget or an DOM element with the dotted notation.
// If 'parameters' are omitted, the arguments to this method are
// passed as is.
if
(
this
.
topic
){
var
args
=
this
.
_getParameters
(
arguments
);
try
{
dojo
.
publish
(
this
.
topic
,
args
);
this
.
onComplete
();
}
catch
(
e
){
this
.
onError
(
e
);
}
}
else
if
(
this
.
method
){
var
scope
=
(
this
.
object
?
dojox
.
wire
.
ml
.
_getValue
(
this
.
object
)
:
dojo
.
global
);
if
(
!
scope
){
return
;
//undefined
}
var
args
=
this
.
_getParameters
(
arguments
);
var
func
=
scope
[
this
.
method
];
if
(
!
func
){
func
=
scope
.
callMethod
;
if
(
!
func
){
return
;
//undefined
}
args
=
[
this
.
method
,
args
];
}
try
{
var
connected
=
false
;
if
(
scope
.
getFeatures
){
var
features
=
scope
.
getFeatures
();
if
((
this
.
method
==
"fetch"
&&
features
[
"dojo.data.api.Read"
])
||
(
this
.
method
==
"save"
&&
features
[
"dojo.data.api.Write"
])){
var
arg
=
args
[
0
];
if
(
!
arg
.
onComplete
){
arg
.
onComplete
=
function
(){};
}
//dojo.connect(arg, "onComplete", this, "onComplete");
this
.
connect
(
arg
,
"onComplete"
,
"onComplete"
);
if
(
!
arg
.
onError
){
arg
.
onError
=
function
(){};
}
//dojo.connect(arg, "onError", this, "onError");
this
.
connect
(
arg
,
"onError"
,
"onError"
);
connected
=
true
;
}
}
var
r
=
func
.
apply
(
scope
,
args
);
if
(
!
connected
){
if
(
r
&&
(
r
instanceof
dojo
.
Deferred
)){
var
self
=
this
;
r
.
addCallbacks
(
function
(
result
){
self
.
onComplete
(
result
);},
function
(
error
){
self
.
onError
(
error
);}
);
}
else
{
this
.
onComplete
(
r
);
}
}
}
catch
(
e
){
this
.
onError
(
e
);
}
}
},
onComplete
:
function
(
/*anything*/
result
){
// summary:
// A function called when the method or the topic publish
// completed
// description:
// If 'result' attribute is specified, the result object also set
// to the specified property.
// result:
// The return value of a method or undefined for a topic
if
(
this
.
result
){
dojox
.
wire
.
ml
.
_setValue
(
this
.
result
,
result
);
}
if
(
this
.
error
){
// clear error
dojox
.
wire
.
ml
.
_setValue
(
this
.
error
,
""
);
}
},
onError
:
function
(
/*anything*/
error
){
// summary:
// A function called on an error occurs
// description:
// If 'error' attribute is specified, the error object also set to
// the specified property.
// error:
// The exception or error occurred
if
(
this
.
error
){
if
(
error
&&
error
.
message
){
error
=
error
.
message
;
}
dojox
.
wire
.
ml
.
_setValue
(
this
.
error
,
error
);
}
},
_getParameters
:
function
(
/*Array*/
args
){
// summary:
// Returns arguments to a method or topic to invoke
// description:
// This method retunrs an array of arguments specified by
// 'parameters' attribute, a comma-separated list of IDs and
// their properties in a dotted notation.
// If 'parameters' are omitted, the original arguments are
// used.
// args:
// Arguments to a trigger event or topic
if
(
!
this
.
parameters
){
// use arguments as is
return
args
;
//Array
}
var
parameters
=
[];
var
list
=
this
.
parameters
.
split
(
","
);
if
(
list
.
length
==
1
){
var
parameter
=
dojox
.
wire
.
ml
.
_getValue
(
list
[
0
],
args
);
if
(
dojo
.
isArray
(
parameter
)){
parameters
=
parameter
;
}
else
{
parameters
.
push
(
parameter
);
}
}
else
{
for
(
var
i
in
list
){
parameters
.
push
(
dojox
.
wire
.
ml
.
_getValue
(
list
[
i
],
args
));
}
}
return
parameters
;
//Array
}
});
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jun 19, 08:33 (3 w, 8 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27253
Default Alt Text
Invocation.js (4 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment