Changeset 15078

Show
Ignore:
Timestamp:
03/08/10 13:36:59 (5 months ago)
Author:
sys
Message:

textPrim : nouvelle IHM pour les linkEditors.

Location:
trunk
Files:
2 added
5 removed
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/Wsp_Modeling/spaces/gen/modelBuilder/bs.doss/sm_textPrim.xml

    r13657 r15078  
    355355                </affichage> 
    356356        </valeur> 
    357  
    358         <!-- Ecrans de propriétés de l'éditeur formulaire. --> 
    359         <affichage code="extBlockProps.xul" racine="sm:structure/sm:blockTags/sm:extBlockTag" codecomposant="concat('extBlockProps_', @role, '.xul')"> 
    360                 <actif type="xpath-dynamique">resultatAgent(concat('//isExtBlock_', @role))</actif> 
    361                 <urlPage type="xpath-dynamique">concat('content/', resultatAgent('//codeModel'), '/xedUi/', codeAgent(.))</urlPage> 
    362                 <page> 
    363                         <zone cle="mainZone" type="xslOnSrc-dynamique" href="bs:xedUi/extBlockProps.xul.xsl"/> 
    364                 </page> 
    365         </affichage> 
    366         <affichage code="phraseProps.xul" racine="sm:structure/sm:inlineTags/sm:phraseTag" codecomposant="concat('phraseProps_', @role, '.xul')"> 
    367                 <urlPage type="xpath-dynamique">concat('content/', resultatAgent('//codeModel'), '/xedUi/', codeAgent(.))</urlPage> 
    368                 <page> 
    369                         <zone cle="mainZone" type="xsl-statique" href="bs:xedUi/phraseProps.xul.xsl"/> 
    370                 </page> 
    371         </affichage> 
    372         <affichage code="uLinkProps.xul" racine="sm:structure/sm:inlineTags/sm:uLinkTag" codecomposant="concat('uLinkProps_', @role, '.xul')"> 
    373                 <actif type="xpath-dynamique">resultatAgent(concat('//isULink_', @role))</actif> 
    374                 <urlPage type="xpath-dynamique">concat('content/', resultatAgent('//codeModel'), '/xedUi/', codeAgent(.))</urlPage> 
    375                 <page> 
    376                         <zone cle="mainZone" type="xslOnSrc-dynamique" href="bs:xedUi/uLinkProps.xul.xsl"/> 
    377                 </page> 
    378         </affichage> 
    379         <affichage code="objectLeafProps.xul" racine="sm:structure/sm:inlineTags/sm:objectLeafTag" codecomposant="concat('objectLeafProps_', @role, '.xul')"> 
    380                 <actif type="xpath-dynamique">resultatAgent(concat('//isObjectLeaf_', @role))</actif> 
    381                 <urlPage type="xpath-dynamique">concat('content/', resultatAgent('//codeModel'), '/xedUi/', codeAgent(.))</urlPage> 
    382                 <page> 
    383                         <zone cle="mainZone" type="xslOnSrc-dynamique" href="bs:xedUi/objectLeafProps.xul.xsl"/> 
    384                 </page> 
    385         </affichage> 
    386         <affichage code="inlineImgProps.xul" racine="sm:structure/sm:inlineTags/sm:inlineImgTag" codecomposant="concat('inlineImgProps_', @role, '.xul')"> 
    387                 <actif type="xpath-dynamique">resultatAgent(concat('//isInlineImg_', @role))</actif> 
    388                 <urlPage type="xpath-dynamique">concat('content/', resultatAgent('//codeModel'), '/xedUi/', codeAgent(.))</urlPage> 
    389                 <page> 
    390                         <zone cle="mainZone" type="xslOnSrc-dynamique" href="bs:xedUi/inlineImgProps.xul.xsl"/> 
    391                 </page> 
    392         </affichage> 
    393357         
    394358        <!-- Test si cet extBlock doit être actif ou non (dépend de ses modèles liés). --> 
    395359        <valeur code="isExtBlock_" racine="sm:structure/sm:blockTags/sm:extBlockTag" codecomposant="concat('isExtBlock_', @role)"> 
    396                 <source type="xpathOnSrc-dynamique">testExpr(sm:refItem/sm:allowedModel, resultatAgent(concat('@', getIdFromPath(@sc:refUri), '/isStandAloneItem')) = 'true', 'or')</source> 
     360                <source type="xpathOnSrc-dynamique">testExpr(sm:allowedModel, resultatAgent(concat('@', getIdFromPath(@sc:refUri), '/isStandAloneItem')) = 'true', 'or')</source> 
    397361                <resultat cache="*"/> 
    398362        </valeur> 
  • trunk/Wsp_Modeling/spaces/gen/modelBuilder/bs.doss/sm_textPrim/xedUi/text.xbl.xml.xsl

    r14987 r15078  
    134134        <xsl:variable name="vParamEditor" select="self::sm:formEditor"/> 
    135135        <xsl:variable name="vInlineBhv" select="$vParamEditor/sm:inlineBehaviors"/> 
    136         <xsl:variable name="isInlineTags" select="boolean(/sm:textPrim/sm:structure/sm:inlineTags/*)"/> 
     136 
     137        <!-- Listes de tags retsreints par des contraintes externes (items publics) --> 
     138        <xsl:variable name="vVisibleExtBlockTags" select="/sm:textPrim/sm:structure/sm:blockTags/sm:extBlockTag[resultatAgent(concat('//isExtBlock_', @role)) = 'true']"/> 
     139        <xsl:variable name="vVisibleObjectLeafTags" select="/sm:textPrim/sm:structure/sm:inlineTags/sm:objectLeafTag[resultatAgent(concat('//isObjectLeaf_', @role)) = 'true']"/> 
     140        <xsl:variable name="vVisibleInlineImgTags" select="/sm:textPrim/sm:structure/sm:inlineTags/sm:inlineImgTag[resultatAgent(concat('//isInlineImg_', @role)) = 'true']"/> 
     141        <xsl:variable name="vVisibleULinkTags" select="/sm:textPrim/sm:structure/sm:inlineTags/sm:uLinkTag[resultatAgent(concat('//isULink_', @role)) = 'true']"/> 
     142 
     143        <!-- Flags pour construires les ihm. --> 
     144        <xsl:variable name="isInlineTags" select="$vVisibleObjectLeafTags or $vVisibleInlineImgTags or $vVisibleULinkTags or boolean(/sm:textPrim/sm:structure/sm:inlineTags[sm:noteTag or sm:phraseTag or sm:inlineStyleTag or sm:textLeafTag or sm:emptyLeafTag])"/> 
    137145        <xsl:variable name="isListTags" select="boolean(/sm:textPrim/sm:structure/sm:blockTags/*[contains(local-name(), 'List')])"/> 
    138146        <xsl:variable name="isTableTags" select="boolean(/sm:textPrim/sm:structure/sm:blockTags/sm:tableTag)"/> 
    139         <xsl:variable name="isBlockTags" select="boolean(/sm:textPrim/sm:structure/sm:blockTags[sm:extBlockTag or sm:emptyBlockTag])"/> 
     147        <xsl:variable name="isBlockTags" select="boolean($vVisibleExtBlockTags or /sm:textPrim/sm:structure/sm:blockTags/sm:emptyBlockTag)"/> 
    140148        <xsl:variable name="isInsertChars" select="boolean($vParamEditor/sm:insertCharacters/*)"/> 
    141         <xsl:variable name="isLinkTags" select="boolean(/sm:textPrim/sm:structure/sm:inlineTags[sm:uLinkTag or sm:inlineImgTag or sm:objectLeafTag]) or boolean(/sm:textPrim/sm:structure/sm:blockTags[sm:extBlockTag])"/> 
     149        <xsl:variable name="isLinkTags" select="$vVisibleExtBlockTags or $vVisibleObjectLeafTags or $vVisibleInlineImgTags or $vVisibleULinkTags"/> 
    142150        <xsl:variable name="isMetaTags" select="boolean(/sm:textPrim/sm:structure/descendant::sm:meta)"/> 
    143151 
     
    195203                </resources> 
    196204                <implementation> 
     205                        <property name="fCodeModel" onget="return '{resultatAgent('//codeModel')}';"/> 
    197206                        <property name="fHtmlStyleSheet" onget="return '{resultatAgent('../textHtmlEdit.css', 'act:')}';"/> 
    198207                        <property name="fUrlCssShowTag" onget="return '{resultatAgent('../textHtmlTag.css', 'act:')}';"/> 
     
    201210                        <method name="initClasses"> 
    202211                                <body> 
    203                                 if(window._<xsl:value-of select="resultatAgent('//codeModel')"/>_classes) return window._<xsl:value-of select="resultatAgent('//codeModel')"/>_classes; 
    204                                 window._<xsl:value-of select="resultatAgent('//codeModel')"/>_classes = this.buildClasses(); 
     212                                if( ! window._<xsl:value-of select="resultatAgent('//codeModel')"/>_classes) window._<xsl:value-of select="resultatAgent('//codeModel')"/>_classes = this.buildClasses(); 
    205213                                return window._<xsl:value-of select="resultatAgent('//codeModel')"/>_classes; 
    206214                                </body> 
     
    864872<xsl:if test="$vExtBlockTagList"> 
    865873                switch(pNode.nodeType==1 ? pNode.getAttribute("role")||"" : pNode) { 
    866 <xsl:for-each select="$vExtBlockTagList">case "<xsl:value-of select="@role"/>" : return {title:"<xsl:value-of select="chaineProtegeJs(@name)"/>", hasLinkEditor:true, urlLinkEditor:"<xsl:value-of select="resultatAgent(concat('//extBlockProps_', @role, '.xul'), 'act:')"/>", <xsl:if test="resultatAgent('//isMetaEnabled', .)">hasSubEditor:true, urlSubEditor:"chrome://scenariCms/content/xed/richText/metaEditor.xul", urlXedMeta:"<xsl:value-of select="resultatAgent('//getUrlXedMeta', .)"/>", <xsl:if test="sm:meta/@usage='optional'">isMetaOptional:true, </xsl:if></xsl:if>_node:pNode};  
     874<xsl:for-each select="$vExtBlockTagList">case "<xsl:value-of select="@role"/>" : return {title:"<xsl:value-of select="chaineProtegeJs(@name)"/>", hasLinkEditor:true, linkEditorFunc:"linkEditor_extBlock", <xsl:if test="resultatAgent('//isMetaEnabled', .)">hasSubEditor:true, urlSubEditor:"chrome://scenariCms/content/xed/richText/metaEditor.xul", urlXedMeta:"<xsl:value-of select="resultatAgent('//getUrlXedMeta', .)"/>", <xsl:if test="sm:meta/@usage='optional'">isMetaOptional:true, </xsl:if></xsl:if>_node:pNode};  
    867875</xsl:for-each> 
    868876                } 
     
    10741082<xsl:if test="$vULinkTagList"> 
    10751083                switch(pNode.nodeType==1 ? pNode.getAttribute("role")||"" : pNode) { 
    1076 <xsl:for-each select="$vULinkTagList">case "<xsl:value-of select="@role"/>" : return {title:"<xsl:value-of select="chaineProtegeJs(@name)"/>", hasLinkEditor:true, urlLinkEditor:"<xsl:value-of select="resultatAgent(concat('//uLinkProps_', @role, '.xul'), 'act:')"/>", <xsl:if test="resultatAgent('//isMetaEnabled', .)">hasSubEditor:true, urlSubEditor:"chrome://scenariCms/content/xed/richText/metaEditor.xul", urlXedMeta:"<xsl:value-of select="resultatAgent('//getUrlXedMeta', .)"/>", <xsl:if test="sm:meta/@usage='optional'">isMetaOptional:true, </xsl:if></xsl:if>_node:pNode};  
     1084<xsl:for-each select="$vULinkTagList">case "<xsl:value-of select="@role"/>" : return {title:"<xsl:value-of select="chaineProtegeJs(@name)"/>", hasLinkEditor:true, linkEditorFunc:"<xsl:value-of select="si(sm:refItem, 'linkEditor_uLinkRefItem', 'linkEditor_uLinkUrl')"/>", <xsl:if test="resultatAgent('//isMetaEnabled', .)">hasSubEditor:true, urlSubEditor:"chrome://scenariCms/content/xed/richText/metaEditor.xul", urlXedMeta:"<xsl:value-of select="resultatAgent('//getUrlXedMeta', .)"/>", <xsl:if test="sm:meta/@usage='optional'">isMetaOptional:true, </xsl:if></xsl:if>_node:pNode};  
    10771085</xsl:for-each> 
    10781086                } 
     
    11841192<xsl:if test="$vInlineImgTagList"> 
    11851193                switch(pNode.nodeType==1 ? pNode.getAttribute("role")||"" : pNode) { 
    1186 <xsl:for-each select="$vInlineImgTagList">case "<xsl:value-of select="@role"/>" : return {title:"<xsl:value-of select="chaineProtegeJs(@name)"/>", hasLinkEditor:true, urlLinkEditor:"<xsl:value-of select="resultatAgent(concat('//inlineImgProps_', @role, '.xul'), 'act:')"/>", <xsl:if test="resultatAgent('//isMetaEnabled', .)">hasSubEditor:true, urlSubEditor:"chrome://scenariCms/content/xed/richText/metaEditor.xul", urlXedMeta:"<xsl:value-of select="resultatAgent('//getUrlXedMeta', .)"/>", <xsl:if test="sm:meta/@usage='optional'">isMetaOptional:true, </xsl:if></xsl:if>_node:pNode};  
     1194<xsl:for-each select="$vInlineImgTagList">case "<xsl:value-of select="@role"/>" : return {title:"<xsl:value-of select="chaineProtegeJs(@name)"/>", hasLinkEditor:true, linkEditorFunc:"linkEditor_inlineImg", <xsl:if test="resultatAgent('//isMetaEnabled', .)">hasSubEditor:true, urlSubEditor:"chrome://scenariCms/content/xed/richText/metaEditor.xul", urlXedMeta:"<xsl:value-of select="resultatAgent('//getUrlXedMeta', .)"/>", <xsl:if test="sm:meta/@usage='optional'">isMetaOptional:true, </xsl:if></xsl:if>_node:pNode};  
    11871195</xsl:for-each>} 
    11881196</xsl:if> 
     
    12101218        isDescForbidden : function(pAncHtmlNode, pDescClass, pDescRole) { 
    12111219                return vClasses[pAncHtmlNode.parentNode.nodeName].isDescForbidden(pAncHtmlNode.parentNode, pDescClass, pDescRole); 
     1220        }, 
     1221        getAltTextTitle : function(pNode){ 
     1222<xsl:if test="$vInlineImgTagList"> 
     1223                switch(pNode.getAttribute("role")||"") { 
     1224<xsl:for-each select="$vInlineImgTagList">case "<xsl:value-of select="@role"/>" : return "<xsl:value-of select="chaineProtegeJs(sm:alternativeText/@name)"/>"; 
     1225</xsl:for-each> 
     1226                } 
     1227</xsl:if> 
     1228                return false; 
    12121229        } 
    12131230}; 
     
    12551272<xsl:if test="$vObjectLeafTagList"> 
    12561273                switch(pNode.nodeType==1 ? pNode.getAttribute("role")||"" : pNode) { 
    1257 <xsl:for-each select="$vObjectLeafTagList">case "<xsl:value-of select="@role"/>" : return {title:"<xsl:value-of select="chaineProtegeJs(@name)"/>", hasLinkEditor:true, urlLinkEditor:"<xsl:value-of select="resultatAgent(concat('//objectLeafProps_', @role, '.xul'), 'act:')"/>", <xsl:if test="resultatAgent('//isMetaEnabled', .)">hasSubEditor:true, urlSubEditor:"chrome://scenariCms/content/xed/richText/metaEditor.xul", urlXedMeta:"<xsl:value-of select="resultatAgent('//getUrlXedMeta', .)"/>", <xsl:if test="sm:meta/@usage='optional'">isMetaOptional:true, </xsl:if></xsl:if>_node:pNode};  
     1274<xsl:for-each select="$vObjectLeafTagList">case "<xsl:value-of select="@role"/>" : return {title:"<xsl:value-of select="chaineProtegeJs(@name)"/>", hasLinkEditor:true, linkEditorFunc:"linkEditor_objectLeaf", <xsl:if test="resultatAgent('//isMetaEnabled', .)">hasSubEditor:true, urlSubEditor:"chrome://scenariCms/content/xed/richText/metaEditor.xul", urlXedMeta:"<xsl:value-of select="resultatAgent('//getUrlXedMeta', .)"/>", <xsl:if test="sm:meta/@usage='optional'">isMetaOptional:true, </xsl:if></xsl:if>_node:pNode};  
    12581275</xsl:for-each>} 
    12591276</xsl:if> 
     
    14121429                                                <xsl:call-template name="defaultGenericActions"/> 
    14131430                                        </xsl:for-each> 
    1414                                         <xsl:variable name="vULink" select="sm:inlineTags/sm:uLinkTag[resultatAgent(concat('//isULink_', @role)) = 'true']"/> 
    1415                                         <xsl:for-each select="$vULink"> 
     1431                                        <xsl:for-each select="$vVisibleULinkTags"> 
    14161432                                                <xsl:call-template name="defaultGenericActions"/> 
    14171433                                        </xsl:for-each> 
    1418                                         <xsl:variable name="vObjectLeaf" select="sm:inlineTags/sm:objectLeafTag[resultatAgent(concat('//isObjectLeaf_', @role)) = 'true']"/> 
    1419                                         <xsl:for-each select="$vObjectLeaf"> 
     1434                                        <xsl:for-each select="$vVisibleObjectLeafTags"> 
    14201435                                                <xsl:call-template name="defaultGenericActions"/> 
    14211436                                        </xsl:for-each> 
    1422                                         <xsl:if test="sm:inlineTags/sm:phraseTag or $vULink or $vObjectLeaf">    
     1437                                        <xsl:if test="sm:inlineTags/sm:phraseTag or $vVisibleULinkTags or $vVisibleObjectLeafTags">      
    14231438                                                this.createSeparator(pPopup); 
    14241439                                        </xsl:if> 
     
    14321447                                                this.createSeparator(pPopup); 
    14331448                                        </xsl:if> 
    1434                                         <xsl:variable name="vInlineImg" select="sm:inlineTags/sm:inlineImgTag[resultatAgent(concat('//isInlineImg_', @role)) = 'true']"/> 
    1435                                         <xsl:for-each select="$vInlineImg"> 
     1449                                        <xsl:for-each select="$vVisibleInlineImgTags"> 
    14361450                                                <xsl:call-template name="defaultGenericActions"/> 
    14371451                                        </xsl:for-each> 
    1438                                         <xsl:if test="sm:inlineTags/sm:noteTag and $vInlineImg">                         
     1452                                        <xsl:if test="sm:inlineTags/sm:noteTag and $vVisibleInlineImgTags">                      
    14391453                                                this.createSeparator(pPopup); 
    14401454                                        </xsl:if> 
     
    17061720                                 
    17071721                                var vItem; 
    1708                                 <xsl:for-each select="sm:blockTags/sm:extBlockTag"> 
     1722                                <xsl:for-each select="$vVisibleExtBlockTags"> 
    17091723                                        var vItem = pPopup.appendChild(document.createElementNS(dom.XULNS, "menuitem")); 
    17101724                                        vItem.setAttribute("label", "?uri=<xsl:value-of select="chaineProtegeJs(@name)"/>"); 
  • trunk/Xul_XedLib/content/scenariXedLib/libUiExtra/scRichText/textBase.xbl.xml

    r14987 r15078  
    754754                        <method name="setInlineImgProps"> 
    755755                                <parameter name="pHtmlNode"/> 
    756                                 <parameter name="pPathUri"/> 
     756                                <parameter name="pRefUri"/> 
    757757                                <parameter name="pAltText"/> 
    758758                                <body><![CDATA[ 
    759759                                try{ 
    760                                         var vAttrs = {refUri : pPathUri, text : pAltText}; 
     760                                        var vAttrs = {refUri : pRefUri, text : pAltText}; 
    761761                                        var vTrans = {  fNode : pHtmlNode,  
    762762                                                                        fXbl : this, 
    763763                                                                        fOldUri : pHtmlNode.getAttribute("refUri"), 
    764                                                                         fNewUri : pPathUri, 
     764                                                                        fNewUri : pRefUri, 
    765765                                                                        merge : function(pTrans){return false;}, 
    766766                                                                        isTransient : false 
     
    787787                        <method name="setULinkProps"> 
    788788                                <parameter name="pHtmlNode"/> 
    789                                 <parameter name="pPathUri"/> 
     789                                <parameter name="pRefUri"/> 
    790790                                <body><![CDATA[ 
    791791                                try{ 
    792                                         var vAttrs = {refUri : pPathUri}; 
     792                                        var vAttrs = {refUri : pRefUri}; 
    793793                                        var vTrans = {  fNode : pHtmlNode,  
    794794                                                                        fXbl : this, 
    795795                                                                        fOldUri : pHtmlNode.getAttribute("refUri"), 
    796                                                                         fNewUri : pPathUri, 
     796                                                                        fNewUri : pRefUri, 
    797797                                                                        merge : function(pTrans){return false;}, 
    798798                                                                        isTransient : false 
     
    815815                                ]]></body> 
    816816                        </method> 
    817                          
     817 
    818818                        <method name="setDefaultRole"> 
    819819                                <parameter name="pHtmlNode"/> 
     
    829829                        <method name="setObjectLeafProps"> 
    830830                                <parameter name="pHtmlNode"/> 
    831                                 <parameter name="pPathUri"/> 
     831                                <parameter name="pRefUri"/> 
    832832                                <body><![CDATA[ 
    833833                                try{ 
    834                                         var vAttrs = {refUri : pPathUri}; 
     834                                        var vAttrs = {refUri : pRefUri}; 
    835835                                        var vTrans = {  fNode : pHtmlNode,  
    836836                                                                        fXbl : this, 
    837837                                                                        fOldUri : pHtmlNode.getAttribute("refUri"), 
    838                                                                         fNewUri : pPathUri, 
     838                                                                        fNewUri : pRefUri, 
    839839                                                                        merge : function(pTrans){return false;}, 
    840840                                                                        isTransient : false 
     
    970970                        <method name="setExtBlockProps"> 
    971971                                <parameter name="pHtmlNode"/> 
    972                                 <parameter name="pPathUri"/> 
     972                                <parameter name="pRefUri"/> 
    973973                                <body><![CDATA[ 
    974974                                try{ 
    975                                         var vAttrs = {refUri : pPathUri}; 
     975                                        var vAttrs = {refUri : pRefUri}; 
    976976                                        var vTrans = {  fNode : pHtmlNode,  
    977977                                                                        fXbl : this, 
    978978                                                                        fOldUri : pHtmlNode.getAttribute("refUri"), 
    979                                                                         fNewUri : pPathUri, 
     979                                                                        fNewUri : pRefUri, 
    980980                                                                        merge : function(pTrans){return false;}, 
    981981                                                                        isTransient : false 
     
    10011001                                ]]></body> 
    10021002                        </method> 
     1003                         
     1004                        <!-- links editors --> 
     1005                        <method name="linkEditor_uLinkRefItem"> 
     1006                                <parameter name="pHtmlNode"/> 
     1007                                <body> 
     1008                                var vRole = pHtmlNode.getAttribute("role") || ""; 
     1009                                var vUriObject = ut.searchUriObject(this); 
     1010                                var vContext = { 
     1011                                        window : window, 
     1012                                        scWsp : vUriObject.getWsp(), 
     1013                                        //l'item sélectionné ou l'espace de l'item en cours d'édition. 
     1014                                        refUri : pHtmlNode.getAttribute("refUri") || src.getUriParent(vUriObject.getSrcUri()), 
     1015                                        regexpSgn : this.fClasses.ULINK.regexpSgn[vRole], 
     1016                                        //Pour la callback 
     1017                                        fHtmlNode : pHtmlNode 
     1018                                } 
     1019                                var vSvc = extPoints.getSvc(this.fCodeModel+"_ULinkRefItemEditor_"+vRole) ||  
     1020                                                        extPoints.getSvc("sm_textPrim_ULinkRefItemEditor") ||  
     1021                                                        extPoints.getSvc("itemSelector"); 
     1022                                vSvc.selectItemAsynch(vContext, this.linkEditorCb_uLinkRefItem, this); 
     1023                                </body> 
     1024                        </method> 
     1025                        <method name="linkEditorCb_uLinkRefItem"> 
     1026                                <parameter name="pContext"/> 
     1027                                <parameter name="pResult"/> 
     1028                                <body> 
     1029                                        if(pResult.refUri != null) this.setULinkProps(pContext.fHtmlNode, pResult.refUri); 
     1030                                </body> 
     1031                        </method> 
     1032                        <method name="linkEditor_uLinkUrl"> 
     1033                                <parameter name="pHtmlNode"/> 
     1034                                <body> 
     1035                                        this.openSubWindowEditor("chrome://scenariXedLib/content/libUiExtra/scRichText/uLinkUrlEditor.xul", pHtmlNode); 
     1036                                </body> 
     1037                        </method> 
     1038                        <method name="linkEditor_extBlock"> 
     1039                                <parameter name="pHtmlNode"/> 
     1040                                <body> 
     1041                                var vRole = pHtmlNode.getAttribute("role") || ""; 
     1042                                var vUriObject = ut.searchUriObject(this); 
     1043                                var vContext = { 
     1044                                        window : window, 
     1045                                        scWsp : vUriObject.getWsp(), 
     1046                                        //l'item sélectionné ou l'espace de l'item en cours d'édition. 
     1047                                        refUri : pHtmlNode.getAttribute("refUri") || src.getUriParent(vUriObject.getSrcUri()), 
     1048                                        regexpSgn : this.fClasses.EXTBLOCK.regexpSgn[vRole], 
     1049                                        //Pour la callback 
     1050                                        fHtmlNode : pHtmlNode 
     1051                                } 
     1052                                var vSvc = extPoints.getSvc(this.fCodeModel+"_ExtBlockEditor_"+vRole) ||  
     1053                                                        extPoints.getSvc("sm_textPrim_ExtBlockEditor") ||  
     1054                                                        extPoints.getSvc("itemSelector"); 
     1055                                vSvc.selectItemAsynch(vContext, this.linkEditorCb_extBlock, this); 
     1056                                </body> 
     1057                        </method> 
     1058                        <method name="linkEditorCb_extBlock"> 
     1059                                <parameter name="pContext"/> 
     1060                                <parameter name="pResult"/> 
     1061                                <body> 
     1062                                        if(pResult.refUri != null) this.setExtBlockProps(pContext.fHtmlNode, pResult.refUri); 
     1063                                </body> 
     1064                        </method> 
     1065                         
     1066                        <method name="linkEditor_inlineImg"> 
     1067                                <parameter name="pHtmlNode"/> 
     1068                                <body> 
     1069                                var vRole = pHtmlNode.getAttribute("role") || ""; 
     1070                                var vUriObject = ut.searchUriObject(this); 
     1071                                var vContext = { 
     1072                                        window : window, 
     1073                                        scWsp : vUriObject.getWsp(), 
     1074                                        //l'item sélectionné ou l'espace de l'item en cours d'édition. 
     1075                                        refUri : pHtmlNode.getAttribute("refUri") || src.getUriParent(vUriObject.getSrcUri()), 
     1076                                        regexpSgn : this.fClasses.IMG.regexpSgn[vRole], 
     1077                                        //Pour la callback 
     1078                                        fHtmlNode : pHtmlNode 
     1079                                } 
     1080                                var vAltTextTitle = this.fClasses.IMG.getAltTextTitle(pHtmlNode); 
     1081                                if(vAltTextTitle) { 
     1082                                        vContext.fAltText = pHtmlNode.getAttribute("text"); 
     1083                                        vContext.fAltTextTitle = vAltTextTitle; 
     1084                                        vContext.extPoinUrls = ["javascript:extPoints.addToList('xmlOverlay:selItem.xul', 'AltText', 1, 'chrome://scenariXedLib/content/libUiExtra/scRichText/inlineImgLinkEditor.overlay.xul', 0)", 
     1085                                                                                        "javascript:extPoints.addToList('event:load:selItem', 'AltText', 1, function(){document.getElementById('altTextInput').value = sContext.fAltText; log.info('sContext.fAltTextTitle::'+sContext.fAltTextTitle); document.getElementById('altTextLabel').value = sContext.fAltTextTitle;}, 0, true);"]; 
     1086                                } 
     1087                                var vSvc = extPoints.getSvc(this.fCodeModel+"_ExtBlockEditor_"+vRole) ||  
     1088                                                        extPoints.getSvc("sm_textPrim_ExtBlockEditor") ||  
     1089                                                        extPoints.getSvc("itemSelector"); 
     1090                                vSvc.selectItemAsynch(vContext, this.linkEditorCb_inlineImg, this); 
     1091                                </body> 
     1092                        </method> 
     1093                        <method name="linkEditorCb_inlineImg"> 
     1094                                <parameter name="pContext"/> 
     1095                                <parameter name="pResult"/> 
     1096                                <body> 
     1097                                        if(pResult.refUri != null) this.setInlineImgProps(pContext.fHtmlNode, pResult.refUri, pResult.fAltText); 
     1098                                </body> 
     1099                        </method> 
     1100                        <method name="linkEditor_objectLeaf"> 
     1101                                <parameter name="pHtmlNode"/> 
     1102                                <body> 
     1103                                var vRole = pHtmlNode.getAttribute("role") || ""; 
     1104                                var vUriObject = ut.searchUriObject(this); 
     1105                                var vContext = { 
     1106                                        window : window, 
     1107                                        scWsp : vUriObject.getWsp(), 
     1108                                        //l'item sélectionné ou l'espace de l'item en cours d'édition. 
     1109                                        refUri : pHtmlNode.getAttribute("refUri") || src.getUriParent(vUriObject.getSrcUri()), 
     1110                                        regexpSgn : this.fClasses.OBJECTLEAF.regexpSgn[vRole], 
     1111                                        //Pour la callback 
     1112                                        fHtmlNode : pHtmlNode 
     1113                                } 
     1114                                var vSvc = extPoints.getSvc(this.fCodeModel+"_ExtBlockEditor_"+vRole) ||  
     1115                                                        extPoints.getSvc("sm_textPrim_ExtBlockEditor") ||  
     1116                                                        extPoints.getSvc("itemSelector"); 
     1117                                vSvc.selectItemAsynch(vContext, this.linkEditorCb_objectLeaf, this); 
     1118                                </body> 
     1119                        </method> 
     1120                        <method name="linkEditorCb_objectLeaf"> 
     1121                                <parameter name="pContext"/> 
     1122                                <parameter name="pResult"/> 
     1123                                <body> 
     1124                                        if(pResult.refUri != null) this.setObjectLeafProps(pContext.fHtmlNode, pResult.refUri); 
     1125                                </body> 
     1126                        </method> 
     1127                         
     1128                         
    10031129                         
    10041130                        <!-- 
     
    17671893                                                                                                        try { 
    17681894                                                                                                                var vStructNode = pDesc.fZoneEditor.fClasses[pDesc.fNode.nodeName].getStructuralNodes(pDesc.fNode); 
    1769                                                                                                                 pDesc.fZoneEditor.openSubWindowEditor(vStructNode.urlLinkEditor, pDesc.fNode); 
     1895                                                                                                                pDesc.fZoneEditor[vStructNode.linkEditorFunc](pDesc.fNode); 
     1896                                                                                                                //pDesc.fZoneEditor.openSubWindowEditor(vStructNode.urlLinkEditor, pDesc.fNode); 
    17701897                                                                                                                pNotif.close(); 
    17711898                                                                                                        }catch(e){xed.debug(e);} 
     
    26482775                                                var vStructNode = this.fClasses[vNewNode.nodeName].getStructuralNodes(vNewNode); 
    26492776                                                if(vStructNode.hasLinkEditor) { 
    2650                                                         this.openSubWindowEditor(vStructNode.urlLinkEditor, vNewNode); 
     2777                                                        this[vStructNode.linkEditorFunc](vNewNode); 
    26512778                                                } else if(vStructNode.hasSubEditor) { 
    26522779                                                        this.openSubWindowEditor(vStructNode.urlSubEditor, vNewNode); 
     
    32893416                                                var vStructNode = this.fClasses[vNewNode.nodeName].getStructuralNodes(vNewNode); 
    32903417                                                if(vStructNode.hasLinkEditor) { 
    3291                                                         this.openSubWindowEditor(vStructNode.urlLinkEditor, vNewNode); 
     3418                                                        this[vStructNode.linkEditorFunc](vNewNode); 
    32923419                                                } else if(vStructNode.hasSubEditor) { 
    32933420                                                        this.openSubWindowEditor(vStructNode.urlSubEditor, vNewNode); 
     
    36253752                                                var vStructNode = this.fClasses[vNewNode.nodeName].getStructuralNodes(vNewNode); 
    36263753                                                if(vStructNode.hasLinkEditor && !pUriItem) { 
    3627                                                         this.openSubWindowEditor(vStructNode.urlLinkEditor, vNewNode); 
     3754                                                        this[vStructNode.linkEditorFunc](vNewNode); 
    36283755                                                } else if(vStructNode.hasSubEditor) { 
    36293756                                                        this.openSubWindowEditor(vStructNode.urlSubEditor, vNewNode); 
     
    53685495                                                                pEvent.stopPropagation(); 
    53695496                                                                var vStructNode = pEvent.originalTarget.fStructNode; 
    5370                                                                 sXbl.openSubWindowEditor(vStructNode.urlLinkEditor, vStructNode._node); 
     5497                                                                sXbl[vStructNode.linkEditorFunc](vStructNode._node); 
    53715498                                                        }catch(e){xed.debug("buildLinkPopup.open"+e);} 
    53725499                                                }, false); 
     
    71907317                                <body> 
    71917318                                try{ 
    7192                                         this.openSubWindowEditor(pStructNode.urlLinkEditor, pStructNode._node); 
     7319                                        this[pStructNode.linkEditorFunc](pStructNode._node); 
    71937320                                }catch(e){xed.debug("openLinkEditor::"+e);} 
    71947321                                </body> 
     
    82088335                                                        var vStructNode = this.fClasses[vObj.nodeName].getStructuralNodes(vObj); 
    82098336                                                        if(vStructNode.hasLinkEditor) { 
    8210                                                                 this.openSubWindowEditor(vStructNode.urlLinkEditor, vObj); 
     8337                                                                this[vStructNode.linkEditorFunc](vObj); 
    82118338                                                        } else if(vStructNode.hasSubEditor){ 
    82128339                                                                this.openSubWindowEditor(vStructNode.urlSubEditor, vObj);