Пример #1
0
 internal Item(
     DominatorDescription description,
     Func<DominatorState> getter,
     Action<DominationAction> setter)
 {
     Description = description;
     _getter = getter;
     _setter = setter;
 }
Пример #2
0
        public IDominator Specification()
        {
            // it comes in handy to allow zero nested items when building new dominators.
            // if (_nested.Count == 0)
            //	throw new InvalidOperationException($"{_title}: no nested dominators");

            var description = new DominatorDescription(_title, _explanation_ ?? "");

            var dominator = new Group(description, _nested.ToArray());
            return dominator;
        }
Пример #3
0
 public Group(DominatorDescription description, IDominator[] nested)
 {
     Description = description;
     Nested = nested;
 }
Пример #4
0
        IDominator Specification()
        {
            if (_getter_ == null)
                throw new InvalidOperationException($"{_title}: missing getter");
            if (_setter_ == null)
                throw new InvalidOperationException($"{_title}: missing setter");

            var description = new DominatorDescription(_title, _explanation_ ?? "", _more_);
            var dominator = new Item(description, _getter_, _setter_);
            return dominator;
        }
Пример #5
0
		public static UIElement CreateDescription(DominatorDescription description, bool forGroup)
		{
			var panel = new StackPanel();
			var hasExplanation = description.Explanation != "";
			var showTitle = hasExplanation;

			if (showTitle)
			{
				var title = CreateTextBlock(description.Title);
				title.FontSize = forGroup ? 22 : 16;
				panel.Children.Add(title);
			}

			var explanation = hasExplanation ? description.Explanation : description.Title;

			var explanationLabel = CreateTextBlock(explanation);
			if (!showTitle)
				explanationLabel.FontSize = forGroup ? 22 : 16;

			if (description.More_ != null)
			{
				var hPanel = new Grid
				{
					ColumnDefinitions =
					{
						new ColumnDefinition
						{
							Width=new GridLength(1, GridUnitType.Star)
						},
						new ColumnDefinition
						{
							Width = GridLength.Auto
						}
					}
				};
				hPanel.Children.Add(explanationLabel);
				var moreLink = createHyperlink(M_more___, description.More_.Value.Action, description.More_.Value.Info);
				moreLink.Margin = new Thickness(0, 0, 0, DefaultMargin);
				moreLink.VerticalAlignment = VerticalAlignment.Bottom;
				Grid.SetColumn(moreLink, 1);
				hPanel.Children.Add(moreLink);
				panel.Children.Add(hPanel);
			}
			else
			{
				panel.Children.Add(explanationLabel);
			}

			return panel;
		}