# Class FlipTransition

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

All Implemented Interfaces:
  `Animation`

public class FlipTransition extends Transition

A Transitions that flips between 2 components/forms using perspective transform where available.

Notice that this looks rather different on devices as perspective transform is available there but isn't on the simulator.

    Toolbar.setGlobalToolbar(true);
    Form hi = new Form("Transitions", new BoxLayout(BoxLayout.Y_AXIS));
    Style bg = hi.getContentPane().getUnselectedStyle();
    bg.setBgTransparency(255);
    bg.setBgColor(0xff0000);
    Button showTransition = new Button("Show");
    Picker pick = new Picker();
    pick.setStrings("Slide", "SlideFade", "Cover", "Uncover", "Fade", "Flip");
    pick.setSelectedString("Slide");
    TextField duration = new TextField("10000", "Duration", 6, TextArea.NUMERIC);
    CheckBox horizontal = CheckBox.createToggle("Horizontal");
    pick.addActionListener((e) -> {
        String s = pick.getSelectedString().toLowerCase();
        horizontal.setEnabled(s.equals("slide") || s.indexOf("cover") > -1);
    });
    horizontal.setSelected(true);
    hi.add(showTransition).
        add(pick).
        add(duration).
        add(horizontal);

    Form dest = new Form("Destination");
    bg = dest.getContentPane().getUnselectedStyle();
    bg.setBgTransparency(255);
    bg.setBgColor(0xff);
    dest.setBackCommand(
            dest.getToolbar().addCommandToLeftBar("Back", null, (e) -> hi.showBack()));

    showTransition.addActionListener((e) -> {
        int h = CommonTransitions.SLIDE_HORIZONTAL;
        if(!horizontal.isSelected()) {
            h = CommonTransitions.SLIDE_VERTICAL;
        }
        switch(pick.getSelectedString()) {
            case "Slide":
                hi.setTransitionOutAnimator(CommonTransitions.createSlide(h, true, duration.getAsInt(3000)));
                dest.setTransitionOutAnimator(CommonTransitions.createSlide(h, true, duration.getAsInt(3000)));
                break;
            case "SlideFade":
                hi.setTransitionOutAnimator(CommonTransitions.createSlideFadeTitle(true, duration.getAsInt(3000)));
                dest.setTransitionOutAnimator(CommonTransitions.createSlideFadeTitle(true, duration.getAsInt(3000)));
                break;
            case "Cover":
                hi.setTransitionOutAnimator(CommonTransitions.createCover(h, true, duration.getAsInt(3000)));
                dest.setTransitionOutAnimator(CommonTransitions.createCover(h, true, duration.getAsInt(3000)));
                break;
            case "Uncover":
                hi.setTransitionOutAnimator(CommonTransitions.createUncover(h, true, duration.getAsInt(3000)));
                dest.setTransitionOutAnimator(CommonTransitions.createUncover(h, true, duration.getAsInt(3000)));
                break;
            case "Fade":
                hi.setTransitionOutAnimator(CommonTransitions.createFade(duration.getAsInt(3000)));
                dest.setTransitionOutAnimator(CommonTransitions.createFade(duration.getAsInt(3000)));
                break;
            case "Flip":
                hi.setTransitionOutAnimator(new FlipTransition(-1, duration.getAsInt(3000)));
                dest.setTransitionOutAnimator(new FlipTransition(-1, duration.getAsInt(3000)));
                break;
        }
        dest.show();
    });
    hi.show();

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FlipTransition()`
  Creates a Flip Transition
  `FlipTransition(int bgColor)`
  Creates a Flip Transition
  `FlipTransition(int bgColor, int duration)`
  Creates a Flip 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`
  `getBgColor()`
  The background color that is painted behind the flipping effect or -1 to use the paintBackgrounds method instead
  `int`
  `getDuration()`
  The duration for the flip 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`
  `setBgColor(int bgColor)`
  The background color that is painted behind the flipping effect or -1 to use the paintBackgrounds method instead
  `void`
  `setDuration(int duration)`
  The duration for the flip transition

  ### Methods inherited from class Transition

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

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### FlipTransition

    public FlipTransition()
    Creates a Flip Transition

  - ### FlipTransition

    public FlipTransition(int bgColor)

    Creates a Flip Transition

    ###### Parameters

    - `bgColor`: @param bgColor the color to paint in the background when the transition paints, use -1 to not paint a background color

  - ### FlipTransition

    public FlipTransition(int bgColor, int duration)

    Creates a Flip Transition

    ###### Parameters

    - `bgColor`: @param bgColor the color to paint in the background when the transition paints, use -1 to not paint a background color

    - `duration`: the duration of the transition

- ## Method Details

  - ### 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`

  - ### 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 flip transition

    ###### Returns

    the duration

  - ### setDuration

    public void setDuration(int duration)

    The duration for the flip transition

    ###### Parameters

    - `duration`: the duration to set

  - ### getBgColor

    public int getBgColor()

    The background color that is painted behind the flipping effect or -1 to use the paintBackgrounds method instead

    ###### Returns

    the bgColor

  - ### setBgColor

    public void setBgColor(int bgColor)

    The background color that is painted behind the flipping effect or -1 to use the paintBackgrounds method instead

    ###### Parameters

    - `bgColor`: the bgColor 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`