[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
[jdt-ui-dev] making the document read-only in javaEditor
 | 
I posted this earlier in eclipse.tools.jdt, but did not get a reply so I 
hope someone here can help me..
---------//---------
something like this has been in discussion twice in this newsgroup but 
still I see no solutions yet. Here are the details...
#problem: Using the Java Editor (CompilationUnitEditor), how to make 
certain parts inside the editor read only ?
#issues:
i am still figuring out what is the right way to do this. First approach 
that works is defining a collection of Positions for the document 
(source) being edited, track the cursor within these positions and once 
the cursor is inside the position, disable editing in the editor (in 
StyledText from the CompilationUnitEditor)
the problem with the above is it cannot bypass the Key bindings for 
quick edit like Ctrl+E for deleting the line (and when the selected text 
is not the whole line but only some text in a line), for that i'll have 
to track whether the positions to be protected are in the line that'll 
be removed. This seems bit inelegant. And, is there a way to iterate all
possible edits that can be made in the document excluding those that
are made by directly manipulating the text?
a quick search in eclipse's dev newsgroup points to two things
- 
*make the File readonly*: I tried this (calling setReadOnly(true) for 
the File) but, this again has the problem of locking up the document is 
a sense that it cannot be made writable again w/o closing and reopening 
the file
- 
*make the Document readonly*: i still have not found the way to do 
this. here, I am refereing to the 'Document' instance returned by the 
DocumentProvider of the editor. I actually do not see the the Document 
class and its parent/childs in the tree have any operations that support 
making the document read only. So I am still wandering what does it mean 
to say make the Document read-only (read this as an option in the 
newsgroup and lost the link). i can think of listening to the 
IDocumentListener so that I can get inside the pre change method and 
cancel the change to be performed, something like -
documentAboutToBeChanged(DocumentEvent event)
 {..I want to cancel this change request here..}
but this doesnot seem to be possible.
I am quite lost now.
i would appreciate any pointer to the right direction regarding this.
- sushil
-- 
Sushil Krishna Bajracharya
Department of Informatics
Bren School of ICS, UCI
http://www.ics.uci.edu/~sbajrach