Connectors dependents de context

Fins ara hem assumit que tots els connectors sempre tenen sentit, i tots es col·loquen al menú principal. No obstant això, alguns connectors només tenen sentit (o addicionalment) en un context determinat. P. ex., un connector per a exportar el contingut d'un dispositiu gràfic X11 de l'R és òbviament el més útil quan es col·loca en el menú d'un dispositiu X11, no a la barra de menús principal. A més, aquest connector hauria de conèixer el número de dispositiu en què hauria d'operar, sense haver de preguntar-ho a l'usuari.

Anomenem aquests connectors dependents del context. Per tant, en el fitxer .pluginmap no es col·loquen (o no només) en el <hierarchy> principal, sinó en un element <context>. Fins ara només s'admeten dos contextos diferents (després en vindran més): x11 i importació de fitxers. Ens ocuparem d'ells. Fins i tot si només esteu interessat en el context d'importació, llegiu també la secció sobre el context x11, ja que aquest és una mica més elaborat.

Context de dispositiu X11

Per a utilitzar un connector en el context d'un dispositiu x11, que se situï a la barra de menús de la finestra que obteniu quan crideu x11() a la consola, primer declareu-lo com de costum al fitxer .pluginmap:

<document [...]>
        <components>
                [...]
                <component id="my_x11_plugin" file="my_x11_plugin.xml" label="An X11 context plugin"/>
                [...]
        </components>
                

No obstant això, no cal que el definiu a la jerarquia (podeu, si també té sentit com a connector de nivell superior):

<hierarchy>
                [...]
        </hierarchy>
                

En lloc d'això, afegiu una definició del context «x11», i afegiu-la als menús:

<context id="x11">
                [...]
                <menu id="edit">
                        [...]
                        <entry id="my_x11_plugin"/>
                </menu>
        </context>
</document>
                

A la secció lògica de l'XML del connector, ara podeu declarar dues propietats <external>: devnum i context. El context (si es declara) s'establirà a "x11" quan s'invoqui el connector en aquest context. devnum s'establirà al número del dispositiu gràfic on operar. I això és tot.

Importar el context de les dades

Abans de llegir aquesta secció, assegureu-vos de llegir la secció context del dispositiu X11, ja que explica els conceptes bàsics.

El context "import" s'utilitza per a declarar els connectors del filtre de fitxers d'importació. Simplement col·loqueu-los en un context amb id="import" al fitxer .pluginmap. No obstant això, hi ha un aspecte addicional en declarar aquests connectors: per tal d'oferir un diàleg de selecció de fitxers unificat per a tots els tipus de fitxers admesos, cal declarar un bit addicional d'informació sobre el component:

<document [...]>
        <components>
                [...]
                <component id="my_xyz_import_plugin" file="my_xyz_import_plugin.xml" label="Import XYZ files">
                        <attribute id="format" value="*.xyz *.zyx" label="XYZ data files"/>
                </component>
                [...]
        </components>
        <hierarchy>
                [...]
        </hierarchy>
        <context id="import">
                [...]
                <menu id="import">
                        [...]
                        <entry id="my_xyz_import_plugin"/>
                </menu>
        </context>
        [...]
</document>
                

La línia d'atribut simplement diu que les extensions associades del nom de fitxer per als fitxers XYZ són *.xyz o *.zyx, i que el filtre s'ha d'etiquetar amb «fitxers de dades XYZ» en el diàleg de selecció de fitxers.

Podeu declarar dues propietats <external> al connector. filename establirà al nom de fitxer seleccionat, i context s'establirà com "import".