source: branches/work_311/doc/actions/DocOpenWindowAction.cpp @ 595

Revision 595, 18.3 KB checked in by jls17, 5 years ago (diff)
Line 
1//Copyright (C) 2014 John Luthgers | jls17
2//
3//This file is part of ARInside.
4//
5//    ARInside is free software: you can redistribute it and/or modify
6//    it under the terms of the GNU General Public License as published by
7//    the Free Software Foundation, version 2 of the License.
8//
9//    ARInside is distributed in the hope that it will be useful,
10//    but WITHOUT ANY WARRANTY; without even the implied warranty of
11//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12//    GNU General Public License for more details.
13//
14//    You should have received a copy of the GNU General Public License
15//    along with ARInside.  If not, see <http://www.gnu.org/licenses/>.
16
17#include "stdafx.h"
18#include "DocAlMessageAction.h"
19#include "DocOpenWindowAction.h"
20#include "../DocActionOpenWindowHelper.h"
21#include "../../core/ARQualification.h"
22#include "../../core/ARAssignHelper.h"
23#include "../../output/ObjNotFound.h"
24#include "../../output/URLLink.h"
25#include "../../util/Context.h"
26
27DocOpenWindowAction::DocOpenWindowAction(Context &theContext, const AROpenDlgStruct &theAction)
28:       context(theContext), action(theAction)
29{
30}
31
32void DocOpenWindowAction::ToStream(std::ostream& strm)
33{
34        try
35        {
36                CARInside* arIn = &context.getInside();
37                string openWindowServer;
38                string openWindowSchemaName;
39                CARSchema attachedSchema(context.getCurrentSchemaId());
40
41                // check if we need to get the sample data
42                if(action.serverName[0] == '$')
43                {
44                        CDocActionOpenWindowHelper::GetSampleData(context.getActLink(), context.getIfElse(), context.getActionIndex(), openWindowServer, openWindowSchemaName);
45                }
46
47                // window type
48                int windowMode = CAREnum::OpenWindowModeMapped(action.windowMode);
49                strm << "<p>Window Type: " << CAREnum::OpenWindowMode(windowMode) << endl;
50
51                // display type
52                if (windowMode == AR_ACTIVE_LINK_ACTION_OPEN_MODIFY || windowMode == AR_ACTIVE_LINK_ACTION_OPEN_DSPLY)
53                {
54                        strm << "<br/>Display Type: " << CAREnum::OpenWindowDisplayType(action.windowMode) << endl;
55                }
56
57                // target location
58                if (ActionOpenDlgTargetLocation(windowMode))
59                {
60                        strm << "<br/>Target Location: ";
61
62                        if (action.targetLocation != NULL) 
63                        {
64                                if (action.targetLocation[0] == '$')
65                                {
66                                        int fieldId = atoi(&action.targetLocation[1]);
67                                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context.getCurrentSchemaId(), fieldId, context.getRootLevel())) << "$";
68
69                                        if (fieldId > 0)
70                                        {
71                                                CRefItem refItem(context, REFM_OPENWINDOW_LOCATION);
72                                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
73                                        }
74                                }
75                                else
76                                {
77                                        strm << action.targetLocation;
78                                }
79                        }
80                        strm << endl;
81                }
82                strm << "</p>" << endl;
83
84                // ****************************************************
85                // server
86                strm << "<p>Server Name: ";
87                if(action.serverName[0] == '$' && !openWindowServer.empty())
88                {
89                        int fieldId = atoi(&action.serverName[1]);
90                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context, fieldId)) << "$ (Sample Server: " << arIn->LinkToServerInfo(context, openWindowServer) << ")";
91
92                        if (fieldId > 0)
93                        {
94                                CRefItem refItem(context, REFM_OPENWINDOW_SERVER);
95                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
96                        }
97                }
98                else
99                {
100                        openWindowServer = action.serverName;
101                        strm << arIn->LinkToServerInfo(context, openWindowServer);
102                }
103
104                strm << "<br/>Form Name: ";
105                if (action.schemaName[0] == '$')
106                {
107                        int fieldId = atoi(&action.schemaName[1]);
108                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context, fieldId)) << "$ (Sample Schema: " << arIn->LinkToSchema(openWindowSchemaName, context.getRootLevel()) << ")";
109
110                        if (fieldId > 0)
111                        {
112                                CRefItem refItem(context, REFM_OPENWINDOW_FORM);
113                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
114                        }
115
116                        if (fieldId == (-AR_KEYWORD_SCHEMA)) openWindowSchemaName = attachedSchema.GetName();
117                }
118                else
119                {
120                        openWindowSchemaName = action.schemaName;
121                        strm << arIn->LinkToSchema(openWindowSchemaName, context.getRootLevel()) << endl;
122                }
123
124                LookupFormContext openWindowContext(context, openWindowSchemaName);
125                CARSchema openWindowSchema(openWindowContext.getLookupSchemaId());
126
127                strm << "<br/>View Name: ";
128                if(action.vuiLabel[0] == '$')// == NULL || strcmp(action.vuiLabel, "")==0)
129                {
130                        int fieldId = atoi(&action.vuiLabel[1]);
131                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context, fieldId)) << "$";
132
133                        if (fieldId > 0)
134                        {
135                                CRefItem refItem(context, REFM_OPENWINDOW_VIEW);
136                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
137                        }
138                }
139                else
140                {
141                        if (action.vuiLabel[0] == 0)
142                        { 
143                                strm << "(Clear)" << endl;
144                        }
145                        else
146                        {
147                                if (!openWindowSchema.Exists())
148                                {
149                                        ObjNotFound notFound(strm);
150                                        notFound << action.vuiLabel;
151                                        notFound.End();
152                                }
153                                else
154                                {
155                                        CARVui vui(openWindowSchema.GetInsideId(), action.vuiLabel);
156                                        if (vui.Exists())
157                                                strm << URLLink(vui, context.getRootLevel());
158                                        else
159                                        {
160                                                ObjNotFound notFound(strm);
161                                                notFound << action.vuiLabel;
162                                                notFound.End();
163                                        }
164                                }
165                        }
166                }
167                strm << "</p>" << endl;
168
169                // report details here
170                string *entryIDs = NULL;
171                string *queryOverride = NULL;
172                string *reportOperation = NULL;
173                string *charEncoding = NULL;
174                if (windowMode == AR_ACTIVE_LINK_ACTION_OPEN_REPORT)
175                {
176                        string reportType;
177                        string reportLocation;
178                        string reportName;
179                        string reportDestination;
180                        entryIDs = new string();
181                        queryOverride = new string();
182                        reportOperation = new string();
183                        charEncoding = new string();
184
185                        if (!CDocActionOpenWindowHelper::GetReportData(action.reportString, reportType, reportLocation, reportName, reportDestination, *entryIDs, *queryOverride, *reportOperation, *charEncoding))
186                        {
187                                strm << "<p>";
188                                ObjNotFound notFound(strm);
189                                notFound << "Could not load report informations!";
190                                notFound.End();
191                                strm << "</p>";
192                        }
193                        else
194                        {
195                                strm << "<p>Report Type: ";
196                                if (!reportType.empty() && reportType[0] == '$')
197                                {
198                                        int fieldId = atoi(&reportType.c_str()[1]);
199                                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context, fieldId)) << "$";
200                                        if (fieldId > 0)
201                                        {
202                                                CRefItem refItem(context, REFM_OPENWINDOW_REPORTTYPE);
203                                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
204                                        }
205                                }
206                                else
207                                {
208                                        strm << reportType;
209                                }
210                                strm <<  "<br/>";
211
212                                int iReportLocation = atoi(reportLocation.c_str());
213                                strm << "Report Location: " << CAREnum::ReportLocation(iReportLocation);
214                               
215                                strm << "<br/>Report Name: ";
216                                if (!reportName.empty() && reportName[0] == '$')
217                                {
218                                        int fieldId = atoi(&reportName.c_str()[1]);
219                                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context, fieldId)) << "$";
220                                        if (fieldId > 0)
221                                        {
222                                                CRefItem refItem(context, REFM_OPENWINDOW_REPORTNAME);
223                                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
224                                        }
225                                }
226                                else
227                                {
228                                        strm << reportName;
229                                }
230                                strm << "<br/>";
231                               
232                                // to-screen:
233                                // to-print:
234                                // to-file:
235                                strm << "Report Destination: ";
236                                if (!reportDestination.empty() && reportDestination[0] == '$')
237                                {
238                                        int fieldId = atoi(&reportDestination.c_str()[1]);
239                                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context, fieldId)) << "$";
240                                        if (fieldId > 0)
241                                        {
242                                                CRefItem refItem(context, REFM_OPENWINDOW_REPORTDESTINATION);
243                                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
244                                        }
245                                }
246                                else
247                                {
248                                        // map the string value to the displayed combobox item of dev studio
249                                        strm << reportDestination;
250                                }
251                                strm << "</p>";
252                        }
253                }
254
255                // qualification
256                if(ActionOpenDlgQualifier(action.windowMode))
257                {
258                        if(action.query.operation != AR_COND_OP_NONE)
259                        {
260                                stringstream strmTmpQual;
261
262                                CRefItem refItem(context, REFM_OPENWINDOW_QUALIFICATION);
263                                MappingContext qualContext(context, openWindowSchema.GetInsideId());
264
265                                strmTmpQual.str("");
266                                CARQualification arQual(context, refItem);
267                                arQual.CheckQuery(&action.query, strmTmpQual);
268
269                                strm << "<p>Qualification:<br/>" << endl;
270                                strm << strmTmpQual.str() << "</p>";
271                        }       
272                }
273
274                strm << "<p>";
275                // show close button
276                if (ActionOpenDlgCloseButton(windowMode))
277                {
278                        strm << "<input type=\"checkbox\" name=\"closeWnd\" value=\"closeWndAll\" " << (action.closeBox ? "checked" : "") << ">Show Close Button in Dialog<br/>" << endl;
279                }
280
281                // suppres empty list
282                if (ActionOpenDlgSuppressEmptyList(windowMode))
283                {
284                        strm << "<input type=\"checkbox\" name=\"suprEmptyLst\" value=\"suprEmptyLstVal\" " << (action.suppressEmptyLst ? "checked" : "") << ">Suppress Empty List<br/>" << endl;               
285                }
286
287                // set fields to defaults
288                bool setToDefault = false;
289                if (windowMode == AR_ACTIVE_LINK_ACTION_OPEN_SEARCH || windowMode == AR_ACTIVE_LINK_ACTION_OPEN_SUBMIT)
290                {
291
292                        for(unsigned int i= 0; i < action.inputValueFieldPairs.numItems; ++i)
293                        {
294                                if (action.inputValueFieldPairs.fieldAssignList[i].fieldId == AR_SET_DEFAULTS_ID)
295                                {
296                                        setToDefault = true;
297                                        break;
298                                }
299                        }
300
301                        strm << "<input type=\"checkbox\" name=\"setToDefault\" value=\"setToDefaultVal\" " << (setToDefault ? "checked" : "") << ">Set Fields To Defaults<br/>" << endl;               
302                }
303
304                // input mapping
305                if (ActionOpenDlgInputMapping(windowMode) && !setToDefault)
306                {
307                        MappingContext mappingContext(context);
308                        mappingContext.setPrimarySchemaId(openWindowSchema.GetInsideId());
309                        mappingContext.setSecondarySchemaId(context.getCurrentSchemaId());
310
311                        CARAssignHelper assignHelper(mappingContext);
312                        strm << assignHelper.OpenWindowAssignment(action.inputValueFieldPairs, mappingContext.getActionIndex(), mappingContext.getIfElse(), OWM_OPEN);
313                }
314
315                // output mapping (dialog on close)
316                if (ActionOpenDlgOutputMapping(windowMode))
317                {
318                        strm << "On Dialog Close Action:<br/>";
319
320                        MappingContext mappingContext(context, openWindowSchema.GetInsideId());
321
322                        CARAssignHelper assignHelper(mappingContext);
323                        strm << assignHelper.OpenWindowAssignment(action.outputValueFieldPairs, mappingContext.getActionIndex(), mappingContext.getIfElse(), OWM_CLOSE);
324                }
325                strm << "</p>";
326
327                if (ActionOpenDlgMessage(windowMode))
328                {
329                        // message
330                        strm << "<p>If No Request Match: ";
331                        if (action.noMatchContinue)
332                        {
333                                strm << "Do not show any message";
334                        }
335                        else if (action.msg.messageText == NULL || action.msg.messageText[0] == 0)      // dont know, if thats the correct criteria for the default message
336                        {
337                                strm << "Show default message";
338                        }
339                        else if (action.msg.messageType > 0)
340                        {
341                                strm << "Show message<br/>";
342                               
343                                DocAlMessageAction docMessage(context, action.msg);
344                                docMessage.ToStream(strm);
345                        }
346                        strm << "</p>" << endl;
347
348                        // sorting
349                        if (action.sortOrderList.numItems > 0) 
350                        {
351                                CTable tblSortList("sortList", "TblObjectList");
352                                tblSortList.AddColumn(40, "Field Name");
353                                tblSortList.AddColumn(15, "Field Id");
354                                tblSortList.AddColumn(15, "Field Type");
355                                tblSortList.AddColumn(30, "Sort Order");
356                               
357                                char strFieldId[20];
358
359                                for (unsigned int i = 0; i < action.sortOrderList.numItems; ++i)
360                                {
361                                        CARField rField(openWindowSchema.GetInsideId(), action.sortOrderList.sortList[i].fieldId);
362
363                                        strFieldId[0] = 0;
364                                        sprintf(strFieldId, "%d", static_cast<int>(action.sortOrderList.sortList[i].fieldId));
365
366                                        CTableRow row("cssStdRow");
367                                        row.AddCell(arIn->LinkToField(openWindowContext, action.sortOrderList.sortList[i].fieldId));
368                                        row.AddCell(strFieldId);
369                                        row.AddCell((rField.Exists() ? CAREnum::DataType(rField.GetDataType()) : "Unknown"));
370                                        row.AddCell(CAREnum::SchemaSortOrder(action.sortOrderList.sortList[i].sortOrder));
371                                       
372                                        tblSortList.AddRow(row);
373
374                                        if (openWindowSchema.Exists())
375                                        {
376                                                CRefItem refItem(context, REFM_OPENWINDOW_SORTBY);
377                                                arIn->AddFieldReference(openWindowSchema.GetInsideId(), action.sortOrderList.sortList[i].fieldId, refItem);
378                                        }
379                                }
380
381                                strm << "<p>Sort Order" << tblSortList << "</p>";
382                        }
383
384                        // additional report informations
385                        if (windowMode == AR_ACTIVE_LINK_ACTION_OPEN_REPORT)
386                        {
387                                strm << "<p>EntryIDs: ";
388                                if (!entryIDs->empty() && entryIDs->operator[](0) == '$')
389                                {
390                                        int fieldId = atoi(&entryIDs->c_str()[1]);
391                                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context, fieldId)) << "$";
392                                        if (fieldId > 0)
393                                        {
394                                                CRefItem refItem(context, REFM_OPENWINDOW_ENTRYIDS);
395                                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
396                                        }
397                                }
398                                else
399                                {
400                                        strm << *entryIDs;
401                                }
402                               
403                                strm << "<br/>Query Override: ";
404                                if (!queryOverride->empty() && queryOverride->operator[](0) == '$')
405                                {
406                                        int fieldId = atoi(&entryIDs->c_str()[1]);
407                                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context, fieldId)) << "$";
408                                        if (fieldId > 0)
409                                        {
410                                                CRefItem refItem(context, REFM_OPENWINDOW_QUERYOVERRIDE);
411                                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
412                                        }
413                                }
414                                else
415                                {
416                                        strm << *queryOverride;
417                                }
418                               
419                                strm << "<br/>Report Operation: ";
420                                int iReportOperation = atoi(reportOperation->c_str());
421                                if (iReportOperation == 0) iReportOperation = 2;        // set default to Run
422                                strm << CAREnum::ReportOperation(iReportOperation);
423
424                                strm << "<br/>Character Encoding: ";
425                                if (!charEncoding->empty() && charEncoding->operator[](0) == '$')
426                                {
427                                        int fieldId = atoi(&charEncoding->c_str()[1]);
428                                        strm << "$" << (fieldId < 0 ? CAREnum::Keyword(abs(fieldId)) : arIn->LinkToField(context, fieldId)) << "$";
429                                        if (fieldId > 0)
430                                        {
431                                                CRefItem refItem(context, REFM_OPENWINDOW_CHARENC);
432                                                arIn->AddFieldReference(context.getCurrentSchemaId(), fieldId, refItem);
433                                        }
434                                }
435                                else
436                                {
437                                        strm << *charEncoding;
438                                }
439                                strm << "</p>" << endl;
440
441                                // clean up
442                                delete entryIDs;
443                                delete queryOverride;
444                                delete reportOperation;
445                                delete charEncoding;
446                        }
447
448                        // polling interval
449                        if (ActionOpenDlgPoolingInterval(windowMode) && action.pollinginterval > 0)
450                        {
451                                strm << "<p>Polling interval: " << action.pollinginterval << "</p>" << endl;
452                        }
453                }
454        }
455        catch(exception& e)
456        {
457                cout << "EXCEPTION in AlActionOpenDlg of '" << context.getCurrentObject().GetName() << "': " << e.what() << endl;
458        }
459}
460
461bool DocOpenWindowAction::ActionOpenDlgQualifier(int nWindowType)
462{
463        switch(nWindowType)
464        {
465        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DETAIL:
466        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY:
467        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_LST:
468        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_SPLIT:
469        case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_LST:
470        case AR_ACTIVE_LINK_ACTION_OPEN_REPORT:
471        case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_DETAIL:
472        case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY_SPLIT:
473        case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY:
474#if AR_CURRENT_API_VERSION >= AR_API_VERSION_763
475        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT:
476        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT_LST:
477        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT_DETAIL:
478        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT_SPLIT:
479        case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT:
480        case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT_LST:
481        case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT_DETAIL:
482        case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT_SPLIT:
483#endif
484                return true;
485        default: return false;
486        }
487}
488
489bool DocOpenWindowAction::ActionOpenDlgTargetLocation(int nWindowType)
490{
491        switch (nWindowType)
492        {
493        case AR_ACTIVE_LINK_ACTION_OPEN_SEARCH:
494        case AR_ACTIVE_LINK_ACTION_OPEN_SUBMIT:
495        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY:
496        case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY:
497        case AR_ACTIVE_LINK_ACTION_OPEN_REPORT:
498#if AR_CURRENT_API_VERSION >= AR_API_VERSION_763
499        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT: 
500        case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT:
501#endif
502                return true;
503        default: return false;
504        }
505}
506
507bool DocOpenWindowAction::ActionOpenDlgCloseButton(int nWindowType)
508{
509        switch (nWindowType)
510        {
511        case AR_ACTIVE_LINK_ACTION_OPEN_DLG:
512#if AR_CURRENT_API_VERSION >= AR_API_VERSION_764
513        case AR_ACTIVE_LINK_ACTION_OPEN_POPUP:
514#endif
515                return true;
516        default: return false;
517        }
518}
519
520bool DocOpenWindowAction::ActionOpenDlgSuppressEmptyList(int nWindowType)
521{
522        switch (nWindowType)
523        {
524        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY:
525        case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY:
526#if AR_CURRENT_API_VERSION >= AR_API_VERSION_763
527        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT:
528        case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT:
529#endif
530                return true;
531        default: return false;
532                       
533        }
534}
535
536bool DocOpenWindowAction::ActionOpenDlgInputMapping(int nWindowType)
537{
538        switch (nWindowType)
539        {
540        case AR_ACTIVE_LINK_ACTION_OPEN_DLG:
541        case AR_ACTIVE_LINK_ACTION_OPEN_SEARCH:
542        case AR_ACTIVE_LINK_ACTION_OPEN_SUBMIT:
543#if AR_CURRENT_API_VERSION >= AR_API_VERSION_764
544        case AR_ACTIVE_LINK_ACTION_OPEN_POPUP:
545#endif
546                return true;
547        default: return false;
548        }
549}
550
551bool DocOpenWindowAction::ActionOpenDlgOutputMapping(int nWindowType)
552{
553        switch (nWindowType)
554        {
555        case AR_ACTIVE_LINK_ACTION_OPEN_DLG:
556#if AR_CURRENT_API_VERSION >= AR_API_VERSION_764
557        case AR_ACTIVE_LINK_ACTION_OPEN_POPUP:
558#endif
559                return true;
560        default: return false;
561        }
562}
563
564bool DocOpenWindowAction::ActionOpenDlgPoolingInterval(int nWindowType)
565{
566        switch (nWindowType)
567        {
568        case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY:
569        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY:
570#if AR_CURRENT_API_VERSION >= AR_API_VERSION_763
571        case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT:
572        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT:
573#endif
574                return true;
575        default: return false;
576        }
577}
578
579bool DocOpenWindowAction::ActionOpenDlgMessage(int nWindowType)
580{
581        switch (nWindowType)
582        {
583        case AR_ACTIVE_LINK_ACTION_OPEN_DSPLY:
584        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY:
585#if AR_CURRENT_API_VERSION >= AR_API_VERSION_763
586        case AR_ACTIVE_LINK_ACTION_OPEN_DISPLAY_DIRECT:
587        case AR_ACTIVE_LINK_ACTION_OPEN_MODIFY_DIRECT:
588#endif
589        case AR_ACTIVE_LINK_ACTION_OPEN_REPORT:
590                return true;
591        default: return false;
592        }
593}
Note: See TracBrowser for help on using the repository browser.