Mega Code Archive

 
Categories / Java / GWT
 

Timer based animation (Smart GWT)

/*  * SmartGWT (GWT for SmartClient)  * Copyright 2008 and beyond, Isomorphic Software, Inc.  *  * SmartGWT is free software; you can redistribute it and/or modify it  * under the terms of the GNU Lesser General Public License version 3  * as published by the Free Software Foundation.  SmartGWT is also  * available under typical commercial license terms - see  * http://smartclient.com/license  * This software is distributed in the hope that it will be useful,  * but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  * Lesser General Public License for more details.  */ package com.smartgwt.sample.showcase.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.RootPanel; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Img; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.layout.VLayout; public class Showcase implements EntryPoint {   public void onModuleLoad() {     RootPanel.get().add(getViewPanel());   }   public Canvas getViewPanel() {     VLayout layout = new VLayout();     layout.setMembersMargin(10);     layout.addChild(new OrbitImg());     return layout;   }   public static class OrbitImg extends Img {     public OrbitImg() {       super("other/earth.png", 48, 48);       setTop(0);       setLeft(100);       addClickHandler(new ClickHandler() {         public void onClick(ClickEvent event) {           animateOrbit();         }       });     }     public void animateOrbit() {       // TODO: isc.Animation.registerAnimation(this.animateOrbitStep, 2000,       // null, this);       new Timer() {         private double ratio = 0;         public void run() {           animateOrbitStep(ratio);           ratio += 0.01;           if (ratio >= 1)             cancel();         }       }.scheduleRepeating(20);     }     public void animateOrbitStep(double ratio) {       double angle = (Math.PI * 2) * ratio - (Math.PI / 2);       moveTo((int) (Math.cos(angle) * 100 + 100), (int) (Math.sin(angle) * 100 + 100));     }   } }                  SmartGWT.zip( 9,880 k)