Class DrawToolFactory.GenericDrawTool

  • All Implemented Interfaces:
    java.awt.event.KeyListener, java.util.EventListener, PEMouseInputListener
    Enclosing class:
    DrawToolFactory

    protected class DrawToolFactory.GenericDrawTool
    extends MouseTool
    A MouseTool aimed at drawing new Elements. It works like an iterator, by iterating (cyclically, creating a new Element at each cycle) through a given array of point indexes, or (if the latter are not provided in the constructor) by computing it from the available control points for the given element.

    GenericDrawTool targets Element having a finite number of control points ONLY !

    Author:
    Sylvain Reynal
    • Constructor Detail

      • GenericDrawTool

        public GenericDrawTool​(Element prototype,
                               EditPointConstraint constraint,
                               int[][] drawPoints)
        Parameters:
        prototype - the Element that will serve as the prototype (getting cloned, then added to the drawing).
        constraint - which constraint to use when moving control-points
        drawPoints - an array of array of point indexes which the iterator will iterate through (in ascending order) to draw the element (at each iteration, the corresponding list of points will be updated together).
        See Also:
        Element.setPoint(int, jpicedt.graphic.PicPoint)
      • GenericDrawTool

        public GenericDrawTool​(Element prototype,
                               EditPointConstraint constraint)
        The drawPoints array gets computed from all available control-points for the given element.
        Parameters:
        prototype - the Element that will serve as the prototype (getting cloned, then added to the drawing).
        inputAttributes - the input attribute set for the Element to be created.
    • Method Detail

      • mousePressed

        public void mousePressed​(PEMouseEvent e)
        A popup-trigger mouse event (e.g. a right click on Unix/Windows) :
        - switches back to SELECT_MODE if the task-iterator is completed
        - or cancels the current task if the task-iterator is underway.
        A left- or middle-button SINGLE click either :
        - (re)start the task iterator if it was completed
        - or select the next point if there are more points
        - or terminate the drawing process if there are no more points.
        Specified by:
        mousePressed in interface PEMouseInputListener
        Overrides:
        mousePressed in class MouseTool
        Since:
        jPicEdt
      • setCurrentPoint

        public void setCurrentPoint​(PEMouseEvent e)
        move the points indexed in drawPoints[currentTaskIndex] to the current click-point (possibly after grid alignment).
      • init

        public void init()
        called when this tool is being activated in the hosting editor kit
        Overrides:
        init in class MouseTool
      • flush

        public void flush()
        called when this tool is being replaced by another mouse-tool in the hosting editor kit ; this is mainly for mousetools using more than one sequence, for it gives them a chance to clean themselves up for the next time
        Overrides:
        flush in class MouseTool
      • paint

        public void paint​(java.awt.Graphics2D g,
                          java.awt.geom.Rectangle2D allocation,
                          double scale)
        This method is called by the hosting EditorKit : this implementation paints the current element's highlighter.
        Overrides:
        paint in class MouseTool