ProductsServicesDownloadsNewsCompanyContact

yFiles AJAX Versionsinformationen

Version 2.0 von yFiles AJAX ist das aktuelle Major Release.

Technische Voraussetzungen

Client

  • Der Client-seitige Teil von yFiles AJAX läuft in aktuellen Webbrowsern:
    • Firefox 3.6 oder neuer
    • Internet Explorer 7 oder neuer
    • Chrome 15 oder neuer (mit älteren Chrome Versionen nicht getestet)
    • Safari 5.1.1 oder neuer (mit älteren Safari Versionen nicht getestet)
  • JavaScript und Cookies müssen aktiviert sein.
  • Die meisten modernen Browser unterstützen SVG. Internet Explorer unterstützt SVG erst seit Version 9.

Server

  • Es muss ein Java Runtime Environment installiert sein. Die Servlets sind mit Java 1.4.2 kompiliert.
  • Ein Servlet Container muss installiert sein, z.B. Tomcat.
  • Ant ist nicht unbedingt erforderlich, hilft aber bei vielen Aufgaben.

yFiles AJAX 2.0 - Änderungen zu Version 1.4 (englisch)

Major New Features

  • New SVG Render Mode: In addition to the existing bitmap tile mode, the graph visualization can now be rendered as a SVG document in supported browsers.
  • Touch Support: The yFiles AJAX client now supports navigation gestures on touch devices (iOS, Android).

General Changes

  • yFiles AJAX is now based on Dojo 1.6.1 and uses yFiles for Java 2.8.0.3 on the server.
  • The SimpleAttributeDemo has been added to show how custom attributes associated with graph items can be retrieved and displayed on the client.
  • The OrgChartEditorDemo has been added as a showcase application featuring both mouse and touch gesture support.
  • All demos now provide a toggle button that can be used to switch between SVG Mode and Bitmap Mode.
  • Some demo applications have been modified to provide a better user experience on touch devices.

Improvements

  • The new class ViewportLimiter makes it possible to conveniently restrict the explorable region of a GraphCanvas. The GraphCanvas now offers a viewportLimiter property for this purpose, and all means of adjusting the viewport interactively were adapted to query the limiter. Also, methods increaseZoom(factor) and decreaseZoom(factor) have been added to provide a means of zooming while respecting the viewport limits.
  • The new zoomToPointRecognizer callback on GraphCanvas can be used to decide whether to zoom to the current mouse position or to the center of the canvas.
  • The new NavigationInputMode is now responsible for providing both mouse and touch navigation functionality. It uses the new MoveViewportInputMode and PinchInputMode classes to handle mouse and touch panning, and zooming on touch devices, respectively.
  • The new paintDetailThreshold property of class GraphCanvas can be used to set the zoom value that triggers sloppy rendering on the client.
  • Various touch input related properties have been added to the GraphCanvas: doubleTapTime, longPressTime, touchDragSize, minPinchDelta, mainTouchId.
  • Similar to the existing mouse events related to graph items, the GraphCanvas now provides corresponding events that are dispatched when a graph item is hit by a touch gesture (tap, long press, or double tap).
  • A number of low-level touch events have been added to the GraphCanvas: onTouchStart, onTouchMove, onTouchEnd, onTouchLongPress, onTouchTapped, onPinchStart, onPinch, onPinchEnd.
  • The Rubberband has been improved to support touch input.
  • The ViewPortMarker widget that can be used to create an interactive overview canvas has been improved to support the ViewportLimiter and touch input.
  • For convenience, the method GraphCanvas#getMousePosition() will now also consider touch events.
  • New GraphCanvas properties related to the added SVG support: svgBorder, svgPrefix.
  • New method GraphCanvas#setRenderMode(mode) can be used to switch the client-side render mode on the fly. The current render mode can be queried using isSVGMode() and isBitmapMode().
  • In SVG Mode, a new SVG image can be requested from the server using method GraphCanvas#invalidateSVG().
  • Callbacks onLoadSVG() and onSVGLoaded() have been added to notify clients when a SVG image request is started and finished by the GraphCanvas.
  • The behavior of the GraphCanvas#fitContent() has been improved to reduce the amount of server requests in Bitmap Mode.
  • Various convenience methods for manipulating and querying the canvas viewport and the graph's world coordinates have been added to class GraphCanvas: getWorldBounds(), getCenter(), setCenter(center), zoomTo(worldRect), setViewPointWorld(worldX,worldY), zoomWithPoint(x,y,z), getViewport(), toLocal()

Bugfixes

  • A bug was fixed in method GraphCanvas#getViewCoordinates(x,y) that caused the method to treat x or y parameters of value 0 as if the parameter was not defined.

Incompatible Changes

  • Configuring the interactive behavior of the GraphCanvas now behaves differently:

    In previous versions, panning was handled by the GraphCanvas itself. Now, the canvas uses the new NavigationInputMode to handle panning (both mouse-based and touch-based).

    Whether or not the mouse wheel triggers zooming is now controlled by the additional mouseWheelZoom property. Hence, calling setPanMode() will now create and activate a NavigationInputMode instance, while setNoInteractionMode() will disable the navigation mode and mouseWheelZoom.

    As the canvas now doesn't handle view point movement anymore, the callbacks onMove(mover,leftTop) and onFirstMove() have been removed.

  • As the behavior of GraphCanvas#fitContent() has changed to reduce the amount of server requests in Bitmap Mode, this may cause problems in rare cases where the world bounds actually changed during the fitContent() call. For details on this incompatibility, please see the corresponding section in the README contained in the yFiles AJAX distribution.