private void EnableMessageAppending(UserControl_Bordered_MessageTreeMessage control) { MenuItem menuItem_messageAppending = new MenuItem() { Header = "Append Message" }; menuItem_messageAppending.Click += (x, y) => { var window_messageChoice = new Window_MessageChoice ( null, string.Format("{0} - XYZ Choice", control.MessageName), "\"...\"", MessageId, (win) => { Window_MessageChoice wWin = win as Window_MessageChoice; if (wWin != null) { int selectedMessageId = -1; ComboBox_Message comboBox_message = new ComboBox_Message(); comboBox_message.SelectionChanged += (w, v) => { var cb = w as ComboBox_Message; ComboBox_Message.ComboBoxItem_Message cbi; if (cb != null && cb == comboBox_message && (cbi = cb.SelectedItem as ComboBox_Message.ComboBoxItem_Message) != null) selectedMessageId = cbi.MessageId; }; comboBox_message.SetActiveAndRegisterForGinTubEvents(); GinTubBuilderManager.ReadAllMessages(); var window_message = new Window_TaskOnAccept ( "Select Message", (wwWin) => { Window_TaskOnAccept wwwWin = wwWin as Window_TaskOnAccept; if (wwwWin != null) { // This is a preeeetty hack-y way to handle this, but you reap what you sow int newMessageChoiceId = -1, newResultId = -1; GinTubBuilderManager.MessageChoiceReadEventHandler messageChoiceReadHandler = new GinTubBuilderManager.MessageChoiceReadEventHandler((sender, args) => { newMessageChoiceId = args.Id; }); GinTubBuilderManager.ResultReadEventHandler resultReadHandler = new GinTubBuilderManager.ResultReadEventHandler((sender, args) => { newResultId = args.Id; }); GinTubBuilderManager.MessageChoiceRead += messageChoiceReadHandler; GinTubBuilderManager.CreateMessageChoice(wWin.MessageChoiceName, wWin.MessageChoiceText, control.MessageId.Value); GinTubBuilderManager.MessageChoiceRead -= messageChoiceReadHandler; GinTubBuilderManager.ResultRead += resultReadHandler; // TODO: less hardcoding here GinTubBuilderManager.CreateResult ( string.Format("Message - {0} NEXT", control.MessageName), "{\"messageId\":" + selectedMessageId.ToString() + "}", 10 // MAGIC NUMBER ); GinTubBuilderManager.ResultRead -= resultReadHandler; GinTubBuilderManager.CreateMessageChoiceResult(newResultId, newMessageChoiceId); GinTubBuilderManager.ReadMessageTreeForMessage(control.MessageId.Value, control.MessageParentMessageChoiceId); } } ); window_message.Content = comboBox_message; window_message.ShowDialog(); } } ); window_messageChoice.ShowDialog(); }; ContextMenu contextMenu_messageAppending = new ContextMenu(); contextMenu_messageAppending.Items.Add(menuItem_messageAppending); control.ContextMenu = contextMenu_messageAppending; }
private void CreateControls() { Grid grid_main = new Grid(); grid_main.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); grid_main.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); grid_main.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); grid_main.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); //////// // Id Grid Grid grid_id = new Grid(); grid_id.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); grid_id.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); grid_main.SetGridRowColumn(grid_id, 0, 0); //////// // Id TextBlock textBlock_id = new TextBlock() { VerticalAlignment = VerticalAlignment.Center, Text = (MessageChoiceId.HasValue) ? MessageChoiceId.ToString() : "NewMessageChoice" }; Label label_id = new Label() { Content = "Id:", FontWeight = FontWeights.Bold, VerticalAlignment = VerticalAlignment.Center }; grid_id.SetGridRowColumn(textBlock_id, 0, 1); grid_id.SetGridRowColumn(label_id, 0, 0); //////// // Name Grid Grid grid_name = new Grid(); grid_name.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); grid_name.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(100.0, GridUnitType.Star) }); grid_main.SetGridRowColumn(grid_name, 1, 0); //////// // Name m_textBox_name = new TextBox() { VerticalAlignment = VerticalAlignment.Center, Text = MessageChoiceName }; m_textBox_name.TextChanged += TextBox_Name_TextChanged; Label label_name = new Label() { Content = "Name:", FontWeight = FontWeights.Bold, VerticalAlignment = VerticalAlignment.Center }; grid_name.SetGridRowColumn(m_textBox_name, 1, 0); grid_name.SetGridRowColumn(label_name, 0, 0); //////// // Text Grid Grid grid_text = new Grid(); grid_text.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); grid_text.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); grid_main.SetGridRowColumn(grid_text, 2, 0); //////// // Text m_textBox_text = new TextBox() { VerticalAlignment = VerticalAlignment.Center, Text = MessageChoiceText }; m_textBox_text.TextChanged += TextBox_Text_TextChanged; Label label_text = new Label() { Content = "Text:", FontWeight = FontWeights.Bold, VerticalAlignment = VerticalAlignment.Center }; grid_text.SetGridRowColumn(m_textBox_text, 0, 1); grid_text.SetGridRowColumn(label_text, 0, 0); //////// // Message Grid Grid grid_message = new Grid(); grid_message.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); grid_message.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(100.0, GridUnitType.Star) }); grid_main.SetGridRowColumn(grid_message, 3, 0); //////// // Message m_comboBox_message = new ComboBox_Message(); m_comboBox_message.SetActiveAndRegisterForGinTubEvents(); // never unregister; we want updates no matter where we are m_comboBox_message.SelectionChanged += ComboBox_Message_SelectionChanged; Label label_message = new Label() { Content = "Message:", FontWeight = FontWeights.Bold, VerticalAlignment = VerticalAlignment.Center }; grid_message.SetGridRowColumn(m_comboBox_message, 1, 0); grid_message.SetGridRowColumn(label_message, 0, 0); //////// // Fin Content = grid_main; }
private UIElement CreateControls() { m_grid_main = new Grid(); m_grid_main.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(33.0, GridUnitType.Star) }); m_grid_main.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(33.0, GridUnitType.Star) }); m_grid_main.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(33.0, GridUnitType.Star) }); m_grid_selectedMessage = new Grid(); m_grid_selectedMessage.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); m_grid_selectedMessage.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); m_grid_selectedMessage.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); m_grid_main.SetGridRowColumn(m_grid_selectedMessage, 0, 0); m_comboBox_message = new ComboBox_Message(); m_comboBox_message.SetActiveAndRegisterForGinTubEvents(); m_comboBox_message.SelectionChanged += ComboBox_Event_SelectionChanged; m_grid_selectedMessage.SetGridRowColumn(m_comboBox_message, 0, 0); m_button_messageTree = new Button() { Content = "View Message Tree", Visibility = System.Windows.Visibility.Collapsed }; m_button_messageTree.Click += (x, y) => { if(SelectedMessageId.HasValue) { var window = new Window_MessageTree(SelectedMessageId.Value, SelectedMessageName, SelectedMessageText); window.SetActiveAndRegisterForGinTubEvents(); window.Show(); GinTubBuilderManager.ReadMessageTreeForMessage(SelectedMessageId.Value, null); } }; m_grid_selectedMessage.SetGridRowColumn(m_button_messageTree, 2, 0); return m_grid_main; }