diff --git a/tests/org.eclipse.graphiti.testtool.sketch/src/org/eclipse/graphiti/testtool/sketch/features/SketchTextProposalDirectEditingFeature.java b/tests/org.eclipse.graphiti.testtool.sketch/src/org/eclipse/graphiti/testtool/sketch/features/SketchTextProposalDirectEditingFeature.java
index 37015b6..54384e7 100644
--- a/tests/org.eclipse.graphiti.testtool.sketch/src/org/eclipse/graphiti/testtool/sketch/features/SketchTextProposalDirectEditingFeature.java
+++ b/tests/org.eclipse.graphiti.testtool.sketch/src/org/eclipse/graphiti/testtool/sketch/features/SketchTextProposalDirectEditingFeature.java
@@ -18,8 +18,6 @@
 import org.eclipse.graphiti.features.IFeatureProvider;
 import org.eclipse.graphiti.features.context.IDirectEditingContext;
 import org.eclipse.graphiti.features.impl.AbstractDirectEditingFeature;
-import org.eclipse.graphiti.func.IProposal;
-import org.eclipse.graphiti.func.Proposal;
 import org.eclipse.graphiti.testtool.sketch.SketchUtil;
 
 /**
@@ -45,11 +43,12 @@
 		return SketchUtil.getCurrentLabelValue(context.getPictogramElement());
 	}
 
-	@Override
-	public void setValueAsProposal(IProposal value, IDirectEditingContext context) {
-		String newValue = value.getText();
-		SketchUtil.setCurrentLabelValue(context.getPictogramElement(), newValue);
-	}
+	// @Override
+	// public void setValueAsProposal(IProposal value, IDirectEditingContext
+	// context) {
+	// String newValue = value.getText();
+	// SketchUtil.setCurrentLabelValue(context.getPictogramElement(), newValue);
+	// }
 
 	@Override
 	public boolean isCompletionAvailable() {
@@ -62,7 +61,11 @@
 	}
 
 	@Override
-	public IProposal[] getValueProposalsAsProposal(String value, int caretPos, IDirectEditingContext context) {
-		return new IProposal[] { new Proposal("proposal_1", context.getPictogramElement()), new Proposal("proposal_2", context.getGraphicsAlgorithm()) }; //$NON-NLS-1$ //$NON-NLS-2$
+	public void setValue(String value, IDirectEditingContext context) {
 	}
+	// @Override
+	// public IProposal[] getValueProposalsAsProposal(String value, int
+	// caretPos, IDirectEditingContext context) {
+	//		return new IProposal[] { new Proposal("proposal_1", context.getPictogramElement()), new Proposal("proposal_2", context.getGraphicsAlgorithm()) }; //$NON-NLS-1$ //$NON-NLS-2$
+	// }
 }
