[73236] ToolItem outline not correct.
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanProxyFactory.java
index b622f7e..72e76a8 100644
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanProxyFactory.java
+++ b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/IStandardBeanProxyFactory.java
@@ -13,7 +13,7 @@
 
 /*
  *  $RCSfile: IStandardBeanProxyFactory.java,v $
- *  $Revision: 1.3 $  $Date: 2004/08/27 15:35:20 $ 
+ *  $Revision: 1.4 $  $Date: 2004/09/08 22:15:53 $ 
  */
 
 
@@ -97,6 +97,18 @@
  * @author Joe Winchester
  */
 public IStringBeanProxy createBeanProxyWith(String aString);
+
+/**
+ * Convert the non-primitive proxy to a primitive proxy, if it
+ * of one of the wrapper types. If not, then just return the proxy as is.
+ * <p>
+ * I.E. BooleanClassProxy will convert to BooleanTypeProxy, but ObjectClassProxy will just return unchanged.
+ * @param nonPrimitiveProxy
+ * @return either the primitive proxy that nonPrimitive wrappers, or the non-primitive if not a wrapper type.
+ * 
+ * @since 1.0.0
+ */
+public IBeanProxy convertToPrimitiveBeanProxy(IBeanProxy nonPrimitiveProxy);
 /**
  * Return a new bean proxy for the boolean argument
  * Creation date: (12/3/99 11:52:20 AM)
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyFactory.java
index 4d77026..0c9ddb6 100644
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyFactory.java
+++ b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMStandardBeanProxyFactory.java
@@ -11,7 +11,7 @@
 package org.eclipse.jem.internal.proxy.remote;
 /*
  *  $RCSfile: REMStandardBeanProxyFactory.java,v $
- *  $Revision: 1.7 $  $Date: 2004/08/27 15:35:20 $ 
+ *  $Revision: 1.8 $  $Date: 2004/09/08 22:15:53 $ 
  */
 
 
@@ -799,6 +799,38 @@
 		return null;
 	}
 
+	/*
+	 *  (non-Javadoc)
+	 * @see org.eclipse.jem.internal.proxy.core.IStandardBeanProxyFactory#convertToPrimitiveBeanProxy(org.eclipse.jem.internal.proxy.core.IBeanProxy)
+	 */
+	public IBeanProxy convertToPrimitiveBeanProxy(IBeanProxy nonPrimitiveProxy) {
+		if (nonPrimitiveProxy == null)
+			return null;
+		if (!nonPrimitiveProxy.isValid())
+			return nonPrimitiveProxy;
+		IREMBeanTypeProxy type = (IREMBeanTypeProxy) nonPrimitiveProxy.getTypeProxy();
+		// Step into the internals. The ID is a constant int, so we can use a switch stmt.
+		switch (type.getID().intValue()) {
+			case Commands.BOOLEAN_CLASS:
+				return this.createBeanProxyWith(((IBooleanBeanProxy) nonPrimitiveProxy).booleanValue());
+			case Commands.BYTE_CLASS:
+				return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).byteValue());
+			case Commands.CHARACTER_CLASS:
+				return this.createBeanProxyWith(((ICharacterBeanProxy) nonPrimitiveProxy).charValue());
+			case Commands.DOUBLE_CLASS:
+				return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).doubleValue());
+			case Commands.FLOAT_CLASS:
+				return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).floatValue());
+			case Commands.INTEGER_CLASS:
+				return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).intValue());
+			case Commands.LONG_CLASS:
+				return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).longValue());
+			case Commands.SHORT_CLASS:
+				return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).shortValue());
+			default:
+				return nonPrimitiveProxy;
+		}
+	}
 }
 
 
diff --git a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanProxyFactory.java b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanProxyFactory.java
index 983e491..d77d5b6 100644
--- a/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanProxyFactory.java
+++ b/plugins/org.eclipse.jem.proxy/proxyide/org/eclipse/jem/internal/proxy/ide/IDEStandardBeanProxyFactory.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jem.internal.proxy.ide;
 /*
- * $RCSfile: IDEStandardBeanProxyFactory.java,v $ $Revision: 1.5 $ $Date: 2004/08/27 15:35:20 $
+ * $RCSfile: IDEStandardBeanProxyFactory.java,v $ $Revision: 1.6 $ $Date: 2004/09/08 22:15:53 $
  */
 
 import org.eclipse.core.runtime.IStatus;
@@ -21,6 +21,7 @@
 
 public class IDEStandardBeanProxyFactory implements IStandardBeanProxyFactory {
 
+
 	protected IDEProxyFactoryRegistry fRegistry;
 	protected IDEStandardBeanTypeProxyFactory fBeanTypeProxyFactory;
 	
@@ -93,6 +94,35 @@
 		return fBeanTypeProxyFactory.doubleType.createDoubleBeanProxy(aDouble);
 	}
 
+	/* (non-Javadoc)
+	 * @see org.eclipse.jem.internal.proxy.core.IStandardBeanProxyFactory#convertToPrimitiveBeanProxy(org.eclipse.jem.internal.proxy.core.IBeanProxy)
+	 */
+	public IBeanProxy convertToPrimitiveBeanProxy(IBeanProxy nonPrimitiveProxy) {
+		if (nonPrimitiveProxy == null)
+			return null;
+		if (!nonPrimitiveProxy.isValid())
+			return nonPrimitiveProxy;
+		IDEBeanTypeProxy type = (IDEBeanTypeProxy) nonPrimitiveProxy.getTypeProxy();
+		if (type.getClass() == Boolean.class)
+			return this.createBeanProxyWith(((IBooleanBeanProxy) nonPrimitiveProxy).booleanValue());
+		else if (type.getClass() == Byte.class)
+			return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).byteValue());
+		else if (type.getClass() == Character.class)
+			return this.createBeanProxyWith(((ICharacterBeanProxy) nonPrimitiveProxy).charValue());
+		else if (type.getClass() == Double.class)
+			return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).doubleValue());
+		else if (type.getClass() == Float.class)
+			return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).floatValue());
+		else if (type.getClass() == Integer.class)
+			return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).intValue());
+		else if (type.getClass() == Long.class)
+			return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).longValue());
+		else if (type.getClass() == Short.class)
+			return this.createBeanProxyWith(((INumberBeanProxy) nonPrimitiveProxy).shortValue());
+		else
+			return nonPrimitiveProxy;
+	}
+
 	/**
 	 * Create a one-dimensional array. The result will be the same as calling
 	 * createBeanProxyWith(IBeanTypeProxy type, new int[1] {x}) where 'x' is the value passed in as