Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic Version 4.6 beta (Read 1323 times)
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3153
Joined: Oct 19th, 2005
Version 4.6 beta
Jun 24th, 2021 at 6:29pm
Print Post  
JDiagram version 4.6 contains the following new features and improvements:

Scrollable containers
Set the Scrollable property of ContainerNode to let users scroll the container's contents. The node then displays scrollbars at right and bottom edges that can be used to scroll interactively. The ScrollX and ScrollY properties let you determine current scroll position or change it programmatically. Note that to let container's content overflow and become scrollable, you must either disable AutoGrow, or allow users reduce container size by changing HandlesStyle and EnabledHandles properties from their default MoveOnly / Move values.

Container improvements
~ ContainerNode containment is no longer implemented via a Group object. Child nodes are now stored in a dedicated Children collection, and a node's container is returned by the Container property;
~ enable the AutoDeleteChildren property to automatically delete child nodes when a container is deleted;
~ drag-and-drop operations from NodeListView and ShapeListBox automatically add the newly created node to a container if one is found at the drop position;
~ call the resizeToFitChildren method to resize a container, making it big enough to contain its child nodes;
~ the KeepInsideParent constraint of child nodes now also prevents them from overlapping the container's caption bar;
~ the AutoGrow property lets you prevent ContainerNode from growing when adding child nodes to it;

Text rendering improvements
~ if WrapAtCharacter is disabled, long words that do not fit on a single line are now rendered clipped by default instead of stopping rendering at their position;
~ WrapOverflowingSingleWordLines property of TextFormat enables wrapping of long words that would not fit on a single line, while other text lines keep wrapping only at word boundaries;

Lasso zoom tool
The control now supports several ways to zoom using lasso tool:
~ set the Behavior property to Zoom to always draw zoom lasso;
~ set the Zoom flag for one of the keys in ModifierKeyActions to let users draw zoom-lasso with respective modifier key pressed and the left mouse button;
~ assign Zoom value to RightButtonActions or MiddleButtonActions property to zoom using respective mouse button;

Modifier keys
The ModifierKeyActions property of DiagramView lets you bind modifier keys to diagram actions defined in ModifierKeyAction enum to execute when dragging with left mouse button with respective key pressed:
~ None: disables the modifier;
~ Pan: pans the view;
~ Select: draws selection lasso;
~ OverrideBehavior: draws a new item instead of grabbing adjustment handle;
~ Magnify: shows magnifier;
~ ExtendSelection: adds to selection without deselecting items outside of lasso;
~ Zoom: draws zoom lasso;

Button bindings
RightButtonActions and MiddleButtonActions properties of DiagramView let you map mouse buttons to members of the MouseButtonAction enum (Pan, Cancel, Select, Draw, Magnify, Zoom) specifying how mouse click or drag operations affect the diagram.

Miscellaneous
~ the InitializeLasso event lets you customize appearance of selection lasso before it shows on screen;
~ new bringIntoView(Rectangle2D) overload lets you scroll to specified rectangular area;
~ new zoomToRect(Rectangle2D, bool) overload lets you zoom to a rectangular area while keeping it centered in the viewport;
~ ImageAlign supports new FitLeft, FitTop, FitRight and FitBottom alignment styles, which resize Image to fit node's boundaries and align it to respective border;
~ Layout classes now process DiagramLinks connected to TreeViewItems;
~ fixed background drawing glitch when the diagram is smaller than current viewport and grows due to AutoResize;

API changes
~ Container's child nodes are no longer accessible via SubordinateGroup; use the container's Children collection instead. A node's container is no longer accessible via MasterGroup; use the Container property instead.
~ Java Applet classes removed;

If anyone is interested in trying the beta version, please download this archive containing updated JAR file:
https://mindfusion.eu/_beta/jdiag46.zip

Any comments, questions and general feedback are welcome.
« Last Edit: Jul 1st, 2021 at 11:23am by Slavcho »  
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint