|
/********************************************************************
* FulcrumWeb RAD Framework - Fulcrum of your business *
* Copyright (c) 2002-2009 FulcrumWeb, ALL RIGHTS RESERVED *
* *
* THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED *
* FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE *
* COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE *
* AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT *
* AND PERMISSION FROM FULCRUMWEB. CONSULT THE END USER LICENSE *
* AGREEMENT FOR INFORMATION ON ADDITIONAL RESTRICTIONS. *
********************************************************************/
using System;
namespace Framework.Silverlight.Client
{
/// <summary>
/// Contains some logic for navigation between frames.
/// </summary>
public abstract class CxFrameNavigation
{
protected CxFrameStack m_FrameStack = CxAppContext.Instance.FrameStack;
protected IxFrameContainer m_FrameContainer = CxAppContext.Instance.FrameContainer;
protected CxBaseFrame m_WaitingToAdd;
//----------------------------------------------------------------------------
/// <summary>
/// Begins frame's showing routine.
/// </summary>
/// <param name="toShow">CxBaseFrame to show.</param>
public virtual void BeginFrameShowing(CxBaseFrame toShow)
{
m_WaitingToAdd = toShow;
toShow.FrameDataLoded += FrameDataLoadCompleted;
if (m_FrameStack.ActiveFrame != null)
{
m_FrameStack.ActiveFrame.FrameDataSaved += FrameDataSavedCompleted;
m_FrameStack.ActiveFrame.BeginCloseFrame();
}
else
{
m_WaitingToAdd.BeginLoadData();
}
}
//----------------------------------------------------------------------------
/// <summary>
/// Begins frame's data saved routine.
/// </summary>
/// <param name="toShow">CxBaseFrame to data save.</param>
protected virtual void BeginFrameDataSaving(CxBaseFrame toShow) { }
//----------------------------------------------------------------------------
/// <summary>
/// Handles CxBaseFrame.FrameDataLoded event.
/// </summary>
protected virtual void FrameDataLoadCompleted(object sender, EventArgs e) { }
//----------------------------------------------------------------------------
/// <summary>
/// Handles CxBaseFrame.FrameDataSaved event.
/// </summary>
protected virtual void FrameDataSavedCompleted(object sender, EventArgs e)
{
CxBaseFrame frame = (CxBaseFrame)sender;
frame.FrameDataSaved -= FrameDataSavedCompleted;
m_WaitingToAdd.BeginLoadData();
}
//----------------------------------------------------------------------------
/// <summary>
/// Begins frame's closing routine.
/// </summary>
/// <param name="toClose">CxBaseFrame to close.</param>
public virtual void BeginFrameClosing(CxBaseFrame toClose) { }
//----------------------------------------------------------------------------
/// <summary>
/// Unloads active(currently open) frame.
/// </summary>
protected virtual void UnloadActiveFrame()
{
if (m_FrameStack.ActiveFrame != null)
{
if (m_FrameStack.ActiveFrame.IsEntityMarksAllowed)
{
m_FrameStack.UpdateStack(m_FrameStack.ActiveFrame.FramePersistanceInfo);
}
m_FrameContainer.UnloadFrame(m_FrameStack.ActiveFrame);
if (!m_FrameStack.ActiveFrame.IsFrameStackAllowed)
{
m_FrameStack.Items.Remove(m_FrameStack.ActiveFrame.FramePersistanceInfo);
}
m_FrameStack.UpdateStack(m_FrameStack.ActiveFrame.FramePersistanceInfo);
m_FrameStack.ActiveFrame.Dispose();
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.