コード例 #1
0
        private UtcOffsetUpDown CreateUtcOffsetPicker(ControlRow control)
        {
            UtcOffsetUpDown utcOffsetPicker = new UtcOffsetUpDown()
            {
                ToolTip = control.Tooltip,
                Value   = Constant.ControlDefault.DateTimeValue.Offset,
                Width   = control.Width
            };

            utcOffsetPicker.GotFocus  += this.Control_GotFocus;
            utcOffsetPicker.LostFocus += this.Control_LostFocus;
            return(utcOffsetPicker);
        }
コード例 #2
0
        public void Generate(WrapPanel parent, DataTableBackedList <ControlRow> templateTable)
        {
            // used for styling all content and label controls except ComboBoxes since the combo box style is commented out in DataEntryControls.xaml
            // and defined instead in MainWindow.xaml as an exception workaround
            DataEntryControls styleProvider = new DataEntryControls();

            parent.Children.Clear();
            foreach (ControlRow control in templateTable)
            {
                // instantiate control UX objects
                StackPanel stackPanel;
                switch (control.Type)
                {
                case Constant.Control.Note:
                case Constant.DatabaseColumn.Date:
                case Constant.DatabaseColumn.File:
                case Constant.DatabaseColumn.Folder:
                case Constant.DatabaseColumn.RelativePath:
                case Constant.DatabaseColumn.Time:
                    Label   noteLabel   = EditorControls.CreateLabel(styleProvider, control);
                    TextBox noteContent = EditorControls.CreateTextBox(styleProvider, control);
                    stackPanel = EditorControls.CreateStackPanel(styleProvider, noteLabel, noteContent);
                    break;

                case Constant.Control.Counter:
                    RadioButton   counterLabel   = EditorControls.CreateCounterLabelButton(styleProvider, control);
                    IntegerUpDown counterContent = EditorControls.CreateIntegerUpDown(styleProvider, control);
                    stackPanel                = EditorControls.CreateStackPanel(styleProvider, counterLabel, counterContent);
                    counterLabel.IsTabStop    = false;
                    counterContent.GotFocus  += this.Control_GotFocus;
                    counterContent.LostFocus += this.Control_LostFocus;
                    break;

                case Constant.Control.Flag:
                case Constant.DatabaseColumn.DeleteFlag:
                    Label    flagLabel   = EditorControls.CreateLabel(styleProvider, control);
                    CheckBox flagContent = this.CreateFlag(styleProvider, control);
                    flagContent.IsChecked = String.Equals(control.DefaultValue, Constant.BooleanValue.True, StringComparison.OrdinalIgnoreCase) ? true : false;
                    stackPanel            = EditorControls.CreateStackPanel(styleProvider, flagLabel, flagContent);
                    break;

                case Constant.Control.FixedChoice:
                case Constant.DatabaseColumn.ImageQuality:
                    Label    choiceLabel   = EditorControls.CreateLabel(styleProvider, control);
                    ComboBox choiceContent = EditorControls.CreateComboBox(styleProvider, control);
                    stackPanel = EditorControls.CreateStackPanel(styleProvider, choiceLabel, choiceContent);
                    break;

                case Constant.DatabaseColumn.DateTime:
                    Label          dateTimeLabel   = EditorControls.CreateLabel(styleProvider, control);
                    DateTimePicker dateTimeContent = this.CreateDateTimePicker(control);
                    stackPanel = EditorControls.CreateStackPanel(styleProvider, dateTimeLabel, dateTimeContent);
                    break;

                case Constant.DatabaseColumn.UtcOffset:
                    Label           utcOffsetLabel   = EditorControls.CreateLabel(styleProvider, control);
                    UtcOffsetUpDown utcOffsetContent = this.CreateUtcOffsetPicker(control);
                    stackPanel = EditorControls.CreateStackPanel(styleProvider, utcOffsetLabel, utcOffsetContent);
                    break;

                default:
                    throw new NotSupportedException(String.Format("Unhandled control type {0}.", control.Type));
                }

                stackPanel.Tag = control.DataLabel;
                if (control.Visible == false)
                {
                    stackPanel.Visibility = Visibility.Collapsed;
                }

                // add control to wrap panel
                parent.Children.Add(stackPanel);
            }
        }