History log of /external/autotest/frontend/client/src/autotest/common/CustomHistory.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f541a0ae5e2fdb7e4f32422eb005ac2296bb8323 04-Nov-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Remove uses of deprecated class HistoryListener

Signed-off-by: James Ren <jamesren@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3897 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/common/CustomHistory.java
c674d3ea684f75f3e05f5834b598050eb1c8856d 12-Mar-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Support opening drilldown results in a new tab/window from spreadsheet and table views. When drilling down in spreadsheet and table views, either into a group or into test details for a single test, the user can open the resulting page in a new tab/window by control-clicking. I included what I believe is the proper code to support middle-clicking as well, but I could not see any browser support. I tried the GWT hosted mode browser and FF2 on linux, and FF3 and windows. I changed the cell selection combo to shift-click (I don't think anyone uses that feature anyway :-/).

The main technical challenge here was this: state is spread throughout a number of classes that make up the UI for spreadsheet and table views. Code for generating the history tokens is spread throughout those classes as well, using the state in each class. In order to open results in a new tab, the code needs to generate the history token for the new state while leaving the current UI unmodified. It would do this by calling functions to modify application state appropriately, then generate the new history token, and then revert to the previous application state before opening the new token in a new tab. However, since the UI widgets and state variables were all intertwined and spread throughout the code, this was impossible to do as the code was -- when we made calls to setup the new application state, the displayed UI would be modified.

To solve this, I modified a number of classes to implement updateStateFromView() and updateViewFromState() methods, making the separation between state and view more well-defined and explicitly controlled. I ensured that all state-modifying functions don't modify the view at all, and I made sure the history-generating functions only use state variables. Then I was able to make the code setup a new state, generate the new history token, and restore the old state without any visible changes in the UI.

I also modified CustomHistory and clients so that history tokens passing into and out of CustomHistory are dictionaries instead of strings. I find this a bit cleaner and (more importantly) it allows CustomHistory to safely check for token equality (checking strings is unsafe because ordering could change while content remains the same, thanks to the nondeterminism of iterating over a Map).

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2876 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/common/CustomHistory.java
103690a0d2ebc312711f44882bfa82cba7d97839 25-Jul-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> make CustomHistory more robust (and simpler as it turns out)

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1902 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/common/CustomHistory.java
6f1593c98487664a6c330a638e6645dc39b4aca3 11-Jul-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> some changes to support saved queries for new TKO
-migration to add saved_queries table. this is different from the existing query_history table. this feature is incompatible with the old one and I didn't want to interfere with the old one.
-various modifications to history handling across the board to allow better support for saved queries (the url will show up as just "saved_query=123", without all the extra crap)
-refactoring of apache_auth.py to allow new TKO to use it without using all the Django auth crap


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1810 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/common/CustomHistory.java
6bc47015cce0ebc2fc255d3950bfeaf4851f36fd 03-Jul-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Refactoring to eliminate warnings and (slightly) improve performance.
Added @Override annotations, and added parameterizations for generic
collections. Made small performance tweaks.


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1761 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/common/CustomHistory.java
e3f6868dac3b4c4714637d12b93d97823011a35c 05-Jun-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> GWT reorg part 3


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1614 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/common/CustomHistory.java
a2216e7e327b464ac03932b4add2983e9052bc79 05-Jun-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> GWT reorg part 2


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1613 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/common/CustomHistory.java