Interface CanvasWidgetHandler


  • public interface CanvasWidgetHandler
    Canvas widget event handler - Java API.

    Supports custom drawing functionality - for example can draw molecule mass spectrum, custom charts, etc. Interactivity is enabled by listening on mouse and keyboard events.

    Must be implemented as a NetBeans ServiceProvider to be found. Example:

     @ServiceProvider(service = CanvasWidgetHandler.class)
     public class ExampleWidget implements CanvasWidgetHandler {
         @Override
         public void onInit(IJCWidget widget, JPanel canvas, Map config) {
             canvas.setOpaque(true);
             canvas.setBackground(Color.white);
             retrieveData(widget.getForm().getResultSet());
         }
    
         @Override
         public void onVertexStateChange(IJCWidget widget, JPanel canvas) {
             retrieveData(widget.getForm().getResultSet());
             canvas.repaint();
         }
    
         @Override
         public void onPaintComponent(IJCWidget widget, JPanel canvas, Graphics g) {
             ... custom drawing of retrieved data ...
         }
     }
     
    Since:
    20.18.0
    • Method Summary

      All Methods Instance Methods Default Methods 
      Modifier and Type Method Description
      default void onDestroy​(IJCWidget widget, javax.swing.JPanel canvas, boolean release)
      Called on form suspend or close.
      default void onEDPChange​(IJCWidget widget, javax.swing.JPanel canvas)
      Called on entity data provider change - after data update or view reload.
      default void onInit​(IJCWidget widget, javax.swing.JPanel canvas, java.util.Map<java.lang.String,​java.lang.Object> config)
      Called on form open or resume.
      default void onKeyPressed​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.KeyEvent event)
      Invoked when a key has been pressed (on a selected canvas component).
      default void onKeyReleased​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.KeyEvent event)
      Invoked when a key has been released (on a selected canvas component).
      default void onKeyTyped​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.KeyEvent event)
      Invoked when a key has been typed (on a selected canvas component).
      default void onMouseClicked​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.MouseEvent event)
      Invoked when the mouse button has been clicked (pressed and released) on a canvas component.
      default void onMouseDragged​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.MouseEvent event)
      Invoked when a mouse button is pressed on a canvas component and then dragged.
      default void onMouseEntered​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.MouseEvent event)
      Invoked when the mouse enters a canvas component.
      default void onMouseExited​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.MouseEvent event)
      Invoked when the mouse exits a canvas component.
      default void onMouseMoved​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.MouseEvent event)
      Invoked when the mouse cursor has been moved onto a canvas component but no buttons have been pushed.
      default void onMousePressed​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.MouseEvent event)
      Invoked when a mouse button has been pressed on a canvas component.
      default void onMouseReleased​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.MouseEvent event)
      Invoked when a mouse button has been released on a canvas component.
      default void onMouseWheelMoved​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.event.MouseWheelEvent event)
      Invoked when the mouse wheel is rotated.
      default void onPaintComponent​(IJCWidget widget, javax.swing.JPanel canvas, java.awt.Graphics g)
      Called in paintComponent() of canvas component.
      default void onPrintRow​(IJCWidget widget, java.lang.Comparable<?> rowId)
      Called during printing of a single row.
      default void onVertexStateChange​(IJCWidget widget, javax.swing.JPanel canvas)
      Called on vertex state change - after query, selection change, sort change, etc.
    • Method Detail

      • onInit

        default void onInit​(IJCWidget widget,
                            javax.swing.JPanel canvas,
                            java.util.Map<java.lang.String,​java.lang.Object> config)
        Called on form open or resume. Also called during Event handler setup in Customizer. Responsible for data retrieval.
        Parameters:
        widget - IJC widget - has access to current result set and vertex state
        canvas - drawing component
        config - configuration which was set in a Widget Customizer
      • onDestroy

        default void onDestroy​(IJCWidget widget,
                               javax.swing.JPanel canvas,
                               boolean release)
        Called on form suspend or close. Responsible for resources clean-up.
        Parameters:
        widget - IJC widget
        canvas - drawing component
        release - false on form suspend, true on form close
      • onVertexStateChange

        default void onVertexStateChange​(IJCWidget widget,
                                         javax.swing.JPanel canvas)
        Called on vertex state change - after query, selection change, sort change, etc. Responsible for data retrieval and canvas.repaint().
        Parameters:
        widget - IJC widget - has access to current result set and vertex state
        canvas - drawing component
      • onEDPChange

        default void onEDPChange​(IJCWidget widget,
                                 javax.swing.JPanel canvas)
        Called on entity data provider change - after data update or view reload. Responsible for data retrieval and canvas.repaint().
        Parameters:
        widget - IJC widget - has access to current result set and vertex state
        canvas - drawing component
      • onPaintComponent

        default void onPaintComponent​(IJCWidget widget,
                                      javax.swing.JPanel canvas,
                                      java.awt.Graphics g)
        Called in paintComponent() of canvas component. Responsible for custom drawing.
        Parameters:
        widget - IJC widget
        canvas - drawing component
        g - graphics
      • onMouseClicked

        default void onMouseClicked​(IJCWidget widget,
                                    javax.swing.JPanel canvas,
                                    java.awt.event.MouseEvent event)
        Invoked when the mouse button has been clicked (pressed and released) on a canvas component.
        Parameters:
        widget - IJC widget
        canvas - drawing component
        event - invoked mouse event
      • onMousePressed

        default void onMousePressed​(IJCWidget widget,
                                    javax.swing.JPanel canvas,
                                    java.awt.event.MouseEvent event)
        Invoked when a mouse button has been pressed on a canvas component.
      • onMouseReleased

        default void onMouseReleased​(IJCWidget widget,
                                     javax.swing.JPanel canvas,
                                     java.awt.event.MouseEvent event)
        Invoked when a mouse button has been released on a canvas component.
      • onMouseEntered

        default void onMouseEntered​(IJCWidget widget,
                                    javax.swing.JPanel canvas,
                                    java.awt.event.MouseEvent event)
        Invoked when the mouse enters a canvas component.
      • onMouseExited

        default void onMouseExited​(IJCWidget widget,
                                   javax.swing.JPanel canvas,
                                   java.awt.event.MouseEvent event)
        Invoked when the mouse exits a canvas component.
      • onMouseDragged

        default void onMouseDragged​(IJCWidget widget,
                                    javax.swing.JPanel canvas,
                                    java.awt.event.MouseEvent event)
        Invoked when a mouse button is pressed on a canvas component and then dragged.
      • onMouseMoved

        default void onMouseMoved​(IJCWidget widget,
                                  javax.swing.JPanel canvas,
                                  java.awt.event.MouseEvent event)
        Invoked when the mouse cursor has been moved onto a canvas component but no buttons have been pushed.
      • onMouseWheelMoved

        default void onMouseWheelMoved​(IJCWidget widget,
                                       javax.swing.JPanel canvas,
                                       java.awt.event.MouseWheelEvent event)
        Invoked when the mouse wheel is rotated.
      • onKeyTyped

        default void onKeyTyped​(IJCWidget widget,
                                javax.swing.JPanel canvas,
                                java.awt.event.KeyEvent event)
        Invoked when a key has been typed (on a selected canvas component).
        Parameters:
        widget - IJC widget
        canvas - drawing component
        event - invoked key event
      • onKeyPressed

        default void onKeyPressed​(IJCWidget widget,
                                  javax.swing.JPanel canvas,
                                  java.awt.event.KeyEvent event)
        Invoked when a key has been pressed (on a selected canvas component).
      • onKeyReleased

        default void onKeyReleased​(IJCWidget widget,
                                   javax.swing.JPanel canvas,
                                   java.awt.event.KeyEvent event)
        Invoked when a key has been released (on a selected canvas component).