public RobotStateDialog(RobotFarm happyFarm) : this() { this.happyFarm = happyFarm; var robots = happyFarm.GetRobotsAsIs(); //GetRobotCopies(); gridRobot.DataBind(robots); }
public RobotStateDialog(RobotFarm happyFarm, string selectedrobotUniqueName) : this(happyFarm) { if (!string.IsNullOrEmpty(selectedrobotUniqueName)) { var robot = gridRobot.rows.Select(r => (BaseRobot) r.ValueObject).FirstOrDefault(r => r.GetUniqueName() == selectedrobotUniqueName); if (robot != null) propertyGrid.SelectedObject = robot; } }
public MainForm() { Instance = this; if (AppConfig.GetBooleanParam("SingleInstance", true)) { var prc = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName); if (prc.Length > 1) { MessageBox.Show(Localizer.GetString("MessageTerminalAlreadyRunning"), Localizer.GetString("TitleWarning")); Process.GetCurrentProcess().Kill(); return; } } // показать окно загрузки SplashScreen.ShowSplash(StartupStage.Started); InitializeComponent(); Localizer.LocalizeControl(this); bookmarkStrip.ImgList = lstGlyph32; SetupMenuImages(); try { MakeFormMdi(); Candlechart.Core.PluginManager.Instance.Initialize(); RobotCollection.Initialize(); ScriptManager.Initialize(); ScriptManager.Instance.scriptListIsUpdated += ActualizeScriptMenu; CheckAppFolders(); Logger.Info("Старт терминала (" + ExecutablePath.ExecPath + ")"); InitializeTooltips(); InitializeToolButtons(ChartToolButtonStorage.Instance.selButtons, panelChartTools); InitializeToolButtons(ChartToolButtonStorage.Instance.selSystemButtons, panelCommonTools); InitializeSeriesSettings(); BtnFlipPanelChartToolsClick(btnFlipPanelCommonTools, null); BookmarkStorage.Instance.BookmarkDeleted += InstanceOnBookmarkDeleted; // шаг 1 завершен - обновить статус SplashScreen.UpdateState(StartupStage.MakeInstrumentalPanels); UserSettings.Instance.LoadProperties(); EventSoundPlayer.Instance.LoadSounds(); robotFarm = new RobotFarm(UpdateTickersCacheForRobots); robotFarm.OnStateChanged += RobotFarmStateChanged; quoteReceiver = new TcpQuoteReceiver(); quoteReceiver.OnQuotesReceived += OnQuotesReceived; quoteReceiver.OnNewsReceived += OnNewsReceived; NewsCache.Instance.ActualizationCompleted += newsCount => AddMessageToStatusPanelSafe(DateTime.Now, string.Format("{0} ({1})", Localizer.GetString("MessageNewsRead"), newsCount)); Contract.Util.BL.QuoteStorage.Instance.LoadQuotes(string.Format("{0}\\lastquote.txt", ExecutablePath.ExecPath)); DalSpot.Instance.SetFavoritesList(UserSettings.Instance.FavoriteTickers.ToArray()); navPanelControl.SetupPages(UserSettings.Instance.NavPanelPages); navPanelControl.closePanelClicked += () => MenuitemNavPaneClick(this, EventArgs.Empty); //AccountStatus.Instance.ConnectionStatusIsUpdated += InstanceOnConnectionStatusIsUpdated; AccountStatus.Instance.ServerConnectionStatus = DalSpot.Instance.ConnectionWasEstablished ? ServerConnectionStatus.Connected : ServerConnectionStatus.NotConnected; // шаг 2 завершен - обновить статус SplashScreen.UpdateState(StartupStage.MakeQuoteStream); ResumeConnectionWithServer(); // запуск чата ChatEngine = new ChatControlBackEnd(); ChatEngine.Start(); SetupChat(); // шаг 3 завершен - обновить статус toolTipStatus.SetToolTip(lblConnectStatus, ""); toolTipStatus.SetToolTip(connectionStatusImage, ""); SplashScreen.UpdateState(StartupStage.MakeServerConnection); AccountStatus.Instance.OnAccountInfoUpdated += OnAccountInfoUpdated; AccountStatus.Instance.OnConnectionAborted += ResumeConnectionWithServer; AccountStatus.Instance.OnAuthenticationFailed += AuthenticationFailed; // вывести список открытых/закрытых за последнее время ордеров AccountStatus.Instance.OnAccountDataFirstReceived += ShowLast24HrOrders; autosaveFolder = AppConfig.GetStringParam("AutosaveFolder", "\\autosave"); autosaveFolder = autosaveFolder.TrimEnd('\\'); if (autosaveFolder.StartsWith("\\")) autosaveFolder = ExecutablePath.ExecPath + autosaveFolder; CrossChartDivergenciesSettingsWindow.GetChartsList += GetChartsList; printDocument.PrintPage += PrintDocumentPrintPage; serverProxyTrade.OnConnectionReestablished += ReviveFactory; SetupDragTargets(); } catch (Exception ex) { Logger.Error("TradeSharp - ошибка инициализации ", ex); Close(); return; } // шаг 4 завершен - обновить статус SplashScreen.UpdateState(StartupStage.FillDictionaries); // запуск процесса-планировщика threadSchedule = new Thread(ScheduleThreadRoutine); threadSchedule.Start(); AppMessageFilter.ApplyDiffString(UserSettings.Instance.HotKeyList); }
public RobotPortfolioForm(RobotFarm robotFarm, string robotUniqieName) : this(robotFarm) { robotToShowSettingsUniqueName = robotUniqieName; // robotFarm.GetRobotCopies().FirstOrDefault(r => r.GetUniqueName() == robotUniqieName); }
public RobotPortfolioForm(RobotFarm robotFarm) : this() { this.robotFarm = robotFarm; }
/// <summary> /// обновление состояния кнопок и пунктов меню, связанных с роботами /// </summary> /// <param name="state"></param> private void UpdateRobotIconUnsafe(RobotFarm.RobotFarmState state) { var indexImage = state == RobotFarm.RobotFarmState.Started ? 12 : state == RobotFarm.RobotFarmState.StartingUp ? 13 : state == RobotFarm.RobotFarmState.Stopped ? 11 : state == RobotFarm.RobotFarmState.Stopping ? 14 : 15; // проверяем есть ли кнопка на панели системных кнопок var pressedBtn = GetPressedCommonButton(SystemToolButton.RobotsStart); if (pressedBtn != null) pressedBtn.ImageIndex = indexImage; // кнопка "Запустить роботов" управляется из MainForm.ToolStripBtnClick + MainForm.ExecuteCommonButtonsCommand var checkBox = pressedBtn as CheckBox; if (checkBox != null) checkBox.Checked = state == RobotFarm.RobotFarmState.Started; // меняем доступность пунктов меню menuitemRobotPortfolio.Enabled = state == RobotFarm.RobotFarmState.Stopped; menuitemRobotState.Enabled = state == RobotFarm.RobotFarmState.Started; // также меняем соответствующие кнопки панели инструментов var btn = GetPressedCommonButton(SystemToolButton.RobotPortfolio); if (btn != null) { checkBox = btn as CheckBox; if (checkBox != null) checkBox.Enabled = menuitemRobotPortfolio.Enabled; } btn = GetPressedCommonButton(SystemToolButton.RobotState); if (btn != null) { checkBox = btn as CheckBox; if (checkBox != null) checkBox.Enabled = menuitemRobotState.Enabled; } }
/// <summary> /// изменилось состояние "фермы" роботов - обновить иконку кнопки запуска/останова /// </summary> private void RobotFarmStateChanged(RobotFarm.RobotFarmState state) { var del = new RobotFarm.StateChangedDel(UpdateRobotIconUnsafe); BeginInvoke(del, state); }