/**************************************************************\ * Create a new tab (for editing, NORMAL mode) * * - Add the component. * * - Display the content of the xml * * - Manage the event when clicking on "Close". * \**************************************************************/ public void AddTab(String tabName, String path, string defaultMode) { KryptonPage navigatorTab = new KryptonPage(); ButtonSpecAny closeButton = new ButtonSpecAny(); XMLLoader.XMLForm XMLLoader = new XMLLoader.XMLForm(); if(defaultMode.Equals("CREATION")) { try { GC.Collect(); XMLLoader.Dock = DockStyle.Fill; XMLLoader.init(Properties.Settings.Default.interpretation_template, _ButtonHelp); XMLLoader.loadXML(path); XMLLoader.Tag = path; navigatorTab.Tag = true; navigatorTab.Controls.Add(XMLLoader); switchButtonSpec.ExtraText = "XML Mode"; EnableDisableAllProcessesButtonSpec.Enabled = ComponentFactory.Krypton.Toolkit.ButtonEnabled.True; } // If no connection, New tab (XML mode) catch (Exception ex) { var result = KryptonMessageBox.Show("Unable to access XML Template (maybe there is no network). No Creation Mode available.\n\n\n" + ex, "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); KryptonRichTextBox richTextBox = new KryptonRichTextBox(); richTextBox.Dock = System.Windows.Forms.DockStyle.Fill; richTextBox.Name = tabName + "RichTextBox"; richTextBox.Text = ""; richTextBox.Tag = path; navigatorTab.Tag = false; switchButtonSpec.ExtraText = "Creation Mode"; EnableDisableAllProcessesButtonSpec.Enabled = ComponentFactory.Krypton.Toolkit.ButtonEnabled.False; navigatorTab.Controls.Add(richTextBox); DisplayXml(richTextBox); } } else if (defaultMode.Equals("XML")) { KryptonRichTextBox richTextBox = new KryptonRichTextBox(); richTextBox.Dock = System.Windows.Forms.DockStyle.Fill; richTextBox.Name = tabName + "RichTextBox"; richTextBox.Text = ""; richTextBox.Tag = path; navigatorTab.Tag = false; switchButtonSpec.ExtraText = "Creation Mode"; EnableDisableAllProcessesButtonSpec.Enabled = ComponentFactory.Krypton.Toolkit.ButtonEnabled.False; navigatorTab.Controls.Add(richTextBox); DisplayXml(richTextBox); } navigatorTab.Name = tabName + "Tab"; navigatorTab.Text = tabName; closeButton.Type = ComponentFactory.Krypton.Toolkit.PaletteButtonSpecStyle.PendantClose; navigatorTab.ButtonSpecs.AddRange(new ComponentFactory.Krypton.Toolkit.ButtonSpecAny[] { closeButton}); navigatorTab.ButtonSpecs[0].Click += new EventHandler(CloseNavigatorTab); navigatorTab.ButtonSpecs[0].Tag = navigatorTab; NavigatorControl.Pages.Add(navigatorTab); }
/**************************************************************\ * Event for clicking on the switch button of the navigator : * * - Switch to creation mode if it's normal mode * * - and vice & versa * \**************************************************************/ private void switchButtonSpec_Click(object sender, EventArgs e) { if (!NavigatorControl.SelectedPage.Text.Equals("Summary")) { // If creation mode, switch to normal mode if ((Boolean)NavigatorControl.SelectedPage.Tag) { // Get path string path = ""; var childrens = NavigatorControl.SelectedPage.Controls.OfType<XMLLoader.XMLForm>().ToList(); foreach (XMLLoader.XMLForm element in childrens) { path = (string)element.Tag; } NavigatorControl.SelectedPage.Tag = false; switchButtonSpec.ExtraText = "Creation Mode"; NavigatorControl.SelectedPage.Controls.Clear(); // Set New Control KryptonRichTextBox richTextBox = new KryptonRichTextBox(); richTextBox.Dock = System.Windows.Forms.DockStyle.Fill; richTextBox.Text = ""; richTextBox.Tag = path; NavigatorControl.SelectedPage.Controls.Add(richTextBox); DisplayXml(richTextBox); } // If normal mode, switch to creation mode else if (!(Boolean)NavigatorControl.SelectedPage.Tag) { // Get path string path = ""; var childrens = NavigatorControl.SelectedPage.Controls.OfType<KryptonRichTextBox>().ToList(); foreach (KryptonRichTextBox element in childrens) { path = (string)element.Tag; } NavigatorControl.SelectedPage.Tag = true; switchButtonSpec.ExtraText = "XML Mode"; EnableDisableAllProcessesButtonSpec.Enabled = ComponentFactory.Krypton.Toolkit.ButtonEnabled.True; NavigatorControl.SelectedPage.Controls.Clear(); try { // Set New Control XMLLoader.XMLForm XMLLoader = new XMLLoader.XMLForm(); XMLLoader.Dock = DockStyle.Fill; XMLLoader.init(Properties.Settings.Default.interpretation_template, _ButtonHelp); XMLLoader.loadXML(path); XMLLoader.Tag = path; NavigatorControl.SelectedPage.Controls.Add(XMLLoader); } // If no connection, stay in XML mode catch { var result = KryptonMessageBox.Show("Unable to access XML Template (maybe there is no network). No Creation Mode available.", "No network", MessageBoxButtons.OK, MessageBoxIcon.Warning); KryptonRichTextBox richTextBox = new KryptonRichTextBox(); richTextBox.Dock = System.Windows.Forms.DockStyle.Fill; richTextBox.Text = ""; richTextBox.Tag = path; NavigatorControl.SelectedPage.Tag = false; switchButtonSpec.ExtraText = "Creation Mode"; EnableDisableAllProcessesButtonSpec.Enabled = ComponentFactory.Krypton.Toolkit.ButtonEnabled.False; NavigatorControl.SelectedPage.Controls.Add(richTextBox); DisplayXml(richTextBox); } } } }