From 4c0e14cd9c1b5d4a85af51c04715fe1d6b631e24 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Thu, 10 Oct 2024 05:18:03 +0200 Subject: [PATCH] Primitive wrapper property editors should use valueOf - the wrapper class constructors are all deprecated for removal - this will also allow setting wrapper properties to null. The only exception is Character, since CharEditor (for primitives) maps null to a char before it is passed to the CharacterEditor which never sees null. - affects code generation in GUI forms --- .../beaninfo/editors/BooleanEditor.java | 4 ++-- .../netbeans/beaninfo/editors/ByteEditor.java | 10 +++------- .../beaninfo/editors/CharacterEditor.java | 14 +++++-------- .../beaninfo/editors/DoubleEditor.java | 11 +++------- .../beaninfo/editors/FloatEditor.java | 11 +++------- .../beaninfo/editors/IntegerEditor.java | 9 ++++----- .../netbeans/beaninfo/editors/LongEditor.java | 7 +++---- .../beaninfo/editors/ShortEditor.java | 11 +++------- .../beaninfo/editors/WrappersEditor.java | 20 +++++++++++++++++-- 9 files changed, 44 insertions(+), 53 deletions(-) diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/BooleanEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/BooleanEditor.java index 0fb7fb8ce958..4621fbb5a94a 100644 --- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/BooleanEditor.java +++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/BooleanEditor.java @@ -19,7 +19,6 @@ package org.netbeans.beaninfo.editors; -import java.beans.*; /** * Editor for property of type java.lang.Boolean @@ -29,9 +28,10 @@ public class BooleanEditor extends WrappersEditor { public BooleanEditor() { - super(java.lang.Boolean.TYPE); + super(Boolean.TYPE); } + @Override public String getJavaInitializationString() { Boolean val = (Boolean) getValue(); return Boolean.TRUE.equals(val) ? "java.lang.Boolean.TRUE" : diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/ByteEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/ByteEditor.java index a1b162088f4b..b78bf92a6fe2 100644 --- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/ByteEditor.java +++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/ByteEditor.java @@ -19,7 +19,6 @@ package org.netbeans.beaninfo.editors; -import java.beans.*; /** * Editor for property of type java.lang.Byte @@ -29,13 +28,9 @@ public class ByteEditor extends WrappersEditor { public ByteEditor() { - super(java.lang.Byte.TYPE); + super(Byte.TYPE); } - - //---------------------------------------------------------------------- - - /** * This method is intended for use when generating Java code to set * the value of the property. It should return a fragment of Java code @@ -47,8 +42,9 @@ public ByteEditor() { * @return A fragment of Java code representing an initializer for the * current value. */ + @Override public String getJavaInitializationString() { - return "new java.lang.Byte((byte)" + getAsText() + ")"; // NOI18N + return "Byte.valueOf((byte)" + getAsText() + ")"; // NOI18N } } diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/CharacterEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/CharacterEditor.java index 0ec0a8238be1..ad42e625e267 100644 --- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/CharacterEditor.java +++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/CharacterEditor.java @@ -19,7 +19,6 @@ package org.netbeans.beaninfo.editors; -import java.beans.*; /** * Editor for property of type java.lang.Character @@ -29,13 +28,9 @@ public class CharacterEditor extends WrappersEditor { public CharacterEditor() { - super(java.lang.Character.TYPE); + super(Character.TYPE); } - - //---------------------------------------------------------------------- - - /** * This method is intended for use when generating Java code to set * the value of the property. It should return a fragment of Java code @@ -47,11 +42,12 @@ public CharacterEditor() { * @return A fragment of Java code representing an initializer for the * current value. */ + @Override public String getJavaInitializationString() { - if ( ((Character)getValue()).charValue() == '\'' ) - return "new java.lang.Character('\\'')"; // NOI18N + if ((Character)getValue() == '\'') + return "Character.valueOf('\\'')"; // NOI18N else - return "new java.lang.Character('" + getAsText() + "')"; // NOI18N + return "Character.valueOf('" + getAsText() + "')"; // NOI18N } } diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/DoubleEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/DoubleEditor.java index c743b9e2c61f..c163dabe3ee5 100644 --- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/DoubleEditor.java +++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/DoubleEditor.java @@ -19,8 +19,6 @@ package org.netbeans.beaninfo.editors; -import java.beans.*; - /** * Editor for property of type java.lang.Double * @@ -29,13 +27,9 @@ public class DoubleEditor extends WrappersEditor { public DoubleEditor() { - super(java.lang.Double.TYPE); + super(Double.TYPE); } - - //---------------------------------------------------------------------- - - /** * This method is intended for use when generating Java code to set * the value of the property. It should return a fragment of Java code @@ -47,8 +41,9 @@ public DoubleEditor() { * @return A fragment of Java code representing an initializer for the * current value. */ + @Override public String getJavaInitializationString() { - return "new java.lang.Double(" + getAsText() + ")"; // NOI18N + return "Double.valueOf(" + getAsText() + "D)"; // NOI18N } } diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/FloatEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/FloatEditor.java index 93b7ba894d0f..12b23da91b32 100644 --- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/FloatEditor.java +++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/FloatEditor.java @@ -19,8 +19,6 @@ package org.netbeans.beaninfo.editors; -import java.beans.*; - /** * Editor for property of type java.lang.Float * @@ -29,13 +27,9 @@ public class FloatEditor extends WrappersEditor { public FloatEditor() { - super(java.lang.Float.TYPE); + super(Float.TYPE); } - - //---------------------------------------------------------------------- - - /** * This method is intended for use when generating Java code to set * the value of the property. It should return a fragment of Java code @@ -47,8 +41,9 @@ public FloatEditor() { * @return A fragment of Java code representing an initializer for the * current value. */ + @Override public String getJavaInitializationString() { - return "new java.lang.Float(" + getAsText() + "F)"; // NOI18N + return "Float.valueOf(" + getAsText() + "F)"; // NOI18N } } diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/IntegerEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/IntegerEditor.java index 06375a6801c6..9569497e9649 100644 --- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/IntegerEditor.java +++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/IntegerEditor.java @@ -19,9 +19,6 @@ package org.netbeans.beaninfo.editors; -import java.beans.*; -import org.openide.explorer.propertysheet.PropertyEnv; -import org.openide.explorer.propertysheet.ExPropertyEditor; /** * Editor for property of type java.lang.Integer @@ -31,13 +28,15 @@ public class IntegerEditor extends WrappersEditor { public IntegerEditor() { - super(java.lang.Integer.TYPE); + super(Integer.TYPE); } + @Override public String getJavaInitializationString() { - return "new java.lang.Integer(" + pe.getJavaInitializationString() + ")"; // NOI18N + return "Integer.valueOf(" + pe.getJavaInitializationString() + ")"; // NOI18N } + @Override public void setAsText(String text) throws IllegalArgumentException { super.setAsText (text.trim()); } diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/LongEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/LongEditor.java index 8880d159ce84..a2057b6d49b4 100644 --- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/LongEditor.java +++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/LongEditor.java @@ -19,8 +19,6 @@ package org.netbeans.beaninfo.editors; -import java.beans.*; - /** * Editor for property of type java.lang.Long * @@ -29,11 +27,12 @@ public class LongEditor extends WrappersEditor { public LongEditor() { - super(java.lang.Long.TYPE); + super(Long.TYPE); } + @Override public String getJavaInitializationString() { - return "new java.lang.Long(" + getAsText() + "L)"; // NOI18N + return "Long.valueOf(" + getAsText() + "L)"; // NOI18N } } diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/ShortEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/ShortEditor.java index 702511393f5d..604fc4265018 100644 --- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/ShortEditor.java +++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/ShortEditor.java @@ -19,8 +19,6 @@ package org.netbeans.beaninfo.editors; -import java.beans.*; - /** * Editor for property of type java.lang.Short * @@ -29,13 +27,9 @@ public class ShortEditor extends WrappersEditor { public ShortEditor() { - super(java.lang.Short.TYPE); + super(Short.TYPE); } - - //---------------------------------------------------------------------- - - /** * This method is intended for use when generating Java code to set * the value of the property. It should return a fragment of Java code @@ -47,8 +41,9 @@ public ShortEditor() { * @return A fragment of Java code representing an initializer for the * current value. */ + @Override public String getJavaInitializationString() { - return "new java.lang.Short((short)" + getAsText() + ")"; // NOI18N + return "Short.valueOf((short)" + getAsText() + ")"; // NOI18N } } diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/WrappersEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/WrappersEditor.java index d8ab7bab6f18..5ebd8ddf2d5a 100644 --- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/WrappersEditor.java +++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/WrappersEditor.java @@ -19,7 +19,9 @@ package org.netbeans.beaninfo.editors; -import java.beans.*; +import java.beans.PropertyChangeListener; +import java.beans.PropertyEditor; +import java.beans.PropertyEditorManager; import java.text.MessageFormat; import org.netbeans.core.UIExceptions; import org.openide.explorer.propertysheet.ExPropertyEditor; @@ -41,31 +43,39 @@ public WrappersEditor(Class type) { pe = PropertyEditorManager.findEditor(type); } + @Override public void setValue(Object newValue) throws IllegalArgumentException { pe.setValue(newValue); } + @Override public Object getValue() { return pe.getValue(); } + @Override public boolean isPaintable() { return pe.isPaintable(); } + @Override public void paintValue(java.awt.Graphics gfx, java.awt.Rectangle box) { pe.paintValue(gfx, box); } + @Override public String getAsText () { if ( pe.getValue() == null ) return "null"; // NOI18N return pe.getAsText(); } + @Override public void setAsText(String text) throws IllegalArgumentException { - if ( "null".equals( text ) ) // NOI18N + if ( "null".equals( text ) ) { // NOI18N + pe.setValue(null); return; + } try { pe.setAsText(text); } catch (Exception e) { @@ -83,26 +93,32 @@ public void setAsText(String text) throws IllegalArgumentException { } } + @Override public String[] getTags() { return pe.getTags(); } + @Override public java.awt.Component getCustomEditor() { return pe.getCustomEditor(); } + @Override public boolean supportsCustomEditor() { return pe.supportsCustomEditor(); } + @Override public synchronized void addPropertyChangeListener(PropertyChangeListener listener) { pe.addPropertyChangeListener(listener); } + @Override public synchronized void removePropertyChangeListener(PropertyChangeListener listener) { pe.removePropertyChangeListener(listener); } + @Override public void attachEnv(PropertyEnv env) { //Delegate if the primitive editor is an ExPropertyEditor - //boolean and int editors will be