source: branches/work_311/util/RefItem.cpp @ 592

Revision 592, 20.1 KB checked in by jls17, 5 years ago (diff)
  • the classes CRefItem, CARQualification, CARAssignHelper and the method CARInside::LinkToField? do support passing details via the Context class
Line 
1//Copyright (C) 2010 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 Foobar.  If not, see <http://www.gnu.org/licenses/>.
16
17#include "stdafx.h"
18
19#include "RefItem.h"
20#include "Context.h"
21#include "../ARInside.h"
22#include "../core/ARServerObject.h"
23#include "../core/ARSchema.h"
24#include "../core/ARField.h"
25#include "../core/ARVui.h"
26#include "../core/ARActiveLink.h"
27#include "../core/ARFilter.h"
28#include "../core/AREscalation.h"
29#include "../core/ARContainer.h"
30#include "../core/ARCharMenu.h"
31#include "../core/ARImage.h"
32#include "../output/URLLink.h"
33
34const char* IfElse(IfElseState state)
35{
36        if (state == IES_IF) return "If";
37        else return "Else";
38}
39
40///////////////////////////////////////////////////////////////////
41// bit mask for actionIndex variable of CRefItem
42// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
43// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
44//                                      | |_______________________|
45//                                      |_|    IfElse + Action
46//                                       OpenClose-Bit
47//                                       Service In/Out Bit
48const int ACTIONMASK_INDEX = 0x000007FF;
49const int ACTIONMASK_OPENCLOSE = 0x00000800;
50const int ACTIONMASK_SERVICE_IN_OR_OUT = 0x00000800;
51
52CRefItem::CRefItem()
53{
54        this->arsStructItemType = AR_STRUCT_ITEM_XML_NONE;
55        this->actionIndex = -1;
56        this->objectId = -1;
57        this->messageId = -1;
58        this->subObjectId = -1;
59}
60
61CRefItem::CRefItem(const CARServerObject &obj, int dMessage)
62{
63        Init(obj, 0, -1, dMessage);
64}
65
66CRefItem::CRefItem(const CARServerObject &obj, int IfOrElse, int nAction, int dMessage)
67{
68        Init(obj, IfOrElse, nAction, dMessage);
69}
70
71CRefItem::CRefItem(Context &context, int dMessage)
72{
73        Init(context.getCurrentObject(), context.getIfElse(), context.getActionIndex(), dMessage);
74}
75
76CRefItem::CRefItem(const CARServerObject &obj, int IfOrElse, int nAction, int OpenOrClose, int dMessage)
77{
78        Init(obj, IfOrElse, nAction, dMessage);
79        if (OpenOrClose > 0)
80                this->actionIndex |= ACTIONMASK_OPENCLOSE;      // set open/close bit
81}
82
83CRefItem::CRefItem(const CRefItem& copyFrom, int dMessage)
84{
85        if (&copyFrom != NULL)
86        {
87                arsStructItemType = copyFrom.arsStructItemType;
88                objectId = copyFrom.objectId;
89                subObjectId = copyFrom.subObjectId;
90                actionIndex = copyFrom.actionIndex;
91                messageId = (copyFrom.messageId != -1 ? dMessage : copyFrom.messageId);
92        }
93        else 
94        {
95                arsStructItemType = AR_STRUCT_ITEM_XML_NONE;
96                objectId = -1;
97                subObjectId = -1;
98                actionIndex = -1;
99                messageId = -1;
100        }
101}
102
103void CRefItem::Init(const CARServerObject &obj, int IfOrElse, int nAction, int dMessage)
104{
105        this->arsStructItemType = obj.GetServerObjectTypeXML();
106        this->actionIndex = nAction;
107        this->messageId = dMessage;
108
109        if (IfOrElse > 0)
110                this->actionIndex += 1000;
111
112        // for special types .. fill subObjectId
113        switch(this->arsStructItemType)
114        {
115        case AR_STRUCT_ITEM_XML_FIELD:
116                this->objectId = (static_cast<const CARField*>(&obj))->GetSchema().GetInsideId();
117                this->subObjectId = obj.GetInsideId();
118                break;
119        case AR_STRUCT_ITEM_XML_VUI:
120                this->objectId = (static_cast<const CARVui*>(&obj))->GetSchema().GetInsideId();
121                this->subObjectId = obj.GetInsideId();
122                break;
123        default:
124                this->objectId = obj.GetInsideId();
125                this->subObjectId = -1;
126        }
127}
128
129const char* CRefItem::IfElse() const
130{
131        int action = actionIndex & ACTIONMASK_INDEX;
132        if (action < 1000) 
133                return ::IfElse(IES_IF);
134        else
135                return ::IfElse(IES_ELSE);
136}
137
138const char* CRefItem::OpenClose() const
139{
140        if ((actionIndex & ACTIONMASK_OPENCLOSE) == 0)
141                return "Open Window";
142        else
143                return "Close Window";
144}
145
146const char* CRefItem::ServiceInfo() const
147{
148        if ((actionIndex & ACTIONMASK_SERVICE_IN_OR_OUT) == 0)
149                return "Service Input Mapping";
150        else
151                return "Service Output Mapping";
152}
153
154int CRefItem::ActionIndex() const
155{
156        int action = actionIndex & ACTIONMASK_INDEX;
157        if (action < 1000)
158                return action;
159        else
160                return action - 1000;
161}
162
163string CRefItem::LinkToSchemaIndex(int rootLevel) const
164{
165        CARSchema schema(objectId);
166        if (schema.Exists())
167        {
168                const ARIndexList& indexList = schema.GetIndexList();
169                return URLLink(indexList.indexList[actionIndex].indexName, CPageParams(PAGE_SCHEMA_INDEXES, &schema), rootLevel);
170        }
171        return "Index";
172}
173
174string CRefItem::LinkToSchemaResultList(int rootLevel) const
175{
176        const char* cResultList = "ResultList";
177        CARSchema schema(objectId);
178        if (schema.Exists())
179        {
180                return URLLink(cResultList, CPageParams(PAGE_SCHEMA_RESULTLIST, &schema), rootLevel);
181        }
182        return cResultList;
183}
184
185string CRefItem::LinkToSchemaSortList(int rootLevel) const
186{
187        const char* cSortList = "SortList";
188        CARSchema schema(objectId);
189        if (schema.Exists())
190        {
191                return URLLink(cSortList, CPageParams(PAGE_SCHEMA_SORTLIST, &schema), rootLevel);
192        }
193        return cSortList;
194}
195
196string CRefItem::LinkToSchema(int rootLevel) const
197{
198        switch (arsStructItemType)
199        {
200        case AR_STRUCT_ITEM_XML_SCHEMA:
201        case AR_STRUCT_ITEM_XML_FIELD:
202        case AR_STRUCT_ITEM_XML_VUI:
203                {
204                        CARSchema schema(objectId);
205                        return URLLink(schema, rootLevel);
206                }
207                break;
208        default: return "";
209        }
210}
211
212void CRefItem::LinkToColumnParent(std::ostream& strm, int rootLevel) const
213{
214        // objectId contains schema id
215        // subObjectId contains column field id,
216        // actionIndex contains table field id
217        CARSchema schema(objectId);
218        CARField field(objectId, actionIndex);
219
220        if (field.Exists())
221        {
222                strm << CARInside::GetInstance()->LinkToField(schema.GetInsideId(), actionIndex, rootLevel) << " of Form " << CARInside::GetInstance()->LinkToSchema(schema.GetInsideId(), rootLevel);
223        }
224}
225
226bool CRefItem::operator ==(const CRefItem &r)
227{
228        if (this->arsStructItemType == r.arsStructItemType &&
229                this->objectId == r.objectId &&
230                this->messageId == r.messageId &&
231                // jls17 NOTE/TODO: just a test to eliminate duplicate references when field is used in multiple action within the same object
232                //this->actionIndex == r.actionIndex &&
233                this->subObjectId == r.subObjectId)
234        {
235                return true;
236        }
237        return false;
238}
239
240int CRefItem::GetObjectType() const
241{
242        return this->arsStructItemType;
243}
244
245string CRefItem::GetObjectName() const
246{
247        switch (this->arsStructItemType)
248        {
249        case AR_STRUCT_ITEM_XML_SCHEMA:
250        // the main object of field/vui is the schema. so in this case we have to
251        // return the schema name, which is used as object name to LinkToXmlObjType
252        case AR_STRUCT_ITEM_XML_FIELD:
253        case AR_STRUCT_ITEM_XML_VUI:
254                {
255                        CARSchema schema(this->objectId);
256                        return schema.GetName();
257                }
258                break;
259        case AR_STRUCT_ITEM_XML_FILTER:
260                {
261                        CARFilter filter(this->objectId);
262                        return filter.GetName();
263                }
264                break;
265        case AR_STRUCT_ITEM_XML_ACTIVE_LINK:
266                {
267                        CARActiveLink actlink(this->objectId);
268                        return actlink.GetName();
269                }
270                break;
271        case AR_STRUCT_ITEM_XML_CHAR_MENU:
272                {
273                        CARCharMenu charMenu(this->objectId);
274                        return charMenu.GetName();
275                }
276                break;
277        case AR_STRUCT_ITEM_XML_ESCALATION:
278                {
279                        CAREscalation esc(this->objectId);
280                        return esc.GetName();
281                }
282                break;
283        // TODO: implement Distributed Mapping
284        //case AR_STRUCT_ITEM_XML_DIST_MAP:
285        //      {
286        //      }
287        //      break;
288        case AR_STRUCT_ITEM_XML_CONTAINER:
289                {
290                        CARContainer cont(this->objectId);
291                        return cont.GetName();
292                }
293                break;
294        // TODO: implement Distributed Pool
295        //case AR_STRUCT_ITEM_XML_DIST_POOL:
296        //      {
297        //      }
298        //      break;
299#if AR_CURRENT_API_VERSION >= AR_API_VERSION_750
300        case AR_STRUCT_ITEM_IMAGE:
301                {
302                        CARImage img(this->objectId);
303                        return img.GetName();
304                }
305                break;
306#endif
307        default: return "";
308        }
309}
310
311unsigned int CRefItem::GetObjectEnabled(bool &supportsEnabled) const
312{
313        switch (GetObjectType())
314        {
315        case AR_STRUCT_ITEM_XML_FILTER:
316                {
317                        supportsEnabled = true;
318                        CARFilter flt(this->objectId);
319                        return flt.GetEnabled();
320                }
321        case AR_STRUCT_ITEM_XML_ACTIVE_LINK:
322                {
323                        supportsEnabled = true;
324                        CARActiveLink actlink(this->objectId);
325                        return actlink.GetEnabled();
326                }
327        case AR_STRUCT_ITEM_XML_ESCALATION:
328                {
329                        supportsEnabled = true;
330                        CAREscalation esc(this->objectId);
331                        return esc.GetEnabled();
332                }
333        ////case AR_STRUCT_ITEM_XML_DIST_MAP: // TODO: add DSO support
334        //case AR_STRUCT_ITEM_XML_DIST_POOL:
335               
336        default:
337                supportsEnabled = false;
338                return false;
339        }
340}
341
342int CRefItem::GetObjectOrder() const
343{
344        switch (GetObjectType())
345        {
346        case AR_STRUCT_ITEM_XML_ACTIVE_LINK:
347                {
348                        CARActiveLink al(GetObjectId());
349                        return al.GetOrder();
350                }
351        case AR_STRUCT_ITEM_XML_FILTER:
352                {
353                        CARFilter flt(GetObjectId());
354                        return flt.GetOrder();
355                }
356        default: return -1;
357        }
358}
359
360string CRefItem::GetObjectExecuteOn() const
361{
362        switch (GetObjectType())
363        {
364        case AR_STRUCT_ITEM_XML_ACTIVE_LINK:
365                {
366                        CARActiveLink al(GetObjectId());
367                        CARProplistHelper props(&al.GetPropList());
368                        return al.GetExecuteOn(true, &props);
369                }
370        case AR_STRUCT_ITEM_XML_FILTER:
371                {
372                        CARFilter flt(GetObjectId());
373                        return flt.GetExecuteOn(true);
374                }
375        case AR_STRUCT_ITEM_XML_ESCALATION:
376                {
377                        CAREscalation esc(GetObjectId());
378                        return esc.GetExecuteOn();
379                }
380        default: return "";
381        }
382}
383
384unsigned int CRefItem::GetObjectEnabled() const
385{
386        bool se;
387        return GetObjectEnabled(se);
388}
389
390string CRefItem::GetDescription(int rootLevel) const
391{
392        stringstream strm;
393        GetDescription(strm, rootLevel);
394        return strm.str();
395}
396
397void CRefItem::GetDescription(std::ostream &strm, int rootLevel) const
398{
399        switch (messageId)
400        {
401        case REFM_PUSHFIELD_TARGET:
402                strm << "Target in 'Push Fields' " << IfElse() << "-Action " << ActionIndex();
403                break;
404        case REFM_PUSHFIELD_VALUE:
405                strm << "Value in 'Push Fields' " << IfElse() << "-Action " << ActionIndex();
406                break;
407        case REFM_SETFIELDS_TARGET:
408                strm << "Target in 'Set Fields' " << IfElse() << "-Action " << ActionIndex();
409                break;
410        case REFM_SETFIELDS_VALUE:
411                strm << "Value in 'Set Fields' " << IfElse() << "-Action " << ActionIndex();
412                break;
413        case REFM_OPENWINDOW_TARGET:
414                strm << "Target in '" << OpenClose() << "' " << IfElse() << "-Action " << ActionIndex();
415                break;
416        case REFM_OPENWINDOW_VALUE:
417                strm << "Value in '" << OpenClose() << "' " << IfElse() << "-Action " << ActionIndex();
418                break;
419        case REFM_SERVICE_TARGET:
420                strm << "Target in '" << ServiceInfo() << "' " << IfElse() << "-Action " << ActionIndex();
421                break;
422        case REFM_SERVICE_VALUE:
423                strm << "Value in '" << ServiceInfo() << "' " << IfElse() << "-Action " << ActionIndex();
424                break;
425        case REFM_SETFIELDS_FORM:
426                strm << "Form Name in 'SetFields' " << IfElse() << "-Action " << ActionIndex();
427                break;
428        case REFM_SETFIELDS_SERVER:
429                strm << "Server Name in 'SetFields' " << IfElse() << "-Action " << ActionIndex();
430                break;
431        case REFM_SETFIELDS_QUALIFICATION:
432                strm << "Set Field If Qualification " << IfElse() << "-Action " << ActionIndex();
433                break;
434        case REFM_SETFIELDS_SQL_QUALIFICATION:
435                strm << "SQL Set Field If Qualification" << IfElse() << "-Action " << ActionIndex();
436                break;
437        case REFM_PUSHFIELD_TARGET_MATCHING:
438                strm << "Target in 'Push Fields' (All Matching Ids) " << IfElse() << "-Action " << ActionIndex();
439                break;
440        case REFM_PUSHFIELD_VALUE_MATCHING:
441                strm << "Value in 'Push Fields' (All Matching Ids) " << IfElse() << "-Action " << ActionIndex();
442                break;
443        case REFM_SETFIELDS_TARGET_MATCHING:
444                strm << "Target in 'Set Fields' (All Matching Ids) " << IfElse() << "-Action " << ActionIndex();
445                break;
446        case REFM_SETFIELDS_VALUE_MATCHING:
447                strm << "Value in 'Set Fields' (All Matching Ids) " << IfElse() << "-Action " << ActionIndex();
448                break;
449        case REFM_SETFIELDS_HOVERFIELD:
450                strm << "Hover-Field in 'SetFields' " << IfElse() << "-Action " << ActionIndex();
451                break;
452        case REFM_SETFIELDS_FILTERAPI_INPUT:
453                strm << "Value in FilterAPI-Input-Mapping " << IfElse() << "-Action " << ActionIndex();
454                break;
455        case REFM_SETFIELDS_FILTERAPI_PLUGINNAME:
456                strm << "Plugin-Name in FilterAPI-Call " << IfElse() << "-Action " << ActionIndex();
457                break;
458        case REFM_PUSHFIELD_HOVERFIELD:
459                strm << "Hover-Field in 'PushFields' " << IfElse() << "-Action " << ActionIndex();
460                break;
461        case REFM_OPENWINDOW_HOVERFIELD:
462                strm << "Hover-Field in 'OpenWindow' " << IfElse() << "-Action " << ActionIndex();
463                break;
464        case REFM_SERVICE_HOVERFIELD:
465                strm << "Hover-Field in 'Service' " << IfElse() << "-Action " << ActionIndex();
466                break;
467        case REFM_RUN_PROCESS:
468                strm << "Field in Run Process " << IfElse() << "-Action " << ActionIndex();
469                break;
470        case REFM_DELETE_ENTRY_ACTION:
471                strm << "Application-Delete Command in " << IfElse() << "-Action " << ActionIndex();
472                break;
473        case REFM_MESSAGE:
474                strm << "Message " << IfElse() << "-Action " << ActionIndex();
475                break;
476        case    REFM_CHANGEFIELD:
477                strm << "Change Field " << IfElse() << "-Action " << ActionIndex();
478                break;
479        case REFM_CHANGEFIELD_OF_FIELDS_VALUE:
480                strm << "Change Field of Fields Value " << IfElse() << "-Action " << ActionIndex();
481                break;
482        case REFM_CHANGEFIELD_LABEL:
483                strm << "Change Field Label " << IfElse() << "-Action " << ActionIndex();
484                break;
485        case REFM_PUSHFIELD_SERVER:
486                strm << "Server Name in 'Push Fields' " << IfElse() << "-Action " << ActionIndex();
487                break;
488        case REFM_PUSHFIELD_FORM:
489                strm << "Form Name in 'Push Fields' " << IfElse() << "-Action " << ActionIndex();
490                break;
491        case REFM_PUSHFIELD_IF:
492                strm << "Push Field If Qualification " << IfElse() << "-Action " << ActionIndex();
493                break;
494        case REFM_DIRECTSQL:
495                strm << "Value in Direct SQL " << IfElse() << "-Action " << ActionIndex();
496                break;
497        case REFM_OPENWINDOW_LOCATION:
498                strm << "Window Open Location " << IfElse() << "-Action " << ActionIndex();
499                break;
500        case REFM_OPENWINDOW_SERVER:
501                strm << "Window Open Server Name " << IfElse() << "-Action " << ActionIndex();
502                break;
503        case REFM_OPENWINDOW_FORM:
504                strm << "Window Open Form Name " << IfElse() << "-Action " << ActionIndex();
505                break;
506        case REFM_OPENWINDOW_VIEW:
507                strm << "Window Open View Name " << IfElse() << "-Action " << ActionIndex();
508                break;
509        case REFM_OPENWINDOW_REPORTTYPE:
510                strm << "Window Open Report Type " << IfElse() << "-Action " << ActionIndex();
511                break;
512        case REFM_OPENWINDOW_REPORTNAME:
513                strm << "Window Open Report Name " << IfElse() << "-Action " << ActionIndex();
514                break;
515        case REFM_OPENWINDOW_REPORTDESTINATION:
516                strm << "Window Open Report Destination " << IfElse() << "-Action " << ActionIndex();
517                break;
518        case REFM_OPENWINDOW_QUALIFICATION:
519                strm << "Open Window Qualification " << IfElse() << "-Action " << ActionIndex();
520                break;
521        case REFM_OPENWINDOW_SORTBY:
522                strm << "Open Window SortBy " << IfElse() << "-Action " << ActionIndex();
523                break;
524        case REFM_OPENWINDOW_ENTRYIDS:
525                strm << "Window Open EntryIDs " << IfElse() << "-Action " << ActionIndex();
526                break;
527        case REFM_OPENWINDOW_QUERYOVERRIDE:
528                strm << "Window Open Query Override " << IfElse() << "-Action " << ActionIndex();
529                break;
530        case REFM_OPENWINDOW_CHARENC:
531                strm << "Window Open Character Encoding " << IfElse() << "-Action " << ActionIndex();
532                break;
533        case REFM_CALLCUIDE_SERVER:
534                strm << "Used as CallGuide Server in " << IfElse() << "-Action " << ActionIndex();
535                break;
536        case REFM_CALLGUIDE_NAME:
537                strm << "Used as CallGuide Name in " << IfElse() << "-Action " << ActionIndex();
538                break;
539        case REFM_CALLGUIDE_TABLELOOP:
540                strm << "Guide Table Loop " << IfElse() << "-Action " << ActionIndex();
541                break;
542        case REFM_GOTO:
543                strm << "Used as Goto-Value in " << IfElse() << "-Action " << ActionIndex();
544                break;
545        case REFM_SERVICE_SERVER:
546                strm << "Used as Service Server in " << IfElse() << "-Action " << ActionIndex();
547                break;
548        case REFM_SERVICE_FORM:
549                strm << "Used as Service Form in " << IfElse() << "-Action " << ActionIndex();
550                break;
551        case REFM_SERVICE_CALL:
552                strm << "Start Service Call in " << IfElse() << "-Action " << ActionIndex();
553                break;
554        case REFM_SERVICE_REQUESTID:
555                strm << "Service Request-Id " << IfElse() << "-Action " << ActionIndex();
556                break;
557        case REFM_TABLEFIELD_SERVER:
558                strm << "Used as Server of Table Field";
559                break;
560        case REFM_TABLEFIELD_FORM:
561                strm << "Used as Schema of Table Field";
562                break;
563        case REFM_TABLEFIELD_COLUMN:
564                strm << "Column in Table "; LinkToColumnParent(strm, rootLevel);
565                break;
566        case REFM_TABLEFIELD_QUALIFICATION:
567                strm << "Table Qualification";
568                break;
569        case REFM_CHARMENU_LABELFIELD:
570                strm << "Menu Label Field";
571                break;
572        case REFM_CHARMENU_VALUE:
573                strm << "Menu Value Field";
574                break;
575        case REFM_CHARMENU_QUALIFICATION:
576                strm << "Search Menu Qualification";
577                break;
578        case REFM_NOTIFY_TEXT:
579                strm << "Field in Notify Action (Text)";
580                break;
581        case REFM_NOTIFY_USER:
582                strm << "Field in Notify Action (User Name)";
583                break;
584        case REFM_NOTIFY_SUBJECT:
585                strm << "Field in Notify Action (Subject)";
586                break;
587        case REFM_NOTIFY_FIELDLIST:
588                strm << "Field in Notify Action (Field List)";
589                break;
590        case REFM_NOTIFY_MAILBOX:
591                strm << "Field in Notify Action (Mailbox Name)";
592                break;
593        case REFM_NOTIFY_FROM:
594                strm << "Field in Notify Action (From)";
595                break;
596        case REFM_NOTIFY_REPLYTO:
597                strm << "Field in Notify Action (Reply To)";
598                break;
599        case REFM_NOTIFY_CC:
600                strm << "Field in Notify Action (CC)";
601                break;
602        case REFM_NOTIFY_BCC:
603                strm << "Field in Notify Action (BCC)";
604                break;
605        case REFM_NOTIFY_ORG:
606                strm << "Field in Notify Action (Organisation)";
607                break;
608        case REFM_NOTIFY_TEMPL_HEADER:
609                strm << "Field in Notify Action (Header Template)";
610                break;
611        case REFM_NOTIFY_TEMPL_CONTENT:
612                strm << "Field in Notify Action (Content Template)";
613                break;
614        case REFM_NOTIFY_TEMPL_FOOTER:
615                strm << "Field in Notify Action (Footer Template)";
616                break;
617        case REFM_SETFIELDS_WS_INPUT:
618                strm << "Web Service Set Fields Input Mapping";
619                break;
620        case REFM_SETFIELDS_WS_OUTPUT:
621                strm << "Web Service Set Fields Output Mapping";
622                break;
623        case REFM_SCHEMA_INDEX:
624                strm << "Field in " << LinkToSchemaIndex(rootLevel);
625                break;
626        case REFM_SCHEMA_RESULTLIST:
627                strm << "Field in " << LinkToSchemaResultList(rootLevel);
628                break;
629        case REFM_SCHEMA_SORTLIST:
630                strm << "Field in " << LinkToSchemaSortList(rootLevel);
631                break;
632        case REFM_SCHEMA_JOIN_QUALIFICATION:
633                strm << "Join Qualification";
634                break;
635        case REFM_SCHEMA_AUDIT_QUALIFICATION:
636                strm << "Audit Qualification";
637                break;
638        case REFM_SCHEMA_ARCHIVE_QUALIFICATION:
639                strm << "Archive Qualification";
640                break;
641        case REFM_SCHEMA_FTS_WEIGHTED_RELEVANCY_FIELD:
642                strm << "FTS Weighted Relevancy Field";
643                break;
644        case REFM_WEBSERVICE_PROPERTY:
645                strm << "Webservice Property";
646                break;
647        case REFM_WEBSERVICE_OPERATION:
648                strm << "Webservice Operation";
649                break;
650        case REFM_WEBSERVICE_FIELDMAP:
651                strm << "Webservice Field Mapping";
652                break;
653        case REFM_RUNIF:
654                strm << "Run If";
655                break;
656        case REFM_CONTROLFIELD:
657                strm << "Control Field";
658                break;
659        case REFM_FOCUSFIELD:
660                strm << "Focus Field";
661                break;
662        case REFM_MACRO:
663                strm << "Field in Macro " << IfElse() << "-Action " << ActionIndex();
664                break;
665        case REFM_BACKGROUND_IMAGE:
666                strm << "Image on field of form " << LinkToSchema(rootLevel);
667                break;
668        case REFM_TITLE_BAR_ICON:
669                strm << "Title Bar Icon in VUI of Form " << LinkToSchema(rootLevel);
670                break;
671        case REFM_VUI_BACKGROUND:
672                strm << "Background in VUI of Form " << LinkToSchema(rootLevel);
673                break;
674        case REFM_PACKINGLIST:
675                strm << "Contained in packing list";
676                break;
677        case REFM_FIELD_CHARMENU:
678                strm << "Field Menu on Form " << LinkToSchema(rootLevel);
679                break;
680        case REFM_CHARMENU_SQL:
681                strm << "Field in Menus SQL-Command";
682                break;
683        case REFM_CHARMENU_FORM:
684                strm << "Form-Value in Menu";
685                break;
686        case REFM_CHARMENU_SERVER:
687                strm << "Server-Value in Menu";
688                break;
689        default:
690                assert(false);
691        }
692}
Note: See TracBrowser for help on using the repository browser.