예제 #1
0
        public List <Widget> FindWidgetsByClass(string className)
        {
            List <Widget> widgets = new List <Widget>();

            foreach (Widget widget in _widgets)
            {
                if (widget.Classes.Contains(className))
                {
                    widgets.Add(widget);
                }

                IParentWidget parent = widget as IParentWidget;
                if (parent != null)
                {
                    widgets.AddRange(parent.FindWidgetsByClass(className));
                }
            }

            return(widgets);
        }
예제 #2
0
        public ISelectableWidget FindSelectedWidget()
        {
            foreach (Widget widget in _widgets)
            {
                ISelectableWidget selectableWidget = widget as ISelectableWidget;
                if (selectableWidget != null && selectableWidget.isSelected)
                {
                    return(selectableWidget);
                }

                IParentWidget parentWidget = widget as IParentWidget;
                if (parentWidget != null)
                {
                    ISelectableWidget resultWidget = parentWidget.FindSelectedWidget();
                    if (resultWidget != null)
                    {
                        return(resultWidget);
                    }
                }
            }

            return(null);
        }