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); }
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); } }