Changeset 607


Ignore:
Timestamp:
08/16/14 08:10:21 (5 years ago)
Author:
jls17
Message:
  • resolving open-window-schema actions was done twice (1st; while documenting the action itself and 2nd; during schema documentation to show open-window-actions) and not in the same way, which did lead to divergent results; now a ref-item is created during action-documentation and the schema-documentation does just look for/list the ref-items. As a result open-window actions using $SCHEMA$ (with sample data) on multiple attached forms do create a reference on every attached form.
Location:
branches/work_311/doc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/work_311/doc/DocSchemaDetails.cpp

    r606 r607  
    14501450                CAlTable *alTable = new CAlTable(*this->pInside); 
    14511451 
    1452                 unsigned int alCount = pInside->alList.GetCount(); 
    1453                 for (unsigned int alIndex = 0; alIndex < alCount; ++alIndex) 
    1454                 { 
    1455                         CARActiveLink al(alIndex); 
    1456  
    1457                         // skip this object in case it's overlaid (hidden) 
     1452                const CARSchema::ReferenceList &references = schema.GetReferences(); 
     1453                CARSchema::ReferenceList::const_iterator curIt = references.begin(); 
     1454                CARSchema::ReferenceList::const_iterator endIt = references.end(); 
     1455 
     1456                for (; curIt != endIt; ++curIt) 
     1457                { 
     1458                        if (curIt->GetMessageId() != REFM_OPENWINDOW_FORM && curIt->GetObjectType() != AR_STRUCT_ITEM_XML_ACTIVE_LINK) 
     1459                                continue; 
     1460 
     1461                        CARActiveLink al(curIt->GetObjectId()); 
     1462 
     1463                        if (!al.Exists()) 
     1464                                continue; 
     1465 
    14581466                        if (pInside->appConfig.bOverlaySupport && !IsVisibleObject(al)) 
    14591467                                continue; 
    14601468 
    1461                         bool bPushToForm = false; 
    1462  
    1463                         //If-Actions 
    1464                         for(unsigned int i = 0; i < al.GetIfActions().numItems; i++) 
    1465                         { 
    1466                                 if(al.GetIfActions().actionList[i].action == AR_ACTIVE_LINK_ACTION_OPENDLG) 
    1467                                 { 
    1468                                         AROpenDlgStruct &action = al.GetIfActions().actionList[i].u.openDlg;                     
    1469                                         Context context(al, IES_IF, i, -1, 0); 
    1470                                         OpenWindowSampleData sampleData(context); 
    1471                                          
    1472                                         string openWindowSchema; 
    1473                                         if (action.schemaName[0] == '$' ) 
    1474                                         { 
    1475                                                 openWindowSchema = sampleData.getSchema(); 
    1476                                         } 
    1477                                         else 
    1478                                                 openWindowSchema = action.schemaName; 
    1479  
    1480                                         if ((openWindowSchema.compare(AR_CURRENT_SCHEMA_TAG) == 0 && IsSchemaInWFConnectStruct(al.GetSchemaList())) || 
    1481                                                 openWindowSchema.compare(schema.GetARName()) == 0) 
    1482                                         { 
    1483                                                 bPushToForm = true; 
    1484                                                 break; 
    1485                                         } 
    1486  
    1487                                 } 
    1488                         }        
    1489  
    1490                         //Else Actions 
    1491                         if(bPushToForm == false) // Only search the else actions if the al is still false 
    1492                         { 
    1493                                 for(unsigned int i = 0; i < al.GetElseActions().numItems; i++) 
    1494                                 { 
    1495                                         if(al.GetElseActions().actionList[i].action == AR_ACTIVE_LINK_ACTION_OPENDLG) 
    1496                                         { 
    1497                                                 AROpenDlgStruct &action = al.GetElseActions().actionList[i].u.openDlg; 
    1498                                                 Context context(al, IES_ELSE, i, -1, 0); 
    1499                                                 OpenWindowSampleData sampleData(context); 
    1500  
    1501                                                 string openWindowSchema; 
    1502                                                 if (action.schemaName[0] == '$' ) 
    1503                                                 { 
    1504                                                         openWindowSchema = sampleData.getSchema(); 
    1505                                                 } 
    1506                                                 else 
    1507                                                         openWindowSchema = action.schemaName; 
    1508  
    1509                                                 if ((openWindowSchema.compare(AR_CURRENT_SCHEMA_TAG) == 0 && IsSchemaInWFConnectStruct(al.GetSchemaList())) || 
    1510                                                 openWindowSchema.compare(schema.GetARName()) == 0) 
    1511                                                 { 
    1512                                                         bPushToForm = true; 
    1513                                                         break; 
    1514                                                 } 
    1515  
    1516                                         } 
    1517                                 } 
    1518                         } 
    1519  
    1520                         if(bPushToForm == true) 
    1521                         { 
    1522                                 alTable->AddRow(alIndex, rootLevel); 
    1523                         } 
     1469                        alTable->AddRow(curIt->GetObjectId(), rootLevel); 
    15241470                } 
    15251471 
  • branches/work_311/doc/actions/DocOpenWindowAction.cpp

    r606 r607  
    135135                LookupFormContext openWindowContext(context, openWindowSchemaName); 
    136136                CARSchema openWindowSchema(openWindowContext.getLookupSchemaId()); 
     137 
     138                // add a used-as-open-window-schema reference to the detected schema 
     139                CRefItem openWindowSchemaRef(context, REFM_OPENWINDOW_FORM); 
     140                if (!openWindowSchema.ReferenceExists(openWindowSchemaRef)) 
     141                        openWindowSchema.AddReference(openWindowSchemaRef); 
    137142 
    138143                strm << "<br/>View Name: "; 
Note: See TracChangeset for help on using the changeset viewer.