Changeset 15037


Ignore:
Timestamp:
03/05/10 12:43:33 (2 years ago)
Author:
sys
Message:

SubExtPoints : paramètre pour overwrite de la def parent.

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Xul_Commons/modules/scenariCommons/ExtPoints.jsm

    r14873 r15037  
    118118         * @param pLevelAuthority Niveau d'autorité associée à cette affectation. 
    119119         * @param pValue Valeur à associer à la pref (string, number, boolean ou null) 
     120         * @param pOverwriteParent [Optionnel] utilisé uniquement par les SubExtPoints pour écraser la valeur  
     121         *                              de l'extPoints parent quelquesoit le niveau d'autorité. 
    120122         * @return true si la valeur a été prise en compte, false si une valeur de niveau supérieur ou égal existe déjà. 
    121123         */ 
    122         setPref : function(pCd, pLevelAuthority, pValue){ 
     124        setPref : function(pCd, pLevelAuthority, pValue, pOverwriteParent){ 
    123125                var vCurrentLevel = this.fPrefLevels[pCd]; 
    124126                if(vCurrentLevel==null || vCurrentLevel < pLevelAuthority) { 
     
    137139         * @param pLevelAuthority Niveau d'autorité associée à cette affectation. 
    138140         * @param pDefaultValue Valeur à utiliser si aucune prefXpcom n'est définie. 
     141         * @param pOverwriteParent [Optionnel] utilisé uniquement par les SubExtPoints pour écraser la valeur  
     142         *                              de l'extPoints parent quelquesoit le niveau d'autorité. 
    139143         * @return true si la pref a été modifiée, false si une valeur de niveau supérieur ou égal existe déjà. 
    140144         */ 
    141         setPrefFromXpcom : function(pCd, pLevelAuthority, pDefaultValue){ 
     145        setPrefFromXpcom : function(pCd, pLevelAuthority, pDefaultValue, pOverwriteParent){ 
    142146                var vCurrentLevel = this.fPrefLevels[pCd]; 
    143147                if(vCurrentLevel==null || vCurrentLevel < pLevelAuthority) { 
     
    169173         * @param pValueEntry Valeur de l'entrée, null est autorisé et élimine l'entrée de la liste.  
    170174         * @param pSortKey Clé pour trier la liste, 0 par défaut. 
     175         * @param pOverwriteParent [Optionnel] utilisé uniquement par les SubExtPoints pour écraser la valeur  
     176         *                              de l'extPoints parent quelquesoit le niveau d'autorité. 
    171177         * @return true si la valeur a été prise en compte, false si une valeur de niveau supérieur ou égal existe déjà. 
    172178         */ 
    173         addToList : function(pCdList, pCdEntry, pLevelAuthority, pValueEntry, pSortKey){ 
     179        addToList : function(pCdList, pCdEntry, pLevelAuthority, pValueEntry, pSortKey, pOverwriteParent){ 
    174180                var vList = this.fLists[pCdList]; 
    175181                if( ! vList) { 
     
    198204         * @param pCdSvc Code du service pointé, null est autorisé et élimine l'entrée de la liste.  
    199205         * @param pSortKey Clé pour trier la liste, 0 par défaut. 
     206         * @param pOverwriteParent [Optionnel] utilisé uniquement par les SubExtPoints pour écraser la valeur  
     207         *                              de l'extPoints parent quelquesoit le niveau d'autorité. 
    200208         * @return true si la valeur a été prise en compte, false si une valeur de niveau supérieur ou égal existe déjà. 
    201209         */ 
    202         addSvcToList : function(pCdList, pCdEntry, pLevelAuthority, pCdSvc, pSortKey){ 
     210        addSvcToList : function(pCdList, pCdEntry, pLevelAuthority, pCdSvc, pSortKey, pOverwriteParent){ 
    203211                var vList = this.fLists[pCdList]; 
    204212                if( ! vList) { 
     
    225233         * @param pLevelAuthority Niveau d'autorité associée à cette affectation. 
    226234         * @param pSvc Objet JS correspondant à ce service. 
     235         * @param pOverwriteParent [Optionnel] utilisé uniquement par les SubExtPoints pour écraser la valeur  
     236         *                              de l'extPoints parent quelquesoit le niveau d'autorité. 
    227237         * @return true si ce svc a été prise en compte, false si un svc de niveau supérieur ou égal existe déjà. 
    228238         */ 
    229         registerSvcByInst : function(pCd, pLevelAuthority, pSvc) { 
     239        registerSvcByInst : function(pCd, pLevelAuthority, pSvc, pOverwriteParent) { 
    230240                var vSvcDef = this.fSvcs[pCd]; 
    231241                if(!vSvcDef || vSvcDef.fLevel < pLevelAuthority) { 
     
    291301         * @param pIsClassToInstanciate si true, l'objet issue de la lib est considéré comme une class  
    292302         *              qu'il faut instancier pour créer le singleton (utile pour les .jsm en particulier). 
     303         * @param pOverwriteParent [Optionnel] utilisé uniquement par les SubExtPoints pour écraser la valeur  
     304         *                              de l'extPoints parent quelquesoit le niveau d'autorité. 
    293305         * @return true si ce svc a été pris en compte, false si un svc de niveau supérieur ou égal est déjà déclaré. 
    294306         */ 
    295         registerSvcByLib : function(pCd, pLevelAuthority, pUrlLib, pIsClassToInstanciate) { 
     307        registerSvcByLib : function(pCd, pLevelAuthority, pUrlLib, pIsClassToInstanciate, pOverwriteParent) { 
    296308                var vSvcDef = this.fSvcs[pCd]; 
    297309                if(!vSvcDef || vSvcDef.fLevel < pLevelAuthority) { 
     
    731743 
    732744/** 
    733  * Construteur du SubExtPoints 
     745 * SubExtPoints : extPoints qui surcharge un extPoints parent. 
     746 *  
     747 * Un paramètre supplémentaire aux méthodes d'affectation permet de forcer l'écrasement 
     748 * de la valeur de l'extPoints parent quelquesoit le niveau d'autorité. 
    734749 *  
    735750 * XXX Attention, avec cette impl, une modification ultérieure de l'extPoints parent  
     
    748763        __proto__ : ExtPoints.prototype, 
    749764         
    750         setPref : function(pCd, pLevelAuthority, pValue){ 
    751                 if(this.fParentExtPoints.getPrefLevel(pCd) >= pLevelAuthority) return false; 
     765        setPref : function(pCd, pLevelAuthority, pValue, pOverwriteParent){ 
     766                if(! pOverwriteParent && this.fParentExtPoints.getPrefLevel(pCd) >= pLevelAuthority) return false; 
    752767                return ExtPoints.prototype.setPref.apply(this, arguments); //call super 
    753768        }, 
    754769         
    755770         
    756         setPrefFromXpcom : function(pCd, pLevelAuthority, pDefaultValue){ 
    757                 if(this.fParentExtPoints.getPrefLevel(pCd) >= pLevelAuthority) return false; 
     771        setPrefFromXpcom : function(pCd, pLevelAuthority, pDefaultValue, pOverwriteParent){ 
     772                if(! pOverwriteParent && this.fParentExtPoints.getPrefLevel(pCd) >= pLevelAuthority) return false; 
    758773                return ExtPoints.prototype.setPrefFromXpcom.apply(this, arguments); //call super 
    759774        }, 
    760775         
    761         addToList : function(pCdList, pCdEntry, pLevelAuthority, pValueEntry, pSortKey){ 
    762                 if(this.fParentExtPoints.getEntryListLevel(pCdList, pCdEntry) >= pLevelAuthority) return false; 
     776        addToList : function(pCdList, pCdEntry, pLevelAuthority, pValueEntry, pSortKey, pOverwriteParent){ 
     777                if(! pOverwriteParent && this.fParentExtPoints.getEntryListLevel(pCdList, pCdEntry) >= pLevelAuthority) return false; 
    763778                return ExtPoints.prototype.addToList.apply(this, arguments); //call super 
    764779        }, 
    765780         
    766         addSvcToList : function(pCdList, pCdEntry, pLevelAuthority, pCdSvc, pSortKey){ 
    767                 if(this.fParentExtPoints.getEntryListLevel(pCdList, pCdEntry) >= pLevelAuthority) return false; 
     781        addSvcToList : function(pCdList, pCdEntry, pLevelAuthority, pCdSvc, pSortKey, pOverwriteParent){ 
     782                if(! pOverwriteParent && this.fParentExtPoints.getEntryListLevel(pCdList, pCdEntry) >= pLevelAuthority) return false; 
    768783                return ExtPoints.prototype.addSvcToList.apply(this, arguments); //call super 
    769784        }, 
    770785         
    771         registerSvcByInst : function(pCd, pLevelAuthority, pSvc) { 
    772                 if(this.fParentExtPoints.getSvcLevel(pCd) >= pLevelAuthority) return false; 
     786        registerSvcByInst : function(pCd, pLevelAuthority, pSvc, pOverwriteParent) { 
     787                if(! pOverwriteParent && this.fParentExtPoints.getSvcLevel(pCd) >= pLevelAuthority) return false; 
    773788                return ExtPoints.prototype.registerSvcByInst.apply(this, arguments); //call super 
    774789        }, 
    775790         
    776         registerSvcByLib : function(pCd, pLevelAuthority, pUrlLib, pIsClassToInstanciate) { 
    777                 if(this.fParentExtPoints.getSvcLevel(pCd) >= pLevelAuthority) return false; 
     791        registerSvcByLib : function(pCd, pLevelAuthority, pUrlLib, pIsClassToInstanciate, pOverwriteParent) { 
     792                if(! pOverwriteParent && this.fParentExtPoints.getSvcLevel(pCd) >= pLevelAuthority) return false; 
    778793                return ExtPoints.prototype.registerSvcByLib.apply(this, arguments); //call super 
    779794        }, 
  • trunk/Xul_Wsp/modules/scenariWsp/views/historyView/HistoryViewController.jsm

    r14956 r15037  
    5252         
    5353        //Déclaration de l'action pour ouvrir la view. 
    54         pWindow.extPoints.registerSvcByInst("actionOpenHistoryView", 1, new ActionOpenHistoryView(this)); 
     54        pWindow.extPoints.registerSvcByInst("actionOpenHistoryView", 1, new ActionOpenHistoryView(this), true); 
    5555         
    5656        //Ajout dans les menus contextuels relatifs aux uris. 
     
    8686ActionOpenHistoryView.prototype = new actions.Action("actionOpenHistoryView").setGroup("uriActions").setLabel("Afficher l'historique"); 
    8787ActionOpenHistoryView.prototype.isVisible = function(pContext){ 
    88         return  pContext.scWsp &&  
     88        return  pContext.window.top === this.fController.fWindow.top &&  
     89                        pContext.scWsp &&  
    8990                        pContext.shortDesc &&  
    9091                        this.fController.fHistoryView && 
  • trunk/Xul_Wsp/modules/scenariWsp/views/itemnet/TreeItemnetController.jsm

    r14861 r15037  
    6060        this.fWindow.desk.addDeskInfoListener(this); 
    6161        //Déclaration de l'action pour ouvrir la view. 
    62         pWindow.extPoints.registerSvcByInst("actionOpenTreeItemnetView", 1, new ActionOpenTreeItemnetView(this)); 
     62        pWindow.extPoints.registerSvcByInst("actionOpenTreeItemnetView", 1, new ActionOpenTreeItemnetView(this), true); 
    6363        //Ajout dans les menus contextuels relatifs aux uris. 
    6464        pWindow.extPoints.addSvcToList("menu:common:uri", "actionOpenTreeItemnetView", 1, "actionOpenTreeItemnetView"); 
     
    114114ActionOpenTreeItemnetView.prototype = new actions.Action("actionOpenTreeItemnetView").setGroup("uriActions").setLabel("Afficher le réseau d'items"); 
    115115ActionOpenTreeItemnetView.prototype.isVisible = function(pContext){ 
    116         return  pContext.scWsp &&  
     116        return  pContext.window.top === this.fController.fWindow.top &&  
     117                        pContext.scWsp &&  
    117118                        pContext.fullUri &&  
    118119                        this.fController.fTreeItemnetView && 
  • trunk/Xul_Wsp/modules/scenariWsp/views/outlineView/OutlineViewController.jsm

    r14878 r15037  
    6161        this.fWindow.desk.addDeskInfoListener(this); 
    6262        //Déclaration de l'action pour ouvrir la view. 
    63         pWindow.extPoints.registerSvcByInst("actionOpenOutlineView", 1, new ActionOpenOutlineView(this)); 
     63        pWindow.extPoints.registerSvcByInst("actionOpenOutlineView", 1, new ActionOpenOutlineView(this), true); 
    6464        //Ajout dans les menus contextuels relatifs aux uris. 
    6565        pWindow.extPoints.addSvcToList("menu:common:uri", "actionOpenOutlineView", 1, "actionOpenOutlineView"); 
     
    111111ActionOpenOutlineView.prototype = new actions.Action("actionOpenOutlineView").setGroup("uriActions").setLabel("Afficher le plan"); 
    112112ActionOpenOutlineView.prototype.isVisible = function(pContext){ 
    113         return  pContext.scWsp &&  
     113        return  pContext.window.top === this.fController.fWindow.top &&  
     114                        pContext.scWsp &&  
    114115                        pContext.shortDesc &&  
    115116                        this.fController.fOutlineView && 
  • trunk/Xul_Wsp/modules/scenariWsp/views/searchView/SearchViewController.jsm

    r14892 r15037  
    5454         
    5555        //Déclaration de l'action pour ouvrir la view. 
    56         pWindow.extPoints.registerSvcByInst("actionOpenSearchView", 1, new ActionOpenSearchView(this)); 
     56        pWindow.extPoints.registerSvcByInst("actionOpenSearchView", 1, new ActionOpenSearchView(this), true); 
    5757        //Ajout dans les menus contextuels relatifs aux uris. 
    5858        pWindow.extPoints.addSvcToList("menu:common:uri", "actionOpenSearchView", 1, "actionOpenSearchView"); 
     
    118118ActionOpenSearchView.prototype = new actions.Action("actionOpenSearchView").setGroup("uriActions").setLabel("Rechercher"); 
    119119ActionOpenSearchView.prototype.isVisible = function(pContext){ 
    120         return  pContext.scWsp &&  
     120        return  pContext.window.top === this.fController.fWindow.top &&  
     121                        pContext.scWsp &&  
    121122                        this.fController.fSearchView; 
    122123                         
  • trunk/Xul_Wsp/modules/scenariWsp/views/wspNavView/WspNavView.jsm

    r15016 r15037  
    16881688} 
    16891689 
     1690/** 
     1691 * Déclarations des actions des cette view en svc. 
     1692 * Note : pOverwriteParent n'est forcé à true considérant que des surcharges de ces 
     1693 * actions devraient généralement être applicables dans toutes les sous-fenêtres (wspDesk, selItem...)  
     1694 * Dans le cas contraire, il faudra les redéclarer (ces actions sont accessibles une  
     1695 * fois ce module importé: WspNavView.actionCut...) 
     1696 */ 
    16901697function initDefaultActions(pWindow) { 
    1691         pWindow.extPoints.registerSvcByInst("wspNavView.actionCut", 1, actionCut); 
    1692         pWindow.extPoints.registerSvcByInst("wspNavView.actionPaste", 1, actionPaste); 
    1693         pWindow.extPoints.registerSvcByInst("wspNavView.actionDelete", 1, actionDelete); 
    1694         pWindow.extPoints.registerSvcByInst("wspNavView.actionRename", 1, actionRename); 
    1695         pWindow.extPoints.registerSvcByInst("wspNavView.actionCreateItem", 1, actionCreateItem); 
    1696         pWindow.extPoints.registerSvcByInst("wspNavView.actionCreateSpace", 1, actionCreateSpace); 
     1698        pWindow.extPoints.registerSvcByInst("wspNavView.actionCut", 1, WspNavView.actionCut, false); 
     1699        pWindow.extPoints.registerSvcByInst("wspNavView.actionPaste", 1, WspNavView.actionPaste, false); 
     1700        pWindow.extPoints.registerSvcByInst("wspNavView.actionDelete", 1, WspNavView.actionDelete, false); 
     1701        pWindow.extPoints.registerSvcByInst("wspNavView.actionRename", 1, WspNavView.actionRename, false); 
     1702        pWindow.extPoints.registerSvcByInst("wspNavView.actionCreateItem", 1, WspNavView.actionCreateItem, false); 
     1703        pWindow.extPoints.registerSvcByInst("wspNavView.actionCreateSpace", 1, WspNavView.actionCreateSpace, false); 
    16971704} 
    16981705 
     
    17191726 * ActionContext : scWsp, fullUri, viewMgr 
    17201727 */ 
    1721 var actionCreateItem = new actions.Action("actionCreateItem").setGroup("uriCreate").setLabel("Créer un item..."); 
    1722 actionCreateItem.isVisible = function(pContext){ 
     1728WspNavView.actionCreateItem = new actions.Action("actionCreateItem").setGroup("uriCreate").setLabel("Créer un item..."); 
     1729WspNavView.actionCreateItem.isVisible = function(pContext){ 
    17231730        //Le fullUri doit être dans un espace (SrcUri != "") car pas de création d'item à la racine. 
    17241731        return pContext.scWsp && pContext.fullUri && wsp.extractSrcUriFromFullUri(pContext.fullUri) && ! pContext.viewMgr.isReadOnly(); 
    17251732} 
    1726 actionCreateItem.execute = function(pEvent, pContext){ 
     1733WspNavView.actionCreateItem.execute = function(pEvent, pContext){ 
    17271734        var vViewMgr = pContext.viewMgr; 
    17281735        function cb(pDataProvider, pFullUri) { 
     
    17371744 * ActionContext : scWsp, fullUri, viewMgr 
    17381745 */ 
    1739 var actionCreateSpace = new actions.Action("actionCreateSpace").setGroup("uriCreate").setLabel("Créer un espace..."); 
    1740 actionCreateSpace.isVisible = function(pContext){ 
     1746WspNavView.actionCreateSpace = new actions.Action("actionCreateSpace").setGroup("uriCreate").setLabel("Créer un espace..."); 
     1747WspNavView.actionCreateSpace.isVisible = function(pContext){ 
    17411748        //Cette action n'est visible que si on est sur un espace ou à la racine de l'atelier. 
    17421749        return pContext.scWsp && pContext.fullUri && ! pContext.viewMgr.isReadOnly(); // && ! item.extractCodeFromFullUri(pContext.fullUri); 
    17431750} 
    1744 actionCreateSpace.execute = function(pEvent, pContext){ 
     1751WspNavView.actionCreateSpace.execute = function(pEvent, pContext){ 
    17451752        var vViewMgr = pContext.viewMgr; 
    17461753        function cb(pDataProvider, pFullUri) { 
     
    17541761 * ActionContext : shortDesc, viewMgr 
    17551762 */ 
    1756 var actionCut = new actions.Action("actionCut").setGroup("uriCopyPaste").setLabel("Couper"); 
    1757 actionCut.isVisible = function(pContext){ 
     1763WspNavView.actionCut = new actions.Action("actionCut").setGroup("uriCopyPaste").setLabel("Couper"); 
     1764WspNavView.actionCut.isVisible = function(pContext){ 
    17581765        return pContext.shortDesc != null && ! pContext.viewMgr.isReadOnly(); 
    17591766} 
    1760 actionCut.execute = function(pEvent, pContext){ 
     1767WspNavView.actionCut.execute = function(pEvent, pContext){ 
    17611768        try{ 
    17621769                var vViewMgr = pContext.viewMgr; 
     
    17991806 * ActionContext : shortDesc, viewMgr 
    18001807 */ 
    1801 var actionPaste = new actions.Action("actionPaste").setGroup("uriCopyPaste").setLabel("Coller"); 
    1802 actionPaste.isVisible = function(pContext){ 
     1808WspNavView.actionPaste = new actions.Action("actionPaste").setGroup("uriCopyPaste").setLabel("Coller"); 
     1809WspNavView.actionPaste.isVisible = function(pContext){ 
    18031810        return ! pContext.viewMgr.isReadOnly(); 
    18041811} 
    1805 actionPaste.isEnabled = function(pContext){ 
     1812WspNavView.actionPaste.isEnabled = function(pContext){ 
    18061813        return transf.isClipboardContainFileOrScenariUri() ||  
    18071814                        (pContext.viewMgr.fExtItemsMimeTypeAllowed && transf.isClipboardContainMimeType(pContext.viewMgr.fExtItemsMimeTypeAllowed)); 
    18081815} 
    1809 actionPaste.execute = function(pEvent, pContext){ 
     1816WspNavView.actionPaste.execute = function(pEvent, pContext){ 
    18101817try{ 
    18111818        var vViewMgr = pContext.viewMgr; 
     
    19321939 * ActionContext : fullUri, viewMgr 
    19331940 */ 
    1934 var actionDelete = new actions.Action("actionDelete").setGroup("uriEdit").setLabel("Supprimer"); 
    1935 actionDelete.isVisible = function(pContext){ 
     1941WspNavView.actionDelete = new actions.Action("actionDelete").setGroup("uriEdit").setLabel("Supprimer"); 
     1942WspNavView.actionDelete.isVisible = function(pContext){ 
    19361943        return ! pContext.viewMgr.isReadOnly(); 
    19371944} 
    1938 actionDelete.execute = function(pEvent, pContext){ 
     1945WspNavView.actionDelete.execute = function(pEvent, pContext){ 
    19391946        var vViewMgr = pContext.viewMgr; 
    19401947        if(! vViewMgr.fWindow.desk.saveAll(vViewMgr.fCdWsp)) return; 
     
    19681975 * ActionContext : fullUri, viewMgr 
    19691976 */ 
    1970 var actionRename = new actions.Action("actionRename").setGroup("uriEdit").setLabel("Renommer..."); 
    1971 actionRename.isVisible = function(pContext){ 
     1977WspNavView.actionRename = new actions.Action("actionRename").setGroup("uriEdit").setLabel("Renommer..."); 
     1978WspNavView.actionRename.isVisible = function(pContext){ 
    19721979        return ! pContext.viewMgr.isReadOnly(); 
    19731980} 
    1974 actionRename.execute = function(pEvent, pContext){ 
     1981WspNavView.actionRename.execute = function(pEvent, pContext){ 
    19751982        var vViewMgr = pContext.viewMgr; 
    19761983        if(! vViewMgr.fWindow.desk.saveAll(vViewMgr.fCdWsp)) return; 
Note: See TracChangeset for help on using the changeset viewer.