Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-ui-dev] Back/forward actions [Bug 5700]

Since many people requested it and it seems to be a nice feature to have, 
we thought about giving this some priority. I got assigned to it but the 
idea is that by having a commiter helping on it we could make things go a 
bit faster so I would help on it instead of implementing it myself. Many 
people have added themselves to the CC list and Cagatay and Jared have 
talked about implementing/helping.

The question is: Are you guys willing to work on it? If so, lets talk 
about and once we conclude what is needed we can implement it. For the 
people that do not want to implement it, ideas are welcomed. I would like 
to know who is interested in implementing it and how fast you think we can 
do it based on the time you have to help.

Let's go to the technical part.

Due the plugability of eclipse I don't think it is possible so solve the 
problem without depending on other plugins (the ones that have editors). 
So the platform-ui would provide: (a) back/forward actions (menu 
options/toolbar buttons); (b) a implementation that could automatically 
add editors as they are activated; (c) an API that would allow editors to 
added the "movements" that happen inside the editor. So the strategy that 
would track (d) the navigation inside the editor would depend on the 
editor itself. For example a Java editor could/would have a different 
implementation of a HTML editor.

Here are some initial thoughts:
(a) seems to be simple; a few changes in WorkbenchActionBuilder and we 
would have the actions in place.

(b) we have to play with it and see how it goes. The implementation would 
be concentrated on editors only and would track the activation. Must make 
sure that a back or forward action do not add a new item to the history.

(c) once it becomes API it gets difficult to change so we must agree on it
       - add the method "public INavigationHistory getNavigationHistory()" 
to IWorkbenchPage
       - the interface INavigationHistory would be marked as "not intended 
to be implemented by clients" and would provide methods like "public void 
add(INavigationContext)"
       - the interface INavigationContext would be marked as "should be 
implemented by clients" and would have methods like "getLabel()" and 
"gotoLocation()".

(d) each editor adds the navigation context items they want to add to the 
list. Every time the user presses back or forward the message 
"gotoLocation" is sent to the INavigationContext history.

Eduardo.





Back to the top