Using Filters to control your menu contributions

Author: sandeepp  |  Category: ColdFusion Builder, Extensions, General  |  Comments (0)  |  Add Comment

ColdFusion Builder Extensions allow you to add filters to menu contributions . With this you can control what menus are visible/hidden when the context menu is displayed.

Filter’s can be used for menu contributions to navigator and outline view.

Adding Filters to Menus:

For Navigator you may want to use filter to control menu contributions appearing when user tight clicks a project|folder|file or a file with given name or extension.

For ex. following menu will appear only when user right clicks a project

<menu name="Deploy">
<filters>
<filter type="project" />
<filters>
</menu>

and following menu will appear only when user right clicks a file with name “modelGlue.xml”

<menu name="Validate Config File">
<filters>
<filter type="file" pattern="modelGlue.xml" />
<filters>
</menu>

For outline view you can control for which nodes menu contribution can appear.

For Ex. Following menu will only appear when user clicks on node named “Events” in outline view.

<menu name="Add Event">
<filters>
<filter type="Events" />
</filters>
</menu>

Adding filters for Menu Actions:

Sometimes you may want to show the Menu every time, but may want to hide/show menu actions based on what user has clicked on. This can be achieved by adding filters at action level and not at menu level. So menu will appear all time but, display of individual menu items will be controlled by filters applied on menu action. Here’s an example

<menu name="ModelGlue Assistant">
<action name="Add Controller" handlerid="handler1" >
<filters>
<filter type="controllers" /> <!-- action appears only when user right clicks controllers node -->
</filters>
</action>
<action name="Add Message Listener" handlerid="handler2" >
<filters>
<filter type="controller" /> <!-- action appears only when user right clicks controller node -->
</filters>
</action>
<action name="Remove" handlerid="eventhandler" /> <!-- action appears for all nodes -->
</menu>

Here are the Screen shots for above code-

Above images show the working Action Filters. Here Menu and remove action appear at all places but other actions are controlled by filters.

ColdFusion Builder Extensions Tutorial Part I - Introduction

Author: sandeepp  |  Category: ColdFusion Builder, Extensions, General  |  Comments (0)  |  Add Comment

As I had said in my previous post that I will post a series of articles on extensions covering basics, tips and tricks etc, so here’s my first one.  This articles introduces you to ColdFusion Builder Extensions, explains what are they, what all is possible, where to find extensions etc.

First things First

What Are ColdFusion Builder Extensions?

Well in very simple words, extensions allow you to extend ColdFusion Builder by writing CFML code. Yes, that’s right CFML!!!….no java…no need to learn eclipse..just CFML code and a bit of XML. All this (CFML code and XML configuration file) can be packaged as ready to use zip file. This zip is what you can install/distribute as extension for ColdFusion Builder.

What all you can do with extensions?

Through extensions, ColdFusion Builder lets you hook into it in different ways. This means that you can tie specific CFML code to a given hook. To tell ColdFusion Builder to tie a hook to a specific CFML template you need to XML configuration file. Broadly there are two type of hooks

1) Hooks to Add Context Menus to different views inside ColdFusion Builder. Context menus are the pop-up menus which appear when you right click on a selected object/UI element etc. This can be useful to address code generation/analysis use-cases specific to a Framework or application development in general.

Context menus can be added to following views as of now

  • Navigator View
  • RDS Data View
  • Outline View

2) Hooks for Listening to Events inside ColdFusion Builder

  • Currently Project creation event is supported. This means that specific CFML code can be called whenever user creates a new project in ColdFusion Builder. This can be useful in creating default project templates, basic application code, Framework specific directory structure etc.

Are there any extensions available as of now?

Adobe ColdFusion Builder ships few extensions which can be location in <ColdFusion Builder install Dir>/extensions. These include extensions to generate basic as well as ORM  CFCs and Action script classes from database tables. Also a basic extension for Model-Glue Framework. And there quite a few exciting extensions already available on RIAForge under ColdFusion Builder Extensions category.

So go ahead and try out a few of them.

Hope this post clears your basic question about ColdFusion Builder extensions. Next post I will cover how you can add a context menu and hook it to cfm file.

ColdFusion Builder Comment Colorization

Author: sandeepp  |  Category: ColdFusion Builder, General  |  Comments (2)  |  Add Comment

Default colorization for ColdFusion Builder beta does not have background color set for comments. I guess lots of Dreamweaver users are used to having comment background colorized. Here’s a quick solution for that.

1) Open Editor Color Preferences(Window->Preferences->ColdFusion->Editor Profiles->Editor->Colors)

2) Click import and point to this colorization file

3) Click Apply. That’s it!!!…you are done.

Now, if you are wondering what this colorization file is, and are interested to know about it  then keep reading.

Colorization file is an xml file, which tells ColdFusion Builder how to colorize CFML. This can be created by exporting your current colorization settings.

Once you open this file you will see styles assigned for different CFML tokens.

For eg. <style foreground=”rgb(0,0,192)” id=”KEYWORD”/> meaning create style with id KEYWORD with assigned RGB colors.

Now this style can be applied to any category or token as below

<category name=”KEYWORD” style=”KEYWORD”/>

this means all keywords are styled with style identified with id “KEYWORD”.

So you can have your own custom style created and assigned to available token or categories.

Note:In preference UI only style options available are to change foreground colors and text style as(Bold/Italic/Underlined).

To change background color, as in case of comments, this has to be put in colorization file and imported back to apply.

Here’s how you assign background color for comments

create style for both background and foreground color

<style background=”rgb(255,255,153)” foreground=”rgb(0,0,0)” id=”WHITESPACE_COMMENT”/>
assign it to comment token as

<category name=”WHITESPACE” style=”WHITESPACE”>
<token style=”WHITESPACE_COMMENT” type=”COMMENT”/>
</category>

So if you need to change comment background color, just assign corresponding RGB value to the color you want to set in comment style and import your colorization file again.