All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.swt.widgets.TaskItem Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright (c) 2000, 2009 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.swt.widgets;


import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;

/**
 * Instances of this class represent a task item.
 *
 * 
*
Styles:
*
(none)
*
Events:
*
(none)
*
* * @see Sample code and further information * * @since 3.6 * * @noextend This class is not intended to be subclassed by clients. */ public class TaskItem extends Item { TaskBar parent; Shell shell; int progress, progressState = SWT.DEFAULT; Image overlayImage; String overlayText = ""; Menu menu; static final int PROGRESS_MAX = 100; /** * Constructs a new instance of this class given its parent * (which must be a Tray) and a style value * describing its behavior and appearance. The item is added * to the end of the items maintained by its parent. *

* The style value is either one of the style constants defined in * class SWT which is applicable to instances of this * class, or must be built by bitwise OR'ing together * (that is, using the int "|" operator) two or more * of those SWT style constants. The class description * lists the style constants that are applicable to the class. * Style bits are also inherited from superclasses. *

* * @param parent a composite control which will be the parent of the new instance (cannot be null) * @param style the style of control to construct * * @exception IllegalArgumentException
    *
  • ERROR_NULL_ARGUMENT - if the parent is null
  • *
* @exception SWTException
    *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
  • *
  • ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
  • *
* * @see SWT * @see Widget#checkSubclass * @see Widget#getStyle */ TaskItem (TaskBar parent, int style) { super (parent, style); this.parent = parent; parent.createItem (this, -1); } @Override protected void checkSubclass () { if (!isValidSubclass ()) error (SWT.ERROR_INVALID_SUBCLASS); } @Override void destroyWidget () { parent.destroyItem (this); releaseHandle (); } /** * Returns the receiver's pop up menu if it has one, or null * if it does not. * * @return the receiver's menu * * @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
*/ public Menu getMenu () { checkWidget (); return menu; } /** * Returns the receiver's overlay image if it has one, or null * if it does not. * * @return the receiver's overlay image * * @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
*/ public Image getOverlayImage () { checkWidget(); return overlayImage; } /** * Returns the receiver's overlay text, which will be an empty * string if it has never been set. * * @return the receiver's overlay text * * @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
*/ public String getOverlayText () { checkWidget(); return overlayText; } /** * Returns the receiver's parent, which must be a TaskBar. * * @return the receiver's parent * * @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
*/ public TaskBar getParent () { checkWidget (); return parent; } /** * Returns the receiver's progress. * * @return the receiver's progress * * @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
*/ public int getProgress () { checkWidget (); return progress; } /** * Returns the receiver's progress state. * * @return the receiver's progress state * * @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
*/ public int getProgressState () { checkWidget (); return progressState; } @Override void releaseHandle () { super.releaseHandle (); parent = null; } @Override void releaseWidget () { super.releaseWidget (); overlayImage = null; overlayText = null; } /** * Sets the receiver's pop up menu to the argument. The way the menu is * shown is platform specific. * *

* This feature might not be available for the receiver on all * platforms. The application code can check if it is supported * by calling the respective get method. When the feature is not * available, the get method will always return the NULL.

* *

* For better cross platform support, the application code should * set this feature on the TaskItem for application.
* On Windows, this feature will only work on RCP applications.

* *

* The menu should be fully created before this method is called. * Dynamic changes to the menu after the method is called will not be reflected * in the native menu.

* * @param menu the new pop up menu * * @exception IllegalArgumentException
    *
  • ERROR_MENU_NOT_POP_UP - the menu is not a pop up menu
  • *
  • ERROR_INVALID_ARGUMENT - if the menu has been disposed
  • *
* @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
*/ public void setMenu (Menu menu) { checkWidget (); if (menu != null) { if (menu.isDisposed()) SWT.error(SWT.ERROR_INVALID_ARGUMENT); if ((menu.style & SWT.POP_UP) == 0) { error (SWT.ERROR_MENU_NOT_POP_UP); } } this.menu = menu; } /** * Sets the receiver's overlay image, which may be null * indicating that no image should be displayed. The bounds * for the overlay image is determined by the platform and in * general it should be a small image. * *

* This feature might not be available for the receiver on all * platforms. The application code can check if it is supported * by calling the respective get method. When the feature is not * available, the get method will always return the NULL.

* *

* For better cross platform support, the application code should * first try to set this feature on the TaskItem for the * main shell then on the TaskItem for the application.

* * @param overlayImage the new overlay image (may be null) * * @exception IllegalArgumentException
    *
  • ERROR_INVALID_ARGUMENT - if the overlayImage has been disposed
  • *
* @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
*/ public void setOverlayImage (Image overlayImage) { checkWidget (); if (overlayImage != null && overlayImage.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT); this.overlayImage = overlayImage; } /** * Sets the receiver's overlay text. The space available to display the * overlay text is platform dependent and in general it should be no longer * than a few characters. * *

* This feature might not be available for the receiver on all * platforms. The application code can check if it is supported * by calling the respective get method. When the feature is not * available, the get method will always return an empty string.

* *

* For better cross platform support, the application code should * first try to set this feature on the TaskItem for the * main shell then on the TaskItem for the application.

* * @param overlayText the new overlay text * * @exception IllegalArgumentException
    *
  • ERROR_NULL_ARGUMENT - if the overlayText is null
  • *
* @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
*/ public void setOverlayText (String overlayText) { checkWidget (); if (overlayText == null) error (SWT.ERROR_NULL_ARGUMENT); this.overlayText = overlayText; } /** * Sets the receiver's progress state, the state can be one of * the following: *
    *
  • {@link SWT#DEFAULT}
  • *
  • {@link SWT#NORMAL}
  • *
  • {@link SWT#PAUSED}
  • *
  • {@link SWT#ERROR}
  • *
  • {@link SWT#INDETERMINATE}
  • *
* * The percentage of progress shown by the states SWT#NORMAL, SWT#PAUSED, * SWT#ERROR is set with setProgress().
* The state SWT#DEFAULT indicates that no progress should be shown. * *

* This feature might not be available for the receiver on all * platforms. The application code can check if it is supported * by calling the respective get method. When the feature is not * available, the get method will always return SWT#DEFAULT.

* *

* For better cross platform support, the application code should * first try to set this feature on the TaskItem for the * main shell then on the TaskItem for the application.

* * @param progressState the new progress state * * @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
* * #see {@link #setProgress(int)} */ public void setProgressState (int progressState) { checkWidget (); if (this.progressState == progressState) return; this.progressState = progressState; } /** * Sets the receiver's progress, the progress represents a percentage and * should be in range from 0 to 100. The progress is only shown when the progress * state is different than SWT#DEFAULT. * *

* This feature might not be available for the receiver on all * platforms. The application code can check if it is supported * by calling the respective get method. When the feature is not * available, the get method will always return zero.

* *

* For better cross platform support, the application code should * first try to set this feature on the TaskItem for the * main shell then on the TaskItem for the application.

* * @param progress the new progress * * @exception SWTException
    *
  • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  • *
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  • *
* * #see {@link #setProgressState(int)} */ public void setProgress (int progress) { checkWidget (); progress = Math.max(0, Math.min(progress, PROGRESS_MAX)); if (this.progress == progress) return; this.progress = progress; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy