Changeset 520 for branches


Ignore:
Timestamp:
04/10/14 17:05:32 (5 years ago)
Author:
jls17
Message:
  • added support for icon-overlays to ImageTag? class for custom and overlay workflow objects
Location:
branches/work_311
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/work_311/output/ImageTag.cpp

    r516 r520  
    101101                switch (serverObj.GetServerObjectTypeXML()) 
    102102                { 
     103                case AR_STRUCT_ITEM_XML_SCHEMA: 
     104                        { 
     105                                assert(false); 
     106                        } 
     107                        break; 
    103108                case AR_STRUCT_ITEM_XML_ACTIVE_LINK: return ImageTag::ActiveLink; 
    104109                case AR_STRUCT_ITEM_XML_FILTER: return ImageTag::Filter; 
     
    116121        } 
    117122 
     123        unsigned int MapOverlayTypeToInternal(unsigned int overlayType) 
     124        { 
     125                switch (overlayType) 
     126                { 
     127                case AR_OVERLAY_OBJECT: return AR_OVERLAY_OBJECT; 
     128                case AR_CUSTOM_OBJECT: return AR_CUSTOM_OBJECT; 
     129                } 
     130                return AR_ORIGINAL_OBJECT; 
     131        } 
     132 
     133        const char* MapOverlayTypeToImageName(unsigned int overlayType) 
     134        { 
     135                switch (overlayType) 
     136                { 
     137                case AR_OVERLAY_OBJECT: return "overlay.gif"; 
     138                case AR_CUSTOM_OBJECT: return "custom.gif"; 
     139                } 
     140                return ""; 
     141        } 
     142 
    118143        // ################################################################ 
    119144        // ## ImageTag class definition 
     
    122147                rootLevel = currentRootLevel; 
    123148                imageId = MapXmlStructItemToImage(obj); 
     149                imageOverlayType = MapOverlayTypeToInternal(obj.GetOverlayType()); 
    124150        } 
    125151 
     
    128154                rootLevel = currentRootLevel; 
    129155                imageId = image; 
     156                imageOverlayType = AR_ORIGINAL_OBJECT; 
    130157        } 
    131158 
     
    134161                if (imageId != NoImage) 
    135162                { 
    136                         const char* imageName = GetImageName(imageId); 
     163                        const char* imageSrc = GetImageName(imageId); 
     164                        const char* imageAlt = imageSrc; 
     165                        const char* imageBg  = NULL; 
     166 
    137167                        ImageDimensions imageDim = GetImageDimensions(imageId); 
    138168 
     169                        if (imageOverlayType > AR_ORIGINAL_OBJECT) 
     170                        { 
     171                                imageBg = imageSrc; 
     172                                imageSrc = MapOverlayTypeToImageName(imageOverlayType); 
     173                        } 
     174 
    139175                        strm << "<img "; 
    140                         strm << "src=\"" << RootPath(rootLevel) << "img/" << imageName << "\" "; 
    141                         strm << "width=\"" << imageDim.x << "\" height=\"" << imageDim.y << "\" alt=\"" << imageName << "\" />"; 
     176                        strm << "src=\"" << RootPath(rootLevel) << "img/" << imageSrc << "\" "; 
     177                        if (imageBg != NULL) 
     178                        { 
     179                                strm << "style=\"background:url(" << RootPath(rootLevel) << "img/" << imageBg << ")\" "; 
     180                        } 
     181                        strm << "width=\"" << imageDim.x << "\" height=\"" << imageDim.y << "\" alt=\"" << imageAlt << "\" />"; 
    142182                } 
    143183                return strm; 
  • branches/work_311/output/ImageTag.h

    r516 r520  
    6464                int rootLevel; 
    6565                ImageEnum imageId; 
    66                 ImageEnum imageOverlayId; 
     66                unsigned int imageOverlayType; 
    6767        }; 
    6868 
  • branches/work_311/output/ImageTagTest.cpp

    r514 r520  
    11#include "ARInsideTest.h" 
    22#include "ImageTag.h" 
     3#include "../test/fakes/FakeARServerObject.h" 
    34 
    45TEST(ImageTag, ImageToStream) 
     
    2526        ASSERT_STREQ("<img src=\"../img/active_link.gif\" width=\"16\" height=\"16\" alt=\"active_link.gif\" />", result.c_str()); 
    2627} 
     28 
     29TEST(ImageTag, OverlayObjInstToStream) 
     30{ 
     31        stringstream strm; 
     32        CFakeServerObject fakeWorkflow("NameNotImportant", AR_STRUCT_ITEM_XML_CHAR_MENU, AR_OVERLAY_OBJECT); 
     33 
     34        strm << OUTPUT::ImageTag(fakeWorkflow, 2); 
     35        string result = strm.str(); 
     36 
     37        ASSERT_STREQ("<img src=\"../../img/overlay.gif\" style=\"background:url(../../img/menu.gif)\" width=\"16\" height=\"16\" alt=\"menu.gif\" />", result.c_str()); 
     38} 
  • branches/work_311/output/URLLinkTest.cpp

    r519 r520  
    6969TEST_F(URLLinkTests, ObjectFilterLinkWithImage) 
    7070{ 
    71         CFakeServerObject fakeWorkflow(AR_STRUCT_ITEM_XML_FILTER); 
     71        CFakeServerObject fakeWorkflow("TheTestObj", AR_STRUCT_ITEM_XML_FILTER); 
    7272 
    7373        stringstream strm; 
     
    8080TEST_F(URLLinkTests, ObjectEscalationLinkWithoutImage) 
    8181{ 
    82         CFakeServerObject fakeWorkflow(AR_STRUCT_ITEM_XML_ESCALATION); 
     82        CFakeServerObject fakeWorkflow("TheTestObj", AR_STRUCT_ITEM_XML_ESCALATION); 
    8383 
    8484        stringstream strm; 
     
    8888        ASSERT_STREQ("<a href=\"../escalation/TheTestObj.htm\">TheTestObj</a>", result.c_str()); 
    8989} 
     90 
     91TEST_F(URLLinkTests, ObjectOverlayLink) 
     92{ 
     93        CFakeServerObject fakeWorkflow("SampleMenu", AR_STRUCT_ITEM_XML_CHAR_MENU, AR_OVERLAY_OBJECT); 
     94         
     95        stringstream strm; 
     96        strm << URLLink(fakeWorkflow, rootLevel); 
     97        string result = strm.str(); 
     98 
     99        ASSERT_STREQ("<img src=\"../img/overlay.gif\" style=\"background:url(../img/menu.gif)\" width=\"16\" height=\"16\" alt=\"menu.gif\" /><a href=\"../menu/SampleMenu.htm\">SampleMenu</a>", result.c_str()); 
     100} 
  • branches/work_311/test/fakes/FakeARServerObject.h

    r519 r520  
    77{ 
    88public: 
    9         CFakeServerObject(unsigned int xmlType = AR_STRUCT_ITEM_XML_ACTIVE_LINK)  
    10                 : CARServerObject(0) { objName= "TheTestObj"; objType = xmlType; } 
     9        CFakeServerObject(const std::string &name = "TheTestObj", unsigned int xmlType = AR_STRUCT_ITEM_XML_ACTIVE_LINK, unsigned int overlayType = AR_ORIGINAL_OBJECT) 
     10                : CARServerObject(0) { objName = name; objType = xmlType; objOverlayType = overlayType; } 
    1111 
    1212        ARAccessNameType name; 
    1313        string objName; 
    1414        unsigned int objType; 
     15        unsigned int objOverlayType; 
    1516 
    1617        // from CARServerObject 
     
    3031 
    3132        // declarations for overlay support 
    32         virtual int GetOverlayType() const { return 0; } 
     33        virtual int GetOverlayType() const { return objOverlayType; } 
    3334        virtual int GetOverlayGroup() const { return 0; } 
    3435        virtual string GetOverlayBaseName() const { return ""; } 
Note: See TracChangeset for help on using the changeset viewer.