75 lines
1.9 KiB
C#
75 lines
1.9 KiB
C#
using System;
|
|
using TH1_UI.Controller.Base;
|
|
|
|
//
|
|
public enum ViewLevelValue
|
|
{
|
|
LEVEL_1,
|
|
LEVEL_2, //一级界面互斥
|
|
LEVEL_3, //二级界面互斥
|
|
LEVEL_4,
|
|
}
|
|
//
|
|
public class ViewHierarchyProperty
|
|
{
|
|
public ViewLevelValue ViewLevel = ViewLevelValue.LEVEL_1;
|
|
//
|
|
public void Start(IViewControllerInterface controller)
|
|
{
|
|
if (_currLinkNode != null)
|
|
{
|
|
_currLinkNode.Detach();
|
|
}
|
|
_currLinkNode = new ViDoubleLinkNode2<IViewControllerInterface>();
|
|
_currLinkNode.Data = controller;
|
|
}
|
|
//
|
|
public void Open()
|
|
{
|
|
if (_currLinkNode != null)
|
|
{
|
|
_currLinkNode.Detach();
|
|
//
|
|
IViewControllerInterface view = _currLinkNode.Data;
|
|
switch (ViewLevel)
|
|
{
|
|
case ViewLevelValue.LEVEL_1:
|
|
break;
|
|
case ViewLevelValue.LEVEL_2:
|
|
case ViewLevelValue.LEVEL_3:
|
|
case ViewLevelValue.LEVEL_4:
|
|
_MutualWindow(view);
|
|
break;
|
|
}
|
|
//
|
|
_viewOpenList.PushBack(_currLinkNode);
|
|
}
|
|
}
|
|
//
|
|
void _MutualWindow(IViewControllerInterface viewOpen)
|
|
{
|
|
ViDoubleLinkNode2<IViewControllerInterface> iter = _viewOpenList.GetHead();
|
|
while (!_viewOpenList.IsEnd(iter))
|
|
{
|
|
IViewControllerInterface iterView = iter.Data;
|
|
ViDoubleLink2<IViewControllerInterface>.Next(ref iter);
|
|
//
|
|
if (iterView.ViewLevel == viewOpen.ViewLevel)
|
|
{
|
|
iterView.Close();
|
|
}
|
|
}
|
|
}
|
|
//
|
|
public void Close()
|
|
{
|
|
if (_currLinkNode != null)
|
|
{
|
|
_currLinkNode.Detach();
|
|
}
|
|
}
|
|
//
|
|
ViDoubleLinkNode2<IViewControllerInterface> _currLinkNode = null;
|
|
static ViDoubleLink2<IViewControllerInterface> _viewOpenList = new ViDoubleLink2<IViewControllerInterface>();
|
|
}
|