| /******************************************************************************* |
| * Copyright (c) 2008 Oracle. All rights reserved. This |
| * program and the accompanying materials are made available under the terms of |
| * the Eclipse Public License v1.0 which accompanies this distribution, and is |
| * available at http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: Oracle. - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jpt.common.ui.internal.util; |
| |
| import org.eclipse.core.runtime.Assert; |
| import org.eclipse.swt.graphics.Image; |
| import org.eclipse.swt.widgets.Button; |
| |
| /** |
| * A default implementation of <code>LabeledControl</code> that updates a |
| * <code>Button</code> when required. |
| * |
| * @version 2.0 |
| * @since 2.0 |
| */ |
| @SuppressWarnings("nls") |
| public final class LabeledButton implements LabeledControl |
| { |
| /** |
| * The button to be updated with a different icon and text. |
| */ |
| private final Button button; |
| |
| /** |
| * Creates a new <code>LabeledButton</code>. |
| * |
| * @param button The button that will have its text and icon updated when |
| * required |
| * @exception AssertionFailedException If the given <code>Button</code> is |
| * <code>null</code> |
| */ |
| public LabeledButton(Button button) { |
| super(); |
| |
| Assert.isNotNull(button, "The button cannot be null"); |
| this.button = button; |
| } |
| |
| /* |
| * (non-Javadoc) |
| */ |
| public void setImage(Image image) { |
| if (!this.button.isDisposed()) { |
| this.button.setImage(image); |
| this.button.getParent().layout(true); |
| } |
| } |
| |
| /* |
| * (non-Javadoc) |
| */ |
| public void setText(String text) { |
| if (!this.button.isDisposed()) { |
| this.button.setText(text); |
| this.button.getParent().layout(true); |
| } |
| } |
| } |