| /******************************************************************************* |
| * Copyright (c) 2008 Matthew Hall and others. |
| * 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: |
| * Matthew Hall - initial API and implementation (bug 194734) |
| * Matthew Hall - bugs 256543, 213893, 262320, 262946, 264286, 266563, |
| * 169876 |
| ******************************************************************************/ |
| |
| package org.eclipse.jface.databinding.swt; |
| |
| import org.eclipse.jface.internal.databinding.swt.ControlBackgroundProperty; |
| import org.eclipse.jface.internal.databinding.swt.ControlBoundsProperty; |
| import org.eclipse.jface.internal.databinding.swt.ControlEnabledProperty; |
| import org.eclipse.jface.internal.databinding.swt.ControlFocusedProperty; |
| import org.eclipse.jface.internal.databinding.swt.ControlFontProperty; |
| import org.eclipse.jface.internal.databinding.swt.ControlForegroundProperty; |
| import org.eclipse.jface.internal.databinding.swt.ControlLocationProperty; |
| import org.eclipse.jface.internal.databinding.swt.ControlSizeProperty; |
| import org.eclipse.jface.internal.databinding.swt.ControlVisibleProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetEditableProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetImageProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetItemsProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetMaximumProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetMessageProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetMinimumProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetSelectionProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetSingleSelectionIndexProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetTextProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetTextWithEventsProperty; |
| import org.eclipse.jface.internal.databinding.swt.WidgetTooltipTextProperty; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.custom.CCombo; |
| import org.eclipse.swt.custom.CLabel; |
| import org.eclipse.swt.custom.CTabItem; |
| import org.eclipse.swt.custom.StyledText; |
| import org.eclipse.swt.widgets.Button; |
| import org.eclipse.swt.widgets.Combo; |
| import org.eclipse.swt.widgets.Control; |
| import org.eclipse.swt.widgets.DateTime; |
| import org.eclipse.swt.widgets.Item; |
| import org.eclipse.swt.widgets.Label; |
| import org.eclipse.swt.widgets.Link; |
| import org.eclipse.swt.widgets.List; |
| import org.eclipse.swt.widgets.Scale; |
| import org.eclipse.swt.widgets.Shell; |
| import org.eclipse.swt.widgets.Spinner; |
| import org.eclipse.swt.widgets.TabItem; |
| import org.eclipse.swt.widgets.Table; |
| import org.eclipse.swt.widgets.TableColumn; |
| import org.eclipse.swt.widgets.Text; |
| import org.eclipse.swt.widgets.ToolItem; |
| import org.eclipse.swt.widgets.ToolTip; |
| import org.eclipse.swt.widgets.TrayItem; |
| import org.eclipse.swt.widgets.TreeColumn; |
| import org.eclipse.swt.widgets.Widget; |
| |
| /** |
| * A factory for creating properties of SWT {@link Widget widgets}. |
| * |
| * @since 1.3 |
| */ |
| public class WidgetProperties { |
| /** |
| * Returns a value property for observing the background color of a |
| * {@link Control}. |
| * |
| * @return a value property for observing the background color of a |
| * {@link Control}. |
| */ |
| public static IWidgetValueProperty background() { |
| return new ControlBackgroundProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the bounds of a {@link Control}. |
| * |
| * @return a value property for observing the bounds of a {@link Control}. |
| */ |
| public static IWidgetValueProperty bounds() { |
| return new ControlBoundsProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the editable state of a |
| * {@link Text}. |
| * |
| * @return a value property for observing the editable state of a |
| * {@link Text}. |
| */ |
| public static IWidgetValueProperty editable() { |
| return new WidgetEditableProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the enablement state of a |
| * {@link Control}. |
| * |
| * @return a value property for observing the enablement state of a |
| * {@link Control}. |
| */ |
| public static IWidgetValueProperty enabled() { |
| return new ControlEnabledProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the focus state of a |
| * {@link Control}. |
| * |
| * @return a value property for observing the focus state of a |
| * {@link Control}. |
| */ |
| public static IWidgetValueProperty focused() { |
| return new ControlFocusedProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the font of a {@link Control}. |
| * |
| * @return a value property for observing the font of a {@link Control}. |
| */ |
| public static IWidgetValueProperty font() { |
| return new ControlFontProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the foreground color of a |
| * {@link Control}. |
| * |
| * @return a value property for observing the foreground color of a |
| * {@link Control}. |
| */ |
| public static IWidgetValueProperty foreground() { |
| return new ControlForegroundProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the image of a {@link Button}, |
| * {@link CLabel}, {@link Item} or {@link Label}. |
| * |
| * @return a value property for observing the image of a {@link Button}, |
| * {@link CLabel}, {@link Item} or {@link Label}. |
| */ |
| public static IWidgetValueProperty image() { |
| return new WidgetImageProperty(); |
| } |
| |
| /** |
| * Returns a list property for observing the items of a {@link CCombo}, |
| * {@link Combo} or {@link List}. |
| * |
| * @return a list property for observing the items of a {@link CCombo}, |
| * {@link Combo} or {@link List}. |
| */ |
| public static IWidgetListProperty items() { |
| return new WidgetItemsProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the location of a {@link Control}. |
| * |
| * @return a value property for observing the location of a {@link Control}. |
| */ |
| public static IWidgetValueProperty location() { |
| return new ControlLocationProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the maximum value of a |
| * {@link Scale} or {@link Spinner}. |
| * |
| * @return a value property for observing the maximum value of a |
| * {@link Scale} or {@link Spinner}. |
| */ |
| public static IWidgetValueProperty maximum() { |
| return new WidgetMaximumProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the message of a {@link Text} or |
| * {@link ToolTip}. |
| * |
| * @return a value property for observing the message of a {@link Text} or |
| * {@link ToolTip}. |
| */ |
| public static IWidgetValueProperty message() { |
| return new WidgetMessageProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the minimum value of a |
| * {@link Scale} or {@link Spinner}. |
| * |
| * @return a value property for observing the minimum value of a |
| * {@link Scale} or {@link Spinner}. |
| */ |
| public static IWidgetValueProperty minimum() { |
| return new WidgetMinimumProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the selection state of a |
| * {@link Button}, {@link CCombo}, {@link Combo}, {@link DateTime}, |
| * {@link List}, {@link Scale} or {@link Spinner}. |
| * |
| * @return a value property for observing the selection state of a |
| * {@link Button}, {@link CCombo}, {@link Combo}, {@link DateTime}, |
| * {@link List}, {@link Scale} or {@link Spinner}. |
| */ |
| public static IWidgetValueProperty selection() { |
| return new WidgetSelectionProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the single selection index of a |
| * {@link CCombo}, {@link Combo}, {@link List} or {@link Table}. |
| * |
| * @return a value property for the single selection index of a SWT Combo. |
| */ |
| public static IWidgetValueProperty singleSelectionIndex() { |
| return new WidgetSingleSelectionIndexProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the size of a {@link Control}. |
| * |
| * @return a value property for observing the size of a {@link Control}. |
| */ |
| public static IWidgetValueProperty size() { |
| return new ControlSizeProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the text of a {@link Button}, |
| * {@link CCombo}, {@link CLabel}, {@link Combo}, {@link Item}, |
| * {@link Label}, {@link Link}, {@link Shell}, {@link StyledText} or |
| * {@link Text}. |
| * |
| * @return a value property for observing the text of a {@link Button}, |
| * {@link CCombo}, {@link CLabel}, {@link Combo}, {@link Item}, |
| * {@link Label}, {@link Link}, {@link Shell}, {@link StyledText} or |
| * {@link Text}. |
| */ |
| public static IWidgetValueProperty text() { |
| return new WidgetTextProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the text of a {@link StyledText} |
| * or {@link Text}. |
| * |
| * @param event |
| * the SWT event type to register for change events. May be |
| * {@link SWT#None}, {@link SWT#Modify}, {@link SWT#FocusOut} or |
| * {@link SWT#DefaultSelection}. |
| * |
| * @return a value property for observing the text of a {@link StyledText} |
| * or {@link Text}. |
| */ |
| public static IWidgetValueProperty text(final int event) { |
| return text(new int[] { event }); |
| } |
| |
| /** |
| * Returns a value property for observing the text of a {@link StyledText} |
| * or {@link Text}. |
| * |
| * @param events |
| * array of SWT event types to register for change events. May |
| * include {@link SWT#None}, {@link SWT#Modify}, |
| * {@link SWT#FocusOut} or {@link SWT#DefaultSelection}. |
| * |
| * @return a value property for observing the text of a {@link StyledText} |
| * or {@link Text}. |
| */ |
| public static IWidgetValueProperty text(int[] events) { |
| return new WidgetTextWithEventsProperty((int[]) events.clone()); |
| } |
| |
| /** |
| * Returns a value property for observing the tooltip text of a |
| * {@link CTabItem}, {@link Control}, {@link TabItem}, {@link TableColumn}, |
| * {@link ToolItem}, {@link TrayItem} or {@link TreeColumn}. |
| * |
| * @return a value property for observing the tooltip text of a |
| * {@link CTabItem}, {@link Control}, {@link TabItem}, |
| * {@link TableColumn}, {@link ToolItem}, {@link TrayItem} or |
| * {@link TreeColumn}. |
| */ |
| public static IWidgetValueProperty tooltipText() { |
| return new WidgetTooltipTextProperty(); |
| } |
| |
| /** |
| * Returns a value property for observing the visibility state of a |
| * {@link Control}. |
| * |
| * @return a value property for observing the visibility state of a |
| * {@link Control}. |
| */ |
| public static IWidgetValueProperty visible() { |
| return new ControlVisibleProperty(); |
| } |
| } |