I have been working on the new editor toolbar for CFEclipse over the last few days, so I thought I would post up some images so you can see how things are going. It is a difficult task as its a matter of sourcing a ton of icons for strange concepts such as "throw" and "catch" etc.

So without further ado... here are some of the toolbars (these toolbars can be switched off and on from the CFEclipse/Editor Preference panel by the way, so if you dont like them, you can just go right ahead and switch them off)

CFML Basic
This toolbar is pretty much complete (unlike a lot of the others)

CF Flow
I have put as many of the icons for this toolbar as I can, the strange concepts for icons is the cfswitch, case, defaultcase as well as the cfif, else and elseif. If someone has some good ideas, send them over if not they might just stay as words

CFForm
I have to admit I havent put the icons here yet, but I am sure this wont be too difficult in themselves as there are icons out there for each of these items (especially since they are visual items rather than concepts)

CFC
The CFC toolbar is finished and I hope the icons there make sense to people

CFDocument
The CFDocument toolbar hasnt been touched yet, but I have a bunch of icons ready for this toolbar

CFML Advanced
Another untouched toolbar, I think I can get icons for most of these, but differences between cfpop and things like cfapplication might be a bit strange so I am still looking for good icons for these tags.

CFChart
This toolbar, again by its visual nature shouldnt be too hard but all suggestions welcome!

 

The method I used to display these items is by using an XML layout file, in which you can add tabs, as well as items to the toolbar (so if you want more items, let me know!). Although this makes it easier to configure, the icons need to be added to the CFPluginImages class so that they can be referenced from other parts of the IDE if required (such as the Outline view for example).

I tried to keep the XML file simple yet with the ability to extend it to do other functions rather than just insert tags, to do this, I have (and this is still changing) set up two types of buttons, a cftag type and a custom type.

The cftag type of button just needs a value which refers to the tag that it will insert, the custom type button refers to the class that is called. This class is dynamically loaded and at the moment is geared to running actions that have already been set.

Here is a cut down example:

<?xml version="1.0" encoding="UTF-8"?>
<tabs>
   <tab name="CFML Basic">
         <button name="CFParam" type="cftag" value="cfparam" image="param.gif" />
         <button name="CFDump" type="cftag" value="cfdump" image="dump.gif" />
         <button name="CFComment" type="custom" value="com.rohanclan.cfml.editors.actions.CFCommentAction" image="comment.gif"/>
         <button name="Surround with Hash/Pound signs" type="custom" value="com.rohanclan.cfml.editors.actions.CFVariableAction" image="hash.gif" />
   </tab>
</tabs>
You can see that the CFDump button has a value of "cfdump" so that is the tag that it will call. The CFComment item has a custom type and it calls com.rohanclan.cfml.editors.actions.CFCommentAction, which is the internal action to surround something with a comment.

Going forward with this I might add a cffunction type, and maybe a htmltag type so that we can have some basic html tags being added.