GWT Java

/*
 * 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.ui.RootPanel;
import com.smartgwt.client.widgets.AnimationCallback;
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 ZoomImg(this, 0, "cube_blue.png"));
    layout.addChild(new ZoomImg(this, 100, "pawn_yellow.png"));
    layout.addChild(new ZoomImg(this, 200, "piece_green.png"));
    return layout;
    
  }
  protected ZoomImg zoomedObject = null;
}
class ZoomImg extends Img {
  private Showcase sample;
  private int zoomTime;
  private int shrinkTime;
  private Integer originalLeft = null;
  public ZoomImg(final Showcase sample, int left, String src) {
      final ZoomImg _this = this;
      this.sample = sample;
      setLeft(left);
      setSrc(src);
      setWidth(48);
      setHeight(48);
      setAppImgDir("pieces/48/");
      zoomTime = 1000;
      shrinkTime = 300;
      addClickHandler(new ClickHandler() {
          public void onClick(ClickEvent event) {
              // remember original position
              if (originalLeft == null)
                  originalLeft = getLeft();
              if (sample.zoomedObject == null) { // nothing expanded, so just expand
                  zoom();
              } else if (_this.equals(sample.zoomedObject)) { // already expanded, so just shrink
                  shrink();
                  sample.zoomedObject = null;
              } else { // another object is expanded; shrink it and then expand this object
                  sample.zoomedObject.shrink(new AnimationCallback() {
                      public void execute(boolean earlyFinish) {
                          zoom();
                      }
                  });
              }
          }
      });
  }
  public void zoom() {
      animateRect(25, 100, 200, 200, null, zoomTime);
      sample.zoomedObject = this;
  }
  public void shrink() {
      shrink(null);
  }
  public void shrink(AnimationCallback postShrinkScript) {
      animateRect(originalLeft, 0, 48, 48, postShrinkScript, shrinkTime);
  }
}
   
    
    
  
SmartGWT.zip( 9,880 k)