/* * Copyright � 2008, 2010, Oracle and/or its affiliates. All rights reserved */ package com.sun.lwuit.uidemo; import com.sun.lwuit.Button; import com.sun.lwuit.ButtonGroup; import com.sun.lwuit.CheckBox; import com.sun.lwuit.Command; import com.sun.lwuit.Component; import com.sun.lwuit.ComponentGroup; import com.sun.lwuit.Container; import com.sun.lwuit.Dialog; import com.sun.lwuit.Display; import com.sun.lwuit.Form; import com.sun.lwuit.Label; import com.sun.lwuit.M3G; import com.sun.lwuit.RadioButton; import com.sun.lwuit.TextArea; import com.sun.lwuit.TextField; import com.sun.lwuit.animations.CommonTransitions; import com.sun.lwuit.animations.Transition; import com.sun.lwuit.animations.Transition3D; import com.sun.lwuit.events.ActionEvent; import com.sun.lwuit.events.ActionListener; import com.sun.lwuit.layouts.BoxLayout; import com.sun.lwuit.layouts.FlowLayout; import com.sun.lwuit.spinner.Spinner; import com.sun.lwuit.plaf.UIManager; /** * Transitons between screens * * @author Shai Almog */ public class TransitionDemo extends Demo { /** * The selected radio button index */ private static int selectedIndex = 0; public String getName() { return "Transitions"; } protected String getHelp() { return UIManager.getInstance().localize("transitionHelp", "Help description"); } private RadioButton createRB(String label, ButtonGroup g, Container f) { RadioButton b = new RadioButton(label); // Style s = b.getStyle(); // s.setMargin(0, 0, 0, 0); // s.setBgTransparency(70); g.add(b); f.addComponent(b); return b; } protected void executeDemo(final Container f) { f.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); Label title = new Label("Please select a transition type"); title.setUIID("TitleLabel"); f.addComponent(title); final ButtonGroup radioButtonGroup = new ButtonGroup(); ComponentGroup radios = new ComponentGroup(); createRB("Slide Horizontal", radioButtonGroup, radios); createRB("Slide Vertical", radioButtonGroup, radios); createRB("Fade", radioButtonGroup, radios); if(M3G.isM3GSupported()) { createRB("Rotate", radioButtonGroup, radios); createRB("Fly In", radioButtonGroup, radios); createRB("Cube", radioButtonGroup, radios); createRB("Static Rotation", radioButtonGroup, radios); createRB("Swing Top", radioButtonGroup, radios); createRB("Swing Bottom", radioButtonGroup, radios); } f.addComponent(radios); radioButtonGroup.setSelected(selectedIndex); final Spinner speed = Spinner.create(0, 50000, 500, 100); Label speedLabel = new Label("Speed"); speedLabel.setUIID("TitleLabel"); f.addComponent(speedLabel); f.addComponent(speed); final Form destination = new Form("Destination"); destination.addComponent(new Label("This is the transition destination...")); Command backCommand = new Command("Back") { public void actionPerformed(ActionEvent evt) { f.getComponentForm().show(); } }; destination.addCommand(backCommand); destination.setBackCommand(backCommand); final Button updateButton = new Button("Preview Transition"); final Button applyButton = new Button("Apply Transition"); final Button applyMenu = new Button("Apply To Menu"); ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent ev) { int runSpeed = ((Integer)speed.getValue()).intValue(); Transition in, out; switch (radioButtonGroup.getSelectedIndex()) { case 0: { out = CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL, false, runSpeed); in = CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL, true, runSpeed); break; } case 1: { out = CommonTransitions.createSlide(CommonTransitions.SLIDE_VERTICAL, false, runSpeed); in = CommonTransitions.createSlide(CommonTransitions.SLIDE_VERTICAL, true, runSpeed); break; } case 2: { out = CommonTransitions.createFade(runSpeed); in = CommonTransitions.createFade(runSpeed); break; } case 3: { out = Transition3D.createRotation(runSpeed, true); in = Transition3D.createRotation(runSpeed, false); break; } case 4: { out = Transition3D.createFlyIn(runSpeed); in = Transition3D.createFlyIn(runSpeed); break; } case 5: { out = Transition3D.createCube(runSpeed, true); in = Transition3D.createCube(runSpeed, false); break; } case 6: { out = Transition3D.createStaticRotation(runSpeed, true); in = Transition3D.createStaticRotation(runSpeed, false); break; } case 7: { out = Transition3D.createSwingIn(runSpeed); in = out; break; } default: { out = Transition3D.createSwingIn(runSpeed, false); in = out; break; } } selectedIndex = radioButtonGroup.getSelectedIndex(); f.getComponentForm().setTransitionOutAnimator(CommonTransitions.createEmpty()); if(updateButton == ev.getSource()) { destination.setTransitionOutAnimator(out); destination.setTransitionInAnimator(in); destination.show(); } else { if(applyButton == ev.getSource()) { UIDemoMain.setTransition(in, out); } else { if(applyMenu == ev.getSource()) { UIDemoMain.setMenuTransition(in, out); } } } } }; updateButton.addActionListener(listener); applyButton.addActionListener(listener); applyMenu.addActionListener(listener); ComponentGroup buttonPanel = new ComponentGroup(); buttonPanel.setElementUIID("ButtonGroup"); buttonPanel.addComponent(updateButton); buttonPanel.addComponent(applyButton); buttonPanel.addComponent(applyMenu); f.addComponent(buttonPanel); } }