Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * This program is free software; you can redistribute it and/or modify it under the 
   * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software 
   * Foundation.
   *
   * You should have received a copy of the GNU Lesser General Public License along with this 
   * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html 
   * or from the Free Software Foundation, Inc., 
   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
  * This program 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.
  *
  * Copyright 2008 Pentaho Corporation.  All rights reserved.
  */
 package org.pentaho.gwt.widgets.client.buttons;
 
 import  com.google.gwt.event.dom.client.MouseDownEvent;
 import  com.google.gwt.event.dom.client.MouseDownHandler;
 import  com.google.gwt.event.dom.client.MouseOutEvent;
 import  com.google.gwt.event.dom.client.MouseOutHandler;
 import  com.google.gwt.event.dom.client.MouseOverEvent;
 import  com.google.gwt.event.dom.client.MouseOverHandler;
 import  com.google.gwt.event.dom.client.MouseUpEvent;
 import  com.google.gwt.event.dom.client.MouseUpHandler;
 import  com.google.gwt.user.client.DOM;
 import  com.google.gwt.user.client.Event;
 import  com.google.gwt.user.client.ui.Image;
Clickable image with enable/disable functionality built in.
 
 public class ImageButton extends Image {
 
   private boolean isEnabled = true;
   private String enabledUrl;
   private String disabledUrl;
 
   public ImageButton(String enabledUrlString disabledUrlString tooltip) {
     this(enabledUrldisabledUrltooltip, -1, -1);
   }
 
   public ImageButton() {
     super();
     setStyleName("image-button"); //$NON-NLS-1$
     this.addMouseDownHandler(new MouseDownHandler() {
       public void onMouseDown(MouseDownEvent event) {
         if () {
           setStyleName("image-button-pressed"); //$NON-NLS-1$
         } else {
           setStyleName("disabled-image-button-pressed"); //$NON-NLS-1$
         }
       }
     });
     this.addMouseUpHandler(new MouseUpHandler() {
       public void onMouseUp(MouseUpEvent event) {
         updateStyles();
       }
     });
 
     this.addMouseOverHandler(new MouseOverHandler() {
       public void onMouseOver(MouseOverEvent event) {
         if () {
           setStyleName("image-button-over"); //$NON-NLS-1$
         } else {
           setStyleName("disabled-image-button-over"); //$NON-NLS-1$
         }
       }
     });
 
     this.addMouseOutHandler(new MouseOutHandler() {
       public void onMouseOut(MouseOutEvent event) {
         updateStyles();
       }
     });
 
   }
 
   private void updateStyles() {
     if () {
       setStyleName("image-button"); //$NON-NLS-1$
     } else {
       setStyleName("disabled-image-button"); //$NON-NLS-1$
     }
   }
 
   public ImageButton(String enabledUrlString disabledUrlString tooltip,
       int widthint height) {
     super(enabledUrl);
 
     setSize(width + "px"height + "px"); //$NON-NLS-1$ //$NON-NLS-2$
 
     this. = enabledUrl;
     this. = disabledUrl;
 
     if (tooltip != null && tooltip.length() > 0) {
       setTitle(tooltip);
     }
 
  }
  public void setEnabledUrl(String url) {
    if (this. != null && this..equals(url)) {
      return;
    }
    this. = url;
    // only change the url if it's different and not null
    if ( && this.getUrl().equals() == false) {
      this.setSrc();
    } else if (! &&  != null
        && this.getUrl().equals() == false) {
      this.setSrc();
    }
  }
  public void setDisabledUrl(String url) {
    if (this. != null && this..equals(url)) {
      return;
    }
    this. = url;
    // only change the url if it's different and not null
    if ( &&  != null
        && this.getUrl().equals() == false) {
      this.setSrc();
    } else if (! && this.getUrl().equals() == false) {
      this.setSrc();
    }
  }
  public void onBrowserEvent(Event event) {
    super.onBrowserEvent(event);
    // This is required to prevent a drag & drop of the Image in the edit text.
    DOM.eventPreventDefault(event);
  }
  public boolean isEnabled() {
    return ;
  }
  public void setEnabled(boolean isEnabled) {
    if (this. == isEnabled) {
      return;
    }
    this. = isEnabled;
    if (isEnabled) {
      this.setSrc();
    } else if ( != null) {
      this.setSrc();
    }
  }
  
  
We're manipulating the DOM element directory instead of using the setUrl() method as setUrl(), which does a lot of deferred loading / caching magic, was casing issues with IE.

Parameters:
src
TODO:
Re-evaluate the need for this after the next GWT release.
  private void setSrc(String src){
    this.getElement().setAttribute("src"src); //$NON-NLS-1$
  }
  public void setFocus(boolean focus) {
    this.setFocus(focus);
  }
New to GrepCode? Check out our FAQ X