I asked the engineer who wrote history manager:

 

This is expected behavior. The history manager saves states upon entry, not exit.

 

If you've called saveState() twice, your app is now in the second state. The first press of the Back button returns to the first saved state. The second press of the Back button returns the app to its "initial" state and will call loadState() with an undefined state object.

 

 

Matt


From: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com] On Behalf Of rockmoyosa
Sent: Thursday, July 14, 2005 1:22 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: HistoryManger state is undefined on loading

 

Guess I'm right!!.

But anyway, I'm writing a "buffer" between the HistoryManager and
Application in which I store my Model-state(Object).

But but I still got this weird problem with the first save I make and
if I push the back button the state (yes the normal procedure with
strings) is undefined.

For example i save twice an object in an array and than I store the
index in the state Object I want to store.

var state:Object = new Object();
state.currentIndex =this.historyArray.length-1;

When I trace this action the result is:

CurrentIndex: 0
CurrentIndex: 1

Now I push the back button and the loadstate is executed. When I trace
the incoming state object:

Log.debug("state: "+state);
Log.dump(state);

first back :

DEBUG: state: [object Object]

<< DUMP START >>
this:Object
|        currentIndex = 0  (string)

Second back:

DEBUG: state: undefined

<< DUMP START >>
this = undefined  (undefined)

On the third back:
it's a new request or nothing. This is the expected result.

It's link it's out of sync or something.Twice the saveState is
executed and twice the loadState is executed. What is wrong with it.

Please anybody....




--- In flexcoders@yahoogroups.com, "rockmoyosa" <[EMAIL PROTECTED]> wrote:
> I'm beginning to get the idee that this part of Flex is pushed in 1.5
> (Or what version it was introduced). No documentation is minimal so
> are the supported functionality.
>
> I hope somebody can prove me wrong.....
>
> be continued??
>
>
> --- In flexcoders@yahoogroups.com, "rockmoyosa" <[EMAIL PROTECTED]> wrote:
> > --- In flexcoders@yahoogroups.com, "rockmoyosa" <[EMAIL PROTECTED]>
wrote:
> > > This "thing" is really weird:
> > >
> > > first save state:
> > >
> > > DEBUG: ----- saveState ----
> > >
> > > << DUMP START >>
> > >  this:Object
> > > |        view = false  (boolean)
> > > |        detailId = 7bd21a76-b716-4501-a196-1acf4265d847  (string)
> > >
> > >
> > > And if I click on "Back":
> > >
> > > DEBUG: ----- loadState ----
> > >
> > > << DUMP START >>
> > >  this:Object
> > > |        detailId = 7bd21a76-b716-4501-a196-1acf4265d847  (string)
> > > |        view = true  (string)
> > >
> > > What the @[EMAIL PROTECTED] view = true??? mmmm... More documentation on the
> > > HistoryManager would be appreciated. Are perhaps more samples.
> > >
> > > I found one but it to damn "simple" it doesn't say anything on how
> > > it's working only how to use it for simple things.
> > >
> > >
> >
>
http://www.richinternet.de/blog/index.cfm?mode=entry&entry=3CF01C8E-CFBB-A5CA-36BCC797581D2CFB
> > >
> > >
> > >
> > > --- In flexcoders@yahoogroups.com, "jacksodj" <[EMAIL PROTECTED]> wrote:
> > > > I personnaly have seen really flakey behavior from that history
> > > > controller. I have posted before, but have not been able to see a
> > > > good resolution
> > > > --- In flexcoders@yahoogroups.com, "rockmoyosa" <[EMAIL PROTECTED]>
> > > > wrote:
> > > > > My case:
> > > > >
> > > > > - saveState is executed
> > > > > - On "Back" loadState is executed.
> > > > >
> > > > > But.....
> > > > > Than my state is "undefined"
> > > > >
> > > > >
> > > > > private var changed:Boolean;
> > > > >      
> > > > >       public function initHistory():Void {
> > > > >             mx.managers.HistoryManager.register(this);
> > > > >             storeInternalState();
> > > > >       }
> > > > >      
> > > > >       public function saveState():Object {
> > > > >             // called by HistoryManager, tells the component
> > > > >             // to create a "state" object and to return it\
> > > > >             var state = new Object();
> > > > >             state.model = Model.getInstance();
> > > > >             state.view = this._scope.m_detailview;
> > > > >            
> > > > >             mx.controls.Alert.show
> > > > (""+this._scope.m_detailview.visible);
> > > > >             Log.debug("hello"+state);
> > > > >             return state;
> > > > >       }
> > > > >      
> > > > >       public function loadState(state:Object):Void {
> > > > >             // called by HistoryManager, passes in a state
> > > > >             // object so the component can rebuild it's state
> > > > >             mx.controls.Alert.show("state: "+state.view);
> > > > >             restoreInternalState(state);
> > > > >       }
> > > > >      
> > > > >       public function savePresent():Void {
> > > > >             storeInternalState( );
> > > > >       }
> > > > >
> > > > >       public function storeInternalState():Void {
> > > > >             mx.managers.HistoryManager.save();
> > > > >       }
> > > > >      
> > > > >       public function restoreInternalState(state:Object):Void {
> > > > >             Log.dump(state);
> > > > >             Log.debug
> > > > ("@@@@state.view.visible@@@@: "+state.view.visible);
> > > > >            
> > > > >             if(state.view.visible == true &&
> > > > this._scope.m_detailview.visible ==
> > > > > false ||
> > > > >                                  state.view.visible == false
> > > > &&
> > > > > this._scope.m_detailview.visible == true){
> > > > >                   toggleView();
> > > > >             }
> > > > >             Model.getInstance().restoreInstance(state.model);
> > > > >       }




--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com





--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com




YAHOO! GROUPS LINKS




Reply via email to