From e828660635c0559965822f61fc4c69a40e04449c Mon Sep 17 00:00:00 2001 From: Patrick Ziegler Date: Wed, 14 Jan 2026 07:03:03 +0100 Subject: [PATCH] Deprecate CSpinner in favor of native SWT Spinner The CSpinner is not properly rendered on Linux. There is no real benefit for maintaining our own implementation, so we should just go back to the one provided by SWT. --- .../eclipse/wb/core/controls/CSpinner.java | 15 +++- .../controls/CSpinnerDeferredNotifier.java | 56 ++---------- .../controls/SpinnerDeferredNotifier.java | 85 +++++++++++++++++++ .../wb/core/controls/test/CSpinnerTest.java | 9 +- .../assistant/AbstractAssistantPage.java | 22 ++--- .../geometry/AbstractGeometryDialog.java | 6 +- .../assistant/GroupLayoutSpacesPage.java | 44 +++++----- .../META-INF/MANIFEST.MF | 2 +- .../model/ui/DimensionResizeComposite.java | 18 ++-- .../layout/gbl/ui/DimensionEditDialog.java | 12 +-- .../property/editor/font/DerivedFontPage.java | 18 ++-- .../editor/models/table/TableModelDialog.java | 31 ++++--- 12 files changed, 195 insertions(+), 123 deletions(-) create mode 100644 org.eclipse.wb.core/src/org/eclipse/wb/core/controls/SpinnerDeferredNotifier.java diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/CSpinner.java b/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/CSpinner.java index 7aa844369..b1d45b20b 100644 --- a/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/CSpinner.java +++ b/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/CSpinner.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011 Google, Inc. + * Copyright (c) 2011, 2026 Google, Inc. and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at @@ -39,7 +39,10 @@ * * @author scheglov_ke * @coverage core.control + * @Deprecated Use the native {@link Spinner} directly. This class will be + * removed after the 2028-03 release. */ +@Deprecated(since = "2026-03", forRemoval = true) public class CSpinner extends Composite { private static final Color COLOR_VALID = Display.getCurrent().getSystemColor( SWT.COLOR_LIST_BACKGROUND); @@ -66,6 +69,7 @@ public class CSpinner extends Composite { // Constructor // //////////////////////////////////////////////////////////////////////////// + @Deprecated public CSpinner(Composite parent, int style) { super(parent, style); m_button = new Button(this, SWT.ARROW | SWT.DOWN); @@ -165,6 +169,7 @@ public void widgetSelected(SelectionEvent e) { // Access // //////////////////////////////////////////////////////////////////////////// + @Deprecated @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); @@ -177,6 +182,7 @@ public void setEnabled(boolean enabled) { *

* See {@link Spinner#setDigits(int)}. */ + @Deprecated public void setDigits(int digits) { m_formatPattern = "0."; m_multiplier = 1; @@ -191,6 +197,7 @@ public void setDigits(int digits) { /** * Sets minimum and maximum using single invocation. */ + @Deprecated public void setRange(int minimum, int maximum) { setMinimum(minimum); setMaximum(maximum); @@ -199,6 +206,7 @@ public void setRange(int minimum, int maximum) { /** * @return the minimum value that the receiver will allow. */ + @Deprecated public int getMinimum() { return m_minimum; } @@ -206,6 +214,7 @@ public int getMinimum() { /** * Sets the minimum value that the receiver will allow. */ + @Deprecated public void setMinimum(int minimum) { m_minimum = minimum; setSelection(Math.max(m_value, m_minimum)); @@ -214,6 +223,7 @@ public void setMinimum(int minimum) { /** * Sets the maximum value that the receiver will allow. */ + @Deprecated public void setMaximum(int maximum) { m_maximum = maximum; setSelection(Math.min(m_value, m_maximum)); @@ -223,6 +233,7 @@ public void setMaximum(int maximum) { * Sets the amount that the receiver's value will be modified by when the up/down arrows are * pressed to the argument, which must be at least one. */ + @Deprecated public void setIncrement(int increment) { m_increment = increment; } @@ -232,6 +243,7 @@ public void setIncrement(int increment) { * not within the range specified by minimum and maximum, it will be adjusted to fall within this * range. */ + @Deprecated public void setSelection(int newValue) { newValue = Math.min(Math.max(m_minimum, newValue), m_maximum); if (newValue != m_value || m_text.getText().length() == 0) { @@ -251,6 +263,7 @@ private void updateText() { /** * @return the selection, which is the receiver's position. */ + @Deprecated public int getSelection() { return m_value; } diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/CSpinnerDeferredNotifier.java b/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/CSpinnerDeferredNotifier.java index f4f7a02e8..559dd582e 100644 --- a/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/CSpinnerDeferredNotifier.java +++ b/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/CSpinnerDeferredNotifier.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011 Google, Inc. + * Copyright (c) 2011, 2026 Google, Inc. and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at @@ -13,8 +13,6 @@ package org.eclipse.wb.core.controls; import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; /** @@ -23,52 +21,14 @@ * @author scheglov_ke * @author lobas_av * @coverage core.control + * @deprecated Use {@link SpinnerDeferredNotifier} instead. This class will be + * removed after the 2028-03 release. */ -public final class CSpinnerDeferredNotifier { - private final CSpinner m_spinner; - private final Display m_display; - private final int m_timeout; - private final Listener m_listener; +@Deprecated(since = "2026-03", forRemoval = true) +public final class CSpinnerDeferredNotifier extends SpinnerDeferredNotifier { - //////////////////////////////////////////////////////////////////////////// - // - // Constructor - // - //////////////////////////////////////////////////////////////////////////// - public CSpinnerDeferredNotifier(CSpinner spinner, int timeout, Listener listener) { - m_spinner = spinner; - m_display = m_spinner.getDisplay(); - m_timeout = timeout; - m_listener = listener; - addListener(); - } - - //////////////////////////////////////////////////////////////////////////// - // - // Listener - // - //////////////////////////////////////////////////////////////////////////// - private final int[] m_eventId = new int[1]; - - /** - * Handler for single {@link SWT#Selection} event. - */ - private void addListener() { - m_spinner.addListener(SWT.Selection, new Listener() { - @Override - public void handleEvent(final Event event) { - m_eventId[0]++; - m_display.timerExec(m_timeout, new Runnable() { - int m_id = m_eventId[0]; - - @Override - public void run() { - if (m_id == m_eventId[0]) { - m_listener.handleEvent(event); - } - } - }); - } - }); + @Deprecated + public CSpinnerDeferredNotifier(@SuppressWarnings("removal") CSpinner spinner, int timeout, Listener listener) { + super(spinner, timeout, listener); } } diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/SpinnerDeferredNotifier.java b/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/SpinnerDeferredNotifier.java new file mode 100644 index 000000000..a9f98b9ad --- /dev/null +++ b/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/SpinnerDeferredNotifier.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * Copyright (c) 2011, 2026 Google, Inc. and others. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Google, Inc. - initial API and implementation + *******************************************************************************/ +package org.eclipse.wb.core.controls; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Spinner; + +/** + * Helper for sending single {@link SWT#Selection} event after some timeout. + * + * @author scheglov_ke + * @author lobas_av + * @coverage core.control + */ +@SuppressWarnings("removal") +public sealed class SpinnerDeferredNotifier permits CSpinnerDeferredNotifier { + private final Control m_spinner; + private final Display m_display; + private final int m_timeout; + private final Listener m_listener; + + //////////////////////////////////////////////////////////////////////////// + // + // Constructor + // + //////////////////////////////////////////////////////////////////////////// + public SpinnerDeferredNotifier(Spinner spinner, int timeout, Listener listener) { + m_spinner = spinner; + m_display = m_spinner.getDisplay(); + m_timeout = timeout; + m_listener = listener; + addListener(); + } + + /* package */ SpinnerDeferredNotifier(CSpinner spinner, int timeout, Listener listener) { + m_spinner = spinner; + m_display = m_spinner.getDisplay(); + m_timeout = timeout; + m_listener = listener; + addListener(); + } + + //////////////////////////////////////////////////////////////////////////// + // + // Listener + // + //////////////////////////////////////////////////////////////////////////// + private final int[] m_eventId = new int[1]; + + /** + * Handler for single {@link SWT#Selection} event. + */ + private void addListener() { + m_spinner.addListener(SWT.Selection, new Listener() { + @Override + public void handleEvent(final Event event) { + m_eventId[0]++; + m_display.timerExec(m_timeout, new Runnable() { + int m_id = m_eventId[0]; + + @Override + public void run() { + if (m_id == m_eventId[0]) { + m_listener.handleEvent(event); + } + } + }); + } + }); + } +} diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/test/CSpinnerTest.java b/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/test/CSpinnerTest.java index f5a8cb24d..39a8b09e7 100644 --- a/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/test/CSpinnerTest.java +++ b/org.eclipse.wb.core/src/org/eclipse/wb/core/controls/test/CSpinnerTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011 Google, Inc. + * Copyright (c) 2011, 2026 Google, Inc. and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at @@ -34,10 +34,14 @@ * * @author scheglov_ke * @coverage core.test + * @deprecated Obsolete. This class will be removed after the 2028-03 release. */ +@Deprecated(since = "2026-03", forRemoval = true) public class CSpinnerTest { + @Deprecated protected Shell shell; + @Deprecated public static void main(String[] args) { try { CSpinnerTest window = new CSpinnerTest(); @@ -47,6 +51,7 @@ public static void main(String[] args) { } } + @Deprecated public void open() { final Display display = Display.getDefault(); createContents(); @@ -59,6 +64,8 @@ public void open() { } } + @Deprecated + @SuppressWarnings("removal") protected void createContents() { shell = new Shell(); shell.setSize(500, 375); diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/core/editor/actions/assistant/AbstractAssistantPage.java b/org.eclipse.wb.core/src/org/eclipse/wb/core/editor/actions/assistant/AbstractAssistantPage.java index 1c49bc15f..fd63ad20f 100644 --- a/org.eclipse.wb.core/src/org/eclipse/wb/core/editor/actions/assistant/AbstractAssistantPage.java +++ b/org.eclipse.wb.core/src/org/eclipse/wb/core/editor/actions/assistant/AbstractAssistantPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2025 Google, Inc. and others. + * Copyright (c) 2011, 2026 Google, Inc. and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at @@ -12,8 +12,7 @@ *******************************************************************************/ package org.eclipse.wb.core.editor.actions.assistant; -import org.eclipse.wb.core.controls.CSpinner; -import org.eclipse.wb.core.controls.CSpinnerDeferredNotifier; +import org.eclipse.wb.core.controls.SpinnerDeferredNotifier; import org.eclipse.wb.core.model.ObjectInfo; import org.eclipse.wb.internal.core.DesignerPlugin; import org.eclipse.wb.internal.core.model.property.Property; @@ -35,6 +34,7 @@ import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Spinner; import org.eclipse.swt.widgets.Text; import org.apache.commons.lang3.StringUtils; @@ -735,7 +735,7 @@ protected final Group addStaticFieldsProperty(Composite parent, * Adapter for int property. */ private final class IntegerPropertyInfo extends PropertyInfo { - private final CSpinner m_spinner; + private final Spinner m_spinner; private final Listener m_listener = new Listener() { @Override public void handleEvent(Event event) { @@ -750,10 +750,10 @@ public void handleEvent(Event event) { // Constructor // //////////////////////////////////////////////////////////////////////////// - public IntegerPropertyInfo(String property, CSpinner spinner) { + public IntegerPropertyInfo(String property, Spinner spinner) { super(property); m_spinner = spinner; - new CSpinnerDeferredNotifier(m_spinner, 500, m_listener); + new SpinnerDeferredNotifier(m_spinner, 500, m_listener); } //////////////////////////////////////////////////////////////////////////// @@ -787,7 +787,7 @@ protected final void addIntegerProperty(Composite parent, int maxValue) { new Label(parent, SWT.NONE).setText(title); // - CSpinner spinner = new CSpinner(parent, SWT.BORDER); + Spinner spinner = new Spinner(parent, SWT.BORDER); GridDataFactory.create(spinner).hintHC(10); spinner.setMinimum(minValue); spinner.setMaximum(maxValue); @@ -873,7 +873,7 @@ protected final Group addIntegerProperties(Composite parent, * Adapter for double property. */ private final class DoublePropertyInfo extends PropertyInfo { - private final CSpinner m_spinner; + private final Spinner m_spinner; private final double m_multiplier; private final Listener m_listener = new Listener() { @Override @@ -889,11 +889,11 @@ public void handleEvent(Event event) { // Constructor // //////////////////////////////////////////////////////////////////////////// - public DoublePropertyInfo(String property, CSpinner spinner, double multiplier) { + public DoublePropertyInfo(String property, Spinner spinner, double multiplier) { super(property); m_spinner = spinner; m_multiplier = multiplier; - new CSpinnerDeferredNotifier(m_spinner, 500, m_listener); + new SpinnerDeferredNotifier(m_spinner, 500, m_listener); } //////////////////////////////////////////////////////////////////////////// @@ -929,7 +929,7 @@ protected final void addDoubleProperty(Composite parent, int multiplier = (int) Math.pow(10, digits); new Label(parent, SWT.NONE).setText(title); // - CSpinner spinner = new CSpinner(parent, SWT.BORDER); + Spinner spinner = new Spinner(parent, SWT.BORDER); GridDataFactory.create(spinner).hintHC(10); spinner.setMinimum((int) (minValue * multiplier)); spinner.setMaximum((int) (maxValue * multiplier)); diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/internal/core/model/property/editor/geometry/AbstractGeometryDialog.java b/org.eclipse.wb.core/src/org/eclipse/wb/internal/core/model/property/editor/geometry/AbstractGeometryDialog.java index 7af25a650..aebba2592 100644 --- a/org.eclipse.wb.core/src/org/eclipse/wb/internal/core/model/property/editor/geometry/AbstractGeometryDialog.java +++ b/org.eclipse.wb.core/src/org/eclipse/wb/internal/core/model/property/editor/geometry/AbstractGeometryDialog.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011 Google, Inc. + * Copyright (c) 2011, 2026 Google, Inc. and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at @@ -12,7 +12,6 @@ *******************************************************************************/ package org.eclipse.wb.internal.core.model.property.editor.geometry; -import org.eclipse.wb.core.controls.CSpinner; import org.eclipse.wb.internal.core.DesignerPlugin; import org.eclipse.wb.internal.core.model.ModelMessages; import org.eclipse.wb.internal.core.utils.reflect.ReflectionUtils; @@ -28,6 +27,7 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Spinner; import java.lang.reflect.Field; @@ -113,7 +113,7 @@ protected final void createEditor(String title, String fieldName) { } // spinner { - final CSpinner spinner = new CSpinner(m_area, SWT.BORDER); + final Spinner spinner = new Spinner(m_area, SWT.BORDER); GridDataFactory.create(spinner).hintHC(8).grabH().fillH(); spinner.setMinimum(0); spinner.setMaximum(Integer.MAX_VALUE); diff --git a/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/model/assistant/GroupLayoutSpacesPage.java b/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/model/assistant/GroupLayoutSpacesPage.java index a3111812e..715ea7ff3 100644 --- a/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/model/assistant/GroupLayoutSpacesPage.java +++ b/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/model/assistant/GroupLayoutSpacesPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2023 Google, Inc. + * Copyright (c) 2011, 2026 Google, Inc. and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at @@ -12,8 +12,7 @@ *******************************************************************************/ package org.eclipse.wb.internal.layout.group.model.assistant; -import org.eclipse.wb.core.controls.CSpinner; -import org.eclipse.wb.core.controls.CSpinnerDeferredNotifier; +import org.eclipse.wb.core.controls.SpinnerDeferredNotifier; import org.eclipse.wb.core.editor.actions.assistant.ILayoutAssistantPage; import org.eclipse.wb.core.model.AbstractComponentInfo; import org.eclipse.wb.core.model.JavaInfo; @@ -41,6 +40,7 @@ import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Spinner; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; @@ -125,15 +125,15 @@ public boolean isPageValid() { // UI creation helpers // //////////////////////////////////////////////////////////////////////////// - private CSpinner createSpinner(Composite componentComposite) { - CSpinner spinner = new CSpinner(componentComposite, SWT.BORDER); + private Spinner createSpinner(Composite componentComposite) { + Spinner spinner = new Spinner(componentComposite, SWT.BORDER); GridDataFactory.create(spinner).hintHC(7); spinner.setMaximum(Short.MAX_VALUE); return spinner; } - private void createSpinnerNotifier(CSpinner spinner, Listener listener) { - new CSpinnerDeferredNotifier(spinner, 500, listener); + private void createSpinnerNotifier(Spinner spinner, Listener listener) { + new SpinnerDeferredNotifier(spinner, 500, listener); } /** @@ -178,8 +178,8 @@ private void updateAnchors(ToolBarManager manager, boolean isHorizontal) { // //////////////////////////////////////////////////////////////////////////// private final class ComponentComposite extends Composite { - private CSpinner m_widthSpinner; - private CSpinner m_heightSpinner; + private Spinner m_widthSpinner; + private Spinner m_heightSpinner; private ToolBarManager m_verticalAnchorsManager; private ToolBarManager m_horizontalAnchorsManager; @@ -254,7 +254,7 @@ public ComponentSizeSetListener(int dimension) { @Override public void handleEvent(Event event) { if (event.type == SWT.Selection && event.doit) { - CSpinner spinner = (CSpinner) event.widget; + Spinner spinner = (Spinner) event.widget; final int value = spinner.getSelection(); if (value > 0) { setComponentSize(m_dimension, value); @@ -268,7 +268,7 @@ public void handleEvent(Event event) { // //////////////////////////////////////////////////////////////////////////// private final class SpaceComposite extends Composite { - private final CSpinner m_spinner; + private final Spinner m_spinner; private final Button m_button; private final int m_direction; private final int m_dimension; @@ -307,15 +307,15 @@ public void widgetSelected(SelectionEvent e) { createSpinnerNotifier(m_spinner, new Listener() { @Override public void handleEvent(Event event) { - if (event.type == SWT.Selection && event.doit) { - int gapValue = m_spinner.getSelection(); - int defaultGapSize = - m_anchorsSupport.getDefaultGapSize(m_javaInfo, m_dimension, m_direction).intValue(); - if (gapValue < 1 || gapValue == defaultGapSize) { - gapValue = NOT_EXPLICITLY_DEFINED; - } - setGapValue(gapValue); + if (event.type == SWT.Selection && event.doit) { + int gapValue = m_spinner.getSelection(); + int defaultGapSize = + m_anchorsSupport.getDefaultGapSize(m_javaInfo, m_dimension, m_direction).intValue(); + if (gapValue < 1 || gapValue == defaultGapSize) { + gapValue = NOT_EXPLICITLY_DEFINED; } + setGapValue(gapValue); + } } }); } @@ -352,9 +352,9 @@ private void setGapValue(final int gapValue) { @Override public void run() throws Exception { m_anchorsSupport.action_setEmptySpaceProperties( - m_javaInfo, - m_dimension, - m_direction, + m_javaInfo, + m_dimension, + m_direction, gapValue); } }); diff --git a/org.eclipse.wb.swing.MigLayout/META-INF/MANIFEST.MF b/org.eclipse.wb.swing.MigLayout/META-INF/MANIFEST.MF index e507f2b73..df7485c9f 100644 --- a/org.eclipse.wb.swing.MigLayout/META-INF/MANIFEST.MF +++ b/org.eclipse.wb.swing.MigLayout/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.wb.swing.MigLayout;singleton:=true -Bundle-Version: 1.11.300.qualifier +Bundle-Version: 1.12.0.qualifier Bundle-Activator: org.eclipse.wb.internal.swing.MigLayout.Activator Bundle-Vendor: %providerName Bundle-RequiredExecutionEnvironment: JavaSE-21 diff --git a/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/model/ui/DimensionResizeComposite.java b/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/model/ui/DimensionResizeComposite.java index c2b751001..a00cbbf13 100644 --- a/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/model/ui/DimensionResizeComposite.java +++ b/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/model/ui/DimensionResizeComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011 Google, Inc. + * Copyright (c) 2011, 2026 Google, Inc. and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at @@ -12,7 +12,6 @@ *******************************************************************************/ package org.eclipse.wb.internal.swing.MigLayout.model.ui; -import org.eclipse.wb.core.controls.CSpinner; import org.eclipse.wb.internal.core.utils.reflect.ReflectionUtils; import org.eclipse.wb.internal.core.utils.ui.GridDataFactory; import org.eclipse.wb.internal.core.utils.ui.GridLayoutFactory; @@ -24,6 +23,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Spinner; import org.apache.commons.lang3.StringUtils; @@ -43,10 +43,10 @@ public final class DimensionResizeComposite extends Composite { // UI private final Button m_defaultWeightButton; private final Button m_customWeightButton; - private final CSpinner m_weightSpinner; + private final Spinner m_weightSpinner; private final Button m_defaultPriorityButton; private final Button m_customPriorityButton; - private final CSpinner m_prioritySpinner; + private final Spinner m_prioritySpinner; // listener private boolean m_updatingDimension; @@ -100,9 +100,10 @@ public void handleEvent(Event event) { } }); // - m_weightSpinner = new CSpinner(weightComposite, SWT.BORDER); + m_weightSpinner = new Spinner(weightComposite, SWT.BORDER); GridDataFactory.create(m_weightSpinner).hintHC(10).grabH().fill(); - m_weightSpinner.setRange(0, Integer.MAX_VALUE); + m_weightSpinner.setMinimum(0); + m_weightSpinner.setMaximum(Integer.MAX_VALUE); m_weightSpinner.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { @@ -143,9 +144,10 @@ public void handleEvent(Event event) { } }); // - m_prioritySpinner = new CSpinner(priorityComposite, SWT.BORDER); + m_prioritySpinner = new Spinner(priorityComposite, SWT.BORDER); GridDataFactory.create(m_prioritySpinner).hintHC(10).grabH().fill(); - m_prioritySpinner.setRange(0, Integer.MAX_VALUE); + m_prioritySpinner.setMinimum(0); + m_prioritySpinner.setMaximum(Integer.MAX_VALUE); m_prioritySpinner.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { diff --git a/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/model/layout/gbl/ui/DimensionEditDialog.java b/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/model/layout/gbl/ui/DimensionEditDialog.java index c8c9360b2..737e6c67d 100644 --- a/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/model/layout/gbl/ui/DimensionEditDialog.java +++ b/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/model/layout/gbl/ui/DimensionEditDialog.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2024 Google, Inc. and others. + * Copyright (c) 2011, 2026 Google, Inc. and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at @@ -12,7 +12,6 @@ *******************************************************************************/ package org.eclipse.wb.internal.swing.model.layout.gbl.ui; -import org.eclipse.wb.core.controls.CSpinner; import org.eclipse.wb.core.controls.Separator; import org.eclipse.wb.internal.core.DesignerPlugin; import org.eclipse.wb.internal.core.utils.execution.ExecutionUtils; @@ -39,6 +38,7 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Spinner; import org.eclipse.swt.widgets.Text; import java.text.MessageFormat; @@ -102,11 +102,11 @@ public DimensionEditDialog(Shell parentShell, // alignment private List