GUI Source Generator Plugin

I have created a plugin that will generate source code from the .form file that the Idea UI Designer creates. I've attached a README.txt, and an INSTALL.txt that describe how the plugin works and how to install it, as well as the GuiSource.jar plugin itself. I really like the Idea IDE and I really like the UI Designer that they are developing. The only problem I have is that because of the byte code manipulation the Idea IDE does at compile time, the Idea IDE is required to make any changes to the any UI screens.

I develop software for customers who would not be very happy if I delivered source code that they could not change using what ever tools they currently have, which is why I developed the plugin. I'm posting the plugin here because I know that there are several other Idea customers who are in the same situation as I am. I hope you find it useful.



Attachment(s):
README.txt
INSTALL.txt
GuiSource_0_2.jar
8 comments
Comment actions Permalink

Thanks for posting your code. It will be very helpfull. I would like to bring up one issue, however. Users of Idea will probably fall into one of three categories:

1 - The code will be developed and maintained in IDEA This seems to be the assumption the UI Designer makes by requiring IDEA's pre-compiler.
2 - The code will be developed in IDEA and maintained on some other platform. This is the problem you have solved by generating source code from the .form files
3 - The code will be developed in IDEA and maintained in IDEA, but will need to be distributed as source code, and on occasion, recompiled without IDEA (in the case of an open sourced project, or a project being built in ant)

This last case can be solved by generating the source code (using the scripts you provide), but this (IMHO) breaks the clean black box approach Intellij has taken so far. Users will once again be tempted to modify generated code (something that is ok in example 2, but not in example 3).

I would love to see the bytecode manipulator broke out into a jar file that can be distributed with my application's source code. The jar could include a custom ant task, and could be distributed as a compile-time library.

More than just a technical issue, this would be a legal one as well. If IntelliJ released such a jar, they would have to grant permission to redistribute it.

0
Comment actions Permalink

On Fri, 25 Jul 2003 19:17:17 +0000, Bryan Young wrote:

I would love to see the bytecode manipulator broke out into a jar file
that can be distributed with my application's source code. The jar could
include a custom ant task, and could be distributed as a compile-time
library.


AFAIK this is planned, Eugenes already mentioned the Ant task and the open
sourcing of this byte code manipulator...

Mark

--
...turn to the light - don't be frightened by the shadows it creates,
...turn to the light - turning away could be a terrible mistake
...dream theater - the great debate


0
Comment actions Permalink

Mark Derricutt wrote:

On Fri, 25 Jul 2003 19:17:17 +0000, Bryan Young wrote:

>>I would love to see the bytecode manipulator broke out into a jar file
>>that can be distributed with my application's source code. The jar could
>>include a custom ant task, and could be distributed as a compile-time
>>library.


AFAIK this is planned, Eugenes already mentioned the Ant task and the open
sourcing of this byte code manipulator...


I also believed this was the case.

-- Glen

0
Comment actions Permalink

there is a bug in the pluign. i can't open the Project Properties when the plugin is "installed":

(c.java:27)
        at com.intellij.openapi.options.a.e.(e.java:16)
        at com.intellij.openapi.options.a.e.(e.java:7)
        at com.intellij.ide.c.dv.actionPerformed(dv.java:6)
        at com.intellij.openapi.actionSystem.b.y.a(y.java:63)
        at com.intellij.openapi.actionSystem.b.y.processMouseEvent(y.java:46)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at com.intellij.ide.s.a(s.java:62)
        at com.intellij.ide.s.dispatchEvent(s.java:6)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)]]>


have you add the plugin to the plugin-page on intellij.org? do you provide the source of the plugin?

0
Comment actions Permalink

I don't think that this backtrace is associated with the plugin since I don't see any "com.keystone.guisrcgen" classes listed in them. Are you sure this was caused by the plugin?

I haven't added the plugin to the plugin's page yet, but I plan on doing so. As for open sourcing the plugin code, I haven't made any decisions about that yet and probably won't until UI Designer is released.

0
Comment actions Permalink

when i remove you plugin, i can open the properties.

little feature request: please disable the menu-item when no .form-file is visible on top!

0
Comment actions Permalink

I'm not sure how I managed to do that, but it definetly is the plugin.

I plan on disabeling the menu item when the .form file is not selected. I initially looked for a way to do this and couldn't find one even though I'm sure it's there (probably hidden in plain view). 8^)

0
Comment actions Permalink

I initially looked for a way to do this and couldn't find one even though I'm sure it's there (probably hidden in plain view). 8^)


when you add it to the pluign-home with the source code, somebody will find a solution!!!

0

Please sign in to leave a comment.