Project U: CF Frameworks Explorer Released

Posted At : May 5, 2007 10:23 PM | Posted By : Mark Drew
Related Categories: cfeclipse, cfObjective

On the first day of cfObjective() 2007 I released the top secret project called Project Unity. This project is easily described as a plugin for CFEclipse which displays an overview of any ColdFusion framework you happen to be using. It is highly configurable in that you can define your own framework if need be and add actions and labels to each of the nodes of a tree.

I shall be releasing more information over the coming days, but you can give it a try with your framework by updating cfeclipse and adding the CF Frameworks plugin from the extras directory.

Its in Alpha so dont complain too much!

Also, a new version of CFeclipse has been released, which should solve some of the errors that you guys have been having.

I shall be doing more release docs over the next few days when I get back from cfObjective()!

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
Ryan's Gravatar Congrats Mark, what a great plugin!!
# Posted By Ryan | 5/5/07 11:53 PM
Peter Bell's Gravatar Very cool to see this coming out - great job!
# Posted By Peter Bell | 5/6/07 11:04 AM
Rob Brooks-Bilson's Gravatar I think you're rapidly gaining parity with Ray in the "must never sleep" department. Congrats on the release of what looks to be another great addition to the CF tool set.
# Posted By Rob Brooks-Bilson | 5/6/07 11:59 AM
Mark Drew's Gravatar I get sleep, I just wake earlier than most :)
# Posted By Mark Drew | 5/6/07 12:25 PM
Thomas R?hl's Gravatar Mark, sounds like great work so far... I just went and tried to install this with my installation of FlexBuilder. Unfortunately, a NullPointerException occurs, when I try to open the new view.

Does the plugin require a certain version of Eclipse or cfEclipse?
Is there any method in favor to submit bugs on the project?

Cheers, Thomas
# Posted By Thomas R?hl | 5/6/07 1:09 PM
Sammy Larbi's Gravatar Thomas, I think you're looking for http://trac.cfeclipse.org/cfeclipse
# Posted By Sammy Larbi | 5/6/07 1:51 PM
Mark Drew's Gravatar I have only tested it on Eclipse 3.2.2, I dont think I shall support anything lower than that at the moment.
# Posted By Mark Drew | 5/6/07 2:43 PM
Mark Drew's Gravatar Oh and yes, you need to update CFEclipse to version 1.3.1.4 which I also posted (mis-reading my own blog... dammit)
# Posted By Mark Drew | 5/6/07 2:55 PM
Thomas R?hl's Gravatar Thanks for the link, Sammy!

And Mark, thanks for the info... I just want to say, that these requirements lock out all the users of FlexBuilder out there, since the standalone edition comes with Eclipse 3.1.2 initially. And I think, the latest build of cfEclipse does so as well.. after I updated to 1.3.1.4, it is having issues creating the editor pane. I think, I'll submit that on the trac site. :-/

However, I'm going to install a Eclipse now just for cfEclipse and the framework plugin.. :-)

Cheers, Thomas
# Posted By Thomas R?hl | 5/6/07 3:13 PM
Mark Drew's Gravatar You can install the Flex Plugin into Eclipse 3.2.2 at any rate, rather than the standalone.
there is a trac issue there. But after summer, I might not be supporting 3.1 at any rate (3.3 will be released)
# Posted By Mark Drew | 5/6/07 3:20 PM
Scott Stroz's Gravatar Mark - how would you use the frameworks explorer in an MG app with 'sub-applications'. I cannot seem to get it to find the config files in teh sub-directories.
# Posted By Scott Stroz | 5/6/07 8:37 PM
Ryan's Gravatar ^^ I have the same question. It will find my included config files, but not let me to browse the events under them. I hope this functionality exists or will soon, this plugin is great!
# Posted By Ryan | 5/7/07 2:35 AM
Chris H's Gravatar I'm getting a
"Could Not Accept Changes
The currently displayed page contains invalid values"
error when i try to Configure. Then it just opens an empty Preferences window that won't let me do anything.
I'm running the latest eclipse and cfeclipse versions.
would love to use this great tool!
# Posted By Chris H | 5/7/07 7:33 AM
Chris H's Gravatar ah, got it now, just had to set the files in the Explorer view!
# Posted By Chris H | 5/7/07 8:00 AM
joel's Gravatar Very nice, Mark! As someone with a 6000-line Mach-II config file, this is very handy.
# Posted By joel | 5/7/07 1:44 PM
Mark Drew's Gravatar I shall be writing documentation for the plugin on the flight back tonight, so people that were'nt at my presentation can get an idea on how it works. It is not feature complete on purpose so that people can add their own actions etc.

To give you a head start, you can look into <eclipse/plugins/org.cfeclipse.cfml.frameworks_1.0.2/config/

You will see three xml files in there:

framworks.xml - which defines which framworks it supports and the default folders it looks into for the xml config files. It also defines the names for each of the framwork's default files and which nodes are used to include files. The ignore tag defines which node it will skip (it will display the nodes below that though)

labels.xml - it defines the text and icon that is used for each node in the tree. the {something} token says which attribute from the node can be used

actions.xml - defines the right_click actions that appear when you click on a node. There is a lot more information I need to write about this since its a bit complicated. I shall be doing that tonight.
# Posted By Mark Drew | 5/7/07 2:00 PM
sal's Gravatar extras directory??
# Posted By sal | 5/7/07 2:24 PM
sal's Gravatar ackk! sorry, nevermind. found it.
# Posted By sal | 5/7/07 2:40 PM
sal's Gravatar ahh this is super wicked Mark! so cool...
cheers!
# Posted By sal | 5/7/07 2:43 PM
Tom Chiverton's Gravatar OK, I give up :-)
I *guess* I need to fill in the 'template projects located in' section of the main cfeclipse prefs ? I *guess* I set it to this 'extras' directory ? Where would that be ?
# Posted By Tom Chiverton | 5/8/07 8:13 AM
Tom Chiverton's Gravatar *ahh*
Right.
You need to do tell Eclipse to 'find new features', not simply update.
# Posted By Tom Chiverton | 5/8/07 1:17 PM
Tom Chiverton's Gravatar Gah. The Frameworks view just says:
java.lang.NullPointerException
   at org.eclipse.swt.dnd.DropTarget.setTransfer(DropTarget.java:616)
   at org.eclipse.jface.viewers.StructuredViewer.addDropSupport(StructuredViewer.java:548)
   at org.cfeclipse.cfml.frameworks.views.FrameworksView.createPartControl(FrameworksView.java:278)
   at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:332)
   at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:197)
   at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:566)
   at org.eclipse.ui.internal.Perspective.showView(Perspective.java:1675)
   at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:987)
   at org.eclipse.ui.internal.WorkbenchPage.access$13(WorkbenchPage.java:968)
   at org.eclipse.ui.internal.WorkbenchPage$13.run(WorkbenchPage.java:3514)
   at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
   at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3511)
   at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3487)
   at org.eclipse.ui.handlers.ShowViewHandler.openView(ShowViewHandler.java:148)
   at org.eclipse.ui.handlers.ShowViewHandler.openOther(ShowViewHandler.java:104)
   at org.eclipse.ui.handlers.ShowViewHandler.execute(ShowViewHandler.java:70)
   at org.eclipse.ui.internal.ShowViewMenu$3.run(ShowViewMenu.java:114)
   at org.eclipse.jface.action.Action.runWithEvent(Action.java:499)
   at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539)
   at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
   at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)
   at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
   at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3180)
   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2856)
   at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1930)
   at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1894)
   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422)
   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
   at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
   at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
   at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
   at org.eclipse.core.launcher.Main.run(Main.java:977)
   at org.eclipse.core.launcher.Main.main(Main.java:952)
# Posted By Tom Chiverton | 5/8/07 1:24 PM
Mark Drew's Gravatar Tom, this is on linux right? Strange. The SWT lib should work but then again, I dont know much about what is meant to be in there (for linux)

I shall be working on this for the next few days so we can have a chat to make it work.

MD
# Posted By Mark Drew | 5/8/07 5:19 PM
Ali's Gravatar Hey Mark,

Just wondering what, if any, configuration is necessary to get this working
with my Fusebox projects.

I downloaded the update, but the explorer is empty and when I try configuring it,
I get a dialog box saying there was some error.

Then I tried going through the Eclipse menu Window > Preferences
and then clicking on CF Frameworks and I have no configurable options available
to me.

I would really like to check this out and get it working.

Thanks,
Ali
# Posted By Ali | 5/8/07 9:34 PM
Tom Chiverton's Gravatar Mark, yeah, SuSE 'nix, 64-bit JVM.
Drop me a skype when you've had some sleep.
.
.
.
You do sleep, right ?
:-)
# Posted By Tom Chiverton | 5/9/07 10:54 AM
Mark Drew's Gravatar There are rumours that I am like the Stig and sleep with my eyes open!
(Info on the Stig http://en.wikipedia.org/wiki/The_Stig)
# Posted By Mark Drew | 5/9/07 11:30 AM
Ali's Gravatar @ChrisH

I had the same problem as you did. How did you get it to work?
How do you set the files in teh Explorer View?

I can view my projects in my regular "Navigator" Tab. Do you just drage them
to the Frameworks Explorer?

When I do that, my Eclipse hangs, and then nothing....

Please advise,
Thanks,
# Posted By Ali | 5/10/07 5:02 PM
Mark Drew's Gravatar Have a look at the screen cast I did... probably explains things a bit better

http://www.cfeclipse.org/index.cfm?event=page&...

I shall do another one tomorrow to explain more things about it.
# Posted By Mark Drew | 5/10/07 5:04 PM
Chris H's Gravatar Ali: You right-click the files in Explorer View ( i.e. ModelGlue.xml ) and have a cfFrameworks menu in there to set the config files.
# Posted By Chris H | 5/11/07 7:20 AM
Ali's Gravatar @Chris
Muchas Gracias! Yeah I just had to click on the fusebox.xml
file and set it as the config file, so now when I double-click
to open it, it automagically shows it in the Frameworks explorer.

Kudos to Mark! This is wonderful Mark, thanks!

Excellent!
Beautiful!
# Posted By Ali | 5/11/07 9:27 PM
Mark Drew's Gravatar Great stuff... but remember, this is an alpha (or pre-release, whatever) I still need to add a lot of features including giving it a name (getting tired of saying Frameworks Explorer)
# Posted By Mark Drew | 5/11/07 9:58 PM
Jamie Jackson's Gravatar @Tom Chiverton
I've got the same NPE bug in Linux. Ticket submitted:
http://trac.cfeclipse.org/cfeclipse/ticket/289
# Posted By Jamie Jackson | 5/12/07 2:53 AM
Mark Drew's Gravatar Tom Chiveron pointed that out to me the other day, I have removed the drag and drop stuff, once I re-install subversion I shall get this checked in and deployed (I have a couple of things I want to update)
# Posted By Mark Drew | 5/12/07 8:21 AM
Daniel Lancelot's Gravatar Thanks Mark - this is a great plugin.

Is there any way of getting it to "find" the circuit.xml.cfm files for shared circuits (those using a "/CF_Path/" as opposed to a relative path)?

Currently all my relative circuits are getting picked up fine, but I have nothing within the mapped circuits.

I have set the CFMapping on my project folder, (after reading this post: http://ray.camdenfamily.com/index.cfm/2007/5/6/Tip...) - but this din't seem to make any difference...
# Posted By Daniel Lancelot | 5/13/07 3:21 PM
Mark Drew's Gravatar @Dan: I am working on this as we speak, Ray pinged me with a problem he was having with mapped paths, I am currently testing so that you can have mapped, absolute and relative paths, and hopefully this will work.

You should expect and update very soon.
# Posted By Mark Drew | 5/13/07 4:24 PM
Daniel Lancelot's Gravatar Thanks mark - that sounds spot one. :)
# Posted By Daniel Lancelot | 5/13/07 4:28 PM
Daniel Lancelot's Gravatar (or "spot on" even :( )
# Posted By Daniel Lancelot | 5/13/07 4:29 PM
Jeff Dugas's Gravatar Our FuseBox 4 circuit files reference a DTD (<!DOCTYPE circuit SYSTEM "..\circuit.dtd">) for editing with various XML tools. This causes the problem seen by some where the explorer's circuit tree can't be expanded past their definitions in the core configuration file (fusebox.xml).

The only workaround I have is to remove the DOCTYPE node. As soon as you do that and save the circuit file, the CF Frameworks Explorer refreshes itself and you can burrow down into that circuit's particular fuseactions.

Fantastic!. tx Mark!
# Posted By Jeff Dugas | 6/19/07 2:13 PM
Mark Drew's Gravatar @Jeff: Mind sending me some files so I can test them and see if I can get the plugin ignoring the DTD?

On a side note, I am pretty sure that JDOM (the library I use for XML) ignores DTD's so I need to check what is happening.
# Posted By Mark Drew | 6/20/07 6:45 AM
Luis Majano's Gravatar Hey Mark,
I enjoy the Frameworks plugin more and more. I am finalizing the icons and actions for the ColdBox config file, but was wondering if there is a way to get the actual value of an xml element. Such as:

<MailServer>mymail.email.com</MailServer>

To get the XMLText. By using {attribute} you can get attributes, but is there a way to get the text?

Thanks!!
# Posted By Luis Majano | 6/21/07 10:05 PM
Mark Drew's Gravatar Well, that depends, is it the text of the current node? (I dont think I have added that yet... but I shall look into doing it)
# Posted By Mark Drew | 6/21/07 10:19 PM
Luis Majano's Gravatar Yep, that's it, the text of the current node.

I will be finishing it up soon. Should I send it to you?
# Posted By Luis Majano | 6/21/07 10:21 PM
Mark Drew's Gravatar Send it over! :)

Let me know which node and what you want to do and I shall see if I can add it

MD
# Posted By Mark Drew | 6/21/07 10:28 PM
Jeff Dugas's Gravatar Old news:

I'm still unable to use the Frameworks Explorer for Fusebox when the circuit files reference the circuit.dtd. However, at least one co-worker - using the same version of the Explorer (1.0.0), the same version of Eclipse (3.2.2), and the same source code - is using it with no troubles.

Go figure. Apparently it's 'just me' somehow; guess it's time to rebuild my environment!

Sorry to trouble,
Jeff D.
# Posted By Jeff Dugas | 9/17/07 10:36 AM