[
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.