1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | OSF.OUtil.setNamespace("XLS", OSF.DDA);
|
12 | OSF.OUtil.augmentList(Microsoft.Office.WebExtension.FilterType, {
|
13 | OnlyVisible: "onlyVisible"
|
14 | });
|
15 | OSF.OUtil.augmentList(Microsoft.Office.WebExtension.EventType, {
|
16 | SettingsChanged: "settingsChanged"
|
17 | });
|
18 | OSF.DDA.XLS.UniqueArguments={
|
19 | Data: "Data",
|
20 | Properties : "Properties",
|
21 | BindingRequest: "DdaBindingsMethod",
|
22 | BindingResponse: "Bindings",
|
23 | SingleBindingResponse: "singleBindingResponse",
|
24 | GetData: "DdaGetBindingData",
|
25 | AddRowsColumns: "DdaAddRowsColumns",
|
26 | SetData: "DdaSetBindingData",
|
27 | SettingsRequest: "DdaSettingsMethod",
|
28 | BindingEventSource: "ddaBinding"
|
29 | };
|
30 | OSF.DDA.XLS.SettingsTranslator=(function () {
|
31 | var keyIndex=0;
|
32 | var valueIndex=1;
|
33 | return {
|
34 | read: function OSF_DDA_XLS_SettingsTranslator$read(payload) {
|
35 | var serializedSettings={};
|
36 | var settingsPayload=payload.Settings;
|
37 | for (var index in settingsPayload) {
|
38 | var setting=settingsPayload[index];
|
39 | serializedSettings[setting[keyIndex]]=setting[valueIndex];
|
40 | }
|
41 | return serializedSettings;
|
42 | },
|
43 | write: function OSF_DDA_XLS_SettingsTranslator$write(serializedSettings) {
|
44 | var settingsPayload=[];
|
45 | for (var key in serializedSettings) {
|
46 | var setting=[];
|
47 | setting[keyIndex]=key;
|
48 | setting[valueIndex]=serializedSettings[key];
|
49 | settingsPayload.push(setting);
|
50 | }
|
51 | return settingsPayload;
|
52 | }
|
53 | }
|
54 | })();
|
55 | OSF.OUtil.setNamespace("Delegate", OSF.DDA.XLS);
|
56 | OSF.DDA.DispIdHost.getXLSDelegateMethods=function OSF_DDA_DispIdHost_getXLSDelegateMethods() {
|
57 | var delegateMethods={};
|
58 | delegateMethods[OSF.DDA.DispIdHost.Delegates.ExecuteAsync]=OSF.DDA.XLS.Delegate.executeAsync;
|
59 | delegateMethods[OSF.DDA.DispIdHost.Delegates.RegisterEventAsync]=OSF.DDA.XLS.Delegate.registerEventAsync;
|
60 | delegateMethods[OSF.DDA.DispIdHost.Delegates.UnregisterEventAsync]=OSF.DDA.XLS.Delegate.unregisterEventAsync;
|
61 | return delegateMethods;
|
62 | };
|
63 | OSF.DDA.XLS.Delegate.SpecialProcessor=function OSF_DDA_XLS_Delegate_SpecialProcessor() {
|
64 | var complexTypes=[
|
65 | OSF.DDA.PropertyDescriptors.BindingProperties,
|
66 | OSF.DDA.XLS.UniqueArguments.SingleBindingResponse,
|
67 | OSF.DDA.XLS.UniqueArguments.BindingRequest,
|
68 | OSF.DDA.XLS.UniqueArguments.BindingResponse,
|
69 | OSF.DDA.XLS.UniqueArguments.GetData,
|
70 | OSF.DDA.XLS.UniqueArguments.AddRowsColumns,
|
71 | OSF.DDA.XLS.UniqueArguments.SetData,
|
72 | OSF.DDA.XLS.UniqueArguments.SettingsRequest,
|
73 | OSF.DDA.XLS.UniqueArguments.BindingEventSource,
|
74 | OSF.DDA.EventDescriptors.BindingSelectionChangedEvent
|
75 | ];
|
76 | var dynamicTypes={};
|
77 | dynamicTypes[Microsoft.Office.WebExtension.Parameters.Data]=(function () {
|
78 | var tableRows="Rows";
|
79 | var tableHeaders="Headers";
|
80 | return {
|
81 | toHost: function OSF_DDA_XLS_Delegate_SpecialProcessor_Data$toHost(data) {
|
82 | if (typeof data !="string" && data[OSF.DDA.TableDataProperties.TableRows] !==undefined) {
|
83 | var tableData={};
|
84 | tableData[tableRows]=data[OSF.DDA.TableDataProperties.TableRows];
|
85 | tableData[tableHeaders]=data[OSF.DDA.TableDataProperties.TableHeaders];
|
86 | data=tableData;
|
87 | }
|
88 | else if (OSF.DDA.DataCoercion.determineCoercionType(data)==Microsoft.Office.WebExtension.CoercionType.Text) {
|
89 | data=[[data]];
|
90 | }
|
91 | return data;
|
92 | },
|
93 | fromHost: function OSF_DDA_XLS_Delegate_SpecialProcessor_Data$fromHost(hostArgs) {
|
94 | var ret;
|
95 | if (hostArgs[tableRows] !=undefined) {
|
96 | ret={};
|
97 | ret[OSF.DDA.TableDataProperties.TableRows]=hostArgs[tableRows];
|
98 | ret[OSF.DDA.TableDataProperties.TableHeaders]=hostArgs[tableHeaders];
|
99 | }
|
100 | else {
|
101 | ret=hostArgs;
|
102 | }
|
103 | return ret;
|
104 | }
|
105 | }
|
106 | })();
|
107 | dynamicTypes[OSF.DDA.SettingsManager.SerializedSettings]={
|
108 | toHost: OSF.DDA.XLS.SettingsTranslator.write,
|
109 | fromHost: OSF.DDA.XLS.SettingsTranslator.read
|
110 | };
|
111 | OSF.DDA.XLS.Delegate.SpecialProcessor.uber.constructor.call(this, complexTypes, dynamicTypes);
|
112 | this.pack=function OSF_DDA_XLS_Delegate_SpecialProcessor$pack(param, arg) {
|
113 | var value;
|
114 | if (this.isDynamicType(param)) {
|
115 | value=dynamicTypes[param].toHost(arg);
|
116 | }
|
117 | else {
|
118 | value=arg;
|
119 | }
|
120 | return value;
|
121 | };
|
122 | this.unpack=function OSF_DDA_XLS_Delegate_SpecialProcessor$unpack(param, arg) {
|
123 | var value;
|
124 | if (this.isDynamicType(param)) {
|
125 | value=dynamicTypes[param].fromHost(arg);
|
126 | }
|
127 | else {
|
128 | value=arg;
|
129 | }
|
130 | return value;
|
131 | };
|
132 | };
|
133 | OSF.OUtil.extend(OSF.DDA.XLS.Delegate.SpecialProcessor, OSF.DDA.SpecialProcessor);
|
134 | OSF.DDA.XLS.Delegate.ParameterMap=(function () {
|
135 | var parameterMap=new OSF.DDA.HostParameterMap(new OSF.DDA.XLS.Delegate.SpecialProcessor());
|
136 | var ns;
|
137 | var self=parameterMap.self;
|
138 | function createObject(properties) {
|
139 | var obj=null;
|
140 | if (properties) {
|
141 | obj={};
|
142 | var len=properties.length;
|
143 | for (var i=0; i < len; i++) {
|
144 | obj[properties[i].name]=properties[i].value;
|
145 | }
|
146 | }
|
147 | return obj;
|
148 | }
|
149 | function define(definition) {
|
150 | var args={};
|
151 | var toHost=createObject(definition.toHost);
|
152 | if (definition.invertible) {
|
153 | args.map=toHost;
|
154 | }
|
155 | else if (definition.canonical) {
|
156 | args.toHost=args.fromHost=toHost;
|
157 | }
|
158 | else {
|
159 | args.toHost=toHost;
|
160 | args.fromHost=createObject(definition.fromHost);
|
161 | }
|
162 | parameterMap.setMapping(definition.type, args);
|
163 | }
|
164 | ns=Microsoft.Office.WebExtension.Parameters;
|
165 | define({
|
166 | type: OSF.DDA.XLS.UniqueArguments.BindingRequest,
|
167 | toHost: [
|
168 | { name: ns.ItemName, value: "ItemName" },
|
169 | { name: ns.Id, value: "BindingId" },
|
170 | { name: ns.BindingType, value: "BindingType" },
|
171 | { name: ns.PromptText, value: "PromptText" },
|
172 | { name: ns.FailOnCollision, value: "FailOnCollision" }
|
173 | ]
|
174 | });
|
175 | define({
|
176 | type: OSF.DDA.XLS.UniqueArguments.GetData,
|
177 | toHost: [
|
178 | { name: ns.Id, value: "BindingId" },
|
179 | { name: ns.CoercionType, value: "CoerceType" },
|
180 | { name: ns.ValueFormat, value: "ValueFormat" },
|
181 | { name: ns.FilterType, value: "FilterType" },
|
182 | { name: ns.StartRow, value: "StartRow" },
|
183 | { name: ns.StartColumn, value: "StartCol" },
|
184 | { name: ns.RowCount, value: "RowCount" },
|
185 | { name: ns.ColumnCount, value: "ColCount" }
|
186 | ]
|
187 | });
|
188 | define({
|
189 | type: OSF.DDA.XLS.UniqueArguments.SetData,
|
190 | toHost: [
|
191 | { name: ns.Id, value: "BindingId" },
|
192 | { name: ns.CoercionType, value: "CoerceType" },
|
193 | { name: ns.Data, value: OSF.DDA.XLS.UniqueArguments.Data },
|
194 | { name: ns.StartRow, value: "StartRow" },
|
195 | { name: ns.StartColumn, value: "StartCol" }
|
196 | ]
|
197 | });
|
198 | define({
|
199 | type: OSF.DDA.XLS.UniqueArguments.AddRowsColumns,
|
200 | toHost: [
|
201 | { name: ns.Id, value: "BindingId" },
|
202 | { name: ns.Data, value: OSF.DDA.XLS.UniqueArguments.Data }
|
203 | ]
|
204 | });
|
205 | define({
|
206 | type: OSF.DDA.XLS.UniqueArguments.SettingsRequest,
|
207 | toHost: [
|
208 | { name: ns.OverwriteIfStale, value: "OverwriteIfStale" },
|
209 | { name: OSF.DDA.SettingsManager.SerializedSettings, value: OSF.DDA.XLS.UniqueArguments.Properties }
|
210 | ],
|
211 | invertible: true
|
212 | });
|
213 | ns=Microsoft.Office.WebExtension.BindingType;
|
214 | define({
|
215 | type: Microsoft.Office.WebExtension.Parameters.BindingType,
|
216 | toHost: [
|
217 | { name: ns.Text, value: 2 },
|
218 | { name: ns.Matrix, value: 3 },
|
219 | { name: ns.Table, value: 1 }
|
220 | ],
|
221 | invertible: true
|
222 | });
|
223 | ns=OSF.DDA.BindingProperties;
|
224 | define({
|
225 | type: OSF.DDA.PropertyDescriptors.BindingProperties,
|
226 | fromHost: [
|
227 | { name: ns.Id, value: "Name" },
|
228 | { name: ns.Type, value: "BindingType" },
|
229 | { name: ns.RowCount, value: "RowCount" },
|
230 | { name: ns.ColumnCount, value: "ColCount" },
|
231 | { name: ns.HasHeaders, value: "HasHeaders" }
|
232 | ]
|
233 | });
|
234 | define({
|
235 | type: OSF.DDA.XLS.UniqueArguments.SingleBindingResponse,
|
236 | fromHost: [
|
237 | { name: OSF.DDA.PropertyDescriptors.BindingProperties, value: 0 }
|
238 | ]
|
239 | });
|
240 | define({
|
241 | type: OSF.DDA.PropertyDescriptors.Subset,
|
242 | fromHost: [
|
243 | { name: ns.StartRow, value: "StartRow" },
|
244 | { name: ns.StartColumn, value: "StartCol" },
|
245 | { name: ns.RowCount, value: "RowCount" },
|
246 | { name: ns.ColumnCount, value: "ColCount" }
|
247 | ]
|
248 | });
|
249 | ns=Microsoft.Office.WebExtension.AsyncResultStatus;
|
250 | define({
|
251 | type: OSF.DDA.PropertyDescriptors.AsyncResultStatus,
|
252 | fromHost: [
|
253 | { name: ns.Succeeded, value: 0 },
|
254 | { name: ns.Failed, value: 1 }
|
255 | ]
|
256 | });
|
257 | define({
|
258 | type: OSF.DDA.EventDescriptors.BindingSelectionChangedEvent,
|
259 | fromHost: [
|
260 | { name: OSF.DDA.PropertyDescriptors.BindingProperties, value: OSF.DDA.XLS.UniqueArguments.BindingEventSource },
|
261 | { name: OSF.DDA.PropertyDescriptors.Subset, value: OSF.DDA.PropertyDescriptors.Subset }
|
262 | ]
|
263 | });
|
264 | ns=OSF.DDA.XLS.UniqueArguments;
|
265 | var cns=OSF.DDA.MethodDispId;
|
266 | define({
|
267 | type: cns.dispidGetSelectedDataMethod,
|
268 | fromHost: [
|
269 | { name: Microsoft.Office.WebExtension.Parameters.Data, value: ns.Data }
|
270 | ],
|
271 | toHost: [
|
272 | { name: ns.GetData, value: self }
|
273 | ]
|
274 | });
|
275 | define({
|
276 | type: cns.dispidSetSelectedDataMethod,
|
277 | toHost: [
|
278 | { name: ns.SetData, value: self }
|
279 | ]
|
280 | });
|
281 | define({
|
282 | type: cns.dispidAddBindingFromSelectionMethod,
|
283 | fromHost: [
|
284 | { name: OSF.DDA.XLS.UniqueArguments.SingleBindingResponse, value: OSF.DDA.XLS.UniqueArguments.BindingResponse }
|
285 | ],
|
286 | toHost: [
|
287 | { name: ns.BindingRequest, value: self }
|
288 | ]
|
289 | });
|
290 | define({
|
291 | type: cns.dispidAddBindingFromPromptMethod,
|
292 | fromHost: [
|
293 | { name: OSF.DDA.XLS.UniqueArguments.SingleBindingResponse, value: OSF.DDA.XLS.UniqueArguments.BindingResponse }
|
294 | ],
|
295 | toHost: [
|
296 | { name: ns.BindingRequest, value: self }
|
297 | ]
|
298 | });
|
299 | define({
|
300 | type: cns.dispidAddBindingFromNamedItemMethod,
|
301 | fromHost: [
|
302 | { name: OSF.DDA.XLS.UniqueArguments.SingleBindingResponse, value: OSF.DDA.XLS.UniqueArguments.BindingResponse }
|
303 | ],
|
304 | toHost: [
|
305 | { name: ns.BindingRequest, value: self }
|
306 | ]
|
307 | });
|
308 | define({
|
309 | type: cns.dispidReleaseBindingMethod,
|
310 | toHost: [
|
311 | { name: ns.BindingRequest, value: self }
|
312 | ]
|
313 | });
|
314 | define({
|
315 | type: cns.dispidGetBindingMethod,
|
316 | fromHost: [
|
317 | { name: OSF.DDA.XLS.UniqueArguments.SingleBindingResponse, value: OSF.DDA.XLS.UniqueArguments.BindingResponse }
|
318 | ],
|
319 | toHost: [
|
320 | { name: ns.BindingRequest, value: self }
|
321 | ]
|
322 | });
|
323 | define({
|
324 | type: cns.dispidGetAllBindingsMethod,
|
325 | fromHost: [
|
326 | { name: OSF.DDA.ListDescriptors.BindingList, value: OSF.DDA.XLS.UniqueArguments.BindingResponse }
|
327 | ]
|
328 | });
|
329 | define({
|
330 | type: cns.dispidGetBindingDataMethod,
|
331 | fromHost: [
|
332 | { name: Microsoft.Office.WebExtension.Parameters.Data, value: ns.Data }
|
333 | ],
|
334 | toHost: [
|
335 | { name: ns.GetData, value: self }
|
336 | ]
|
337 | });
|
338 | define({
|
339 | type: cns.dispidSetBindingDataMethod,
|
340 | toHost: [
|
341 | { name: ns.SetData, value: self }
|
342 | ]
|
343 | });
|
344 | define({
|
345 | type: cns.dispidAddRowsMethod,
|
346 | toHost: [
|
347 | { name: ns.AddRowsColumns, value: self }
|
348 | ]
|
349 | });
|
350 | define({
|
351 | type: cns.dispidAddColumnsMethod,
|
352 | toHost: [
|
353 | { name: ns.AddRowsColumns, value: self }
|
354 | ]
|
355 | });
|
356 | define({
|
357 | type: cns.dispidClearAllRowsMethod,
|
358 | toHost: [
|
359 | { name: ns.BindingRequest, value: self }
|
360 | ]
|
361 | });
|
362 | define({
|
363 | type: cns.dispidLoadSettingsMethod,
|
364 | fromHost: [
|
365 | { name: OSF.DDA.SettingsManager.SerializedSettings, value: ns.Properties }
|
366 | ]
|
367 | });
|
368 | define({
|
369 | type: cns.dispidSaveSettingsMethod,
|
370 | toHost: [
|
371 | { name: ns.SettingsRequest, value: self }
|
372 | ]
|
373 | });
|
374 | define({
|
375 | type: cns.dispidGetActiveViewMethod,
|
376 | fromHost: [
|
377 | { name: Microsoft.Office.WebExtension.Parameters.ActiveView, value: ns.Data }
|
378 | ]
|
379 | });
|
380 | cns=OSF.DDA.EventDispId
|
381 | define({ type: cns.dispidDocumentSelectionChangedEvent });
|
382 | define({
|
383 | type: cns.dispidBindingSelectionChangedEvent,
|
384 | fromHost: [
|
385 | { name: OSF.DDA.EventDescriptors.BindingSelectionChangedEvent, value: self }
|
386 | ]
|
387 | });
|
388 | define({
|
389 | type: cns.dispidBindingDataChangedEvent,
|
390 | fromHost: [
|
391 | { name: OSF.DDA.PropertyDescriptors.BindingProperties, value: ns.BindingEventSource }
|
392 | ]
|
393 | });
|
394 | define({ type: cns.dispidSettingsChangedEvent });
|
395 | return parameterMap;
|
396 | })();
|
397 | OSF.DDA.XLS.Delegate.version=1;
|
398 | OSF.DDA.XLS.Delegate.executeAsync=function OSF_DDA_XLS_Delegate$executeAsync(args) {
|
399 | if(!args.hostCallArgs) {
|
400 | args.hostCallArgs={};
|
401 | }
|
402 | args.hostCallArgs["DdaMethod"]={
|
403 | "ControlId": OSF._OfficeAppFactory.getId(),
|
404 | "Version": OSF.DDA.XLS.Delegate.version,
|
405 | "DispatchId": args.dispId
|
406 | };
|
407 | if(args.onCalling) {
|
408 | args.onCalling();
|
409 | }
|
410 | var startTime=(new Date()).getTime();
|
411 | OSF._OfficeAppFactory.getClientEndPoint().invoke(
|
412 | "executeMethod",
|
413 | function OSF_DDA_XLS_Delegate$OMFacade$OnResponse(xdmStatus, payload) {
|
414 | if(args.onReceiving) {
|
415 | args.onReceiving();
|
416 | }
|
417 | var error;
|
418 | if (xdmStatus==Microsoft.Office.Common.InvokeResultCode.noError) {
|
419 | OSF.DDA.XLS.Delegate.version=payload["Version"];
|
420 | error=payload["Error"];
|
421 | } else {
|
422 | switch (xdmStatus) {
|
423 | case Microsoft.Office.Common.InvokeResultCode.errorHandlingRequestAccessDenied:
|
424 | error=OSF.DDA.ErrorCodeManager.errorCodes.ooeNoCapability;
|
425 | break;
|
426 | default:
|
427 | error=OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
|
428 | break;
|
429 | }
|
430 | }
|
431 | if (args.onComplete) {
|
432 | args.onComplete(error, payload);
|
433 | }
|
434 | if (OSF.AppTelemetry) {
|
435 | OSF.AppTelemetry.onMethodDone(args.dispId, null, Math.abs((new Date()).getTime() - startTime), error);
|
436 | }
|
437 | },
|
438 | args.hostCallArgs
|
439 | );
|
440 | };
|
441 | OSF.DDA.XLS.Delegate._getOnAfterRegisterEvent=function OSF_DDA_XLS_Delegate$GetOnAfterRegisterEvent(register, args) {
|
442 | var startTime=(new Date()).getTime();
|
443 | return function OSF_DDA_XLS_Delegate$OnAfterRegisterEvent(xdmStatus, succeeded) {
|
444 | if (args.onReceiving) {
|
445 | args.onReceiving();
|
446 | }
|
447 | var status;
|
448 | if (xdmStatus !=Microsoft.Office.Common.InvokeResultCode.noError) {
|
449 | switch (xdmStatus) {
|
450 | case Microsoft.Office.Common.InvokeResultCode.errorHandlingRequestAccessDenied:
|
451 | status=OSF.DDA.ErrorCodeManager.errorCodes.ooeNoCapability;
|
452 | break;
|
453 | default:
|
454 | status=OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
|
455 | break;
|
456 | }
|
457 | } else {
|
458 | status=succeeded ? OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess : OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
|
459 | }
|
460 | if (args.onComplete) {
|
461 | args.onComplete(status);
|
462 | }
|
463 | if (OSF.AppTelemetry) {
|
464 | OSF.AppTelemetry.onRegisterDone(register, args.dispId, Math.abs((new Date()).getTime() - startTime), status);
|
465 | }
|
466 | }
|
467 | };
|
468 | OSF.DDA.XLS.Delegate.registerEventAsync=function OSF_DDA_XLS_Delegate$RegisterEventAsync(args) {
|
469 | if (args.onCalling) {
|
470 | args.onCalling();
|
471 | }
|
472 | OSF._OfficeAppFactory.getClientEndPoint().registerForEvent(
|
473 | OSF.DDA.getXdmEventName(args.targetId, args.eventType),
|
474 | function OSF_DDA_XLSOMFacade$OnEvent(payload) {
|
475 | if (args.onEvent) {
|
476 | args.onEvent(payload);
|
477 | }
|
478 | if (OSF.AppTelemetry) {
|
479 | OSF.AppTelemetry.onEventDone(args.dispId);
|
480 | }
|
481 | },
|
482 | OSF.DDA.XLS.Delegate._getOnAfterRegisterEvent(true, args),
|
483 | {
|
484 | "controlId": OSF._OfficeAppFactory.getId(),
|
485 | "eventDispId": args.dispId,
|
486 | "targetId": args.targetId
|
487 | }
|
488 | );
|
489 | };
|
490 | OSF.DDA.XLS.Delegate.unregisterEventAsync=function OSF_DDA_XLS_Delegate$UnregisterEventAsync(args) {
|
491 | if (args.onCalling) {
|
492 | args.onCalling();
|
493 | }
|
494 | OSF._OfficeAppFactory.getClientEndPoint().unregisterForEvent(
|
495 | OSF.DDA.getXdmEventName(args.targetId, args.eventType),
|
496 | OSF.DDA.XLS.Delegate._getOnAfterRegisterEvent(false, args),
|
497 | {
|
498 | "controlId": OSF._OfficeAppFactory.getId(),
|
499 | "eventDispId": args.dispId,
|
500 | "targetId": args.targetId
|
501 | }
|
502 | );
|
503 | };
|
504 | OSF.DDA.ExcelWebAppDocument=function Microsoft_Office_WebExtension_ExcelWebAppDocument(officeAppContext, settings) {
|
505 | var bf=new OSF.DDA.BindingFacade(this);
|
506 | OSF.DDA.DispIdHost.addAsyncMethods(bf, [OSF.DDA.AsyncMethodNames.AddFromPromptAsync]);
|
507 | OSF.DDA.DispIdHost.addAsyncMethods(this, [OSF.DDA.AsyncMethodNames.GetActiveViewAsync]);
|
508 | OSF.DDA.ExcelWebAppDocument.uber.constructor.call(this,
|
509 | officeAppContext,
|
510 | bf,
|
511 | setting |
\ | No newline at end of file |