Graph Editor test drive results

1 view
Skip to first unread message

Cheong Chung Onn

unread,
Jul 18, 2009, 2:41:23 AM7/18/09
to sarasvat...@googlegroups.com
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?

Have a good weekend ahead.

Cheers!
chung-onn

User Interface related feedbacks
  1. Missing PD library browsing in the Preference Dialog (mentioned by you in your earlier email)
  2. Delete of Nodes can only be done using Ctrl-X key,
    1. Suggestion - provide Context Menu with a "Delete" menu item
  3. Right mouse click opens the Node/Arc edit dialog
    1. Suggestion - provide a double mouse click instead
    2. Suggestion - provide Context Menu "Edit Node" or "Edit Arc" menu item
  4. Open an existing hand crafted PD file, all the nodes are collapsed together, need to click the Layout button
    1. Suggestion - when opening a PD without any layout, auto initiate a Auto-Layout
  5. Add Node button - It does not appear natural in its usage.
    1. 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.
  6. File Saving - does not provide a default file extension
    1. Suggestion - provide a default file extension when saving file
  7. End Node - I have my End Node, and it is rendered as a Node instead of the End Node icon
    1. Suggestion - None, I am happy there is an Editor already :)
  8. When the Graph Editor is first opened - one has to click File/New Process Definition in order to create an untitled PD
    1. Suggestion - Create an untitled PD when it first open - this is really a nice to have feature ;)

Non User Interface related feedback
  1. Layout info is mixed with Biz Node info - this will cause cluttering of the whole PD file
    1. 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
    2. 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.
<process-definition>
 <node name="MyNode/>
 <layout>
     <node name="MyNode" y="16" x="69"/>
 </layout>
</process-defintion>
  1. Custom element's child element's  namespace attribute auto-generated - it makes reading difficult.
    1. 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 ;)
  2. 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
    1. Suggestion - Have Label_AND changed to NamedArc_AND

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

Paul Lorenz

unread,
Jul 19, 2009, 11:08:33 PM7/19/09
to sarasvat...@googlegroups.com
Responses inline

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

Cheong Chung Onn

unread,
Jul 20, 2009, 1:21:07 AM7/20/09
to sarasvat...@googlegroups.com
Hi 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

Paul Lorenz

unread,
Jul 20, 2009, 5:37:57 PM7/20/09
to sarasvat...@googlegroups.com
I got it working with JAXB. I had to set the namespace for the custom elements to be the same as the top level namespace. I may add an option to node type attributes for which namespace they should use, but probably only if some one asks for it.

cheers,
Paul

Paul Lorenz

unread,
Jul 28, 2009, 5:42:13 PM7/28/09
to sarasvat...@googlegroups.com
Hi chung-onn,
  With the exception of splitting out the layout info into it's own section, I've finished everything I wanted done for the first pass. If you're interested, take a look and let me know what you think.

cheers,
Paul

Cheong Chung Onn

unread,
Jul 28, 2009, 9:39:24 PM7/28/09
to sarasvat...@googlegroups.com
Hi Paul,

Will do another test drive and keep you posted.

Cheers!
chung-onn

Paul Lorenz wrote:
> Hi chung-onn,
> With the exception of splitting out the layout info into it's own
> section, I've finished everything I wanted done for the first pass. If
> you're interested, take a look and let me know what you think.
>
> cheers,
> Paul
>
> On Sat, Jul 18, 2009 at 2:41 AM, Cheong Chung Onn <chun...@gmail.com
> <mailto: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?
>
> Have a good weekend ahead.
>
> Cheers!
> chung-onn
>
> _*User Interface related feedbacks*_
>
> 1. Missing PD library browsing in the Preference Dialog
> (mentioned by you in your earlier email)
> 2. Delete of Nodes can only be done using Ctrl-X key,
> 1. Suggestion - provide Context Menu with a "Delete" menu
> item
> 3. Right mouse click opens the Node/Arc edit dialog
> 1. Suggestion - provide a double mouse click instead
> 2. Suggestion - provide Context Menu "Edit Node" or "Edit
> Arc" menu item
> 4. Open an existing hand crafted PD file, all the nodes are
> collapsed together, need to click the Layout button
> 1. Suggestion - when opening a PD without any layout,
> auto initiate a Auto-Layout
> 5. Add Node button - It does not appear natural in its usage.
> 1. 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.
> 6. File Saving - does not provide a default file extension
> 1. Suggestion - provide a default file extension when
> saving file
> 7. End Node - I have my End Node, and it is rendered as a Node
> instead of the End Node icon
> 1. Suggestion - None, I am happy there is an Editor
> already :)
> 8. When the Graph Editor is first opened - one has to click
> File/New Process Definition in order to create an untitled PD
> 1. Suggestion - Create an untitled PD when it first open
> - this is really a nice to have feature ;)
>
>
> *_Non User Interface related feedback_*
>
> 1. Layout info is mixed with Biz Node info - this will cause
> cluttering of the whole PD file
> 1. 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
> 2. 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.
>
> <process-definition>
>
> <node name="MyNode/>
> <layout>
> <node name="MyNode" y="16" x="69"/>
> </layout>
>
> </process-defintion>
>
> 2. Custom element's child element's namespace attribute
> auto-generated - it makes reading difficult.
> 1. 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 ;)
> 3. 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
> 1. Suggestion - Have Label_AND changed to NamedArc_AND
>
>
> _*Bugs *_

Cheong Chung Onn

unread,
Jul 28, 2009, 10:33:45 PM7/28/09
to sarasvat...@googlegroups.com
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.

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)

Paul Lorenz

unread,
Jul 30, 2009, 1:14:35 PM7/30/09
to sarasvat...@googlegroups.com
Thank you for the feeback. Responses in-line.

On Tue, Jul 28, 2009 at 10:33 PM, Cheong Chung Onn <chun...@gmail.com> wrote:

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.

This bothers me as well. I'll probably get around to this at some point.
 

  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.

You are correct. It also provides sources for the process definition dropdown in the external properties as well as dropdowns for node names in links to/from externals.
 


*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.

Fixed. 

  2. After closing the last PD panel does not auto create an Untitled
     Panel


I'll take a look a this. Shouldn't be too hard to do.
 



*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.

Fixed.

  2. In the PD panel, when dragging the end-point of an Arc, there is a 
     NPE stacktrace, please refer to the stacktrace below.
 
Fixed.

Cheong Chung Onn

unread,
Jul 30, 2009, 1:25:31 PM7/30/09
to sarasvat...@googlegroups.com
Paul Lorenz wrote:
> Thank you for the feeback. Responses in-line.
Thanks for making it a great product.

Cheers!
chung-onn
Reply all
Reply to author
Forward
0 new messages