Пример #1
0
        private void ShowErrorWin(string error)
        {
            ErrorWin errWin = new ErrorWin();

            errWin.LabelError.Text = error;
            CUtilWin.ShowDialogOnCenter(errWin, this);
        }
        public void OpenViewChildOnStart(string typeOfWin)
        {
            //find type of view model for this type of win
            Type typeViewModel = _dictKTypeWindowVTypeViewModelChild.
                                 FirstOrDefault(a => a.Key.ToString() == typeOfWin).Value;

            if (typeViewModel == null)
            {
                return;
            }


            //than find view model instance
            BaseViewModelChildWin viewMod = _dictKViewModelVView.FirstOrDefault(a => a.Key.GetType() == typeViewModel).Key;

            Type type = Type.GetType(typeOfWin + ", Terminal");

            //than create win
            _dictKViewModelVView[viewMod] = (Window)Activator.CreateInstance(type);


            //
            viewMod.RegisterWindow(_dictKViewModelVView[viewMod]);

            Window win = _dictKViewModelVView[viewMod];

            CUtilWin.ShowActivated(ref win);


            win.Closed += new EventHandler(OnChildWindowClosed);
            //  return win;
        }
        /// <summary>
        /// If we delete ControlMarket we need to shift
        /// elements for making correct order.
        /// For each elements with StockNum more than
        /// deleted	do
        /// 1) Reduce StockNum
        /// 2) Set correct column.
        ///
        /// Note.
        /// 1) ControlMarket's column is even (0,2,4),
        /// GridSplitter is odd (1,3,5).
        /// 2)ControlMarket was previously removed from
        /// _lstControlMarket in DeleteControlMarket method
        ///
        /// Call from
        /// DeleteExistingStock
        ///  </summary>
        public void ShiftStockNumber(int stockNumDeleted)
        {
            MainWindow mw = (MainWindow)CUtilWin.FindWindow <MainWindow>();

            //note ! all ControlMarket have view model

            //shift ControlMarket StockNum and column
            _lstControlMarket.ForEach(controlMarket =>
            {
                if (controlMarket.StockNum > stockNumDeleted)
                {
                    controlMarket.StockNum--;
                    Grid.SetColumn(controlMarket, 2 * controlMarket.StockNum);    //even column (0,2,4, etc)
                }
            }
                                      );

            //shift GridSplitter StockNum and column
            foreach (var child in mw.GridMarket.Children)
            {
                if (child is GridSplitter)
                {
                    GridSplitter gs = (GridSplitter)child;
                    {
                        if ((int)gs.Tag > stockNumDeleted)
                        {
                            int newStockNum = ((int)gs.Tag - 1);
                            gs.Tag = newStockNum;
                            Grid.SetColumn(gs, 2 * newStockNum + 1);                       //odd column (1,3,5, etc)
                        }
                    }
                }
            }
        }
        private void SubscribeMainWinEvents(ref ControlMarket controlMarket)
        {
            MainWindow mw = (MainWindow)CUtilWin.FindWindow <MainWindow>();

            controlMarket.ButtonClose.PreviewMouseUp             += mw.ControlStock_ButtonClose_PreviewMouseUp;
            controlMarket.ButtonMaximizeNormalize.PreviewMouseUp += mw.ControlStock_ButtonMaximizeNomalize_PreviewMouseUp;
            controlMarket.ButtonMinimize.PreviewMouseUp          += mw.ControlStock_ButtonMinimize_PreviewMouseUp;
            controlMarket.ButtonMaximizeNormalize.PreviewMouseUp += controlMarket.ButtonMaximizeNmormilize_PreviewMouseUp;
        }
 private void ShowVersionWindow()
 {
     if (_windowVersion == null)
     {
         _windowVersion = new VersionWindow();
         CUtilWin.ShowDialogOnCenter(_windowVersion, this);
         _windowVersion = null;
     }
 }
        void DatagridTickers_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            try
            {
                var dg = (DataGrid)sender;



                int conNum = (int)dg.Tag;

                int rowNum = CUtilWPF.GetDataGridClickedRowNum(e);

                CTIckerData tickerData = (CTIckerData)dg.Items[rowNum];
                string      ticker     = tickerData.TickerName;



                if (KernelTerminal.ViewModelDispatcher.IsMarketViewModelExist(ticker))
                {
                    AllertWindow win = new AllertWindow("Невозможно выбрать инструмент. Стакан с таким инструментом уже существует.");


                    win.Topmost = true;

                    Window wn = (Window)win;


                    // CUtilWin.ShowActivated(ref wn);



                    Window windowRoot = (Window)CUtilWin.FindWindow <AvailableTickersWindow>();
                    CUtilWin.ShowDialogOnCenter(wn, windowRoot);



                    //CUtilWin.ShowDialogOnCenter(ref wn, _);

                    //win.Show();

                    return;
                }

                //note put to method marketViewModel as parameters
                MarketViewModel currMarketViewModel = _winAvailTicks.CurrentMarketViewModel;
                KernelTerminal.ChangeMarketInstrument(conNum, tickerData, currMarketViewModel);


                // (new Task(KernelTerminal.TaskSaveVisualConf)).Start();

                _winAvailTicks.Close();
            }
            catch (Exception exc)
            {
                Error("DatagridTickers_PreviewMouseDown", exc);
            }
        }
Пример #7
0
 public void CallbackSuccess(string msg)
 {
     _dispatcher.BeginInvoke(new Action(() =>
     {
         SuccessWin succWin            = new SuccessWin();
         succWin.TextBlockMessage.Text = msg;
         CUtilWin.ShowDialogOnCenter(succWin, this);
         succWin.Activate();
         Close();
     }));
 }
        private void ButtonMarketSettings_Click(object sender, RoutedEventArgs e)
        {
            MarketSettingsWindow msw = new MarketSettingsWindow(StockNum);


            msw.DataContext = this.DataContext;
            msw.SetComboboxTimeFrame(ControlClustersInstance.TimeFrame);


            _mainWindow.SuspendTopMost(msw);
            CUtilWin.ShowDialogOnCenter(windowToShow: msw, windowRoot: _mainWindow);
        }
Пример #9
0
        private void BindAlarm()
        {
            MainWindow mainWindows = (MainWindow)CUtilWin.FindWindowOrNull <MainWindow>();

            if (mainWindows == null || mainWindows.ComboBoxAlarm == null)
            {
                return;
            }

            mainWindows.ComboBoxAlarm.ItemsSource = _alarmer.AlarmList;
            _alarmer.AlarmList.CollectionChanged +=
                new NotifyCollectionChangedEventHandler(mainWindows.AlarmList_CollectionChanged);
        }
Пример #10
0
        private void ButtonSettings_Click(object sender, RoutedEventArgs e)
        {
            SettingsWindow settingsWin = new SettingsWindow();

            //_dataSource.VMAccount.User = "******";

            settingsWin.DataContext = _dataSource.VMAccount;
            //as it is disable bind password directly by Microsoft
            settingsWin.PasswordBoxPasswod.Password = _dataSource.VMAccount.Password;

            Window winSet = (Window)settingsWin;



            CUtilWin.ShowDialogOnCenter(winSet, this);
        }
Пример #11
0
        private void MenuItem_Click_AddInstrument(object sender, RoutedEventArgs e)
        {
            AddInstrumentWindow instrWindow = new AddInstrumentWindow();


            int ind = DataGridInstruments.SelectedIndex;

            if (ind > -1)
            {
                VMInstrument instrData = (VMInstrument)DataGridInstruments.Items[ind];
                instrWindow.ComboboxServerDB.ItemsSource = _dataSource.CollVMDBCon;

                if (instrData.ServerId > 0)
                {
                    instrWindow.ComboboxServerDB.SelectedIndex = instrData.ServerId - 1;
                }

                instrWindow.ComboboxStockExch.ItemsSource = _dataSource.CollVMStockExchId;


                int i = -1;


                foreach (var el in _dataSource.CollVMStockExchId)
                {
                    i++;
                    if (el.StockExchId == instrData.StockExchId)
                    {
                        break;
                    }
                }


                instrWindow.ComboboxStockExch.SelectedIndex = i;


                //     System.Threading.Thread.Sleep(0);
            }
            else
            {
                instrWindow.ComboboxServerDB.SelectedIndex = 0;
            }



            CUtilWin.ShowDialogOnCenter(instrWindow, this);
        }
Пример #12
0
        public ConnectionsWindow()
        {
            InitializeComponent();

            GUIDispatcher = Dispatcher.CurrentDispatcher;

            ConnectionTable.DelOpenAuthWindow = OpenAuthWindow;
            this.WindowStyle = System.Windows.WindowStyle.ToolWindow;

            var win = CUtilWin.FindWindow <MainWindow>();

            if (win != null)
            {
                this.Left = win.Left + 20;
                this.Top  = win.Top + 10;
            }
        }
Пример #13
0
        private void MenuItem_Click_ChangeProcFeeDealing(object sender, RoutedEventArgs e)
        {
            int ind = DataGridLimits.SelectedIndex;

            if (ind < 0)
            {
                return;
            }


            VMTradersLimits vmTrdLim = (VMTradersLimits)DataGridLimits.Items[ind];

            ProcFeeDealingWindow win = new ProcFeeDealingWindow();

            win.DataContext = vmTrdLim;
            CUtilWin.ShowDialogOnCenter(win, this);
        }
Пример #14
0
        private void DeterimenOneButtonStatus <TWindow> (Button button)  where TWindow : Window
        {
            bool bIsOpened = false;

            GUIDispMainWindow.Invoke(new Action(() =>
            {
                bIsOpened = CUtilWin.IsWindowOpened <TWindow>();
            }
                                                ));



            if (bIsOpened)
            {
                button.Background = Brushes.Green;
            }
        }
Пример #15
0
        private void MenuItem_Click_ChangeSessionLimit(object sender, RoutedEventArgs e)
        {
            int ind = DataGridLimits.SelectedIndex;

            if (ind < 0)
            {
                return;
            }

            //Commands.CmdShowAddMoneyDialog.Execute(null, this);
            //VM avMoney = (VMAvailableMoney)DataGridLimits.Items[ind];
            VMTradersLimits vmTrdLim = (VMTradersLimits)DataGridLimits.Items[ind];

            MaxLossVMWindow win = new MaxLossVMWindow();

            win.DataContext = vmTrdLim;
            CUtilWin.ShowDialogOnCenter(win, this);
        }
Пример #16
0
        private void OpenAddWithDrawWindow(EnmAccountOperations op, string title)
        {
            int ind = DataGridAvailableMoney.SelectedIndex;

            if (ind < 0)
            {
                return;
            }


            VMAvailableMoney vm = (VMAvailableMoney)DataGridAvailableMoney.Items[ind];

            AddWithdrawMoneyWindow win = new AddWithdrawMoneyWindow(op);

            win.DataContext = vm;
            win.Title       = title;

            CUtilWin.ShowDialogOnCenter(win, this);
        }
Пример #17
0
        public void OpenAuthWindow(int connId, string stockName)
        {
            _kernelTerminal = CKernelTerminal.GetKernelTerminalInstance();
            AuthWindow aw = (AuthWindow)_kernelTerminal.ViewModelDispatcher.OpenChildWindow <AuthWindow>(false);

            aw.Left = this.Left + 30;
            aw.Top  = this.Top + 30;

            aw.SetParams(connId, stockName);
            Window win = (Window)aw;

            CUtilWin.ShowActivated(ref win);

            /*
             * AuthWindow aw = (AuthWindow) _kernelTerminal.ViewModelDispatcher.GetViewChild<AuthWindow>();
             * aw.SetParams(connId, stockName);
             * aw.Closed += new EventHandler(aw_Closed);
             * aw.ShowDialog();
             */
        }
        /// <summary>
        /// Get (creates if not exist) child window and
        /// show it activated (if need)
        ///
        ///
        ///Call from
        ///
        ///KernelTerminal.OpenChildWindow
        ///MarketViewModel.ShowChangeInstrumentWindow
        ///ConnectionWindow.OpenAuthWindow
        ///VmWindow.OpenDetailedVM
        /// </summary>
        public Window OpenChildWindow <TChildWindow>(bool showAtStartup = true)
            where TChildWindow : Window
        {
            try
            {
                Window win = GetViewChildInstance <TChildWindow>();

                if (showAtStartup)
                {
                    CUtilWin.ShowActivated(ref win);
                }


                win.Closed += new EventHandler(OnChildWindowClosed);
                return(win);
            }
            catch (Exception e)
            {
                Error("OpenchildWindow", e);
                return(null);
            }
        }
        private void ButtonTerminalSettings_Click(object sender, RoutedEventArgs e)
        {
            Window winSet = (Window) new SettingsTerminalWindow();


            CViewModelDispatcher.BindTerminalViewModel(winSet);



            Point pnt = ButtonTerminalSettings.TransformToAncestor(_mainWindow).Transform(new Point(0, 0));

            double xOffset = 10;
            double yOffset = 30;

            winSet.Left = _mainWindow.Left + pnt.X - winSet.Width - xOffset;
            winSet.Top  = _mainWindow.Top + pnt.Y + yOffset;

            //winSet.Left =  thi

            _mainWindow.SuspendTopMost(winSet);

            // winSet.ShowDialog();
            CUtilWin.ShowDialogOnCenter(winSet, _mainWindow);
        }
Пример #20
0
        private void ShowWindowKillTerminal()
        {
            WindowKillTerminal win = new WindowKillTerminal(TaskStartInstall);

            CUtilWin.ShowDialogOnCenter(win, this);
        }
Пример #21
0
        private void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            try
            {
                //Only this window key pressing

                if (e.Key == Key.F1)
                {
                    ShowVersionWindow();
                    return;
                }
                if (e.Key == Key.F2)
                {
                    HotKeyWindow hkw = new HotKeyWindow();
                    CUtilWin.ShowDialogOnCenter(hkw, this);
                }


                if (e.Key == Key.RightCtrl || e.Key == Key.LeftCtrl)
                {
                    //If in stock zone do close only by instrument end get out.
                    //Else close all instrument - do send data closeall positions
                    //and cancell all orders commands

                    foreach (var controlMarket in KernelTerminal.ViewDispatcher.LstControlMarket)
                    {
                        if (controlMarket.ControlStockInstance.IsInStockArea)
                        {
                            CloseInstrumentPositions(controlMarket);
                            CancellInstrOrder(controlMarket);
                            return;
                        }
                    }

                    //not in ControlStock - do cancell and close all
                    CloseAllPositions();
                    CancellAllOrders();
                    return;
                }
                if (e.Key == Key.Space)
                {
                    //All the same as for close (see above)
                    foreach (var controlMarket in KernelTerminal.ViewDispatcher.LstControlMarket)
                    {
                        if (controlMarket.ControlStockInstance.IsInStockArea)
                        {
                            CancellInstrOrder(controlMarket);
                            return;
                        }
                    }
                    CancellAllOrders();
                    return;
                }



                /** Cause on child control events not triggers (unknown reason) do it forcely.
                 *
                 */

                foreach (var v in KernelTerminal.ViewDispatcher.LstControlMarket)
                {
                    v.ControlMarket_PreviewKeyDown(sender, e);
                }
            }
            catch (Exception exc)
            {
                Error("MainWindow.MainWindow_PreviewKeyDown", exc);
            }
        }