Beispiel #1
0
        private void LoadActions()
        {
            List <IWidgetPropertyData> list = SelectionService.GetSelectedWidgets();

            if (_currentPage == null ||
                list == null ||
                list.Count != 1 ||
                !(list.ElementAt(0) is WidgetViewModBase) ||
                (list.ElementAt(0) as WidgetViewModBase).IsGroup ||
                (list.ElementAt(0) as WidgetViewModBase).Type == ObjectType.Master)
            {
                // Only support one selected widget.
                DisableInteraction();
                return;
            }

            IWidget widget = _currentPage.Widgets.GetWidget(list[0].WidgetID);

            if (widget == null || _selectedWidget == widget ||
                widget.WidgetType == WidgetType.HamburgerMenu ||
                widget.WidgetType == WidgetType.DynamicPanel ||
                widget.WidgetType == WidgetType.Toast)
            {
                // Selected item is not widget, or the same widget
                DisableInteraction();
                return;
            }

            CanEdit = true;
            // Selected widget changed, get or create action from new widget.
            _widgetOpenAction     = null;
            _widgetShowHideAction = null;
            _selectedWidget       = widget;

            IInteractionEvent clickEvent = widget.Events[EventType.OnClick];

            if (clickEvent == null)
            {
                return;
            }

            //Create action
            IInteractionCase clickCase = clickEvent.Cases["clickCase"];

            if (clickCase == null)
            {
                clickCase = clickEvent.CreateCase("clickCase");
            }

            // For now, we only have a open action in exsiting case
            foreach (IInteractionAction action in clickCase.Actions)
            {
                if (action != null)
                {
                    if (action.ActionType == ActionType.OpenAction)
                    {
                        _widgetOpenAction = action as IInteractionOpenAction;
                        LoadWidgetInteraction();
                    }
                    else if (action.ActionType == ActionType.ShowHideAction)
                    {
                        _widgetShowHideAction = action as IInteractionShowHideAction;
                        LoadPageWidgets();
                    }
                }
            }

            if (_widgetOpenAction == null)
            {
                _widgetOpenAction = clickCase.CreateAction(ActionType.OpenAction) as IInteractionOpenAction;
                LoadWidgetInteraction();
            }

            if (_widgetShowHideAction == null)
            {
                _widgetShowHideAction = clickCase.CreateAction(ActionType.ShowHideAction) as IInteractionShowHideAction;
                //_widgetShowHideAction.AddTargetObject(widget.Guid); // Add the widget to the target list by default.
                LoadPageWidgets();
            }
        }