Sha256: a996358cc84dd94bd0568e22aa7033d63640430dcd5b45395e1a2b9e83c44af5

Contents?: true

Size: 1.85 KB

Versions: 1

Compression:

Stored size: 1.85 KB

Contents

/**
 * Sencha GXT 3.1.1 - Sencha for GWT
 * Copyright(c) 2007-2014, Sencha, Inc.
 * licensing@sencha.com
 *
 * http://www.sencha.com/products/gxt/license/
 */
package com.dldinternet.aws.cfn.stacker.desktop.client.widget;

import com.google.gwt.resources.client.ImageResource;
import com.sencha.gxt.core.client.util.Format;
import com.sencha.gxt.widget.core.client.Header;
import com.sencha.gxt.widget.core.client.Window;
import com.sencha.gxt.widget.core.client.WindowManager;
import com.sencha.gxt.widget.core.client.button.ToggleButton;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;

/**
 * Provides a task button that can be added to a task bar and indicates the
 * current state of a desktop application. Clicking on a task button activates
 * the window associated with a desktop application. The active desktop
 * application is indicated by the "pressed" visual state of the task button.
 * 
 * @see TaskBar
 */
public class TaskButton extends ToggleButton {

  private Window win;

  /**
   * Creates a task button for the specified window.
   * 
   * @param win a window containing a desktop application
   */
  public TaskButton(Window win) {
    super(new TaskButtonCell());
    Header header = win.getHeader();
    ImageResource icon = header.getIcon();
    String text = header.getText();
    if (text != null) {
      setText(Format.ellipse(text, 26));
    }
    setIcon(icon);
    setHeight(28);
    this.win = win;
    addSelectHandler(new SelectHandler() {
      @Override
      public void onSelect(SelectEvent event) {
        doSelect(event);
      }
    });
  }

  protected void doSelect(SelectEvent event) {
    if (!win.isVisible()) {
      win.show();
    } else if (win == WindowManager.get().getActive()) {
      win.minimize();
    } else {
      win.toFront();
    }
  }
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aws-cfn-stacker-0.0.6 ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/TaskButton.java