I am very supportive of #1 and #2. On #1, it would be very helpful for Templates to be available for drag and drop operation and treated similarly to other classes of processors.
I would also suggest that toolbox drag/drop approach that Visio uses to organize libraries of icons is a proven approach and may be a useful design pattern to consider. It lets the user open up several tool palettes and also control the order the palettes are displayed (top to bottom), so depending upon what project one is working on, the relevant objects are available above the fold for quick access. I really like the idea of being able to “pin” certain processors/templates to the toolbar (or some area) for ease of access. Again, I think processors and templates should be treated similarly, because certain use cases will involve deploying lots of prefabricated process groups as templates vs. wiring up mostly individual processors. On #3, I understand the issue of auto-configuration upon drop of a processor could be obtrusive to initial flow layout. The original suggestion was two parts: a) for processors that have required properties that must be configured, when the Configure menu item is selected by user, automatically open the Properties tab first. Part b) was to auto-prompt for configuration upon drop of processor to canvas. I believe 3.a would improve usability and save time. 3.b may be better as a user preference, but defaulted to current behavior (do not auto-open upon drop, as it creates too much friction around initial flow layout). Perhaps double-clicking an un-configured processor would also make it faster to configure it, without having to right-click and press Configure, eliminating the need for 3.b altogether. Today, double-click on a processor does nothing, so it seems to be available, if that’s its best use. Thanks for writing this proposal up and circulating it, Rob. Rick From: Rob Moran [mailto:[email protected]] Sent: Thursday, September 10, 2015 11:56 AM To: [email protected] Subject: [DISCUSS] Feature proposal: Streamline visual flow design There has been recent discussion around UI enhancements with the goal of streamlining visual flow design. Please consider the following enhancements and concepts for proposed solutions. Do you have any objections? If so, please share your thoughts and ideas for alternate solutions to streamline visual flow design in NiFi's GUI. Enhancement 1 Enable quicker, more efficient access to both known and not yet known processors. Issue The current interaction of dropping a processor on the graph and being prompted with a dialog helps a user who does not know exactly which one they need. However, as the number of processors increase, the current methods of finding what you need become increasingly difficult. And for those users who know exactly what processor they want, routine interaction with the dialog becomes rather cumbersome. Concept for Proposed Solution Present logical groupings of processors to the user. Ideas include usage-generated categories like ‘recent’ and ‘popular,’ along with categories such as those defined by the Enterprise Integration Patterns (e.g., mediate, route, transform) and perhaps further subcategories if applicable. These options would be accessible from the main UI as well as the add processor dialog. Other ideas include 'pinning' processors you routinely use for quick access, setting a default drag-n-drop processor, and assigning keyboard shortcuts to quickly add a favorite to the graph. Design decisions made here could also serve as a model for placing other elements onto the graph such as templates. Enhancement 2 Provide visual distinction to processor types. Issue When viewing a flow on the graph, all processor blocks look the same. As a result, users must rely on processor names alone to interpret what they are doing and how the given flow is working together. Concept for Proposed Solution Introduce some combination of iconography, unique styling, and more descriptive labeling to processor blocks. As mentioned earlier, looking to the Enterprise Integration Patterns could provide cues for visually distinct icons and labeling. Unique styling could occur at various zoom levels and/or screen resolution to better respond to user needs. Enhancement 3 Give users the choice to be prompted immediately with a configuration dialog after they place a processor, draw a connection, etc. on the graph. Issue Currently there is inconsistency with the interaction. Place a processor - nothing. Draw a connection - configuration dialog pops up. Concept for Proposed Solution Part 1 - Decide on a consistent default behavior. Part 2 - Provide the user the ability to reverse the behavior. One thought is to include a toggle in each configuration dialog giving the user control over the behavior while in context. Additionally, there could be a user preferences area where they could make global changes. A user preferences area could come into play with potential solutions proposed in Enhancement 1 as well. -- Rob
