Пример #1
0
        private void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            var smb = (SymbolArchiveInfo)grid.rows[rowIndex].ValueObject;

            if (col.PropertyName == smb.Property(p => p.Selected) && e.Button == MouseButtons.Left)
            {
                smb.Selected = !smb.Selected;
                grid.UpdateRow(rowIndex, smb);
                grid.InvalidateCell(col, rowIndex);
                return;
            }

            if (col.PropertyName == smb.Property(p => p.IsFavorite) && e.Button == MouseButtons.Left)
            {
                // добавить иконку в список выбранных либо исключить из этого списка
                smb.IsFavorite = !smb.IsFavorite;
                grid.UpdateRow(rowIndex, smb);
                grid.InvalidateCell(col, rowIndex);

                var gridTickers    = grid.rows.Select(r => ((SymbolArchiveInfo)r.ValueObject));
                var favGridTickers = gridTickers.Where(t => t.IsFavorite).Select(t => t.Symbol).ToArray();
                // сохранить изменения в UserSettings и в DalSpot
                DalSpot.Instance.SetFavoritesList(favGridTickers);
                UserSettings.Instance.FavoriteTickers = DalSpot.Instance.GetTickerNames(true).ToList();
                UserSettings.Instance.SaveSettings();
            }
        }
Пример #2
0
        private void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            if (e.Button != MouseButtons.Left)
            {
                return;
            }

            var sets = (Contract.Entity.Subscription)grid.rows[rowIndex].ValueObject;

            selectedCategory = sets;

            // действие со счетом
            if (col.Tag == contextMenu || col.PropertyName == emptySubs.Property(s => s.Title))
            {
                var pointTop = grid.GetCellCoords(col, rowIndex);
                contextMenu.Show(grid, pointTop);
                return;
            }

            // настроить торговлю
            if (col.PropertyName == emptySubs.Property(s => s.TradeAuto))
            {
                EditTradeSettings();
            }
        }
Пример #3
0
 private void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
 {
     if (e.Button == MouseButtons.Left && e.Clicks > 1)
     {
         BtnEditClick(grid, e);
         return;
     }
 }
Пример #4
0
        private void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            if (e.Button != MouseButtons.Left)
            {
                return;
            }
            var selPerformer = (PerformerStatEx)grid.rows[rowIndex].ValueObject;

            if (col.PropertyName == selPerformer.Property(t => t.IsSubscribed))
            {
                PerformerStatistic.SubscribeOrUnsubscribe(selPerformer, true);
                if (PageTargeted != null)
                {
                    PageTargeted(SubscriptionControl.ActivePage.Subscription);
                }
            }
            else if ((col.PropertyName == selPerformer.Property(t => t.TradeSignalTitle) ||
                      col.PropertyName == selPerformer.Property(t => t.ChartIndex) ||
                      col.PropertyName == selPerformer.Property(t => t.Login)))
            {
                var form = new SubscriberStatisticsForm(selPerformer);
                form.EnterRoomRequested += OnEnterRoomRequested;
                form.pageTargeted       += p => { if (PageTargeted != null)
                                                  {
                                                      PageTargeted(p);
                                                  }
                };
                form.Show(this);
            }
            else if (col.PropertyName == selPerformer.Property(t => t.UserScore))
            {
                //ChangeCriteria();
            }
            else if (col.PropertyName == selPerformer.Property(t => t.Rooms))
            {
                var performer = (PerformerStatEx)grid.rows[rowIndex].ValueObject;
                if (EnterRoomRequested != null && !string.IsNullOrEmpty(performer.Rooms))
                {
                    var rooms = performer.Rooms.Split(new[] { ", " }, StringSplitOptions.None);
                    if (rooms.Length == 1)
                    {
                        EnterRoomRequested(rooms[0]);
                    }
                    else
                    {
                        var form = new ListSelectDialog();
                        form.Initialize(rooms.Select(o => o as object), "Выберите комнату чата:");
                        if (form.ShowDialog(this) == DialogResult.OK)
                        {
                            EnterRoomRequested(form.SelectedItem.ToString());
                        }
                    }
                }
            }
        }
Пример #5
0
        private void RoomFastGridSelectionChanged(MouseEventArgs e, int rowIndex, FastColumn col)
        {
            UpdateUi();
            var room = GetRoom();

            if (room == null)
            {
                return;
            }
            descriptionRichTextBox.Text = room.Description;
        }
Пример #6
0
        private void GridCandlesSelectionChanged(MouseEventArgs e, int rowIndex, FastColumn col)
        {
            buttonCandleChange.Enabled = false;
            buttonCandleRemove.Enabled = false;
            var selectedRows = gridCandles.rows.Where(r => r.Selected).ToList();

            if (selectedRows.Count != 0)
            {
                buttonCandleChange.Enabled = true;
                buttonCandleRemove.Enabled = ((BarSettings)(selectedRows[0].ValueObject)).IsUserDefined;
            }
        }
Пример #7
0
        private void UserHitCell(object sender, MouseEventArgs mouseEventArgs, int rowIndex, FastColumn col)
        {
            if (tabControl.SelectedTab == null)
            {
                return;
            }
            var fastGrid = tabControl.SelectedTab.Controls[0] as FastGrid.FastGrid;

            if (fastGrid == null)
            {
                return;
            }
            // отображение описания
            var rowObject = (FastPropertyGridRow)fastGrid.rows[rowIndex].ValueObject;

            if (rowObject.Property == null)
            {
                return;
            }
            detailTextBox.SelectionFont = Font;
            detailTextBox.Text          = rowObject.Title;
            var attrs = rowObject.Property.GetCustomAttributes(true);
            var descriptionAttribute = attrs.FirstOrDefault(a => a is LocalizedDescriptionAttribute) as DescriptionAttribute;

            if (descriptionAttribute == null)
            {
                descriptionAttribute = attrs.FirstOrDefault(a => a is DescriptionAttribute) as DescriptionAttribute;
            }
            if (descriptionAttribute != null)
            {
                detailTextBox.Text += Environment.NewLine + descriptionAttribute.Description;
            }
            detailTextBox.Select(0, rowObject.Title.Length);
            detailTextBox.SelectionFont = new Font(Font, FontStyle.Bold);
            // открытие редактора
            if (fastGrid.Columns.IndexOf(col) != 1)
            {
                return;
            }
            editingRowIndex = rowIndex;
            editingColumn   = col;
            var editorAttribute = attrs.FirstOrDefault(a => a is EditorAttribute) as EditorAttribute;
            var editorType      = editorAttribute != null
                                 ? ResolveAssemblyType(editorAttribute.EditorTypeName)
                                 : GetStandardEditorType(rowObject.Property.PropertyType);

            if (editorType == null)
            {
                OpenBaseEditor(rowObject.Property, fastGrid, rowIndex, col);
                return;
            }
            OpenSpecialEditor(editorType);
        }
Пример #8
0
        private void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            var sets = (TradeSignalUpdate)grid.rows[rowIndex].ValueObject;

            if (col.PropertyName == sets.Property(p => p.CategoryName) && e.Button == MouseButtons.Left)
            {
                if (SignalUpdateSelected != null)
                {
                    SignalUpdateSelected(sets);
                }
            }
        }
Пример #9
0
        public PopupListBox(object originalValue,
                            int rowIndex, FastColumn column, Type columnType,
                            Action <FastColumn, int, object> onValueUpdated, Control parent)
        {
            this.rowIndex       = rowIndex;
            this.onValueUpdated = onValueUpdated;
            this.parent         = parent;
            this.column         = column;

            // получить допустимые значения
            if (columnType == typeof(bool))
            {
                values = new object[] { false, true }
            }
            ;
            else if (columnType.IsSubclassOf(typeof(Enum)))
            {
                values = Enum.GetValues(columnType).Cast <object>().ToArray();
            }
            if (values == null)
            {
                return;
            }

            // сгенерировать массив строк для указанного типа
            var index = 0;

            foreach (var val in values)
            {
                if (val.Equals(originalValue))
                {
                    selectedIndex = index;
                }
                index++;
                string str;
                if (column.formatter != null)
                {
                    str = column.formatter(val);
                }
                else if (columnType.IsSubclassOf(typeof(Enum)))
                {
                    var resourceKey = "Enum" + columnType.Name + val;
                    str = Localizer.HasKey(resourceKey) ? Localizer.GetString(resourceKey) : val.ToString();
                }
                else
                {
                    str = val.ToString();
                }
                stringValues.Add(str);
            }
        }
Пример #10
0
 private void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
 {
     if (rowIndex < 0 || rowIndex >= grid.rows.Count)
     {
         return;
     }
     if (e.Button == MouseButtons.Left && e.Clicks > 1)
     {
         DialogResult = DialogResult.OK;
         Close();
     }
     //if (grid.rows[rowIndex].Selected)
     //    grid.rows[rowIndex].Selected = false;
 }
Пример #11
0
        // установка минимальной ширины колонки неперед (имеет смысл только для числовых данных),
        // исходя из необходимости хранить данные всего диапазона значений данной колонки;
        // такая установка исключает какие-либо иные установки ширины в дальнейшем;
        // исключена из SetupGrid
        private void DetermineColumnDisplaySettings(FastColumn col, PerformerStatField field, Graphics graphics)
        {
            // определить минимальную ширину колонки из размеров ее заголовка
            var font   = grid.FontHeader ?? grid.Font;
            var textWd = (int)Math.Ceiling(graphics.MeasureString(col.Title, font).Width);

            // добавить ширину значка сортировки
            textWd            += 8;
            col.ColumnMinWidth = textWd;
            // если колонка содержит число, задать ей соответствующую ширину фиксированной
            var prop = typeof(PerformerStatEx).GetProperties().FirstOrDefault(p => p.Name == field.PropertyName);

            if (prop == null)
            {
                return;
            }
            var propType = prop.PropertyType;
            var nulType  = Nullable.GetUnderlyingType(propType);

            propType = nulType ?? propType;
            // для целочисленных
            if (propType == typeof(int) || propType == typeof(short) || propType == typeof(long) ||
                propType == typeof(uint) || propType == typeof(ushort) || propType == typeof(ulong))
            {
                var wd = (int)Math.Ceiling(graphics.MeasureString("-19 999 999", font).Width);
                col.ColumnWidth = Math.Max(wd, col.ColumnMinWidth);
                return;
            }
            // для вещественных
            if (propType == typeof(float) || propType == typeof(double) || propType == typeof(decimal))
            {
                const double number = -9000500.25;
                var          str    = number.ToStringUniformMoneyFormat();
                try
                {
                    if (!string.IsNullOrEmpty(field.FormatString))
                    {
                        str = number.ToString(field.FormatString);
                    }
                }
                catch
                {
                }

                var wd = (int)Math.Ceiling(graphics.MeasureString(str, font).Width);
                col.ColumnWidth = Math.Max(wd, col.ColumnMinWidth);
                //return;
            }
        }
Пример #12
0
        private void UpdateObject(FastColumn col, int rowIndex, object newValue)
        {
            if (tabControl.SelectedTab == null)
            {
                return;
            }
            var fastGrid = tabControl.SelectedTab.Controls[0] as FastGrid.FastGrid;

            if (fastGrid == null)
            {
                return;
            }

            // updating real object
            var rowObject = (FastPropertyGridRow)fastGrid.rows[rowIndex].ValueObject;
            var objProp   = rowObject.Property;

            if (objProp == null)
            {
                return;
            }
            try
            {
                if (selectedObjects != null)
                {
                    foreach (var chartObject in selectedObjects)
                    {
                        objProp.SetValue(chartObject, newValue, null);
                    }
                }
                else if (selectedObject != null)
                {
                    objProp.SetValue(selectedObject, newValue, null);
                }
            }
            catch
            {
            }

            // updating grid object
            RebuildSample();
            var valueProp  = rowObject.GetType().GetProperty(rowObject.Property(p => p.Value));
            var stringProp = rowObject.GetType().GetProperty(rowObject.Property(p => p.StringValue));

            valueProp.SetValue(rowObject, newValue, null);
            stringProp.SetValue(rowObject, GetStringValue(newValue, rowObject.Property), null);
            fastGrid.UpdateRow(rowIndex, rowObject);
            fastGrid.InvalidateRow(rowIndex);
        }
        private void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            if (!col.IsHyperlinkStyleColumn || e.Button != MouseButtons.Left)
            {
                return;
            }

            SubscriptionSelected = col.Title == ColTitleSubscribe;
            SignalMakingSelected = col.Title == ColTitleMakeSingal;
            if (!SubscriptionSelected && !SignalMakingSelected)
            {
                return;
            }
            SelectedCategory = (PaidService)grid.rows[rowIndex].ValueObject;
            DialogResult     = DialogResult.OK;
        }
Пример #14
0
        /// <summary>
        /// Обработчик клика по строке
        /// </summary>
        private void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            if (e.Button == MouseButtons.Left)
            {
                var ticker = (TickerTag)gridAllTickers.rows[rowIndex].ValueObject;
                switch (col.PropertyName)
                {
                case "IsSelected":
                    ticker.IsSelected = !ticker.IsSelected;
                    break;

                case "IsFavorite":
                    ticker.IsFavorite = !ticker.IsFavorite;
                    break;
                }
                gridAllTickers.UpdateRow(rowIndex, ticker);
                gridAllTickers.InvalidateCell(col, rowIndex);
            }
        }
Пример #15
0
        private void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            var tag = (SoundEventTag)grid.rows[rowIndex].ValueObject;

            // если выбрана иконка проигрывателя - играть файл
            if (col.PropertyName == tag.Property(p => p.ImageIndex))
            {
                PlaySound(tag.FileName);
                return;
            }
            if (col.PropertyName == tag.Property(p => p.FileName))
            {
                // предложить выбрать файл
                foreach (ToolStripMenuItem item in menuSound.Items)
                {
                    item.Checked = item.Text == tag.FileName;
                }
                menuSound.Tag = rowIndex;
                menuSound.Show(grid, e.X, e.Y);
                return;
            }
        }
Пример #16
0
        void GridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            var objHotKey = grid.rows[rowIndex].ValueObject as ApplicationMessageBinding;

            if (e.Button != MouseButtons.Left || objHotKey == null)
            {
                return;
            }
            if (col.PropertyName == objHotKey.Property(p => p.Key))
            {
                var dlg = new HotKeySetForm(objHotKey);
                if (dlg.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                grid.UpdateRow(rowIndex, objHotKey);
                grid.InvalidateRow(rowIndex);
            }
            else if (col.PropertyName == objHotKey.Property(p => p.Title))
            {
                txtbxDescription.Text = objHotKey.ActionDescription;
            }
        }
Пример #17
0
        private void GridPaymentOnUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            var gridPayment = sender as FastGrid.FastGrid;

            if (gridPayment == null)
            {
                return;
            }
            if (e.Button != MouseButtons.Left)
            {
                return;
            }
            var transfer = (Transfer)gridPayment.rows[rowIndex].ValueObject;

            // показать подсказку по платежу - перевод на счет, платеж за услугу...
            // if (col.PropertyName == "Comment")
            if (col.PropertyName == transfer.Property(t => t.Comment))
            {
                // подписка?
                if (transfer.Subscription.HasValue)
                {
                    new ServiceDetailForm(transfer.Subscription.Value).ShowDialog();
                    return;
                }
                // перевод на торг. счет?
                // платеж в пользу кошелька?
                if (transfer.BalanceChange.HasValue || transfer.RefWallet.HasValue)
                {
                    BalanceChange bc = null;
                    PlatformUser  us = null;
                    try
                    {
                        TradeSharpWalletManager.Instance.proxy.GetTransferExtendedInfo(
                            CurrentProtectedContext.Instance.MakeProtectedContext(), transfer.Id, out bc, out us);
                    }
                    catch (Exception ex)
                    {
                        Logger.Error("GetTransferExtendedInfo()", ex);
                    }
                    if (bc == null && us == null)
                    {
                        return;
                    }
                    if (UserSettings.Instance.GetAccountEventAction(AccountEventCode.WalletModified) == AccountEventAction.DoNothing)
                    {
                        return;
                    }

                    var text = bc != null
                        ? string.Format("{0} счета {1}, {2} {3}",
                                        BalanceChange.GetSign(bc.ChangeType) > 0? "Пополнение" : "Списание со",
                                        bc.AccountID,
                                        bc.AmountDepo.ToStringUniformMoneyFormat(),
                                        walletCurrency /*bc.Currency*/)
                        : string.Format("Платеж на кошелек пользователя, {0}", us.MakeFullName());

                    bool repeatNotification;
                    NotificationBox.Show(text, "Операция выполнена", out repeatNotification);

                    if (!repeatNotification)
                    {
                        UserSettings.Instance.SwitchAccountEventAction(AccountEventCode.WalletModified);
                        UserSettings.Instance.SaveSettings();
                    }
                }
            }
        }
Пример #18
0
 protected override void Dispose(bool disposing)
 {
     FastColumn.Dispose();
     base.Dispose(disposing);
 }
Пример #19
0
        private void GridDealsOnUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            var order = (MarketOrder)gridDeals.rows[rowIndex].ValueObject;

            if (e.Button == MouseButtons.Left)
            {
                if (col.PropertyName == "Side")
                {
                    // редактировать ордер
                    if (order.ID == 0)
                    {
                        return;
                    }
                    chart.CallShowWindowEditMarketOrder(new MarketOrder {
                        ID = order.ID
                    });
                }

                if (col.PropertyName == "Magic")
                {
                    // если нажать Ctrl и кликнули в связанную группу ордеров -
                    // открыть диалог связывания
                    if ((ModifierKeys & Keys.Control) == Keys.Control)
                    {
                        if (order.Magic >= 0)
                        {
                            var orderIds = gridDeals.GetRowValues <MarketOrder>(false)
                                           .Where(o => o.Magic == order.Magic)
                                           .Select(o => o.ID)
                                           .ToList();

                            chart.CallEditMarketOrders(orderIds);
                            return;
                        }
                    }

                    // пометить ордер
                    if (order.ID == 0 || gridDeals.rows.Count < 2)
                    {
                        return;
                    }
                    var isSelected = order.Magic == BoundSelectedMagic;
                    order.Magic = !isSelected ? BoundSelectedMagic : order.PendingOrderID;
                    gridDeals.UpdateRow(rowIndex, order);
                    gridDeals.InvalidateRow(rowIndex);
                    SetLinkButtonEnabled();
                }
            }
        }
Пример #20
0
 private void GridOnUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
 {
     if (col.PropertyName == "Selected" && e.Button == MouseButtons.Left)
     {
         var obj = (GapsByTicker)(grid.rows[rowIndex].ValueObject);
         obj.Selected = !obj.Selected;
         grid.UpdateRow(rowIndex, obj);
         grid.InvalidateCell(col, rowIndex);
         return;
     }
 }
Пример #21
0
        private void NewsFastGridUserHitCell(object sender, MouseEventArgs mouseEventArgs, int rowIndex, FastColumn col)
        {
            if (rowIndex < 0 || rowIndex >= newsFastGrid.rows.Count)
            {
                return;
            }
            if (col.PropertyName == "MatchCriteria")
            {
                DialogResult rst;
                var          critStr = Dialogs.ShowInputDialog("Критерий сортировки",
                                                               "критерий", true, "Наблюдений: 10, порог: 20 - 80 (%)",
                                                               out rst);
                if (rst != DialogResult.OK)
                {
                    return;
                }
                var numbers = critStr.ToIntArrayUniform();
                if (numbers.Length != 3)
                {
                    return;
                }

                foreach (var item in robotNewsStats)
                {
                    var percent = item.FollowCountNumber;
                    item.MatchCriteria = item.DeltaIndexes.Count >= numbers[0] &&
                                         (percent <= numbers[1] || percent >= numbers[2]);
                }

                newsFastGrid.DataBind(robotNewsStats);
                newsFastGrid.Invalidate();

                return;
            }

            var stat   = (RobotNewsStat)newsFastGrid.rows[rowIndex].ValueObject;
            var series = indexFastChart.series[0];

            //series.Name = stat.Title;
            series.points.Clear();
            for (var i = 0; i < stat.DeltaIndexes.Count; i++)
            {
                series.points.Add(new FastSeriesPoint(i, Math.Abs(stat.DeltaIndexes[i])));
            }
            indexFastChart.Invalidate();
        }
Пример #22
0
        /// <summary>
        /// открытие стандартного редактора в зависимости от типа свойства
        /// </summary>
        private void OpenBaseEditor(PropertyInfo property, FastGrid.FastGrid fastGrid, int rowIndex, FastColumn col)
        {
            var coords    = fastGrid.GetCellCoords(col, rowIndex);
            var blankRow  = new FastPropertyGridRow();
            var cellValue =
                fastGrid.rows[rowIndex].cells[fastGrid.Columns.FindIndex(c => c.PropertyName == blankRow.Property(p => p.Value))].CellValue;
            var propType = property.PropertyType;

            if ((propType == typeof(bool) || propType.IsEnum))
            {
                var pop = new PopupListBox(cellValue, rowIndex, col, propType, UpdateObject, fastGrid);
                pop.ShowOptions(coords.X, coords.Y);
                return;
            }
            if ((propType == typeof(string) || Converter.IsConvertable(propType)))
            {
                // редактор подставляется в FastGrid.PopupTextBox
                try
                {
                    var pop = new PopupTextBox(cellValue, col.ResultedWidth, fastGrid.CellHeight, rowIndex, col, property, null);
                    pop.OnValueUpdated += UpdateObject;
                    pop.Show(fastGrid, coords);
                }
                catch (Exception ex)
                {
                    Logger.Error("FastPropertyGrid.OpenBaseEditor", ex);
                }
                return;
            }
        }
Пример #23
0
        private void GridOnUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            if (col.PropertyName == "Title" && e.Button == MouseButtons.Left)
            {
                // вызвать скрипт сразу или дать перетащить его на график
                var scriptContainer = (ScriptContainer)grid.rows[rowIndex].ValueObject;
                var script          = scriptContainer.script;

                // просто выполнить скрипт
                if (script.ScriptTarget == TerminalScript.TerminalScriptTarget.Терминал)
                {
                    script.ActivateScript(false);
                    //return;
                }
            }
        }
Пример #24
0
 private void GridOnUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
 {
     if (e.Clicks > 1 && e.Button == MouseButtons.Left)
     {
         // вызвать диалог торговли
         var tickerInfo = ((QuoteDataRecord)grid.rows[rowIndex].ValueObject).Title;
         new OrderDlg(tickerInfo).ShowDialog();
     }
 }
Пример #25
0
        private void RoomFastGridUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            if (e.Clicks != 2)
            {
                return;
            }
            var room = GetRoom();

            if (room == null)
            {
                return;
            }
            DialogResult = DialogResult.OK;
        }
Пример #26
0
        private void GridTradeSettingsOnUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            if (e.Button != MouseButtons.Left)
            {
                return;
            }

            var record = (GridImageRecord)gridTradeSettings.rows[rowIndex].ValueObject;

            // показать раздел справки
            if (col.Title == "?")
            {
                HelpManager.Instance.ShowHelp(HelpManager.KeyTradeSettings);
                return;
            }

            // изменить соотв. настройку
            if (col.PropertyName == record.Property(p => p.ImageIndex))
            {
                if (record.BooleanValue.HasValue)
                {
                    record.BooleanValue = !record.BooleanValue.Value;
                    record.setValue(record.BooleanValue.Value);
                }
                gridTradeSettings.UpdateRow(rowIndex, record);
                gridTradeSettings.InvalidateRow(rowIndex);
            }
        }
Пример #27
0
        private void GridEventsUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            if (!col.IsHyperlinkStyleColumn)
            {
                return;
            }
            contextMenuAction.Tag = rowIndex;
            var sets = (AccountEventSettings)gridEvents.rows[rowIndex].ValueObject;

            foreach (ToolStripMenuItem item in contextMenuAction.Items)
            {
                item.Checked = sets.EventAction == (AccountEventAction)item.Tag;
            }
            contextMenuAction.Show(gridEvents, e.X, e.Y);
        }
Пример #28
0
        private void GridAccountOnUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
        {
            if (walletExplicitDetail == null || walletExplicitDetail.IsIncomplete)
            {
                return;
            }
            if (e.Button != MouseButtons.Left)
            {
                return;
            }

            // окно пополнения - снятия
            var accountShared = (AccountShared)gridAccount.rows[rowIndex].ValueObject;

            if (col.Tag != null && col.Tag is string)
            {
                if (col.Tag == ColumnTagDeposit || col.Tag == ColumnTagWithdraw)
                {
                    var deposit = col.Tag == ColumnTagDeposit;
                    var dlg     = new WalletWithdrawForm(walletExplicitDetail.wallet,
                                                         gridAccount.GetRowValues <AccountShared>(false).Select(a => a.Account).ToList(),
                                                         accountShared.Account, deposit);
                    if (dlg.ShowDialog() == DialogResult.OK)
                    {
                        if (dlg.TargetWithdrawal > 0)
                        {
                            WithdrawOrDepositFromAccount(accountShared.Account, dlg.TargetWithdrawal, true);
                        }
                        if (dlg.TargetDespoit > 0)
                        {
                            WithdrawOrDepositFromAccount(accountShared.Account, dlg.TargetDespoit, false);
                        }
                    }
                }
            }

            if (col.Tag != null && col.Tag is string)
            {
                if (col.Tag == ColumnTagChart)
                {
                    new AccountShareHistoryForm(accountShared).ShowDialog();
                }
            }
        }
Пример #29
0
 private void GridCandlesUserHitCell(object sender, MouseEventArgs e, int rowIndex, FastColumn col)
 {
     if (e.Clicks == 2)
     {
         ButtonCandleChangeClick(this, null);
     }
 }
Пример #30
0
        private void GridSubscriptionOnUserHitCell(object sender, MouseEventArgs ea, int rowIndex, FastColumn col)
        {
            var data = (Contract.Entity.Subscription)gridSubscription.rows[rowIndex].ValueObject;

            // показать детализацию услуги
            if (ea.Button == MouseButtons.Left && col.PropertyName == data.Property(p => p.PaidService) && col.Tag != null)
            {
                new ServiceDetailForm(data.Service).ShowDialog();
                return;
            }

            // продлять / не продлять
            if (ea.Button == MouseButtons.Left && col.PropertyName == data.Property(p => p.RenewAuto) && col.Tag != null)
            {
                // показать предупреждение
                var confirm = data.RenewAuto
                                  ? "Отключить автоматическое продление подписки?\n" +
                              DateTime.Now.Date.AddDays(1).ToString("dd MMM") +
                              " в 00:00 подписка будет отключена. Продолжить?"
                                  : "Включить автоматическое продление подписки?\n" +
                              DateTime.Now.Date.AddDays(1).ToString("dd MMM") +
                              " в 00:00 подписка будет возобновлена. Продолжить?";
                if (MessageBox.Show(confirm, "Подтвердите действие", MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Question) == DialogResult.No)
                {
                    return;
                }

                // таки поменять флаг
                data.RenewAuto = !data.RenewAuto;
                UpdateOrRemoveSubscription(data, false);
                return;
            }

            // отписаться
            if (ea.Button == MouseButtons.Left && col.PropertyName == data.Property(p => p.PaidService))
            {
                UpdateOrRemoveSubscription(data, true);
                return;
            }
        }