Home » Eclipse Projects » Eclipse Platform » Synchronizing open editors on the same file 
| Synchronizing open editors on the same file [message #334536] | 
Mon, 16 February 2009 13:10   | 
 
Eclipse User  | 
 | 
 | 
   | 
 
Originally posted by: marc.esher.comcast.net 
 
All, 
  I'm interested in contributing this feature to an open source project  
based on Eclipse. I have done a fair amount of plugin programming but never  
any Editor programming. 
  Basically, the editor in this project doesn't currently support  
synchronization between two open editors on the same file. For example, if I  
have any text file, and I open it in the Default Text Editor, then choose  
"New Editor" and modify that file in one editor, the other editor  
automatically reflects those changes. I'd like to add that behavior into the  
editor in this project. 
  Can someone point me down the right path? 
 
thanks so much. 
 
marc
 |  
 |  
  |  
| Re: Synchronizing open editors on the same file [message #334540 is a reply to message #334536] | 
Mon, 16 February 2009 17:54    | 
 
Eclipse User  | 
 | 
 | 
   | 
 
Originally posted by: eclipse-news.rizzoweb.com 
 
On 2/16/2009 1:10 PM, Marc E wrote: 
> All, 
> I'm interested in contributing this feature to an open source project 
> based on Eclipse. I have done a fair amount of plugin programming but 
> never any Editor programming. 
> Basically, the editor in this project doesn't currently support 
> synchronization between two open editors on the same file. For example, 
> if I have any text file, and I open it in the Default Text Editor, then 
> choose "New Editor" and modify that file in one editor, the other editor 
> automatically reflects those changes. I'd like to add that behavior into 
> the editor in this project. 
> Can someone point me down the right path? 
 
I think this is more of a fundamental design problem than a particular  
code problem. The editor in question must be using some kind of backing  
model that can be shared between editor instances. If it does not have  
some kind og in-memory model that is sharable, I'm not sure if you can  
do what you want. 
If EMF is involved, this is quite doable. But if not I would first look  
at the code of the basic text editor to see how they are doing it. Try  
org.eclipse.ui.editors.text.TextEditor 
 
Hope this helps, 
Eric
 |  
 |  
  |  
| Re: Synchronizing open editors on the same file [message #334542 is a reply to message #334540] | 
Mon, 16 February 2009 18:16    | 
 
Eclipse User  | 
 | 
 | 
   | 
 
Originally posted by: marc.esher.comcast.net 
 
Eric, 
  Thanks for responding. I've been poring through TextEditor and its  
partners for quite a while now and am still having trouble tracking down the  
thing that's making it tick. 
 
  To rule out any weirdness in the project i'm working on, I created a new  
fresh plugin project with an editor contribution... straight from the plugin  
wizard, no mods except to change the file extension (I made mine a .marc  
file editor). and I've verified that even that editor won't do what the  
default text editor does. If I open up my .marc file in the  
plugin-wizard-generated editor, I don't get the synched behavior. Open the  
same file in two instances of TextEditor, and I get what I'm looking for. 
 
  I see that FileDocumentProvider has a FileSynchronizer inner class, and I  
thought maybe he was involved, but I can only get its methods to trip on  
save, not just dirtying the file. 
 
  I imagine it's some listener, somewhere. But I don't yet have the Eclipse  
KungFu to track the bugger down. 
 
Anyway, thanks for responding, and thanks for listening. 
 
Cheers! 
 
Marc 
 
 
 
"Eric Rizzo" <eclipse-news@rizzoweb.com> wrote in message  
news:gncqno$u5d$1@build.eclipse.org... 
> On 2/16/2009 1:10 PM, Marc E wrote: 
>> All, 
>> I'm interested in contributing this feature to an open source project 
>> based on Eclipse. I have done a fair amount of plugin programming but 
>> never any Editor programming. 
>> Basically, the editor in this project doesn't currently support 
>> synchronization between two open editors on the same file. For example, 
>> if I have any text file, and I open it in the Default Text Editor, then 
>> choose "New Editor" and modify that file in one editor, the other editor 
>> automatically reflects those changes. I'd like to add that behavior into 
>> the editor in this project. 
>> Can someone point me down the right path? 
> 
> I think this is more of a fundamental design problem than a particular  
> code problem. The editor in question must be using some kind of backing  
> model that can be shared between editor instances. If it does not have  
> some kind og in-memory model that is sharable, I'm not sure if you can do  
> what you want. 
> If EMF is involved, this is quite doable. But if not I would first look at  
> the code of the basic text editor to see how they are doing it. Try  
> org.eclipse.ui.editors.text.TextEditor 
> 
> Hope this helps, 
> Eric
 |  
 |  
  |  
| Re: Synchronizing open editors on the same file [message #334544 is a reply to message #334540] | 
Mon, 16 February 2009 19:26    | 
 
Eclipse User  | 
 | 
 | 
   | 
 
Originally posted by: marc.esher.comcast.net 
 
I found the difference: TextEditor uses TextFileDocumentProvider instead of  
FileDocumentProvider. 
 
Interestingly enough, this is in the javadoc: 
 
* Text file document providers use {@linkplain  
org.eclipse.core.filebuffers.ITextFileBuffer text file buffers} 
 * to access the file content. This allows to share it between various  
clients including 
 * headless ones. Text file document providers should be preferred over file  
document 
 * providers due to this advantage. 
 
Here's one of those cases where a dude like me says, "if it's preferred,  
then why doesn't the wizard generate code that uses this one instead!?"  I"m  
sure there's quite a good reason.  For example, I don't see anything  
immediately obvious for partitioning, so maybe that's it. Not sure. 
 
Anyway.... looks like I at least found the path to go down. I sure was  
hoping for a 3-line "oh, dude, just add this listenener..." kind of answer,  
which so often seems to be the case. 
 
Time to get my game face on! 
 
marc 
 
 
"Eric Rizzo" <eclipse-news@rizzoweb.com> wrote in message  
news:gncqno$u5d$1@build.eclipse.org... 
> On 2/16/2009 1:10 PM, Marc E wrote: 
>> All, 
>> I'm interested in contributing this feature to an open source project 
>> based on Eclipse. I have done a fair amount of plugin programming but 
>> never any Editor programming. 
>> Basically, the editor in this project doesn't currently support 
>> synchronization between two open editors on the same file. For example, 
>> if I have any text file, and I open it in the Default Text Editor, then 
>> choose "New Editor" and modify that file in one editor, the other editor 
>> automatically reflects those changes. I'd like to add that behavior into 
>> the editor in this project. 
>> Can someone point me down the right path? 
> 
> I think this is more of a fundamental design problem than a particular  
> code problem. The editor in question must be using some kind of backing  
> model that can be shared between editor instances. If it does not have  
> some kind og in-memory model that is sharable, I'm not sure if you can do  
> what you want. 
> If EMF is involved, this is quite doable. But if not I would first look at  
> the code of the basic text editor to see how they are doing it. Try  
> org.eclipse.ui.editors.text.TextEditor 
> 
> Hope this helps, 
> Eric
 |  
 |  
  |  
| Re: Synchronizing open editors on the same file [message #334545 is a reply to message #334544] | 
Tue, 17 February 2009 01:45    | 
 
Eclipse User  | 
 | 
 | 
   | 
 
Marc E wrote: 
> I found the difference: TextEditor uses TextFileDocumentProvider  
> instead of FileDocumentProvider. 
> 
> Interestingly enough, this is in the javadoc: 
> 
> * Text file document providers use {@linkplain  
> org.eclipse.core.filebuffers.ITextFileBuffer text file buffers} 
> * to access the file content. This allows to share it between various  
> clients including 
> * headless ones. Text file document providers should be preferred over  
> file document 
> * providers due to this advantage. 
> 
> Here's one of those cases where a dude like me says, "if it's  
> preferred, then why doesn't the wizard generate code that uses this  
> one instead!?" 
Which wizard? Simply looks like the wizard needs some updating. 
 
Dani 
> I"m sure there's quite a good reason.  For example, I don't see  
> anything immediately obvious for partitioning, so maybe that's it. Not  
> sure. 
> 
> Anyway.... looks like I at least found the path to go down. I sure was  
> hoping for a 3-line "oh, dude, just add this listenener..." kind of  
> answer, which so often seems to be the case. 
> 
> Time to get my game face on! 
> 
> marc 
> 
> 
> "Eric Rizzo" <eclipse-news@rizzoweb.com> wrote in message  
> news:gncqno$u5d$1@build.eclipse.org... 
>> On 2/16/2009 1:10 PM, Marc E wrote: 
>>> All, 
>>> I'm interested in contributing this feature to an open source project 
>>> based on Eclipse. I have done a fair amount of plugin programming but 
>>> never any Editor programming. 
>>> Basically, the editor in this project doesn't currently support 
>>> synchronization between two open editors on the same file. For example, 
>>> if I have any text file, and I open it in the Default Text Editor, then 
>>> choose "New Editor" and modify that file in one editor, the other  
>>> editor 
>>> automatically reflects those changes. I'd like to add that behavior  
>>> into 
>>> the editor in this project. 
>>> Can someone point me down the right path? 
>> 
>> I think this is more of a fundamental design problem than a  
>> particular code problem. The editor in question must be using some  
>> kind of backing model that can be shared between editor instances. If  
>> it does not have some kind og in-memory model that is sharable, I'm  
>> not sure if you can do what you want. 
>> If EMF is involved, this is quite doable. But if not I would first  
>> look at the code of the basic text editor to see how they are doing  
>> it. Try org.eclipse.ui.editors.text.TextEditor 
>> 
>> Hope this helps, 
>> Eric  
>
 |  
 |  
  |   |  
| Re: Synchronizing open editors on the same file [message #334547 is a reply to message #334545] | 
Tue, 17 February 2009 05:23   | 
 
Eclipse User  | 
 | 
 | 
   | 
 
Originally posted by: marc.esher.comcast.net 
 
> Which wizard? Simply looks like the wizard needs some updating. 
> 
> Dani 
 
 
Dani, this is the "Plugin with an Editor" Wizard that appears during Plug-in  
project creation. 
 
 
I'm wondering: do any of you know of documentation or otherwise that offers  
guidance and gotchas on converting a DocumentProvider from extending  
FileDocumentProvider to TextFileDocumentProvider? I have two books on  
Eclipse programming, and neither of them touch on this much at all. 
 
thanks. 
 
marc 
 
 
 
 
 
>> I"m sure there's quite a good reason.  For example, I don't see anything  
>> immediately obvious for partitioning, so maybe that's it. Not sure. 
>> 
>> Anyway.... looks like I at least found the path to go down. I sure was  
>> hoping for a 3-line "oh, dude, just add this listenener..." kind of  
>> answer, which so often seems to be the case. 
>> 
>> Time to get my game face on! 
>> 
>> marc 
>> 
>> 
>> "Eric Rizzo" <eclipse-news@rizzoweb.com> wrote in message  
>> news:gncqno$u5d$1@build.eclipse.org... 
>>> On 2/16/2009 1:10 PM, Marc E wrote: 
>>>> All, 
>>>> I'm interested in contributing this feature to an open source project 
>>>> based on Eclipse. I have done a fair amount of plugin programming but 
>>>> never any Editor programming. 
>>>> Basically, the editor in this project doesn't currently support 
>>>> synchronization between two open editors on the same file. For example, 
>>>> if I have any text file, and I open it in the Default Text Editor, then 
>>>> choose "New Editor" and modify that file in one editor, the other  
>>>> editor 
>>>> automatically reflects those changes. I'd like to add that behavior  
>>>> into 
>>>> the editor in this project. 
>>>> Can someone point me down the right path? 
>>> 
>>> I think this is more of a fundamental design problem than a particular  
>>> code problem. The editor in question must be using some kind of backing  
>>> model that can be shared between editor instances. If it does not have  
>>> some kind og in-memory model that is sharable, I'm not sure if you can  
>>> do what you want. 
>>> If EMF is involved, this is quite doable. But if not I would first look  
>>> at the code of the basic text editor to see how they are doing it. Try  
>>> org.eclipse.ui.editors.text.TextEditor 
>>> 
>>> Hope this helps, 
>>> Eric 
>>
 |  
 |  
  |   
Goto Forum:
 
 Current Time: Tue Nov 04 09:42:13 EST 2025 
 Powered by  FUDForum. Page generated in 0.05039 seconds  
 |