001: /*
002: * Copyright 2007 Google Inc.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005: * use this file except in compliance with the License. You may obtain a copy of
006: * the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012: * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013: * License for the specific language governing permissions and limitations under
014: * the License.
015: */
016:
017: package com.google.gwt.user.client.ui;
018:
019: /**
020: * A <code>ToggleButton</code> is a stylish stateful button which allows the
021: * user to toggle between <code>up</code> and <code>down</code> states.
022: *
023: * <p>
024: * <img class='gallery' src='ToggleButton.png'/>
025: * </p>
026: *
027: * <h3>CSS Style Rules</h3>
028: * <ul class="css">
029: * <li>.gwt-ToggleButton-up/down/up-hovering/down-hovering/up-disabled/down-disabled {.html-face}</li>
030: * </ul>
031: *
032: * <p>
033: * <h3>Example</h3> {@example com.google.gwt.examples.ToggleButtonExample}
034: * </p>
035: */
036: public class ToggleButton extends CustomButton {
037: private static String STYLENAME_DEFAULT = "gwt-ToggleButton";
038:
039: {
040: setStyleName(STYLENAME_DEFAULT);
041: }
042:
043: /**
044: * Constructor for <code>ToggleButton</code>.
045: */
046: public ToggleButton() {
047: super ();
048: }
049:
050: /**
051: * Constructor for <code>ToggleButton</code>. The supplied image is used to
052: * construct the default face.
053: *
054: * @param upImage image for the default face of the button
055: */
056: public ToggleButton(Image upImage) {
057: super (upImage);
058: }
059:
060: /**
061: * Constructor for <code>ToggleButton</code>. The supplied image is used to
062: * construct the default face of the button.
063: *
064: * @param upImage image for the default (up) face of the button
065: * @param listener the click listener
066: */
067: public ToggleButton(Image upImage, ClickListener listener) {
068: super (upImage, listener);
069: }
070:
071: /**
072: * Constructor for <code>ToggleButton</code>.
073: *
074: * @param upImage image for the default(up) face of the button
075: * @param downImage image for the down face of the button
076: */
077: public ToggleButton(Image upImage, Image downImage) {
078: super (upImage, downImage);
079: }
080:
081: /**
082: * Constructor for <code>ToggleButton</code>.
083: *
084: * @param upImage image for the default(up) face of the button
085: * @param downImage image for the down face of the button
086: * @param listener clickListener
087: */
088: public ToggleButton(Image upImage, Image downImage,
089: ClickListener listener) {
090: super (upImage, downImage, listener);
091: }
092:
093: /**
094: * Constructor for <code>ToggleButton</code>. The supplied text is used to
095: * construct the default face of the button.
096: *
097: * @param upText the text for the default (up) face of the button.
098: */
099: public ToggleButton(String upText) {
100: super (upText);
101: }
102:
103: /**
104: * Constructor for <code>ToggleButton</code>. The supplied text is used to
105: * construct the default face of the button.
106: *
107: * @param upText the text for the default (up) face of the button
108: * @param listener the click listener
109: */
110: public ToggleButton(String upText, ClickListener listener) {
111: super (upText, listener);
112: }
113:
114: /**
115: * Constructor for <code>ToggleButton</code>.
116: *
117: * @param upText the text for the default (up) face of the button
118: * @param downText the text for down face of the button
119: */
120: public ToggleButton(String upText, String downText) {
121: super (upText, downText);
122: }
123:
124: @Override
125: public boolean isDown() {
126: // Changes access to public.
127: return super .isDown();
128: }
129:
130: @Override
131: public void setDown(boolean down) {
132: // Changes access to public.
133: super .setDown(down);
134: }
135:
136: @Override
137: protected void onClick() {
138: toggleDown();
139: super.onClick();
140: }
141: }
|