using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Xml; using System.Windows.Forms; using Microsoft.Win32; using System.Runtime.InteropServices; using TradeIdeas.XML; using TradeIdeas.TIProData; using TradeIdeas.TIProData.Configuration; namespace TradeIdeas.TIProGUI { public partial class SymbolLinkingForm : Form, ICultureListener { private List _phrases; //private string _currentSettings; public string SendSymbolToListName = ""; SymbolLinking _currentSettings; // What the dialog box is using. SymbolLinking _restoreSettings; // In case the user hits cancel. public SymbolLinkingForm(SymbolLinking savedSettings) { _currentSettings = savedSettings; _restoreSettings = new SymbolLinking(null); _restoreSettings.CopyFrom(_currentSettings); _phrases = GuiEnvironment.XmlConfig.Node("SYMBOL_LINKING").Node("PHRASES"); this.StartPosition = FormStartPosition.CenterParent; InitializeComponent(); CultureChanged(); SendSymbolToListName = _currentSettings.SavedSymbolListName; populateSendSymbolTo(); Icon = GuiEnvironment.Icon; Font = GuiEnvironment.FontSettings; } public void CultureChanged() { this.Text = _phrases.Node("WINDOW_TITLE").PropertyForCulture("TEXT", "***"); grpSendSymbolTo.Text = _phrases.Node("SEND_SYMBOL_TO").PropertyForCulture("TEXT", "***"); lblListName.Text = _phrases.Node("LIST_NAME").PropertyForCulture("TEXT", "***"); btnOK.Text = _phrases.Node("OK").PropertyForCulture("TEXT", "***"); btnCancel.Text = _phrases.Node("CANCEL").PropertyForCulture("TEXT", "***"); } public void populateSendSymbolTo() { return; /* //Clear combobox data cboSendSymbolTo.Items.Clear(); //Populate cboSendSymbolTo items foreach (string item in GuiEnvironment.externalLinkingForm.ComboItems) cboSendSymbolTo.Items.Add(item); //Set default selected item if (cboSendSymbolTo.Items.Count > 0) cboSendSymbolTo.SelectedIndex = 0; bool itemNotFound = true; if (SendSymbolToListName != null) foreach (string item in cboSendSymbolTo.Items) { if (item == SendSymbolToListName) { cboSendSymbolTo.SelectedItem = item; itemNotFound = false; } } //The saved list name may not exist in the list so set the current list name to the //default name list if (itemNotFound) SendSymbolToListName = cboSendSymbolTo.SelectedItem.ToString(); */ } private void btnOK_Click(object sender, EventArgs e) { //Save name of currently selected list name SendSymbolToListName = (string)cboSendSymbolTo.SelectedItem; _currentSettings.SavedSymbolListName = (string)cboSendSymbolTo.SelectedItem; DialogResult = System.Windows.Forms.DialogResult.OK; } private void btnCancel_Click(object sender, EventArgs e) { _currentSettings.CopyFrom(_restoreSettings); DialogResult = System.Windows.Forms.DialogResult.Cancel; } private void SymbolLinkingForm_Shown(object sender, EventArgs e) { //Update external linking data populateSendSymbolTo(); } public void Save(XmlNode destination) { XmlNode act = destination.NewNode("SYMBOL_LINKING"); act.SetProperty("SELECTED_SYMBOL_LIST_NAME", SendSymbolToListName); } } public interface ISymbolLinkingForOwner { // For alerts and multistrategy. If you want to add actions to your window, // this is all you need to know! void CopyFrom(SymbolLinking source); void Load(XmlNode source); void Save(XmlNode destination); void ShowDialog(); string SavedSymbolListName { get; set; } } public class SymbolLinking : ISymbolLinkingForOwner { readonly private Form _owner; public string _savedSymbolListName; public SymbolLinking(Form owner) { _owner = owner; _savedSymbolListName = ""; } public string SavedSymbolListName { get { return _savedSymbolListName; } set { _savedSymbolListName = value; } } private void ShowWindowNow() { if (null != _owner) { BringToFront(_owner); if (_owner.WindowState == FormWindowState.Minimized) { _owner.WindowState = FormWindowState.Normal; _owner.Visible = true; } } } private void BringToFront(Form f) { IntPtr hwnd = f.Handle; if (GuiEnvironment.ApplicationIsActivated()) GuiEnvironment.SetForegroundWindow(hwnd); } public void CopyFrom(SymbolLinking source) { // Leave _owner alone. _savedSymbolListName = source.SavedSymbolListName; } public void Load(XmlNode source) { XmlNode symbolLinking = source.Node("SYMBOL_LINKING"); _savedSymbolListName = symbolLinking.Property("SELECTED_SYMBOL_LINKING_NAME"); } public void Save(XmlNode destination) { XmlNode symLink = destination.NewNode("SYMBOL_LINKING"); symLink.SetProperty("SELECTED_SYMBOL_LINKING_NAME", _savedSymbolListName); } public void ShowDialog() { using (SymbolLinkingForm symbolLinkingForm = new SymbolLinkingForm(this)) symbolLinkingForm.ShowDialog(); } } }