Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic MindFusion Java Pack 2023.R1 (Read 1719 times)
Forum Admin
YaBB Administrator
*****
Offline


Rock and Roll

Posts: 701
Joined: Apr 6th, 2003
MindFusion Java Pack 2023.R1
Jun 13th, 2023 at 3:14pm
Print Post  
We have released MindFusion Java Pack 2023.R1. It contains the following new features and improvements:

MindFusion.Diagramming

Spatial index
Set the EnableSpatialIndex property of Diagram to create an index of item positions for faster hit-testing and viewport clipping queries. This should greatly improve user interaction and rendering speed for diagrams containing tens of thousands or more items.

Code
Select All
// it will take some time to populate the diagram with a million nodes,
// but subsequent redraws and hit-tests should be very fast
Diagram diagram = new Diagram();
diagram.setAutoResize(AutoResize.None);
diagram.setDefaultShape(Shape.fromId("Rectangle"));
diagram.setValidityChecks(false);
diagram.setSelectAfterCreate(false);

for (int c = 0; c < 1000; c++)
{
    for (int r = 0; r < 1000; r++)
    {
        ShapeNode node = diagram.getFactory().createShapeNode(
            20 + c * 40, 20 + r * 40, 25, 25);
        node.setText(
            Integer.toString(
                diagram.getNodes().size()));
    }
}
diagram.resizeToFitItems(20);
diagram.setEnableSpatialIndex(true);

diagramView.setDiagram(diagram);
 


Note that rendering speed improves only when showing a smaller part of the diagram inside DiagramView's viewport. Rendering a lot of items at small zoom levels or in overview's fit-all mode will still need a lot of processing, so you might want to apply constraints on minimal zoom level of diagram view and overview controls for large diagrams.

Pattern router
New PatternRouter class routes links by applying patterns of segment and turn sequences and accepting them when resulting paths do not cross nodes. A path is accepted if its final segment ends in target point and is orthogonal to respective side of target node. If there are several possible paths, the router selects the shortest one. The MinimumDistance property specifies minimum allowed distance of link segments from nodes. The PreferredDistance property specifies distance of first or last link bend from associated node. PatternRouter includes several predefined patterns designed to create consistent-looking paths, and allows creation of custom patterns. Custom patterns can be defined as sequence of RouteStep objects specifying whether the path advances by relative or absolute distance, or changes direction:

Code
Select All
RoutePattern rightZigzag = new RoutePattern();
rightZigzag.getSteps().add(
    new RouteStep(RouteStepKind.AdvanceRelative, 0.5f));
rightZigzag.getSteps().add(
    new RouteStep(RouteStepKind.TurnRight));
rightZigzag.getSteps().add(
    new RouteStep(RouteStepKind.AdvanceRelative, 1));
rightZigzag.getSteps().add(
    new RouteStep(RouteStepKind.TurnLeft));
rightZigzag.getSteps().add(
    new RouteStep(RouteStepKind.AdvanceRelative, 0.5f));
router.getPatterns().add(rightZigzag);

// this can be defined in shorter form using a pattern string
// RoutePattern rightZigzag2 = new RoutePattern(
//     "ADR0.5 TRR ADR1 TRL ADR0.5");
 


Composite router
The CompositeRouter class lets you chain link routers (objects implementing LinkRouter interface) so that a link passes through the sequence until it gets routed successfully. Diagram's default router is now set to a CompositeRouter instance containing a PatternRouter and GridRouter sequence. This applies the several standard pattern paths when possible, and otherwise routes links using the cost minimizing heuristics-based grid router.

Miscellaneous
  • Disabling AvoidOverlaps property of RoutingOptions lets you create routes with overlapping segments.
  • Improved keyboard focus handling for CompositeNode components.
  • Fixed exception in EditComponent drawing code.

API changes
  • suspend and resume methods removed from LinkRouter interface. Call Diagram's suspendLinkRouter and resumeLinkRouter methods instead.
  • Default LinkRouter changed from QuickRouter to CompositeRouter instance.
  • boolean SmartPolylineEnds property of RoutingOptions replaced by PolylineRouting enum property, which also provides an option to prevent inclined link segments for Polyline routes.

MindFusion.Spreadsheet
Formula hints
  • Target cells or cell ranges in a formula expression are now color-coded to show the matching area in grid view.
  • The control shows a hint box with function information when user enters a function name in formula.



Formula bar improvements
  • Users can enter a new line in formula bar by pressing Ctrl + Enter.
  • The Tab key now tabs out of formula bar instead of tabulating the text.
  • Changes entered through formula bar are now undoable.
  • Formula bar no longer displays trailing zeros when selecting numeric cells.
  • Formula bar is cleared when changing the active sheet.

Miscellaneous
  • Date format strings can now contain apostrophes to escape literal values.
  • The cell editor grows when user types longer expressions.
  • valueAs shortcut method for getting cell values of specific types.
  • Fixed ExcelExporter export of quoted texts.
  • The sum method of CellRange now includes formula results.

MindFusion.Scheduling
  • Fixed Continuous property of Selection class.
  • Improved handling of custom ItemEditor.

MindFusion.Charting
  • Improved 3D bar rendering quality (removed miters in line joints).
  • Fix for even / odd grid colors switching during scroll.

MindFusion Virtual Keyboard
  • The RepeatDownOnly property specifies whether keys repeat only key-down events, or pairs of down and up events.
  • Fix for keyboard failing to load custom layouts that include NumPadKey.


Distribution for the latest version can be downloaded here, or from the clients area on our site:
https://mindfusion.eu/JPack.zip

Enjoy!
  
Back to top
WWW  
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint