Bug 101490

Summary: Direct-edit celleditor gets relocated twice per character typed
Product: [Tools] GEF Reporter: Pratik Shah <ppshah>
Component: GEF-Legacy GEF (MVC)Assignee: gef-inbox <gef-inbox>
Status: NEW --- QA Contact:
Severity: minor    
Priority: P3 CC: ahunter.eclipse
Version: 3.1Keywords: api
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:

Description Pratik Shah CLA 2005-06-23 12:26:09 EDT
DirectEditManager#handleValueChanged() invoked showFeedback() which leads to 
the original figure's text being updated.  The AncestorListener added to that 
figure will then be notified and it will relocate the celleditor.  Then 
handleValueChanged() itself invokes placeCellEditor() at the end of the method.

The fix would be remove the invocation of placeCellEditor() from 
handleValueChanged().  At the very least, since our examples are updating the 
text in the underlying immediately, they should override handleValueChanged() 
to make the above-mentioned change.
Comment 1 Pratik Shah CLA 2005-07-15 14:18:49 EDT
handleValueChanged() is private and hence the examples can't override it.  We 
can make it protected in 3.2 and they can then override it to prevent the 
celleditor from being laid out twice.
Comment 2 Pratik Shah CLA 2006-09-28 23:45:57 EDT
Marking as WorksForMe.
Comment 3 Randy Hudson CLA 2006-09-29 09:20:23 EDT
accidentally resolved?
Comment 4 Pratik Shah CLA 2006-09-29 14:10:23 EDT
Yes, thanks.
Comment 5 Pratik Shah CLA 2007-06-20 14:36:48 EDT
Is this too late for 3.3?
Comment 6 Randy Hudson CLA 2007-06-20 15:23:24 EDT
way too late!
Comment 7 Anthony Hunter CLA 2008-02-08 15:32:42 EST
Missed M5, so moving to M6
Comment 8 Anthony Hunter CLA 2008-03-31 11:27:07 EDT
(In reply to comment #1)
> handleValueChanged() is private and hence the examples can't override it.  We 
> can make it protected in 3.2 and they can then override it to prevent the 
> celleditor from being laid out twice.

Made handleValueChanged() protected in 3.4 M6.

Pratik, can you provide a snippet now to fix the examples?
Comment 9 Alexander Nyßen CLA 2013-10-17 09:45:05 EDT
Unset target milestone as the specified one is already passed.
Comment 10 Alexander Nyßen CLA 2013-10-17 09:49:50 EDT
Assigning back to gef-inbox (and state to new), as specified assignee is no current GEF committer.