# Class BubbleTransition

java.lang.Object
com.codename1.ui.animations.Transition
com.codename1.ui.animations.BubbleTransition

All Implemented Interfaces:
  `Animation`

public class BubbleTransition extends Transition

A Transitions that animates the destination component as a growing window until the destination is displayed in place. The Bubble window can be round on supported platforms

    Form hi = new Form("Bubble");
    Button showBubble = new Button("+");
    showBubble.setName("BubbleButton");
    Style buttonStyle = showBubble.getAllStyles();
    buttonStyle.setBorder(Border.createEmpty());
    buttonStyle.setFgColor(0xffffff);
    buttonStyle.setBgPainter((g, rect) -> {
        g.setColor(0xff);
        int actualWidth = rect.getWidth();
        int actualHeight = rect.getHeight();
        int xPos, yPos;
        int size;
        if(actualWidth > actualHeight) {
            yPos = rect.getY();
            xPos = rect.getX() + (actualWidth - actualHeight) / 2;
            size = actualHeight;
        } else {
            yPos = rect.getY() + (actualHeight - actualWidth) / 2;
            xPos = rect.getX();
            size = actualWidth;
        }
        g.setAntiAliased(true);
        g.fillArc(xPos, yPos, size, size, 0, 360);
    });
    hi.add(showBubble);
    hi.setTintColor(0);
    showBubble.addActionListener((e) -> {
        Dialog dlg = new Dialog("Bubbled");
        dlg.setLayout(new BorderLayout());
        SpanLabel sl = new SpanLabel("This dialog should appear with a bubble transition from the button", "DialogBody");
        sl.getTextUnselectedStyle().setFgColor(0xffffff);
        dlg.add(BorderLayout.CENTER, sl);
        dlg.setTransitionInAnimator(new BubbleTransition(500, "BubbleButton"));
        dlg.setTransitionOutAnimator(new BubbleTransition(500, "BubbleButton"));
        dlg.setDisposeWhenPointerOutOfBounds(true);
        dlg.getTitleStyle().setFgColor(0xffffff);

        Style dlgStyle = dlg.getDialogStyle();
        dlgStyle.setBorder(Border.createEmpty());
        dlgStyle.setBgColor(0xff);
        dlgStyle.setBgTransparency(0xff);
        dlg.showPacked(BorderLayout.NORTH, true);
    });

    hi.show();

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BubbleTransition()`
  Creates a Bubble Transition
  `BubbleTransition(int duration)`
  Creates a Bubble Transition
  `BubbleTransition(int duration, String componentName)`
  Creates a Bubble Transition

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `animate()`
  Allows the animation to reduce "repaint" calls when it returns false.
  `void`
  `cleanup()`
  Optional operation to cleanup the garbage left over by a running transition
  `Transition`
  `copy(boolean reverse)`
  Create a copy of the transition, usually the transition used is a copy.
  `int`
  `getDuration()`
  The duration for the transition
  `void`
  `initTransition()`
  Callback thats invoked before a transition begins, the source form may be null for the first form in the application.
  `void`
  `paint(Graphics g)`
  Draws the animation, within a component the standard paint method would be invoked since it bares the exact same signature.
  `void`
  `setComponentName(String componentName)`
  the name of the component from the source Form that this transition should start from.
  `void`
  `setDuration(int duration)`
  The duration for the transition
  `void`
  `setRoundBubble(boolean roundBubble)`
  Determines if the Bubble is a round circle or a rectangle.

  ### Methods inherited from class Transition

  `cleanSource, getDestination, getSource, hideInterformContainers, init, paintInterformContainers, showInterformContainers`

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### BubbleTransition

    public BubbleTransition()
    Creates a Bubble Transition

  - ### BubbleTransition

    public BubbleTransition(int duration)

    Creates a Bubble Transition

    ###### Parameters

    - `duration`: the duration of the transition

  - ### BubbleTransition

    public BubbleTransition(int duration, String componentName)

    Creates a Bubble Transition

    ###### Parameters

    - `duration`: the duration of the transition

    - `componentName`: @param componentName the name of the component from the source Form that this transition should start from.

- ## Method Details

  - ### setComponentName

    public void setComponentName(String componentName)

    the name of the component from the source Form that this transition should start from.

    ###### Parameters

    - `componentName`: name of the component to start the transition from

  - ### initTransition

    public void initTransition()
    Description copied from class: `Transition`
    Callback thats invoked before a transition begins, the source form may be null for the first form in the application.
    Overrides:
      `initTransition` in class `Transition`

  - ### animate

    public boolean animate()
    Description copied from class: `Transition`

    Allows the animation to reduce "repaint" calls when it returns false. It is called once for every frame. Frames are defined by the `com.codename1.ui.Display` class.

    ###### Returns

    true if a repaint is desired or false if no repaint is necessary

    Specified by:
      `animate` in interface `Animation`
    Specified by:
      `animate` in class `Transition`

  - ### paint

    public void paint(Graphics g)
    Description copied from class: `Transition`

    Draws the animation, within a component the standard paint method would be invoked since it bares the exact same signature.

    ###### Parameters

    - `g`: graphics context
    Specified by:
      `paint` in interface `Animation`
    Specified by:
      `paint` in class `Transition`

  - ### setRoundBubble

    public void setRoundBubble(boolean roundBubble)

    Determines if the Bubble is a round circle or a rectangle. Round bubble apply to platforms who supports shaped clipping. See Graphics.isShapeClipSupported().

    ###### Parameters

    - `roundBubble`: true if the bubble should be round

  - ### cleanup

    public void cleanup()
    Description copied from class: `Transition`
    Optional operation to cleanup the garbage left over by a running transition
    Overrides:
      `cleanup` in class `Transition`

  - ### getDuration

    public int getDuration()

    The duration for the transition

    ###### Returns

    the duration

  - ### setDuration

    public void setDuration(int duration)

    The duration for the transition

    ###### Parameters

    - `duration`: the duration to set

  - ### copy

    public Transition copy(boolean reverse)

    Create a copy of the transition, usually the transition used is a copy.

    ###### Parameters

    - `reverse`: @param reverse creates a new transition instance with "reverse" behavior useful for signifying "back" operations

    ###### Returns

    new transition instance

    ###### Parameters

    - `reverse`:

    Create a copy of the transition, usually the transition used is a copy.

    ###### Parameters

    - `reverse`: @param reverse creates a new transition instance with "reverse" behavior useful for signifying "back" operations

    ###### Returns

    new transition instance

    ###### Returns

    Create a copy of the transition, usually the transition used is a copy.

    ###### Parameters

    - `reverse`: @param reverse creates a new transition instance with "reverse" behavior useful for signifying "back" operations

    ###### Returns

    new transition instance

    Overrides:
      `copy` in class `Transition`