Extensions ColdFusion Builder

Extensions ColdFusion Builder

À propos des extensions

Vous pouvez étendre la fonctionnalité de l'IDE (environnement de développement intégré) ColdFusion Builder pour prendre en charge divers framework ColdFusion et les exigences de génération de symbole. Vous développez des extensions ColdFusion Builder pour générer du symbole, concevoir des interfaces d'utilisation dynamiques et effectuer des opérations CRUD (créer, lire, mettre à jour et supprimer) de base sur la base de données. L'extension ColdFusion Builder est un composant structuré qui ajoute des menu contextuels dans l'IDE ColdFusion Builder et gère les évènements sur ces menu. Vous, le développeur ColdFusion, pouvez développer une extension ColdFusion Builder vous-même ou vous pouvez installer une extension disponible.

Pour développer votre propre extension ColdFusion Builder, vous créez le fichier configuration et les fichiers de gestionnaire. Vous définissez les menu contextuels et les évènements dans le fichier configuration - IDE_Config.xml. Pour plus d'informations, consultez Développement d'extensions.

ColdFusion Builder vous permet d'étendre l'IDE à différents niveaux, notamment en créant des interfaces d'utilisation. Pour plus d'informations, consultez Création d'interfaces d'utilisation pour les extensions.

Les extensions qui sont expédiées avec ColdFusion Builder sont Adobe CFC Generator et AS Class Generator. Vous pouvez installer et intégrer ces extensions avec ColdFusion Builder. Pour plus d'informations, consultez Utilisation des extensions.

ColdFusion Builder fournit le créateur d'extension ColdFusion Builder pour vous guider dans le processus de création et de package d'extensions. Pour plus d'informations, consultez Utiliser le créateur d'extension ColdFusion Builder pour créer et package des extensions.

Développement d'extensions

Pour développer une extension ColdFusion Builder, vous créez les éléments suivants :

  • Fichier configuration (IDE_config.xml)
  • Fichiers de gestionnaire (fichiers CFM)

Vous pouvez créer ces éléments en écrivant le symbole ou en utilisant l'assistant créateur d'extension ColdFusion Builder. Pour plus d'informations sur l'utilisation de l'assistant créateur d'extension ColdFusion Builder, consultez Utiliser le créateur d'extension ColdFusion Builder pour créer et package des extensions.

Fichier de configuration

La création du fichier de configuration (IDE_config.xml) est une étape importante dans le développement d'une extension Adobe ColdFusion Builder.Vous définissez tous les éléments du fichier de configuration dans la balise {{application}}.

Spécification des éléments de métadonnées

Vous utilisez les éléments de métadonnées pour créer une extension et spécifier des informations comme le nom de l'extension, l'auteur, la version et la description de l'extension.

Utilisez les éléments suivants pour spécifier les métadonnées d'app dans le fichier de configuration.

Élément

Description

name

Le nom de l'extension.

author

Le nom de l'auteur.

version

La version du fichier.

e-mail

Spécifie l'adresse e-mail.

description

Une brève description de l'app.La description peut être en texte brut ou vous spécifiez un chemin d'accès vers un fichier html, qui contient la description de l'app.Si vous spécifiez un chemin d'accès vers un fichier html, stockez le fichier html dans le répertoire Install de l'extension.

licence

Contrat de licence affiché lors de l'installation de l'extension. Le contrat de licence peut être affiché en texte brut ou vous spécifiez un chemin d'accès vers un fichier html, qui contient le contrat de licence.Si vous spécifiez un chemin d'accès vers un fichier html, stockez le fichier html dans le répertoire Install de l'extension.

Exemple

<application>
<name>ORM CFC Generator</name>
<author>Adobe</author>
<version>1.0</version>
<e-mail>user@xyz.com</e-mail>
<description>ORM CFC code Generator</description>
<licence>licence.html</licence>
</application>

Ajout de page à l'assistant d'installation d'extension Adobe ColdFusion Builder

Lorsque vous définissez le fichier configuration, vous pouvez spécifier du symbole qui ajoute des screens à l'assistant d'installation d'extension Adobe ColdFusion Builder. Vous pouvez utiliser ces screens pour obtenir des saisies utilisateur. En général, les saisies utilisateur sont requises pour effectuer toute tâche de configuration après l'installation.

Vous spécifiez les détails de saisie à l'aide de la balise input ; pour plus d'informations sur la spécification des balises de saisie, voir Spécification des types de saisie. Le gestionnaire spécifié dans l'attribut handlerid de la balise wizard est appelé avec les détails de saisie. Vous pouvez également spécifier la hauteur et la largeur de l'assistant d'installation à l'aide des attributs height et width de la balise wizard. Vous pouvez spécifier le titre de chaque page de l'assistant à l'aide de l'attribut title de la balise page.

Syntaxe

<application>
<name>Nom de l'extension Adobe ColdFusion Builder</name>
<install>
<wizard height="" width="" handlerid="handlerID" >
<page title="Titre de la page de l'assistant" >
<input name="Input" ... />
<input name="Input" ... />
</page>
</wizard>
</install>
</application>

Exemple

Dans l'exemple suivant, une fois que l'assistant d'installation d'extension a terminé l'installation de l'extension, l'ID de gestionnaire, postinstallhandler, est appelé avec les détails de saisie spécifiés.

<application>
<name>Générateur ORM CFC</name>
<install>
<wizard height="" width="" handlerid="postinstallhandler" >
<page title="Paramètres d'installation" >
<input name="Mapping" ... />
<input name="Datasource" ... />
</page>
</wizard>
</install>
</application>

Extension de l'IDE

Vous pouvez étendre l'IDE Adobe ColdFusion Builder aux niveaux suivants :

  • Ajout de menu contextuels : vous pouvez ajouter des menu contextuels aux vue suivantes :
    • Navigateur de ressources
    • Vue de données RDS
    • Vue de contour
    • Éditeur CFML
  • Gestion des évènements workspace : actuellement onprojectcreate est le seul évènement pris en charge. 
  • Créer des vues
  • Contribuer à Code Assist à partir d'extensions

Vous pouvez spécifier des gestionnaires pour les menus contextuels et évènements afin d'effectuer des opérations CRUD ou de génération de symbole.

Spécification des gestionnaires

Adobe ColdFusion Builder prend en charge les gestionnaires CFM.Dans le contexte d'Adobe ColdFusion Builder, un gestionnaire est un fichier qui contient du symbole, qui est exécuté en réponse à un évènement ou une action.Vous spécifiez les gestionnaires dans la balise handlers.Utilisez l'attribut handlerid pour associer le gestionnaire à un évènement ou une action.Spécifiez tous les détails du gestionnaire dans la balise handlers.Pour plus de détails sur la spécification des évènements et actions, voir Spécification des évènements et Spécification des menus contextuels.Tous les fichiers de gestionnaire doivent être stockés dans le dossier Handlers.

Syntaxe

<handlers>
<handler id ="cfm" type="cfm" filename="filename" />
</handlers>

 

Attribut

Description

id

ID du gestionnaire

type

Spécifie le type de gestionnaire. Le type de gestionnaire que vous pouvez spécifier est « CFM »

filename

Le nom du fichier CFM

 

Vous pouvez spécifier uniquement des caractères alphanumériques pour les valeurs d'attribut.Les caractères spéciaux ne sont pas autorisés.

Exemple

<handlers>
<handler id="cfcgenerator" type="CFM" 
filename="ormCFCGenerator.cfm" />
<handler id="gridgenerator" type="CFM" 
filename="cfgridGenerator.cfm" />
</handlers>

Spécification des évènements

Servez-vous de la balise events pour spécifier les évènements. Actuellement, ColdFusion Builder ne prend en charge qu'un évènement lors de la création de Projet. Le type d'événement pris en charge est onprojectcreate. Transmettez l'ID de gestionnaire requis pour l'évènement onprojectcreate. Lorsque l'évènement se produit, le gestionnaire associé à l'ID de gestionnaire est appelé.

Toutes les app pour lesquelles l'évènement onprojectcreate est spécifié sont répertoriées sous la répertorier des app dans Création d'un Projet ColdFusion. Lorsqu'un Utilisateur sélectionne l'une des app répertoriées, les gestionnaires associés pour l'app sélectionnée sont appelés. L'évènement onprojectcreate est utile pour créer une structure de Projet de base pour une extension ColdFusion Builder donnée.

Syntaxe

<events>
<event 
type="onprojectcreate"
handlerid="handler id" />
</events>

 

Attribut

Description

type

Spécifie l'événement pour lequel le gestionnaire s'exécute. Vous pouvez spécifier le type d'événement="onprojectcreate"

handlerid

Spécifie l'ID du gestionnaire à transmettre.

 

Vous ne pouvez spécifier que des caractères alphanumériques pour les valeurs d'attribut.Les caractères spéciaux ne sont pas autorisés.

Exemple

<events> 
<event type="onprojectcreate" 
handlerid="projectCreationHandler" /> 
</events>

Nouveaux événements ajoutés dans Adobe ColdFusion Builder 2.0.1
onfilechangeineditor : l'extension peut écouter les événements lorsque le fichier change dans l'éditeur

Supposons que vous passiez à un document différent (en cliquant sur l'onglet de l'éditeur) ou en ouvrant un document dans l'éditeur.Il est maintenant possible pour l'extension de le savoir.Pour cela, un nouvel évènement {{onfilechangeineditor, a été introduit. L'évènement peut }}être enregistré comme suit :

<event type="onfilechangeineditor" handlerid="any_handler_id"/>

Les informations envoyées dans le message d'évènement incluent les éléments suivants :

  • type : Le type d'évènement est onfilechangeineditor
  • project_path : Chemin d'accès absolu du Projet auquel appartient le fichier (qui est ouvert dans l'éditeur).
  • file_path : Chemin d'accès absolu du fichier actuellement ouvert/basculé dans l'éditeur.
  • editor_name : Nom de l'éditeur qui a ouvert le fichier. Pour les fichiers CFML, le nom est Adobe CFML Editor..

Voici un exemple de sortie :

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
http://[ip_address:port]/index.cfm?extension=<Extension_Name>
</callbackurl>
<eventinfo type="onfilechangeineditor">
<project>
Extensions
</project>
<project_path>
[project_path]
</project_path>
<file_path>
[file_path]
</file_path>
<event>
onfilechangeineditor
</event>
<editor_name>
Adobe CFML Editor
</editor_name>
</eventinfo>
</ide>
<user>
</user>
</event>

onRDSDataViewSelectionChange : L'extension peut écouter l'évènement lorsque la sélection change dans la vue de données RDS

ColdFusion Builder envoie différents messages d'informations d'évènement au gestionnaire, selon la sélection dans la vue de données RDS. Pour cela, un nouvel évènement, onRDSDataViewSelectionChange a été introduit. L'évènement peut être enregistré comme suit :

<event type="onfilechangeineditor" handlerid="any_handler_id"/>

Nœud sélectionné

Informations envoyées

Exemple

Serveur

  • type : Le type d'évènement onRDSDataViewSelectionChange
  • name : Nom du Serveur
  • node_type : Type du nœud - serveur

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0" >
<callbackurl>http://[ip_address:port]/index.cfm? extension=<Extension_Name></callbackurl>
<eventinfo type="onRDSDataViewSelectionChange">
<event>onRDSDataViewSelectionChange</event>
<name>LocalCF9</name>
<node_type>server</node_type>
</eventinfo>
</ide>
<user></user>
</event>

 

Source de données

  • type : Le type d'événement onRDSDataViewSelectionChange
  • name : data source name
  • parent_node : Nom du nœud parent. C'est-à-dire le nom du serveur auquel appartient la source de données.
  • node_type : Type du nœud - source de données.

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0" >
<callbackurl>http://[ip_address:port]/index.cfm? extension=<Extension_Name></callbackurl>
<eventinfo type="onRDSDataViewSelectionChange">
<event>onRDSDataViewSelectionChange</event>
<name>AUTHORS</name>
<parent>Tables</parent>
<node_type>table</node_type>
</eventinfo>
</ide>
<user></user>
</event>

 

Groupe de tableaux

  • type : Type d'événement, onRDSDataViewSelectionChange
  • name : Nom du groupe de tableaux
  • parent_node : Nom du nœud parent. C'est-à-dire le nom de la source de données à laquelle appartient ce groupe de tableaux
  • node_type : Type du nœud - groupe.

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0" >
<callbackurl>http://[ip_address:port]/index.cfm? extension=<Extension_Name></callbackurl>
<eventinfo type="onRDSDataViewSelectionChange">
<event>onRDSDataViewSelectionChange</event>
<name>Tables</name>
<parent>cfbookclub</parent>
<node_type>group</node_type>
</eventinfo>
</ide>
<user></user>
</event>

 

Tableau

  • type : Type d'événement, onRDSDataViewSelectionChange
  • name : Nom du tableau
  • parent_node : Nom du nœud parent. C'est-à-dire la source de données à laquelle appartient le tableau.
  • node_type : Type du nœud - tableau.

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0" >
<callbackurl>http://[ip_address:port]/index.cfm? extension=<Extension_Name></callbackurl>
<eventinfo type="onRDSDataViewSelectionChange">
<event>onRDSDataViewSelectionChange</event>
<name>AUTHORS</name>
<parent>Tables</parent>
<node_type>table</node_type>
</eventinfo>
</ide>
<user></user>
</event>

 

Colonne

  • type : Le type d'événement onRDSDataViewSelectionChange
  • nom : Nom de colonne
  • parent_node : Nom du nœud parent. C'est-à-dire le nom du tableau auquel appartient la colonne.
  • node_type : Type du nœud - colonne.

 

<?xml version="1.0" encoding="UTF-8"?> 
<event> 
<ide version="2.0" > 
<callbackurl>http://[ip_address:port]/index.cfm? extension=<Extension_Name></callbackurl> 
<eventinfo type="onRDSDataViewSelectionChange"> 
<event>onRDSDataViewSelectionChange</event> 
<name>AUTHORID</name> 
<parent>APP.AUTHORS</parent> 
<node_type>field</node_type> 
</eventinfo> 
</ide> 
<user></user> 
</event>

 

OnFileSaved : Ajouter une notification d'événement lors de l'enregistrement du fichier

Lorsqu'un fichier est enregistré dans ColdFusion Builder, une notification d'événement est envoyée au fichier CFM du gestionnaire. Pour cela, un nouvel évènement onFileSaved a été introduit. L'évènement peut être enregistré comme suit :

<event type="onFileSaved" handlerid="OnFileSaved"/

Les informations envoyées au gestionnaire incluent :

  • Spécification des commandes de rappel à partir des gestionnairestype : Le type d'événement est onFileSaved
  • project_path : Chemin d'accès absolu du Projet auquel appartient le fichier enregistré.
  • file_path : Chemin d'accès absolu du fichier enregistré.
  • editor_name : Nom de l'éditeur qui a ouvert le fichier. Pour les fichiers CFML, le nom est Adobe CFML Editor.

Voici un exemple de sortie :

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
http://[ip_address:port]/index.cfm? extension=<Extension_Name>
</callbackurl>
<eventinfo type="onfilechangeineditor">
<project>
Extensions
</project>
<project_path>
[project_path]
</project_path>
<file_path>
[file_path]
</file_path>
<event>
onfilesaved
</event>
<editor_name>
Adobe CFML Editor
</editor_name>
</eventinfo>
</ide>
<user>
</user>
</event>

Spécification des menus contextuels

Utilisez la balise menucontributions pour spécifier un menu contextuel. Un menu contextuel est un menu pop-up qui apparaît lors d'un clic droit.

Pour spécifier les contributions de menu pour différentes vues, utilisez la balise contribution . Utilisez l'attribut target dans la balise contribution pour spécifier la vue cible où le menu doit apparaître. Utilisez la balise menu dans la balise contribution pour spécifier le menu à ajouter. Utilisez la balise action dans la balise menu pour spécifier les éléments de menu.

Syntaxe

<menucontributions>
<contribution target="rdsview|projectview|outlineview">
<menu name="name of the menu item">
<action name="action name">
</action>
</menu>
</contribution>
</menucontributions>

contribution

Attribut

Description

target

La vue target peut être l'une des suivantes :

  • rdsview
  • projectview
  • outlineview
  • éditeur

 

Remarque : Vous ne pouvez spécifier que des caractères alphanumériques pour les valeurs d'attribut. Les caractères spéciaux ne sont pas autorisés.

menu

Attribut

Description

name

Spécifie le nom du menu.

 

Remarque : Vous ne pouvez spécifier que des caractères alphanumériques pour les valeurs d'attribut. Les caractères spéciaux ne sont pas autorisés.

action

Attribut

Description

nom

Spécifie le nom de l'action.

handlerid

Spécifie l'ID du gestionnaire associé.

showresponse

Valeur booléenne qui spécifie si la réponse html que le gestionnaire reçoit doit être affichée à l'utilisateur :

  • oui
  • non
    La valeur par défaut est faux.

 

Remarque : Vous ne pouvez spécifier que des caractères alphanumériques pour les valeurs d'attribut. Les caractères spéciaux ne sont pas autorisés.

Spécification des filtres de menu

Les filtres de menu permettent de contrôler où un menu ou un élément de menu doit apparaître. Vous spécifiez les filtres de menu à l'aide de la balise filters. Vous pouvez spécifier différents types de filtre dans la balise filters ; utilisez les attributs type et pattern pour spécifier où le menu ou l'élément de menu doit apparaître. Si l'un des filtres spécifiés correspond, le menu ou l'élément de menu spécifié apparaît.

Vous pouvez spécifier des filtres pour les menus et les actions. Si vous spécifiez la balise filter dans la balise menu, le filtre contrôle l'affichage du menu. Par exemple, dans le symbole suivant, le menu ORM Code Generator apparaît uniquement si l'utilisateur clique avec le bouton droit sur le fichier modelglue.xml.

<menu name="ORM Code Generator">
<filters>
<filter type="file" pattern="modelGlue.xml" />
<filters>
</menu>

Spécification de filtres pour la vue Navigator

Vous pouvez spécifier des filtres sur le projet, le dossier ou le fichier de la vue Navigator.

Syntaxe

<filter type="folder|project|file"
pattern="expression régulière pour faire correspondre le dossier, le projet ou le nom de fichier" />

*Exemple* Si vous souhaitez que le menu ORM Code Generator apparaisse uniquement dans le contexte d'un dossier, vous pouvez utiliser un symbole comme celui qui suit :

<menu name="ORM Code Generator">
<filters>
<filter type="folder" />
<filters>
</menu>

Spécification de filtres pour la vue Contour

Vous pouvez spécifier des filtres sur différents types de nœuds de la vue Contour. Le nom de nœud que vous spécifiez agit comme filtre. Dans la vue Contour, vous pouvez également spécifier des filtres pour les fichiers. Lorsque vous ouvrez le fichier qui correspond au filtre dans l'éditeur CFML, le menu contribué apparaît dans la vue Contour.

Syntaxe

<menu name="nom du menu">
<filters>
<filter type="nom du nœud" />

*Exemple* Si vous voulez que le menu Générateur de symbole ORM apparaisse uniquement sur le nœud CFfunction dans la vue Contour, vous pouvez utiliser un symbole comme le suivant :

<menu name="Générateur de symbole ORM">
<filters>
<filter type="cffunction" />

Spécification des types d'entrée

Avant qu'un gestionnaire soit appelé, vous pouvez obtenir les entrées utilisateur en utilisant la balise input. Le gestionnaire associé traite les entrées utilisateur. Vous spécifiez une balise input pour chaque action et la balise input doit se trouver dans la balise action.

Pour contrôler la hauteur et la Largeur des boîtes de dialogue d'entrée, vous spécifiez la balise input dans la balise dialog. Par exemple, vous pouvez spécifier un symbole comme le suivant :

<dialog height="400" width="600" title="titre" image="chemin d'accès vers le fichier image">
<input name="Mappage" ... />
<input name="Source de données" ... />
</dialog>

 

Attribut

Description

height

Spécifie la hauteur de la boîte de dialogue.

width

Spécifie la Largeur de la boîte de dialogue.

title

Spécifie le titre de la boîte de dialogue.

image

Spécifie le chemin d'accès vers l'image qui apparaît dans la barre de titre. Le chemin d'accès que vous spécifiez doit être relatif au dossier Extension.

Syntaxe

<action name="nom de l'action">
<input name="input variable name"
label="libellé de la boîte de dialogue de saisie"
tooltip="infobulle"
type="dir|string|boolean|file|password|list"/>
</action>

 

attribut

Description

name

Nom de la Variable de saisie

label

Le libellé de la boîte de dialogue de saisie

tooltip

L'infobulle qui apparaît lorsque l'Utilisateur déplace la souris sur la boîte de dialogue de saisie.

type

La Variable de saisie peut être de l'un des Types de données suivants :

  • dir
  • chaîne
  • Booléen
  • fichier
  • mot de passe
  • répertorier
  • projectdir
  • projectfile

required

Spécifie le champ de saisie comme obligatoire. Lorsque vous spécifiez un champ de saisie comme obligatoire, le bouton OK n'est pas activé tant que l'utilisateur ne saisit pas une Valeur dans le champ obligatoire.

Motif

Spécifie l'expression régulière par rapport à laquelle les entrées utilisateur sont validées. Pour une erreur de validation, vous pouvez spécifier le message d'erreur qui doit apparaître. Vous utilisez l'attribut errormessage pour spécifier le message d'erreur.

errormessage

Le message d'erreur qui apparaît lorsque la validation échoue pour un Motif donné.

helpmessage

Le conseil d'aide qui apparaît dans la zone de titre de la boîte de dialogue pour un champ de saisie donné.

paramètre par défaut

Spécifie une Valeur par défaut pour un Type de données de saisie donné. Vous ne pouvez pas spécifier une Valeur par défaut pour les types de saisie Booléen. Pour les listes, la Valeur par défaut est présélectionnée.

checked

Une Valeur Booléen qui spécifie si le champ de case à cocher est sélectionné ou désélectionné, par défaut :

  • vrai - la case à cocher est sélectionnée (Valeur par défaut).
  • faux - la case à cocher est désélectionnée

 

Note : Vous ne pouvez spécifier que des caractères alphanumériques pour les valeurs d'attribut. Les caractères spéciaux ne sont pas autorisés.

Chaque Type de données correspond à un type de saisie comme spécifié dans le tableau ci-dessous. La syntaxe pour chaque type de saisie est également spécifiée.

Type de données

Type de saisie

Syntaxe

répertoire

Champ de sélection de répertoire

<input name="input variable name" label="libellé" tooltip=" infobulle" type="dir"/>

chaîne

Champ de texte

<input name="input variable name" label="libellé" tooltip=" infobulle" type="string"/>

Booléen

Case à cocher

<input name="input variable name" label="libellé" tooltip=" infobulle" type="boolean"/>

fichier

Champ de sélection de fichier

<input name="input variable name" label="libellé" tooltip=" infobulle" type="file"/>

mot de passe

Champ de mot de passe

<input name="input variable name" label="libellé" tooltip=" infobulle" type="password"/>

répertorier

Champ de liste

<input name="input variable name" label="libellé" tooltip=" infobulle" type="list"> <option value="Option1"> <option value="Option2"> </input>

répertoire de Projet

Champ de sélection de répertoire de Projet

<input name="input variable name" label="libellé" tooltip=" infobulle" type="projectdir"/>

fichier de Projet

Champ de sélection de fichier de Projet

<input name="input variable name" label="libellé" tooltip=" infobulle" type="projectfile"/>

Exemple

<menucontributions >
<contribution target="rdsview" >
<menu name="ORM Code Generator">
<action name="Generate ORM CFC" handlerid="cfm1" >
<input name="Location" label="Enter location"
tooltip="Emplacement où les CFC générés seront stockés" type="dir"/>
<input name="generateAppCFC" label="Generate
Application CFC" tooltip="Générer un CFC d'app avec le CFC ORM"
type="boolean"/>
<input name="generateView" label="Generate View"
tooltip="Générer un Modèle de vue avec le CFC ORM" type="boolean"/>
</action>
<action name="Generate Ajax Grid" handlerid="cfm2" >
<input name="Location" label="Enter location"
tooltip="Emplacement où la vue générée sera stockée" type="dir"/>
</action>
</menu>
</contribution>
<contribution target="projectview" >
<menu name="ORM Code Generator">
<action name="Generate ORM CFC" handlerid="cfm1" />
<action name="Generate Ajax Grid" handlerid="cfm2" />
</menu>
</contribution>
<contribution target="outlineview" >
<menu name="ORM Code Generator">
<action name="Generate ORM CFC" handlerid="cfm1" />
<action name="Generate Ajax Grid" handlerid="cfm2" />
</menu>
</contribution>
</menucontributions>

Prise en charge des mots-clés

Adobe ColdFusion Builder prend en charge les mots-clés utilisés pour ajouter des valeurs par défaut dans les boîtes de dialogue de saisie.Lors de l'exécution, les valeurs réelles remplacent les mots-clés.

Le tableau suivant répertorie les mots-clés pris en charge et les valeurs réelles correspondantes.

Mot-clé

Valeur réelle

projectlocation

Chemin d'accès absolu vers l'emplacement du Projet

projectname

Nom du Projet

serverhome

Chemin d'accès absolu vers l'emplacement d'installation du Serveur

wwwroot

Racine web du Serveur

Par exemple, vous pouvez spécifier le mot-clé projectname comme suit :

<input name="projectname" label="projectname" default="{$projectname}" type="dir"/>

Pour plus d'informations sur l'importation, le rechargement, la création de package et le débogage d'extension, consultez Utilisation de la vue Extensions.

Prise en charge de la contribution de menu sur plusieurs nœuds

Remarque : Introduit dans Adobe ColdFusion Builder 2.0.1

Dans la vue de données RDS, les contributions de menu peuvent être ajoutées aux nœuds de Serveur, de base de données et de fichier en plus des nœuds de tableau.

Si vous sélectionnez le nœud de Serveur, les noms de Serveur sont envoyés au gestionnaire.L'attribut selected, si vrai, indique si le Serveur, la base de données, le tableau ou le champ fait partie de la sélection comme illustré dans l'exemple de réponse suivant envoyé au gestionnaire :

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
url
</callbackurl>
<rdsview>
<servers>
<server name="server1">
<server name="server2">
</servers>
<database name="db1" server="server1" selected="true">
<table name="table1" selected="false">
<fields>
<field
name="field1" .... selected="true">
</fields>
</table>
</database>
</rdsview>
</ide>
</event>

Filtres

Comme les contributions de menu peuvent être ajoutées à plusieurs nœuds dans la vue de données RDS, vous pouvez spécifier des filtres pour indiquer le nœud que vous choisissez d'activer comme illustré dans l'exemple suivant. Les types de filtre valides sont server, database, table et field.

<contribution target="rdsview">
<menu name="menu1">
<action name="action1">
</action>
<filters>
<filter type="database" />
<filter type="table" />
</filters>
</menu>
</contribution>-

Présentation de la communication entre ColdFusion Builder et le gestionnaire

La communication entre le gestionnaire et l'IDE ColdFusion Builder s'effectue via XML.Lorsqu'un évènement se produit, ColdFusion Builder envoie les détails de l'évènement au gestionnaire associé au format XML.Le XML est envoyé au gestionnaire en tant que Variable de portée FORM nommée ideEventInfo.Pour récupérer le XML à partir de la Variable de portée FORM, servez-vous de la balise cfparam dans le gestionnaire.

Syntaxe

<cfparam name="ideeventinfo">

ou

<cfset ideData= form.ideEventInfo >

Présentation de la structure XML

Pour comprendre la structure XML, examinons le symbole XML.Tenez compte des points suivants avant d'examiner le symbole :

  • Toutes les informations envoyées au gestionnaire se trouvent dans la balise event.
  • Toutes les informations d'évènement et d'action se trouvent dans la balise {{ide }}.
  • Toutes les entrées utilisateur se trouvent dans la balise user.

Le tableau suivant décrit le symbole XML.Le contenu du symbole XML varie selon l'évènement.

Symbole

Contexte

Description

<rdsview >
<database name="">
<table name="">
<fields>
<field name=""
type=""
length=""
nullallowed=""
primarykey=""/>
</fields>
</table>
</database>
</rdsview>

rdsview

Lorsque vous cliquez sur un élément de menu de la vue RDS, les détails de l'évènement sont envoyés au gestionnaire associé.

<projectview
projectname="" projectlocation="">
<resource name=""
path=""
type="file/folder/project" />
</projectview>

projectview

Lorsque vous cliquez sur un élément de menu de la vue Projet, les détails de l'évènement sont envoyés au gestionnaire associé.

<outlineview
projectname=""
projectlocation="" >
<source filename=""
path="" >
<node type="function/other">
<function name=""
returntype="">
<argument name=""
type="" />
</function>
</node>
</source>
</outlineview>

outlineview

Lorsque vous cliquez sur un élément de menu de la vue Contour, les détails de l'évènement sont envoyés au gestionnaire associé.

<eventinfo
projectname=""
projectlocation=""
eventtype="" >
<resource name=""
path=""
type="file/folder/project" />
</eventinfo>

lors de la création du projet

Lorsque l'évènement spécifié se produit, les détails de l'évènement sont envoyés au gestionnaire associé.

<user>
<input name="" value=""/>
<input name="" value=""/>
<input name="" value=""/>
</user>

boîte de dialogue de saisie

Toutes les saisies utilisateur sont spécifiées dans la balise utilisateur.Chaque balise d'entrée dans la balise utilisateur contient une saisie utilisateur spécifique.Le nom de l'entrée est le même que le nom d'entrée spécifié dans le fichier IDE_Config.xml.

<user> <page index="" > <input name="" value="" /> </page> </user>

assistant d'installation

Toutes les saisies utilisateur sont spécifiées dans la balise utilisateur et envoyées au gestionnaire associé à l'assistant d'installation.Chaque balise d'entrée dans la balise utilisateur contient une saisie utilisateur spécifique.Le nom de l'entrée est le même que le nom d'entrée spécifié dans le fichier IDE_Config.xml.

Le fichier ideeventinfo.xml envoyé aux fichiers CFM du gestionnaire depuis Adobe ColdFusion Builder contient :

  • Les informations de version d'Adobe ColdFusion Builder sont fournies comme suit :

    <event>
    <ide version="2.0" >
    ....
    </ide>
    </event>

     

  • Les détails du serveur qui incluent le nom d'hôte et le numéro de port sont fournis comme suit :

    <eventinfo projectname="mg1"
    projectlocation="C:/Documents and Settings/sandeepp/runtime-EclipseApplication/mg1"
    eventtype="onprojectcreate">
    <server name="local1" hostname="localhost" port="8501" wwwroot="C:\ColdFusion9\wwwroot"/>
    </eventinfo>

     

Envoi de messages entre extension

Remarque : Introduit dans ColdFusion Builder 2.0.1

Une extension peut maintenant envoyer des messages à une autre extension pour effectuer une action ou pour notifier un évènement. L'extension qui reçoit le message peut soit prendre des mesures, soit ignorer le message.

Le scénario suivant explique en quoi cette fonctionnalité est utile :

Vous pouvez maintenant créer une extension qui peut écouter les évènements, par exemple basculer vers un fichier différent dans l'éditeur ou modifier la sélection dans la vue de données RDS. En utilisant cette fonctionnalité, si vous le souhaitez, vous pouvez mettre à jour le contenu de la vue avec ces informations (par exemple concernant la nouvelle sélection).

Le fichier CFM de gestionnaire qui reçoit la notification de modification d'évènement exécute une commande de rappel sendMessageToExtension vers ColdFusion Builder avec les éléments suivants :

  • Informations du message
  • Nom de l'extension à laquelle le message doit être envoyé
  • Le fichier CFM de gestionnaire dans l'extension qui doit être exécuté

L'exemple suivant demande à ColdFusion Builder d'envoyer un message à l'extension New Extension Enhacements in CFB Twister et d'appeler son gestionnaire NewFeaturesTestViewHandler et transmet des informations telles que le type d'événement et d'autres informations liées à l'évènement :

<cfsavecontent variable="command" > <cfoutput> <response>
<ide> <commands> <command type="sendMessageToExtension">
<params> <param
key="extension_name" value="New Extension Enhacements in CFB Twister" />
<param key="handlerid" value="NewFeaturesTestViewHandler" />
<param key="event_type" value="#type#" /> <cfloop
list="#structKeyList(eventinfo[1])#" index="key"> <param
key="#key#" value="#eventinfo[1][key].xmlText#" />
</cfloop> </params> </command>
</commands> </ide> </response> </cfoutput> </cfsavecontent>
<cftry>
<cfhttp url="#callbackURL#" method="post" result="httpResult">
<cfhttpparam type="body" value="#command#">
</cfhttp>
<cfcatch>
<cfset httpError = cfcatch.Message>
</cfcatch>
</cftry>

Communication du gestionnaire

ColdFusion Builder envoie les détails de l'évènement au gestionnaire NewFeaturesTestViewHandler sous forme de XML (comme Variable de portée FORM ideEventInfo) comme suit :

<event>
<ide version="2.0">
<callbackurl>
http://[ip_address:port]/index.cfm?extension=New Extension Enhacements in CFB 2.0.1
</callbackurl>
<extension_message>
<from_extension_name>
New Extension Enhacements in CFB 2.0.1
</from_extension_name>
<params>
<param key="project" value="Extensions"/>
<param key="project_path" value="[project_path]"/>
<param key="file_path" value="[file_path]"/>
<param key="event" value="onfilechangeineditor"/>
<param key="event_type" value="onfilechangeineditor"/>
<param key="editor_name" value="Adobe CFML Editor"/>
</params>
<from_extension_server>
LocalCF9
</from_extension_server>
</extension_message>
</ide>
<user>
</user>
</event>

Les informations transmises dans le nœud extension_message incluent les éléments suivants :

Informations

Description

from_extension_name

L'extension qui a envoyé le message.

params

Paramètres du message.

Création d'interfaces d'utilisation pour les extensions

Créer des boîtes de dialogue de saisie

Vous pouvez créer une boîte de dialogue de saisie soit en utilisant un fichier configuration (IDE_Config.xml), soit en utilisant des pages CFM.

Remarque : Si vous créez une interface d'utilisation en utilisant une réponse XML, désactivez la sortie debug en spécifiant cfsetting showdebugoutput="no" dans le symbole approprié.

Utilisation du fichier configuration

Vous créez une boîte de dialogue de saisie en créant un fichier configuration (IDE_config.xml) et en spécifiant les détails nécessaires. Pour plus d'informations, consultez Fichier configuration. Par exemple, vous pouvez spécifier un symbole comme suit :

<action name="nom action">
<dialog>
<input name="input variable name" label="label for the input dialog"
tooltip="infobulle" type="dir"/>
</dialog>
</action>

Utilisation des pages CFM

  • Dans le fichier IDE_config.xml, spécifiez l'attribut showResponse de la balise Action comme yes, comme suit :

    <action name="generate CFC" handlerid="cfcgenerator" showResponse="yes" />

  • Dans le gestionnaire CFM, procédez comme suit :
  1. Spécifiez la Valeur content-type de la balise cfheader comme text/xml, comme suit :

    <cfheader name="Content-Type" value="text/xml">

  2. Créez la boîte de dialogue de saisie en construisant le XML comme suit :

    <cfoutput>
    <response>
    <ide>
    <dialog >
    <input name="location" Label="Enter Location" type="dir" />
    </dialog>
    </ide>
    </response>
    </cfoutput>

Créer des interfaces d'utilisation HTML

Vous pouvez créer une interface d'utilisation HTML en utilisant soit une réponse HTML, soit une réponse XML.

Utilisation d'une réponse HTML

Dans le fichier IDE_config.xml, spécifiez l'attribut showResponse de la balise Action comme yes, comme suit :

<action name="generate CFC" handlerid="cfcgenerator" showResponse="yes" />

Le contenu HTML de la page CFM apparaît dans une boîte de dialogue.ajax et javascript ne sont pas pris en charge dans le contenu HTML.Si vous utilisez des liens dans le contenu HTML, l'URL du lien doit être une URL absolue et non une URL relative.

Utilisation d'une réponse XML

Dans le gestionnaire CFM, procédez comme suit :

  1. Spécifiez la valeur content-type de la balise cfheader comme text/xml, comme suit :

    <cfheader name="Content-Type" value="text/xml">

  2. Créez l'interface d'utilisation HTML en construisant le XML comme suit :

    <cfoutput>
    <response showresponse="true">
    <ide url="http://localhost:8500/local/Dynamic%20UI%20Test/handlers/main.swf" >
    <dialog width="455" height="470" />
    </ide>
    </response>
    </cfoutput>

Le contenu HTML de l'URL spécifiée apparaît dans une boîte de dialogue. Vous pouvez également afficher l'interface d'utilisation HTML via une réponse XML comme suit :

<cfoutput>
<response showresponse="true">
<ide >
<dialog width="100" height="400" />
<body>
<![CDATA[
Any HTML content
] ]>
</body>
</ide>
</response>
</cfoutput>

Remarque : Les extensions ne prennent pas en charge les chemins d'accès relatifs pour CSS et javascript. Le code ajax et javascript spécifié dans la section CDATA ne fonctionne pas. Toute URL que vous spécifiez dans la section CDATA doit être une URL absolue.

Comprendre la structure de la réponse XML

Réponse

La réponse XML est définie dans la balise response qui possède les attributs suivants :

Attribut

Description

showresponse

Valeur Booléen qui spécifie si la réponse doit être présentée à l'utilisateur :

  • vrai
  • faux

statut

Affiche une boîte de dialogue de réussite ou d'erreur. Selon le statut (réussite ou erreur), la boîte de dialogue apparaît avec une icône appropriée. Applicable uniquement lorsque l'attribut de messages est spécifié dans la balise IDE. Cet attribut s'applique uniquement lorsque vous spécifiez l'attribut de messages dans la balise IDE.

IDE

La balise IDE possède les attributs suivants :

Attribut

Description

message

Affiche le message que vous spécifiez dans une boîte de dialogue de réussite ou d'erreur. Utilisez l'attribut status="success/error" de la balise de réponse pour spécifier si le message doit apparaître comme un message d'erreur.

url

L'URL d'une page que vous souhaitez afficher à l'utilisateur.

handlerfile

Chemin d'accès vers le fichier de gestionnaire qui doit être appelé lorsqu'un utilisateur clique sur OK dans la boîte de dialogue de message. Cet attribut s'applique uniquement lorsque les boîtes de dialogue de saisie sont créées à partir d'une réponse XML.

Corps

Utilisez la balise corps pour spécifier tout contenu HTML. Le contenu HTML dans la balise corps doit être spécifié dans la section CDATA.

Boîte de dialogue

La balise dialog est utilisée pour créer des boîtes de dialogue de saisie et possède les attributs suivants :

Attribut

Description

height

Spécifie la hauteur de la boîte de dialogue.

width

Spécifie la largeur de la boîte de dialogue.

title

Spécifie le titre de la boîte de dialogue.

image

Spécifie le chemin d'accès vers l'image qui apparaît dans la barre de titre.

dialogclosehandler

Chemin d'accès vers le fichier de gestionnaire qui doit être appelé lorsqu'un utilisateur clique sur Fermer ou Annuler dans la boîte de dialogue de message. Cet attribut s'applique uniquement lorsque les boîtes de dialogue de saisie sont créées à partir d'une réponse XML.

Pour contrôler la hauteur et la largeur des boîtes de dialogue de saisie, vous utilisez la balise input dans la balise dialog.

Attribut

Description

hauteur

Spécifie la hauteur de la boîte de dialogue.

largeur

Spécifie la largeur de la boîte de dialogue.

titre

Spécifie le titre de la boîte de dialogue.

image

Spécifie le chemin d'accès vers l'image qui apparaît dans la barre de titre.Le chemin d'accès que vous spécifiez doit être relatif au dossier Extension.

Créer des vues

Adobe ColdFusion Builder vous permet de créer des vues à l'aide d'extension.Vous pouvez également spécifier une icône de vue et des éléments de barre d'outils pour la vue que vous créez.

Cette fonctionnalité vous aide à utiliser les fonctionnalités de l'IDE simultanément tout en visualisant les données.

Créez une vue de l'une des manières suivantes :

  • Ajouter une contribution à ide_config.xml
  • Dynamiquement à partir de la réponse du gestionnaire

Ajouter une contribution à IDE_config.xml

Spécifiez les détails dans le fichier de configuration IDE_config.xml comme indiqué dans le symbole suivant.L'ajout d'une contribution de vue à ide_config.xml ajoute la vue à la liste des vues sous la catégorie ColdFusion dans la boîte de dialogue Afficher la vue (Fenêtre > Afficher la vue > Autre).

<viewcontributions>
<view id="ID" title="title" icon="relative_path_to_icon" handlerid="handler_id" >
<toolbarcontributions>
<toolbaritem icon="relative_path_to_icon" handlerid="handler_id" />
<toolbaritem icon="relative_path_to_icon" handlerid="handler_id" />
</toolbarcontributions>
</view>
</viewcontributions>

 

Attribut

Description

id

Identifie la vue. Les vues fournies par une extension doivent avoir des ID unique. L'ID peut être utilisé pour mettre à jour le contenu d'une vue à partir de la réponse du gestionnaire.

title

Titre de la vue.

toolbaritem

Ajoute un élément à la barre d'outils de la vue.

icon

Chemin d'accès relatif au fichier image qui réside dans l'emplacement d'installation des extensions. Par exemple, spécifier images/icon.png (dans le dossier images de l'emplacement d'installation de l'extension) affiche icon.png comme icône de la vue. Les tailles standard sont de 16 x 16 pixels ou de 20 x 20 pixels. Tous les formats d'image populaires sont pris en charge.

handlerid

ID du gestionnaire associé.

keepFocus (ajouté dans ColdFusion Builder 2.0.1)

Si la valeur est true, évite le déplacement du thème lorsqu'une vue d'extension est générée de manière dynamique. Supposons que vous modifiez un fichier et qu'une action entraîne l'actualisation/la création d'une vue d'extension. Vous ne souhaitez peut-être pas que le thème passe de l'éditeur à la vue. Définissez l'attribut keepFocus sur true pour éviter le déplacement du thème lorsqu'une vue d'extension est générée de manière dynamique à l'aide de la balise <view> dans IDE_config.xml. Par défaut, les vues d'extension créées de manière dynamique n'obtiennent pas le thème. Les vues d'extension affichées à partir de l'option de menu Fenêtre > Afficher la vue obtiennent toujours le thème.

Affichage de la vue

  1. Installez ou importez l'extension qui fournit la vue.
  2. Ouvrez la boîte de dialogue Afficher la vue (Fenêtre > Afficher la vue > Autre).
  3. Double-cliquez sur ColdFusion dans la liste des dossiers.
  4. Sélectionnez la vue (qui est fournie), puis cliquez sur OK.

La vue apparaît et appelle le fichier CFM Handler correspondant.

Utiliser les gestionnaires (pour les vues dynamiques)

Dans le gestionnaire CFM,

  1. Spécifiez la valeur content-type de la balise cfheader (comme text/xml) comme suit :

    <cfheader name="Content-Type" value="text/xml">

  2. Créez la vue qui affiche le contenu HTML en construisant le XML comme suit :

    <cfoutput>
    <response showresponse="true">
    <ide url="URL">
    <view id="ID" title="title" icon="icon_path" />
    </ide>
    </response>
    </cfoutput>

Vous pouvez également afficher le contenu HTML via une réponse XML comme suit :

<cfoutput>
<response showresponse="true">
<ide>
<view id="ID" title="title" icon="icon_path" handlerid="ID" />
<body>
[![CDATA[any html content] ] >
</body>
</ide>
</response>
</cfoutput>

Remarque : Actuellement, les vues ne persistent pas d'une session Adobe ColdFusion Builder à l'autre.

Dans Adobe ColdFusion Builder 2 et les versions antérieures, les vues dynamiques sont ajoutées au sous-menu de la boîte de dialogue « Fenêtre > Afficher la vue ».Cependant, dans Adobe ColdFusion Builder 3, les vues dynamiques sont affichées dans la vue d'extension sous forme d'élément de liste déroulante :

dynaview

Spécification des commandes de rappel à partir des gestionnaires

Dans ColdFusion Builder (la version précédente), à partir des fichiers CFM de gestionnaire, vous pouvez demander d'exécuter les commandes suivantes : refreshproject, refereshfolder, refreshfile, inserttext et openfile.

Vous pouvez maintenant effectuer toutes ces opérations et quelques autres dans la phase d'exécution elle-même (plutôt qu'à la fin de l'exécution).À partir des fichiers CFM de gestionnaire, vous pouvez envoyer un appel à ColdFusion Builder en utilisant l'URL de rappel.ColdFusion Builder fournit l'URL de rappel dans le XML ideeventinfo comme indiqué ici :

<event>
<ide version="2.0">
<callbackurl>
callbackURL
</callbackurl>
</ide>
</event>

En plus des commandes qui obtiennent des informations de contexte liées à l'éditeur, vous pouvez obtenir des informations spécifiques au serveur telles que les détails de source de données et de tableau.

Le tableau suivant fournit la liste des commandes qui vous aident à effectuer diverses opérations dans la phase d'exécution.Toutes les commandes qui demandent des données ont un résultat de commande au format XML.Le tableau contient les résultats renvoyés par chaque commande :

Nom

Action

Entrée

Résultat

refreshFile

Actualise le fichier spécifié en envoyant le chemin d'accès absolu ou relatif. Si vous spécifiez le chemin d'accès relatif, spécifiez le nom du Projet. Le nom du Projet est facultatif. Il peut être spécifié si le fichier se trouve dans le Projet.

 

<command type="refreshFile"> 
<params> 
<param key="filename" value="filePath" />
<param key="projectname" value="#arguments.project
Name#" /> 
</params> 
</command>

 

Non applicable

refreshFolder

Actualise le dossier spécifié. Le nom du Projet est facultatif. Il peut être spécifié si le dossier se trouve dans le Projet.

 

<command type="refreshFolder"> 
<params> 
<param key="foldername" value="folderPath" /> 
<param key="projectname" value="projectName" /> 
</params> 
</command>

 

Non applicable

refreshProject

Actualise le Projet spécifié.

 

<command type="refreshProject"> 
<params> 
<param key="projectname" value="projectName" /> 
</params> 
</command>

 

Non applicable

openFile

Ouvre le fichier spécifié pour modification, en envoyant le chemin d'accès absolu ou relatif. Si vous spécifiez le chemin d'accès relatif, spécifiez le nom du Projet. Le nom du Projet est facultatif. Il peut être spécifié si le dossier se trouve dans le Projet. lineNumber est un paramètre facultatif (_ajouté dans Adobe ColdFusion Builder 2.0 _)

 

<command type="openFile"> 
<params> 
<param key="filename" value="filePath" />
<param key="projectname" value="projectName" /> 
<param key="linenumber" value="10" /> 
</params> 
</command>

 

Non applicable

insertText

Insère le texte spécifié dans l'éditeur Principal. Le texte sélectionné dans l'éditeur est remplacé après l'exécution de cette commande.

 

<command type="inserttext"> 
<params> 
<param key="text"> 
<![CDATA[ text_to_insert ] ] > 
</param> 
<param key="insertmode" value="replace/insert" /> 
</params> 
</command>

 

Non applicable

getServers

Répertorie les serveurs ajoutés au Gestionnaire de serveurs.

 

<command type="getservers" > 
</command>

 

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
[call back URL]
</callbackurl>
<command_results>
<command_result type="getservers">
<servers>
<server name=""/>
...
</servers>
</command_result>
</command_results>
</ide>
</event>

 

getDatasources

Répertorie les sources de données pour un serveur donné. La Variable output est une liste de data source name séparés par des virgules. Si le nom du serveur n'est pas spécifié, par défaut, le serveur sur lequel l'extension s'exécute est pris en compte.

 

<command type="getdatasources" > 
<params> 
<param key="server" value="comma_
seperated_
server_names" /> 
</params> 
</command>

 

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
[callback url]
</callbackurl>
<command_results>
<command_result type="getdatasources">
<datasources>
<datasource name="" server=""/>
...
</datasources>
</command_result>
</command_results>
</ide>
</event>

 

getTables

Obtient les détails des tableaux pour une source de données donnée. Si le nom du serveur n'est pas spécifié, par défaut, le serveur sur lequel l'extension s'exécute est pris en compte.

<command type=
"gettables">
<params> <param key="server" value=
"servers" /> <param key=
"datasource" value="datasources" /> </params> </command>

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
[callback url]
</callbackurl>
<command_results>
<command_result type="gettables">
<tables>
<table datasource="" name="table_Name" server="">
<field cfsqltype="" cftype="" javatype="" name=""
nullallowed="" primarykey="true|false" type=""/>
[list of other columns]
</table>
...[list of other tables]
</tables>
</command_result>
</command_results>
</ide>
</event>

 

getTable

Obtient les détails d'un tableau particulier pour une source de données donnée. Si le nom du serveur n'est pas spécifié, par défaut, le serveur sur lequel l'extension s'exécute est pris en compte.

 

<command type="gettable"> 
<params> 
<param key="server" value="servername" />
<param key="datasource" value="dsn" /> 
<param key="table" value="tablename" /> 
</params> 
</command>

 

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
[callback url]
</callbackurl>
<command_results>
<command_result type="gettable">
<table datasource="" name="" server="">
<field cfsqltype="" cftype="" javatype="" name=""
nullallowed="" primarykey="true|false" type=""/>
...
</table>
</command_result>
</command_results>
</ide>
</event>

 

searchFile

Recherche un fichier de contenu texte et renvoie le contenu. Utilisez getcontent uniquement pour les fichiers texte. searchDirection indique si vous souhaitez effectuer une recherche dans les dossiers parent (up) ou les sous-dossiers (down)

 

<command type="searchfile" > 
<params> 
<param key="fileName" value="ide_config.xml"/> 
<param key="from" value="search_from_
this_
file_or_folder"/>
<param key="getcontent" value="true/false"/> 
<param key="searchDirection" value="up/down"/> 
<param key="matchfolder" value="true/false"/> 
</params> 
</command>

 

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
[callback url]
</callbackurl>
<command_results>
<command_result type="searchfile">
<files>
<file path="" type="file"/>
</files>
</command_result>
</command_results>
</ide>
</event>

 

getfunctionsand
variables
(Pour plus de détails sur
les améliorations,
consultez la section
Améliorations apportées
aux commandes de rappel
existantes dans ColdFusion
Builder 2.0.1)

Répertorie les fonctions et variables dans un fichier que vous spécifiez.

 

<command type=
"getfunctionsand
variables" > 
<params> 
<param key="filePath" value="path"/> 
</params> 
</command>

 

 

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
[callback url]
</callbackurl>
<command_results>
<command_result type="getfunctionsand
variables">
<cfmlfile type="component
|interface|cfml">
<variables>
<variable function="name of function if variables is inside function" name="" type=""/>
...
</variables>
<functions>
<function file="" name=""/>
...
</functions>
</cfmlfile>
</command_result>
</command_results>
</ide>
</event>

 

getProjects
(Ajouté dans ColdFusion Builder 2.0.1)

Obtient la liste des projets ColdFusion Builder.Les détails incluent :

  • nom : Nom du Projet
  • chemin d'accès : Chemin d'accès absolu du Projet.
  • isopen : Si le Projet est ouvert ou fermé.Si ouvert, la Valeur est vrai.
  • iscfproject : faux si ce n'est pas un Projet ColdFusion.Si c'est un Projet ColdFusion, alors des informations supplémentaires telles que le nom du Serveur sont renvoyées.

 

<commands> 
<command type=
"getprojects" > </command> 
</commands>

 

<?xml version="1.0" encoding=
"UTF-8"?><event> <ide version="2.0"> <callbackurl> http://<ip_address:port>
/index.cfm?extension=untitled </callbackurl> <command_
results> <command_result type="getprojects"> <projects> <project name="TestProject"
path="<Project_Path>">
<cfproject> <server name="local_server"/>
</cfproject> </project>
</projects> </command_result> </command_results> </ide></event>

reloadExtensions(Ajouté dans ColdFusion Builder 2.0.1)

Charge à nouveau une extension en utilisant une extension.

 

<commands> 
<command type="reloadExtensions" > </command> 
</commands>

 

Non applicable

sendMessage
ToExtension(Ajouté dans ColdFusion Builder 2.0.1)

Pour plus de détails, consultez Envoi de messages entre extensions.

 

 

Améliorations apportées aux commandes de rappel existantes dans ColdFusion Builder 2.0.1

La réponse renvoyée par la commande de rappel getfunctionsandvariables inclut désormais des informations relatives à la portée des variables. Vous pouvez écrire une extension pour déterminer la portée, par exemple si la Variable est dans la portée var de la fonction. Les trois variables suivantes sont identifiées :

  • Portée d'argument
  • Portée Var
  • Variables créées par balise, par exemple, les variables créées dans cfquery.

Vous pouvez déterminer les portées restantes dans le fichier Handler CFM à partir du préfixe du nom de Variable, par exemple this ou application. Voici un exemple de sortie getfunctionsandvariables qui inclut des informations relatives à la portée :

<event>
<ide version="2.0">
<callbackurl>
http://ip_address:port/index.cfm?extension=untitled
</callbackurl>
<command_results>
<command_result type="getfunctionsandvariables">
<cfmlfile type="cfml">
<variables>
<variable name="i" type="numeric"/>
</variables>
<functions>
<function name="testFunc" file="C:\ColdFusion9\wwwroot\MyExtension\handlers\test.cfm">
<variables>
<variable name="j" type="numeric" function="testFunc" scope="varscope"/>
<variable name="arg1" function="testFunc" scope="argument"/>
<variable name="variables.l" type="numeric" function="testFunc"/>
</variables>
</function>
</functions>
</cfmlfile>
</command_result>
</command_results>
</ide>
</event>

Exemple : Exécuter des commandes à l'aide d'une URL de rappel

Étape 1 : Obtenir le XML ideeventinfo

<cfparam name="ideeventinfo" >
<cfset xmldoc=xmlParse (ideeventinfo)>

Étape 2 : Obtenir l'URL de rappel à partir du XML ideeventinfo

<cfset callbackurl= xmldoc.event.ide.callbackurl.xmlText>

Étape 3 : Créer du XML pour envoyer une commande à Adobe ColdFusion Builder

<cfsavecontent variable="commandxml" >
<cfoutput>
<response>
<ide>
<commands>
[Tout XML de commande à exécuter]
</commands>
</ide>
</response>
</cfoutput>
</cfsavecontent>

Étape 4 : Exécuter la commande de rappel et obtenir une réponse

<cfhttp method="post" url="#callbackurl#" result="commandresponse" >
<cfhttpparam type="body" value="#commandxml#" >
</cfhttp>

Gestion des erreurs lors de l'utilisation des commandes de rappel

S'il y a une erreur lors de l'exécution de commandes qui renvoient des données, le XML de réponse de commande fournit le nœud d'erreur avec des informations sur la cause possible de l'erreur.

<?xml version="1.0" encoding="UTF-8"?>
<event>
<ide version="2.0">
<callbackurl>
[URL de rappel]
</callbackurl>
<command_results>
<error>
[message d'erreur]
</error>
</command_results>
</ide>
</event>

Ressources supplémentaires

  • *[Extensions Adobe ColdFusion Builder 2 - Comprendre
    les commandes de rappel|http://sandeepp.org/blog/?p=224]* Sandeep Paliwal, membre de l'équipe d'ingénierie d'Adobe ColdFusion Builder, explique les possibilités des commandes de rappel dans les extensions Adobe ColdFusion Builder 2.

Utilisation de la vue Extensions

Utilisez la vue Extensions pour installer, désinstaller, importer et charger à nouveau des extensions.

Si la vue Extensions n'est pas déjà affichée dans l'atelier, ajoutez la vue Extensions en sélectionnant Fenêtre > Afficher la vue > Autre.Ensuite, dans la boîte de dialogue Afficher la vue, sélectionnez ColdFusion > vue Extensions.

Installer et désinstaller des extensions

  1. Dans la vue Extensions, cliquez sur et sélectionnez le fichier archive à installer.

    Remarque : Si l'extension que vous installez est expédiée avec ColdFusion Builder, le fichier archive est disponible dans le répertoire Extensions du dossier d'installation de ColdFusion Builder.

     

  2. L'assistant d'installation d'extension vous guide tout au long de l'installation.
  3. Sélectionnez le serveur.Si aucun serveur n'est configuré, cliquez sur Ajouter un serveur pour ajouter un nouveau serveur.Pour plus d'informations sur l'ajout d'un serveur, consultez Ajout de serveurs ColdFusion. Vous pouvez installer la même extension sur différents serveurs.Par exemple, serveur local CF9 et serveur local CF8.Cependant, à tout moment donné, seul le serveur que l'extension utilise est Principal.
  4. Saisissez le chemin d'accès vers la racine web ColdFusion (si le chemin d'accès n'est pas automatiquement renseigné lors de la sélection du serveur).Par exemple, _C:\ColdFusion9_wwwroot\
  5. Sélectionnez un dossier dans la racine web pour installer l'extension. Le fichier archive est extrait vers l'emplacement d'installation.
  6. Cliquez sur Installer.

Pour afficher une brève description de l'extension installée, cliquez sur le nom de l'extension. Si vous avez installé la même extension sur plusieurs serveurs, vous pouvez activer l'un des serveurs. Pour ce faire, sélectionnez le serveur que vous souhaitez activer dans la liste déroulante Serveur Principal.

Pour désinstaller une extension, sélectionnez l'extension dans la vue Extensions et cliquez sur . Vous pouvez désinstaller une extension uniquement depuis l'IDE, ou supprimer l'extension de votre IDE et du système de fichiers de votre ordinateur en même temps. Lorsqu'une extension est définitivement supprimée du système de fichiers, vous ne pouvez pas annuler la commande.

Remarque : Si vous désinstallez une extension installée sur plusieurs serveurs, répétez le processus de désinstallation pour chaque serveur.

Importer et charger à nouveau les extensions

Utilisez la vue extension pour importer et charger à nouveau les extension.

  • Vous pouvez importer des extension depuis un répertoire existant dans ColdFusion Builder. Cliquez sur dans la vue extension, puis sélectionnez le répertoire qui contient les fichiers d'extension.

    Remarque : Il est utile d'importer des extension lorsque vous utilisez des extension existantes pour développer de nouvelles extension.

     

  • Vous chargez à nouveau une extension si vous modifiez le fichier de configuration d'une extension installée. Les modifications du fichier de configuration ne sont prises en compte qu'après avoir chargé à nouveau l'extension. Cliquez sur dans la vue extension pour charger à nouveau toutes les extension installées.

Déboguer et empaqueter les extension

Lors du chargement des extension depuis le fichier de configuration, toutes les erreurs sont enregistrées dans le journal Eclipse. Pour déboguer les erreurs, vous pouvez afficher le journal d'erreur ColdFusion Builder en sélectionnant Fenêtre > Afficher la vue > Autre > Général > Journal d'erreur. Le journal d'erreur ColdFusion Builder apparaît dans la vue Journal d'erreur.

Pour empaqueter une extension, ajoutez le contenu suivant à un fichier ZIP :

  • Fichier de configuration (IDE_config.xml)
  • Répertoire de gestionnaire qui contient tous les fichiers CFM de gestionnaire

Remarque : Assurez-vous d'ajouter le fichier de configuration et le répertoire de gestionnaire directement sous la racine du fichier ZIP.

Utiliser ColdFusion Builder Extension Creator pour créer et empaqueter les extension

L'assistant ColdFusion Builder Extension Creator vous guide tout au long du processus de création et d'empaquetage des extension. L'assistant vous guide dans la création du fichier de configuration (IDE_Config.xml) et des fichiers de gestionnaire (CFM), la spécification des éléments de métadonnées, l'ajout de menus contextuels et la création d'interfaces d'utilisation.

Remarque : L'assistant ColdFusion Builder Extension Creator n'est installé que si vous avez sélectionné Installer les extension lors de la configuration d'un serveur ColdFusion. Consultez la vue extension pour obtenir la liste des extension installées.

  1. Dans la vue Navigateur, cliquez avec le bouton droit sur le Projet dans lequel vous souhaitez créer l'extension, puis sélectionnez Adobe Extension Builder > Nouveau.
  2. Saisissez ou recherchez un emplacement pour stocker l'extension. Sélectionnez Créer un dossier avec le nom de l'extension pour stocker les fichiers d'extension dans un dossier portant le même nom que l'extension.
  3. Sélectionnez l'onglet Détails de l'extension pour saisir le nom et les détails de l'extension. Vous pouvez également spécifier le texte d'un contrat de licence qui doit apparaître lors de l'installation de l'extension.

Spécifier les contributions de menu

Sélectionnez l'onglet Contributions de menu et cliquez sur Ajouter un menu pour spécifier un menu contextuel. Un menu contextuel est un menu pop-up qui apparaît lors d'un clic droit.

  • Saisissez le nom du menu et la vue target à partir de laquelle le menu doit apparaître. Vous pouvez spécifier la vue target comme la vue navigation ou Projet, la vue RDS, la vue Contour ou l'éditeur CFML. Cliquez ensuite sur Enregistrer le menu.
  • Pour spécifier les éléments de menu, cliquez sur Ajouter une action.
    1. Vous pouvez associer des gestionnaires à une action. Les gestionnaires affichent les opérations de génération de symbole qui sont récupérées depuis le serveur. Spécifiez l'ID du gestionnaire et le nom du gestionnaire, puis sélectionnez Afficher la réponse pour afficher la réponse du serveur. Cliquez ensuite sur Enregistrer.
    2. Avant qu'un gestionnaire ne soit appelé, vous pouvez obtenir des entrées utilisateur. Pour ce faire, cliquez sur Ajouter une entrée.
    3. Spécifiez le nom de la Variable d'entrée, le libellé de la boîte de dialogue d'entrée, l'infobulle et le type de Variable d'entrée.
    4. Vous pouvez également spécifier le Motif sur lequel l'entrée utilisateur est validée et le message d'erreur qui apparaît lorsque la validation échoue.
    5. Sélectionnez Requis pour spécifier le champ d'entrée comme requis, et sélectionnez Coché pour que la case à cocher soit sélectionnée par défaut. Cliquez ensuite sur Enregistrer.
  • Pour spécifier les filtres qui contrôlent l'affichage du menu, cliquez sur Ajouter un filtre. Vous pouvez spécifier des filtres aux niveaux Projet, dossier et fichier.

Spécifier les gestionnaires

Sélectionnez l'onglet Gestionnaires pour afficher les détails des gestionnaires installés.

  1. Pour spécifier un nouvel gestionnaire, cliquez sur Ajouter un gestionnaire et saisissez les détails nécessaires.
  2. Sélectionnez Génère une réponse pour obtenir des entrées utilisateur avant d'appeler le gestionnaire.
  3. Spécifiez le titre de la boîte de dialogue de saisie, ainsi que la hauteur et la largeur en pixel. Ensuite, cliquez sur Enregistrer le gestionnaire.

Créer un assistant d'installation d'extension

Sélectionnez l'onglet Assistants d'installation pour créer un assistant d'installation qui vous guide tout au long de l'installation de l'extension.

  1. Spécifiez la hauteur et la largeur de l'assistant en pixel. Vous pouvez également associer un gestionnaire à l'assistant. Ensuite, cliquez sur Enregistrer.
  2. Spécifiez un titre pour l'assistant, puis cliquez sur Enregistrer.
  3. Spécifiez le nom de la Variable de saisie, le libellé de la boîte de dialogue de saisie, l'infobulle et le type de Variable de saisie. Vous pouvez également spécifier le Motif par rapport auquel la saisie utilisateur est validée, ainsi que le message d'erreur qui s'affiche en cas d'échec de la validation.

Créer un package de l'extension

  1. Dans la vue Navigateur, cliquez avec le bouton droit sur le fichier ide_config.xml et le dossier Gestionnaire qui contient tous les fichiers CFM de gestionnaire, puis sélectionnez Adobe Extension Builder > Package. Les fichiers sont ajoutés à un fichier ZIP.
  2. Parcourez jusqu'à un emplacement pour stocker le fichier ZIP.

 

Contribuer à l'assistance de symbole à partir d'extensions

Vous pouvez ajouter des propositions à l'assistance de symbole à partir d'extensions.

  1. Dans le fichier IDE_config.xml, procédez comme suit :
  • Pour ajouter des propositions à l'assistance de symbole pour les paramètres de fonction, ajoutez le symbole suivant :

    <codeassistcontribution>
    <functions>
    <function name="linkTo" variableName="event" componentName="component_name" handlerId="CodeAssistHandler">
    <parameter index="1" />
    </function>
    </functions>
    </codeassistcontribution>

  • Pour ajouter des propositions à l'assistance de symbole sur les variables, ajoutez le symbole suivant :

    <codeassistcontribution>
    <variables>
    <variable name="event" componentName="component_name" handlerId="CodeAssistHandler">
    <parameter index="1" />
    </variable>
    </variables>
    </codeassistcontribution>

    Attribut

    Description

    name

    Nom de la fonction qui doit être répertoriée.

    nomVariable

    Nom de la Variable. Si spécifié, le gestionnaire est appelé uniquement si le nom de la Variable sur laquelle la fonction est appelée correspond au nom de la Variable. Pour les variables, lorsque vous spécifiez nomvariable. , dans l'éditeur, Code Assist présente la contribution pour cette Variable.

    nomComposant

    Si spécifié, le type de la Variable sur laquelle la fonction est appelée correspond au nom du composant que vous spécifiez.

    IDGestionnaire

    ID du gestionnaire associé.

    Index

    Spécifie les Index de paramètre pour lesquels le gestionnaire peut fournir Code Assist. S'il n'est pas présent, le gestionnaire est appelé pour tous les paramètres de la fonction.

     

  1. Dans le fichier CFM du gestionnaire, spécifiez la réponse pour ajouter une proposition d'assistance de symbole au format suivant :

    <codeassist_response>
    <proposal display="valeur_affichage" insert="insérer_cette_valeur" inquotes="true/false"/>
    </codeassist_response>

    Attribut

    Description

    affichage

    La Valeur que vous spécifiez apparaît dans la fenêtre de proposition.

    insérer

    Si cette proposition est sélectionnée, la Valeur que vous spécifiez est insérée dans l'éditeur.

    inquotes

    Si défini sur vrai, le texte inséré dans l'éditeur est entouré de guillemets doubles.

     

  2. Installez/importez l'extension. Lorsque vous démarrez Code Assist d'Adobe ColdFusion Builder, les fonctions s'affichent dans la fenêtre de proposition.

Ressources supplémentaires

 

Prise en charge d'extension pour définir la page de lancement

Vous pouvez générer dynamiquement l'URL de la page de début pour les applications de framework à l'aide d'extensions.

Les fonctionnalités ColdFusion Builder telles que le débogueur ColdFusion, Utiliser un navigateur externe, Exécuter en tant qu'app ColdFusion utilisent cette URL comme URL de la page de début.

L'URL générée peut également avoir un paramètre de requête ajouté.

Remarque : ColdFusion Builder vous permet de définir la page de lancement au niveau du Projet, ce qui est utile pour les applications simples.Cette fonctionnalité offre une option pour définir la page de lancement pour les projets basés sur des frameworks.

Ajouter une contribution de page de début à IDE_config.xml

Spécifiez les détails dans le fichier de configuration IDE_config.xml comme indiqué dans le symbole suivant :

<startpagecontribution>
<urlgenerator handlerid="ID" />
</startpagecontribution>

Communication du gestionnaire

ColdFusion Builder envoie les détails de l'évènement au gestionnaire sous forme de XML (en tant que Variable de portée FORM ideEventInfo) comme suit :

<event>
<ide version="2.0">
<callbackurl>
...
</callbackurl>
<startpage_request>
<project name="" projectlocation="">
<resource name="" path="" type="file|Folder|Project"/>
<server name="" hostname="" port="" wwwroot=""/>
</project>
</startpage_request>
</ide>
</event>

Ces informations peuvent être utilisées pour générer l'URL.

Utilisation d'extensions pour générer l'URL de la page de début

  1. Dans la vue Projet, cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés > Projet ColdFusion.
  2. Dans Paramètres de la page de début, sélectionnez l'option disponible dans la liste Utiliser l'extension.
  3. Cliquez sur OK.

La prochaine fois que vous exécutez l'app, le gestionnaire identifié avec l'identifiant que vous avez spécifié dans IDE_config.xml est appelé.Les informations liées au projet ou au CFM s'affichent.

Exemple

<cfheader name="Content-Type" value="text/xml">
<cfoutput>
<startpage_response>
<url>Any URL</url>
</startpage_response>
</cfoutput>