Esempio n. 1
0
        private void _lv_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            ListViewItem item = _lv.GetObjectAtPoint <ListViewItem>(e.GetPosition(_lv));

            if (item != null)
            {
                TabNavigation.Select(ServerDbs.Mobs, ((MobDropView)item.Content).ID);
            }
        }
Esempio n. 2
0
        public void Init(GDbTabWrapper <TKey, TValue> tab, DisplayableProperty <TKey, TValue> dp)
        {
            _tab = tab;
            Grid grid = tab.PropertiesGrid.Children.OfType <Grid>().Last();

            Label label = new Label();

            label.Content = "Mob skills";
            label.SetValue(TextBlock.ForegroundProperty, Application.Current.Resources["TextForeground"] as Brush);
            label.FontStyle = FontStyles.Italic;
            label.Padding   = new Thickness(0);
            label.Margin    = new Thickness(3);
            label.SetValue(Grid.ColumnProperty, 2);

            _lv = new RangeListView();
            _lv.SetValue(TextSearch.TextPathProperty, "ID");
            _lv.SetValue(WpfUtils.IsGridSortableProperty, true);
            _lv.SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, ScrollBarVisibility.Disabled);
            _lv.SetValue(Grid.RowProperty, _row);
            _lv.SetValue(Grid.ColumnProperty, 2);
            _lv.FocusVisualStyle = null;
            _lv.Margin           = new Thickness(3);
            _lv.BorderThickness  = new Thickness(1);
            _lv.Background       = Application.Current.Resources["TabItemBackground"] as Brush;

            ListViewDataTemplateHelper.GenerateListViewTemplateNew(_lv, new ListViewDataTemplateHelper.GeneralColumnInfo[] {
                new ListViewDataTemplateHelper.GeneralColumnInfo {
                    Header = "Skill", DisplayExpression = "Name", SearchGetAccessor = "Name", ToolTipBinding = "SkillId", FixedWidth = 60, TextWrapping = TextWrapping.Wrap
                },
                new ListViewDataTemplateHelper.GeneralColumnInfo {
                    Header = "Condition", DisplayExpression = "Condition", SearchGetAccessor = "Condition", ToolTipBinding = "Condition", IsFill = true, TextAlignment = TextAlignment.Left, TextWrapping = TextWrapping.Wrap
                }
            }, new DefaultListViewComparer <MobSkillView>(), new string[] { "Default", "{DynamicResource TextForeground}" });

            _lv.ContextMenu       = new ContextMenu();
            _lv.MouseDoubleClick += new MouseButtonEventHandler(_lv_MouseDoubleClick);

            MenuItem miSelectSkills = new MenuItem {
                Header = "Select skill", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("arrowdown.png")
                }
            };
            MenuItem miSelectMobSkills = new MenuItem {
                Header = "Select mob skill", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("arrowdown.png")
                }
            };
            MenuItem miRemoveDrop = new MenuItem {
                Header = "Remove mob skill", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("delete.png")
                }, InputGestureText = "Del"
            };
            MenuItem miCopy = new MenuItem {
                Header = "Copy", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("copy.png")
                }, InputGestureText = "Ctrl-C"
            };
            MenuItem miPaste = new MenuItem {
                Header = "Paste", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("paste.png")
                }, InputGestureText = "Ctrl-V"
            };

            ApplicationShortcut.Link(ApplicationShortcut.Copy, () => _miCopy_Click(null, null), _lv);
            ApplicationShortcut.Link(ApplicationShortcut.Paste, () => _miPaste_Click(null, null), _lv);
            ApplicationShortcut.Link(ApplicationShortcut.Delete, () => _miRemoveDrop_Click(null, null), _lv);

            _lv.ContextMenu.Items.Add(miSelectSkills);
            _lv.ContextMenu.Items.Add(miSelectMobSkills);
            _lv.ContextMenu.Items.Add(miRemoveDrop);
            _lv.ContextMenu.Items.Add(new Separator());
            _lv.ContextMenu.Items.Add(miCopy);
            _lv.ContextMenu.Items.Add(miPaste);

            miSelectSkills.Click    += new RoutedEventHandler(_miSelect_Click);
            miSelectMobSkills.Click += new RoutedEventHandler(_miSelect2_Click);
            miRemoveDrop.Click      += new RoutedEventHandler(_miRemoveDrop_Click);
            miCopy.Click            += new RoutedEventHandler(_miCopy_Click);
            miPaste.Click           += new RoutedEventHandler(_miPaste_Click);

            _lv.MouseRightButtonUp += (MouseButtonEventHandler)((sender, e) => {
                try {
                    bool hasItems = _lv.GetObjectAtPoint <ListViewItem>(e.GetPosition(_lv)) != null;
                    _lv.ContextMenu.Items.Cast <UIElement>().Take(5).ToList().ForEach(p => p.Visibility = hasItems ? Visibility.Visible : Visibility.Collapsed);
                }
                catch (Exception err) {
                    ErrorHandler.HandleException(err);
                }
            });

            _lv.PreviewMouseDown += delegate {
                Keyboard.Focus(_lv);
                //_lv.Focus();
            };

            dp.AddUpdateAction(new Action <TValue>(_update));

            tab.ProjectDatabase.Commands.CommandIndexChanged += _commands_CommandIndexChanged;
            grid.Children.Add(label);
            grid.Children.Add(_lv);

            dp.AddResetField(_lv);
        }
Esempio n. 3
0
        public void Init(GDbTabWrapper <TKey, TValue> tab, DisplayableProperty <TKey, TValue> dp)
        {
            _tab = tab;
            Table <int, ReadableTuple <int> > btable = _tab.ProjectDatabase.GetMetaTable <int>(ServerDbs.Mobs);

            _queryThread = new QueryThread <TKey, TValue>(btable, this);
            Grid grid = new Grid();

            WpfUtilities.SetGridPosition(grid, _row, _rSpan, _col, _cSpan);

            grid.Dispatcher.ShutdownStarted += delegate {
                _queryThread.Stop();
            };
            _queryThread.Start();

            grid.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(-1, GridUnitType.Auto)
            });
            grid.RowDefinitions.Add(new RowDefinition());

            Label label = new Label();

            label.Content   = "Dropped by";
            label.FontStyle = FontStyles.Italic;
            label.Padding   = new Thickness(0);
            label.Margin    = new Thickness(3);
            label.SetValue(TextBlock.ForegroundProperty, Application.Current.Resources["TextForeground"] as Brush);

            _lv = new RangeListView();
            _lv.SetValue(TextSearch.TextPathProperty, "ID");
            _lv.SetValue(WpfUtils.IsGridSortableProperty, true);
            _lv.SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, ScrollBarVisibility.Disabled);
            _lv.SetValue(Grid.RowProperty, _row);
            _lv.FocusVisualStyle = null;
            _lv.Margin           = new Thickness(3);
            _lv.BorderThickness  = new Thickness(1);
            _lv.Background       = Application.Current.Resources["TabItemBackground"] as Brush;

            ListViewDataTemplateHelper.GenerateListViewTemplateNew(_lv, new ListViewDataTemplateHelper.GeneralColumnInfo[] {
                new ListViewDataTemplateHelper.GeneralColumnInfo {
                    Header = ServerMobAttributes.Id.DisplayName, DisplayExpression = "ID", SearchGetAccessor = "ID", FixedWidth = 60, TextAlignment = TextAlignment.Right, ToolTipBinding = "ID"
                },
                new ListViewDataTemplateHelper.RangeColumnInfo {
                    Header = ServerMobAttributes.KRoName.DisplayName, DisplayExpression = "Name", SearchGetAccessor = "Name", IsFill = true, ToolTipBinding = "Name", TextWrapping = TextWrapping.Wrap, MinWidth = 40
                },
                new ListViewDataTemplateHelper.GeneralColumnInfo {
                    Header = "Drop %", DisplayExpression = "Drop", SearchGetAccessor = "DropOriginal", ToolTipBinding = "DropOriginal", FixedWidth = 60, TextAlignment = TextAlignment.Right
                },
                new ListViewDataTemplateHelper.GeneralColumnInfo {
                    Header = "Type", DisplayExpression = "MVP", SearchGetAccessor = "MVP", FixedWidth = 45, TextAlignment = TextAlignment.Center
                },
            }, new DefaultListViewComparer <MobDropView>(), new string[] { "Default", "{DynamicResource TextForeground}", "IsMvp", "{DynamicResource CellBrushMvp}" });

            _lv.ContextMenu       = new ContextMenu();
            _lv.MouseDoubleClick += new MouseButtonEventHandler(_lv_MouseDoubleClick);

            MenuItem miSelect = new MenuItem {
                Header = "Select", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("arrowdown.png")
                }
            };
            MenuItem miEditDrop = new MenuItem {
                Header = "Edit drop chance", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("properties.png")
                }
            };
            MenuItem miRemoveDrop = new MenuItem {
                Header = "Remove", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("delete.png")
                }
            };
            MenuItem miAddDrop = new MenuItem {
                Header = "Add as normal drop", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("add.png")
                }
            };
            MenuItem miAddMvpDrop = new MenuItem {
                Header = "Add as MVP drop", Icon = new Image {
                    Source = ApplicationManager.PreloadResourceImage("add.png")
                }
            };

            _lv.ContextMenu.Items.Add(miSelect);
            _lv.ContextMenu.Items.Add(miEditDrop);
            _lv.ContextMenu.Items.Add(miRemoveDrop);
            _lv.ContextMenu.Items.Add(new Separator());
            _lv.ContextMenu.Items.Add(miAddDrop);
            _lv.ContextMenu.Items.Add(miAddMvpDrop);

            miSelect.Click     += new RoutedEventHandler(_miSelect_Click);
            miEditDrop.Click   += new RoutedEventHandler(_miEditDrop_Click);
            miRemoveDrop.Click += new RoutedEventHandler(_miRemoveDrop_Click);
            miAddDrop.Click    += (a, e) => _miAddDrop_Click(false);
            miAddMvpDrop.Click += (a, e) => _miAddDrop_Click(true);

            dp.AddUpdateAction(new Action <TValue>(_update));

            grid.Children.Add(label);
            grid.Children.Add(_lv);
            tab.ProjectDatabase.Commands.CommandIndexChanged += _commands_CommandIndexChanged;
            tab.PropertiesGrid.Children.Add(grid);
            dp.AddResetField(_lv);

            _lv.MouseRightButtonUp += (MouseButtonEventHandler)((sender, e) => {
                try {
                    bool hasItems = _lv.GetObjectAtPoint <ListViewItem>(e.GetPosition(_lv)) != null;
                    _lv.ContextMenu.Items.Cast <UIElement>().Take(4).ToList().ForEach(p => p.Visibility = hasItems ? Visibility.Visible : Visibility.Collapsed);
                }
                catch (Exception err) {
                    ErrorHandler.HandleException(err);
                }
            });
        }