[73634] Cannot re-edit a composite swt.
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java
index 376eef3..08f6fec 100644
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java
+++ b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: ASTBoundResolver.java,v $
- *  $Revision: 1.4 $  $Date: 2004/08/04 21:36:32 $ 
+ *  $Revision: 1.5 $  $Date: 2004/09/10 22:40:35 $ 
  */
 package org.eclipse.jem.workbench.utility;
 
@@ -108,4 +108,12 @@
 		}
 		return name.toString();
 	}
+	
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST.Resolver#resolveThis()
+	 */
+	public PTExpression resolveThis() throws InvalidExpressionException {
+		return InstantiationFactory.eINSTANCE.createPTThisLiteral();
+	}
 }
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ParseTreeCreationFromAST.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ParseTreeCreationFromAST.java
index bd96d21..3df49a0 100644
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ParseTreeCreationFromAST.java
+++ b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ParseTreeCreationFromAST.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: ParseTreeCreationFromAST.java,v $
- *  $Revision: 1.9 $  $Date: 2004/06/04 23:26:40 $ 
+ *  $Revision: 1.10 $  $Date: 2004/09/10 22:40:35 $ 
  */
 package org.eclipse.jem.workbench.utility;
 
@@ -79,6 +79,17 @@
 		public abstract String resolveType(Type type) throws InvalidExpressionException;
 		
 		/**
+		 * This is for resolving "this" literal. It should either return a PTThisLiteral, if it
+		 * can't do resolve, or some PTExpression that can resolve to "this" for evaluation.
+		 * 
+		 * @return If resolvable, a PTExpression, else a PTThisLiteral if not resolvable.
+		 * @throws InvalidExpressionException
+		 * 
+		 * @since 1.0.0
+		 */
+		public abstract PTExpression resolveThis() throws InvalidExpressionException;
+		
+		/**
 		 * Resolve the type specified as a Name. It may be a simple name or it may be
 		 * a qualified name. This is used when we have Name that we know must be a
 		 * type. This is so that there is no confusion with it possibly being a field or variable
@@ -527,7 +538,7 @@
 	 * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.ThisExpression)
 	 */
 	public boolean visit(ThisExpression node) {
-		expression = InstantiationFactory.eINSTANCE.createPTThisLiteral();
+		expression = resolver.resolveThis();
 		return false;	
 	}