<process-definition><node name="MyNode/></process-defintion>
<layout>
<node name="MyNode" y="16" x="69"/>
</layout>
On Sat, Jul 18, 2009 at 2:41 AM, Cheong Chung Onn<chun...@gmail.com> wrote:
> Hi Paul,
>
> The current state of the Graph Editor is a major leap forward from that I
> saw the last time. Overall, it is very functional and below are the feedback
> from my test drive. Most of my suggestions are nice-to-have features, some
> are only my preference and only one bug is found. For what it is worth, it
> is an impressive piece of work. Btw, I wonder is there any plan to make it
> as either an Eclipse or Netbeans plugin or both?
>
I don't have any plans to do so at the moment, but would be happy to
see it if someone worked on either. It would be convenient to have an
eclipse plugin, but it's way down on my personal todo list.
> Have a good weekend ahead.
>
> Cheers!
> chung-onn
>
> User Interface related feedbacks
>
> Missing PD library browsing in the Preference Dialog (mentioned by you in
> your earlier email)
> Delete of Nodes can only be done using Ctrl-X key,
Should be able to use the delete key as well now.
>
> Suggestion - provide Context Menu with a "Delete" menu item
>
> Right mouse click opens the Node/Arc edit dialog
>
> Suggestion - provide a double mouse click instead
> Suggestion - provide Context Menu "Edit Node" or "Edit Arc" menu item
>
Planning on adding right click context menu for nodes and externals. I
like the convenience of immediate access to the properties, but I can
always add some other shortcut for that, like control-right-click or
something.
> Open an existing hand crafted PD file, all the nodes are collapsed together,
> need to click the Layout button
>
> Suggestion - when opening a PD without any layout, auto initiate a
> Auto-Layout
>
Good idea. Still a bug with autolayout which fails if it can't find a
start node (or node with no inputs). I probably need to default it to
just pick any node if no appropriate node is found.
> Add Node button - It does not appear natural in its usage.
>
> Suggestion - My preference is to have a One-shot Add Node button i.e. add
> only one Node at a time, the default mode is either Move or Edit Arc.
> However if a User wants to add Multiple Nodes then the One-Shot button can
> be made Sticky by clicking it a second time.
>
There are shortcut keys which activate a mode as long as the key is pressed.
s - Add Edges
d - Add nodes
f - add externals
I find this works relatively well. However, one shot node by default
might make sense as well.
> File Saving - does not provide a default file extension
>
Yes, this should be fixed.
> Suggestion - provide a default file extension when saving file
>
> End Node - I have my End Node, and it is rendered as a Node instead of the
> End Node icon
>
On my todo list is allowing node icon and node color to be selected
for each node type, in the preferences menu.
> Suggestion - None, I am happy there is an Editor already :)
>
> When the Graph Editor is first opened - one has to click File/New Process
> Definition in order to create an untitled PD
>
> Suggestion - Create an untitled PD when it first open - this is really a
> nice to have feature ;)
>
I had it this way, but I got annoyed at the Untitled always being
there. I think what I'm going to do is have a new PD open by default,
but if you open an existing one, it will replace the new one, if no
changes have been made.
> Non User Interface related feedback
>
> Layout info is mixed with Biz Node info - this will cause cluttering of the
> whole PD file
>
> Suggestion - Have a separate file to hold the Layout detail e.g. MyPD.wf.xml
> will have a corresponding layout file like MyPD.layout.wf.xml
> Suggestion - Have a separate layout section within the PD.wf.xml - this will
> also easily support those hand crafted PD files. And one can easily remove
> the layout section if they wish to reset the layout.
>
Don't really like the separate file. I think I might do the editor
section in the file. I want to add that in any case so you can set
default input/output and default properties for externals.
> <process-definition>
>
> <node name="MyNode/>
> <layout>
> <node name="MyNode" y="16" x="69"/>
> </layout>
>
> </process-defintion>
>
> Custom element's child element's namespace attribute auto-generated - it
> makes reading difficult.
>
> Suggestion - the child element's namspace attribute should be made defaulted
> to the PD namespace when not declare, this would make reading the PD file
> easier and for those folks who prefer to handcraft a PD ;)
>
Yes, this bothers me too. I'll have to see if I can configure JAXB to
do this properly.
> Label_AND - when I first read the TokenSetsDesign wiki page the Label_AND
> was something that confused me, i wonder where did the Label come from.
> Later I realize the Label is actually referring to a Named Arc, as a Default
> Arc is also an UnNamed Arc
>
> Suggestion - Have Label_AND changed to NamedArc_AND
>
I think for this, I'm just going to add a help section next to the
dropdown, explain what each join type does as it's selected.
> Bugs
> NPE - After a handcrafted PD is imported, do a right click on a node - an
> NPE is raised. The offending line is at Line 374 of
> NodePropertiesPanel#nodeTypeChanged. This is caused by a PD file where the
> Node element that did not explicitly define a "type" attribute. The problem
> can be repeated using reject-node.wf.xml file in
> com.googlecode.sarasvati.visual.test
Ok, should be easy to fix.
Thanks for taking a look, I appreciate the suggestions and feedback.
Paul
I have remove parts of the previous email...
>
>> <process-definition>
>>
>> <node name="MyNode/>
>> <layout>
>> <node name="MyNode" y="16" x="69"/>
>> </layout>
>>
>> </process-defintion>
>>
>> Custom element's child element's namespace attribute auto-generated - it
>> makes reading difficult.
>>
>> Suggestion - the child element's namspace attribute should be made defaulted
>> to the PD namespace when not declare, this would make reading the PD file
>> easier and for those folks who prefer to handcraft a PD ;)
>>
>>
>
> Yes, this bothers me too. I'll have to see if I can configure JAXB to
> do this properly.
>
I have been using XStream for quite a while and I used it for all my XML
related work. This XStream http://xstream.codehaus.org/ is very easy to
use and I just checked that it has support for NS using QNameMap. I have
not used NS in XStream though. Hope this helps
Regards
chungonn
First of all, the Editor now can read all my hand crafted PDs - cool!
Thanks for accepting my previous recommendations, here is the results of
my test drive. Most of items below are really minor or nice-to-haves.
*Preference Dialog*
1. A missing Close button for the Preference Dialog - to close it is
to click the "X" button.
2. Process Definition Library location - Initially I thought this
feature allows me to browse my Hibernate Graph Repository, however
I realized it is meant to allow a user to predefine a local file
folder for convenience. If this is the case then please refer to
the bug I reported below.
*Workbench*
1. Copy And Paste across different PD - a convenient feature when I
am building multiple copies of similar PDs. This can easily done
by reading a PD file and renaming too.
2. After closing the last PD panel does not auto create an Untitled
Panel
*Bugs*
1. File/Open dialog no longer respect the PD Library path set in the
Preference/General page after I chose to save a file in a separate
location.
2. In the PD panel, when dragging the end-point of an Arc, there is a
NPE stacktrace, please refer to the stacktrace below.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at
com.googlecode.sarasvati.util.SvGraphicsUtil.getBounds(SvGraphicsUtil.java:53)
at
com.googlecode.sarasvati.visual.common.PathTrackingConnectionWidget.getTargetBounds(PathTrackingConnectionWidget.java:59)
at
com.googlecode.sarasvati.visual.common.PathTrackingConnectionWidget.ensurePathCurrent(PathTrackingConnectionWidget.java:86)
at
com.googlecode.sarasvati.visual.common.ShortestPathRouterAdapter.routeConnection(ShortestPathRouterAdapter.java:150)
at
org.netbeans.api.visual.widget.ConnectionWidget.calculateRouting(ConnectionWidget.java:527)
at
org.netbeans.modules.visual.layout.ConnectionWidgetLayout.layout(ConnectionWidgetLayout.java:109)
at org.netbeans.api.visual.widget.Widget.layout(Widget.java:1350)
at org.netbeans.api.visual.widget.Widget.layout(Widget.java:1342)
at
org.netbeans.api.visual.widget.LayerWidget.layout(LayerWidget.java:86)
at org.netbeans.api.visual.widget.Widget.layout(Widget.java:1342)
at org.netbeans.api.visual.widget.Scene.layoutScene(Scene.java:312)
at org.netbeans.api.visual.widget.Scene.validate(Scene.java:393)
at
org.netbeans.api.visual.widget.SceneComponent.processLocationOperator(SceneComponent.java:292)
at
org.netbeans.api.visual.widget.SceneComponent.mouseDragged(SceneComponent.java:175)
at
java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:302)
at java.awt.Component.processMouseMotionEvent(Component.java:6311)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3285)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4255)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Hi Paul,
First of all, the Editor now can read all my hand crafted PDs - cool!
Thanks for accepting my previous recommendations, here is the results of
my test drive. Most of items below are really minor or nice-to-haves.
*Preference Dialog*
1. A missing Close button for the Preference Dialog - to close it is
to click the "X" button.
2. Process Definition Library location - Initially I thought this
feature allows me to browse my Hibernate Graph Repository, however
I realized it is meant to allow a user to predefine a local file
folder for convenience. If this is the case then please refer to
the bug I reported below.
*Workbench*
1. Copy And Paste across different PD - a convenient feature when I
am building multiple copies of similar PDs. This can easily done
by reading a PD file and renaming too.
2. After closing the last PD panel does not auto create an Untitled
Panel
*Bugs*
1. File/Open dialog no longer respect the PD Library path set in the
Preference/General page after I chose to save a file in a separate
location.
2. In the PD panel, when dragging the end-point of an Arc, there is a
NPE stacktrace, please refer to the stacktrace below.