From 8b11f685af0c51ddd4baea0f76f7d51fab4ad970 Mon Sep 17 00:00:00 2001 From: Diogo Neves Date: Fri, 11 Dec 2009 12:22:49 +0000 Subject: [PATCH] history support git-svn-id: https://svn.coded.pt/svn/SIPRP@1121 bb69d46d-e84e-40c8-a05a-06db0d633741 --- .../com/evolute/siprp/client/GestaoSHST.java | 32 ++++++++++++++++++- .../siprp/client/panels/apps/AnchorSair.java | 2 ++ .../client/panels/utils/PageNavigation.java | 7 +++- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/client/GestaoSHST.java b/trunk/GestaoSHST/src/com/evolute/siprp/client/GestaoSHST.java index a303fa38..4e05f5cf 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/client/GestaoSHST.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/client/GestaoSHST.java @@ -4,18 +4,48 @@ import com.evolute.siprp.client.panels.footer.FooterPanel; import com.evolute.siprp.client.panels.utils.NavigationConstants; import com.evolute.siprp.client.panels.utils.PageNavigation; import com.google.gwt.core.client.EntryPoint; +import com.google.gwt.event.logical.shared.ValueChangeEvent; +import com.google.gwt.event.logical.shared.ValueChangeHandler; +import com.google.gwt.user.client.History; import com.google.gwt.user.client.ui.RootPanel; -public class GestaoSHST implements EntryPoint +public class GestaoSHST implements EntryPoint, ValueChangeHandler< String > { + private String oldEvent = null; + public void onModuleLoad() { PageNavigation.goPage( NavigationConstants.LOGIN_PANEL ); RootPanel.get( "footer" ).add( new FooterPanel() ); + + History.addValueChangeHandler( this ); + History.fireCurrentHistoryState(); + } + + @Override + public void onValueChange( ValueChangeEvent< String > newEvent ) + { + if ( oldEvent != null && newEvent.getValue().equals( oldEvent ) ) + { + return ; + } + + oldEvent = newEvent.getValue(); + Integer panelID = null; + try + { + panelID = Integer.parseInt( oldEvent ); + } + catch ( Exception e ) + { + return ; + } + + PageNavigation.goPage( panelID ); } } diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnchorSair.java b/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnchorSair.java index 62c63c1a..a09d1ff4 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnchorSair.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/apps/AnchorSair.java @@ -22,6 +22,8 @@ public class AnchorSair extends Anchor implements ClickHandler { PageNavigation.getProvider().setUserLogged( null ); PageNavigation.goPage( NavigationConstants.LOGIN_PANEL ); + + //TODO: apagar tudo da history. } } diff --git a/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/utils/PageNavigation.java b/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/utils/PageNavigation.java index 91d6ad77..11005a1e 100644 --- a/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/utils/PageNavigation.java +++ b/trunk/GestaoSHST/src/com/evolute/siprp/client/panels/utils/PageNavigation.java @@ -8,6 +8,7 @@ import com.evolute.siprp.client.panels.apps.AnaliseAcidentesTrabalho.AnaliseAcid import com.evolute.siprp.client.panels.index.login.LoginPanel; import com.evolute.siprp.client.panels.index.recover_pwd.RecoverPwdPanel; import com.evolute.siprp.client.vo.Utilizador; +import com.google.gwt.user.client.History; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.RootPanel; @@ -77,7 +78,8 @@ public class PageNavigation { panelsCache.put( NavigationConstants.LOGIN_PANEL, new LoginPanel() ); } - gotoPage( ( LoginPanel ) panelsCache.get( NavigationConstants.LOGIN_PANEL ) ); + gotoPage( ( LoginPanel ) panelsCache.get( NavigationConstants.LOGIN_PANEL ) ); + History.newItem( String.valueOf( NavigationConstants.LOGIN_PANEL ) ); break; } case NavigationConstants.RECOVER_PWD_PANEL: @@ -87,6 +89,7 @@ public class PageNavigation panelsCache.put( NavigationConstants.RECOVER_PWD_PANEL, new RecoverPwdPanel() ); } gotoPage( ( RecoverPwdPanel ) panelsCache.get( NavigationConstants.RECOVER_PWD_PANEL ) ); + History.newItem( String.valueOf( NavigationConstants.RECOVER_PWD_PANEL ) ); break; } case NavigationConstants.APP_MAIN_PANEL: @@ -96,6 +99,7 @@ public class PageNavigation panelsCache.put( NavigationConstants.APP_MAIN_PANEL, new MainPanel() ); } gotoPage( ( MainPanel ) panelsCache.get( NavigationConstants.APP_MAIN_PANEL) ); + History.newItem( String.valueOf( NavigationConstants.APP_MAIN_PANEL ) ); break; } case NavigationConstants.ANALISE_ACIDENTES_TRABALHO_PANEL: @@ -105,6 +109,7 @@ public class PageNavigation panelsCache.put( NavigationConstants.ANALISE_ACIDENTES_TRABALHO_PANEL, new AnaliseAcidentesTrabalhoPanel() ); } gotoPage( ( AnaliseAcidentesTrabalhoPanel ) panelsCache.get( NavigationConstants.ANALISE_ACIDENTES_TRABALHO_PANEL ) ); + History.newItem( String.valueOf( NavigationConstants.ANALISE_ACIDENTES_TRABALHO_PANEL ) ); break; } default: