Exemplo n.º 1
0
        /// <summary>
        /// Initializes Action with specific parameters defining  Name, tree structure etc.
        /// Subscribes to events
        /// </summary>
        /// <param name="param"></param>
        public override void Initialize(ActionInitializeParams param)
        {
            Debug.Assert(param is LayerActionInitializeParams, "In Measure Menu ActionInitializeParams should be of type LayerActionInitializeParams");
            UiMode    = ((LayerActionInitializeParams)param).Layer;
            SubUiMode = ((LayerActionInitializeParams)param).SubUiMode;

            base.Initialize(param);

            _uiModeService.CanEnterModeChanged += (_, ea) =>
            {
                if (ea.Mode == UiMode)
                {
                    //regular notification
                    if (string.IsNullOrWhiteSpace(ea.SubUiMode))
                    {
                        CanEnterMode = ea.CanEnter;
                    }
                    //specific notification for SubUiMode
                    if (!string.IsNullOrWhiteSpace(ea.SubUiMode) &&
                        !string.IsNullOrWhiteSpace(SubUiMode) &&
                        ea.SubUiMode.ToUpper() == SubUiMode.ToUpper())
                    {
                        CanEnterSubUiMode = ea.CanEnter;
                    }
                }
            };
            _uiModeService.ModeChanged += (___, ea) =>
            {
                if (NodeType != NodeType.ContainerParentType)//doesn't have its indication status
                {
                    IsActive = ea.NewMode == UiMode;
                }
            };

            //Set initial state
            CanEnterMode = _uiModeService.CanEnterMode(UiMode, "");
            if (!string.IsNullOrWhiteSpace(SubUiMode))
            {
                CanEnterSubUiMode = _uiModeService.CanEnterMode(UiMode, SubUiMode);
            }
        }
Exemplo n.º 2
0
 public bool CanEnterUIMode(UiMode guiMode)
 {
     return(_uiModeModel.CanEnterMode(guiMode, null));
 }