- framework.development.zip
- App
- App.BusinessControler
- App.Controller
- App.DataSets
- App.UnitTest
- App.WebForm
- App.WinForm
- Build
- App.WinForm.vshost.exe
- nunit.framework.dll
- db.mdb
- Documents
- RelationState.xls
- Spec.doc
- Framework.Development.sln
- Framework.Development.suo
- Framework
- Framework.DAL
- Framework.Lib
- Framework.UI.baController
- Framework.UI.baInterfaces
- Framework.UI.baResources
- Framework.UI.baWeb
- Framework.UI.baWin32
- nunit.framework.dll
- SOA.txt
- app.development.zip
|
using System;
using System.Collections.Generic;
using System.Text;
using Framework.Lib;
using Framework.baInterfaces;
namespace Framework.UI.baController
{
public class TransactionStateCtrl
{
private object obejct2beManaged;
private StateMachine stMachine = null;
private TransactionStateCtrl() { }
#region TransactionStateCtrl creator
public static TransactionStateCtrl GetTransactionStateCtrl(object obj, ComponentUsage ComponentDefaultBehaviour)
{
try
{
TransactionStateCtrl tStateCtrl = new TransactionStateCtrl();
tStateCtrl.obejct2beManaged = obj;
tStateCtrl.stMachine = null;
switch (ComponentDefaultBehaviour)
{
case ComponentUsage.Search:
{
tStateCtrl.stMachine = tStateCtrl.SearchStateMachine(obj);
break;
}
case ComponentUsage.Use:
{
tStateCtrl.stMachine = tStateCtrl.UseStateMachine(obj);
break;
}
}
if (tStateCtrl.stMachine == null)
return null;
else
return tStateCtrl;
}
catch (Exception baExp)
{
throw new baException(baExp, System.Reflection.MethodBase.GetCurrentMethod());
}
}
#endregion
#region ConstructStateMachine & SetState
private StateMachine SearchStateMachine(object obj)
{
try
{
StateMachine _stateMachine = new Lib.StateMachine();
_stateMachine[TransactionStateKind.Add, obj] = new State(false);
_stateMachine[TransactionStateKind.Edit, obj] = new State(false);
_stateMachine[TransactionStateKind.Delete, obj] = new State(false);
_stateMachine[TransactionStateKind.SearchOnly, obj] = new State(true);
_stateMachine[TransactionStateKind.EditOnly, obj] = new State(false);
_stateMachine[TransactionStateKind.AddEditOnly, obj] = new State(true);
_stateMachine[TransactionStateKind.Initial, obj] = new State(true);
_stateMachine[TransactionStateKind.Confirm, obj] = new State(true);
_stateMachine[TransactionStateKind.Null, obj] = new State(false);
_stateMachine[TransactionStateKind.EmptyDataSource, obj] = new State(false);
return _stateMachine;
}
catch (Exception baExp)
{
throw new baException(baExp, System.Reflection.MethodBase.GetCurrentMethod());
}
}
private StateMachine UseStateMachine(object obj)
{
try
{
StateMachine _stateMachine = new Lib.StateMachine();
_stateMachine[TransactionStateKind.Add, obj] = new State(true);
_stateMachine[TransactionStateKind.Edit, obj] = new State(true);
_stateMachine[TransactionStateKind.Delete, obj] = new State(false);
_stateMachine[TransactionStateKind.EditOnly, obj] = new State(false);
_stateMachine[TransactionStateKind.AddEditOnly, obj] = new State(false);
_stateMachine[TransactionStateKind.SearchOnly, obj] = new State(false);
_stateMachine[TransactionStateKind.Initial, obj] = new State(false);
_stateMachine[TransactionStateKind.Confirm, obj] = new State(false);
_stateMachine[TransactionStateKind.Null, obj] = new State(false);
_stateMachine[TransactionStateKind.EmptyDataSource, obj] = new State(false);
return _stateMachine;
}
catch (Exception baExp)
{
throw new baException(baExp, System.Reflection.MethodBase.GetCurrentMethod());
}
}
public void SetTransactionStateState(TransactionStateKind tstate)
{
try
{
if (obejct2beManaged != null)
((IState)obejct2beManaged).Enabled = ((IState)stMachine[tstate, obejct2beManaged]).Enabled;
}
catch (Exception baExp)
{
throw new baException(baExp, System.Reflection.MethodBase.GetCurrentMethod());
}
}
#endregion
}
}
|
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.