//////////////////////////////////////////////////////////////////////////////// // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // //////////////////////////////////////////////////////////////////////////////// package mx.managers { /** * Interface that must be implemented by objects * registered with the History Manager. The methods in this interface are * called by the HistoryManager when saving and loading the history state * of the application. * *

This interface is implemented by the Flex navigator containers * TabNavigator, Accordion, and ViewStack. It must be implemented by any other * component that is registered with the HistoryManager.

* * @see mx.managers.HistoryManager * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public interface IHistoryManagerClient { //-------------------------------------------------------------------------- // // Methods // //-------------------------------------------------------------------------- /** * Saves the state of this object. * The object contains name:value pairs for each property * to be saved with the state. * *

The History Manager collects the state information from all components * and encodes the information in a URL format. Most browsers have a length * limitation on URLs, so the state information returned should be as minimal * as possible.

* * @example The following code saves the selected index from a List, and * a search string. *
	 *  public function saveState():Object
	 *  {
	 *  	var state:Object = {};
	 *
	 *  	state.selectedIndex = myList.selectedIndex;
	 *  	state.searchString = mySearchInput.text;
	 *
	 *  	return state;
	 *	}
	 *	
* * @return The state of this object. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function saveState():Object; /** * Loads the state of this object. * * @param state State of this object to load. * This will be null when loading the initial state of the application. * * @example The following code loads the selected index and search string * from the saved state. *
	 *  public function loadState(state:Object):void
	 *  {
	 *  	// First, check to see if state is null. When the app is reset
	 *  	// back to its initial state, loadState() is passed null.
	 *  	if (state == null)
	 *  	{
	 *			myList.selectedIndex = -1;
	 *  		mySearchInput.text = "";
	 *  	}
	 *  	else
	 *  	{
	 *  		myList.selectedIndex = state.selectedIndex;
	 *  		mySearchInput.text = state.searchString;
	 *  	}
	 *  }
	 *  
* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function loadState(state:Object):void; /** * Converts this object to a unique string. * Implemented by UIComponent. * * @return The unique identifier for this object. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function toString():String; } }