示例#1
0
        public List <TagViewModel> GetCommonTags()
        {
            if (SelectedEntries == null || SelectedEntries.Count() == 0)
            {
                return(new List <TagViewModel>());
            }

            var images = GetAllImages(SelectedEntries);

            if (images.Count() == 0)
            {
                return(new List <TagViewModel>());
            }

            var firstEntry = images.First();
            IEnumerable <TagViewModel> temp = Chains.Where(a => a.ImageID == firstEntry.ID).Select(a => a.Tag).ToList();

            foreach (var image in images)
            {
                IEnumerable <TagViewModel> tags = Chains.Where(a => a.ImageID == image.ID).Select(a => a.Tag).ToList();
                temp = temp.Intersect(tags).ToList();
            }

            return(temp.ToList());
        }
 public void RemoveFromSelectedEntries(IEnumerable <EntryViewModel> entries)
 {
     foreach (var entry in entries)
     {
         SelectedEntries.Remove(entry);
     }
 }
示例#3
0
        private void RemoveEntry()
        {
            if (LoadedFile == null || SelectedCategory == null)
            {
                throw new InvalidOperationException("Cannot remove entry from unloaded file or null category!");
            }

            if (SelectedEntries.Count > 0)
            {
                // Get the index of the currently selected ones - presumably the first.
                int index = SelectedCategory.Entries.IndexOf(SelectedEntries[0]);

                // Remove all selected
                foreach (var entry in SelectedEntries)
                {
                    SelectedCategory.Entries.Remove(entry);
                }

                SelectedEntries.Clear();

                // It shifted us up by one or more, so if still in valid range, use it, otherwise we subtract one (ie: it was the last one)
                if (index >= SelectedCategory.Entries.Count)
                {
                    index--;
                }

                if (index >= 0)
                {
                    SelectedEntries.Add(SelectedCategory.Entries[index]);
                }
            }
        }
        /*****************************************************************************
        *  EVENT:  dataGridView1_ContextMenuItemClick
        *  Description:
        *  Parameters:
        *****************************************************************************/
        private void dataGridView1_ContextMenuItemClick(object sender, EventArgs e)
        {
            if (((MenuItem)sender).Index == (int)ContextMenuEntry.CHART)
            {
                if (SelectedEntries.Count() > 1)
                {
                    SendMessage(Application.OpenForms[0].Handle, WM_MULTIROWCLICK, IntPtr.Zero, this.Handle);
                }
                else
                {
                    SendMessage(Application.OpenForms[0].Handle, WM_CELLCLICK, (IntPtr)((int)dataGridView1.Rows[CurrentSelectedRow].Cells[0].Value - 1), this.Handle);
                }
            }

            if (((MenuItem)sender).Index == (int)ContextMenuEntry.WATCHLIST)
            {
                if (SelectedEntries.Count() > 1)
                {
                    SendMessage(Application.OpenForms[0].Handle, WM_MULTI_ADDWATCHLIST, IntPtr.Zero, this.Handle);
                }
                else
                {
                    SendMessage(Application.OpenForms[0].Handle, WM_ADDWATCHLIST, (IntPtr)((int)dataGridView1.Rows[CurrentSelectedRow].Cells[0].Value - 1), this.Handle);
                }
            }
        }
示例#5
0
        /// <summary>
        /// Updates all messages in the list view to show only those meeting the
        /// selection criteria.
        /// </summary>
        private void RefreshMessages()
        {
            //Check if we have a task
            if (Task == null)
            {
                return;
            }

            //Check if we have any session selected
            if (filterSessionCombobox.SelectedIndex == -1)
            {
                return;
            }

            Application.UseWaitCursor = true;
            LogSinkBase sink = Task.Log[filterSessionCombobox.SelectedIndex];

            EntryCache.Clear();
            SelectedEntries.Clear();
            EntryCache.AddRange(sink.Where(MeetsCriteria));

            //Set the list view size and update all the control states
            log.VirtualListSize = EntryCache.Count;
            log.Refresh();
            EnableButtons();
            Application.UseWaitCursor = false;
        }
示例#6
0
 public void Unselect(IEnumerable <EntryViewModel> enumerable)
 {
     foreach (var entry in enumerable)
     {
         SelectedEntries.Remove(entry);
     }
     SelectedEntityTags = GetCommonTags();
 }
示例#7
0
        private void MoveDown()
        {
            foreach (var row in SelectedEntries.Reverse())
            {
                var index = Fields.IndexOf(row);

                Fields.Move(index, index + 1);
            }
        }
示例#8
0
        private void tbbDate_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var selected = SelectedEntries.ToList();

            if (selected.Count < 1)
            {
                return;
            }
            DoEditDates(selected);
        }
        public void BuildContextMenus_Contents()
        {
            var menulist = new ObservableCollection <System.Windows.Controls.Control>();

            var menuitem = new System.Windows.Controls.MenuItem()
            {
                Header           = "開く",
                Command          = OpenImageByDefaultProgramCommand,
                CommandParameter = SelectedEntries.Where(x => x is PageViewModel).Cast <PageViewModel>()
            };

            menulist.Add(menuitem);

            menuitem = new System.Windows.Controls.MenuItem()
            {
                Header           = "スクラップ",
                Command          = ScrapPagesCommand,
                CommandParameter = SelectedEntries.Where(x => x is PageViewModel).Cast <PageViewModel>()
            };
            menulist.Add(menuitem);

            var manageMenu = new System.Windows.Controls.MenuItem()
            {
                Header = "管理"
            };

            menuitem = new System.Windows.Controls.MenuItem()
            {
                Header  = "サムネイル再作成",
                Command = RemakeThumbnailOfPageCommand
            };
            manageMenu.Items.Add(menuitem);

            menuitem = new System.Windows.Controls.MenuItem()
            {
                Header           = "削除",
                Command          = RemovePageCommand,
                CommandParameter = SelectedEntries.Where(x => x is PageViewModel).Cast <PageViewModel>()
            };
            manageMenu.Items.Add(menuitem);
            menulist.Add(manageMenu);

            menulist.Add(new System.Windows.Controls.Separator());

            menuitem = new System.Windows.Controls.MenuItem()
            {
                Header = "Extra",
            };
            menuitem.SetValue(RegionManager.RegionNameProperty, "ExtraPage");
            SelectManager.SelectedItems       = SelectedEntries.Where(x => x is PageViewModel).Cast <object>().ToObservableCollection();
            SelectManager.ElementSelectedType = typeof(PageViewModel);
            menulist.Add(menuitem);

            ContentsContextMenuItems = menulist;
        }
示例#10
0
 private void log_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
 {
     if (e.IsSelected)
     {
         SelectedEntries.Add(e.ItemIndex, EntryCache[e.ItemIndex]);
     }
     else
     {
         SelectedEntries.Remove(e.ItemIndex);
     }
 }
        private void SwitchAddress(string address)
        {
            var hosts = SelectedEntries.Select(x => x.HostEntry.Hostname).Distinct();

            var entriesToAdd = hosts
                               .Where(h => !hostEntryModels.Any(entry => entry.HostEntry.Hostname == h &&
                                                                entry.HostEntry.Address == address))
                               .Select(host =>
            {
                return(new HostEntry(host, address, null));
            })
                               .ToList();

            if (entriesToAdd.Count > 0)
            {
                module.ServiceProxy.AddEntries(entriesToAdd);
            }

            var entriesToEnableBefore = hosts
                                        .Select(host => hostEntryModels.FirstOrDefault(m => m.HostEntry.Hostname == host && m.HostEntry.Address == address))
                                        .Where(m => m != null)
                                        .Select(m => m.HostEntry)
                                        .ToList();

            var entriesToEnableAfter = entriesToEnableBefore
                                       .Select(e =>
            {
                var newEntry     = e.Clone();
                newEntry.Enabled = true;
                return(newEntry);
            }).ToList();

            var entriesToDisableBefore = hostEntryModels
                                         .Where(m => hosts.Any(h => h == m.HostEntry.Hostname) &&
                                                !entriesToEnableBefore.Contains(m.HostEntry))
                                         .Select(m => m.HostEntry)
                                         .ToList();

            var entriesToDisableAfter = entriesToDisableBefore
                                        .Select(e =>
            {
                var newEntry     = e.Clone();
                newEntry.Enabled = false;
                return(newEntry);
            }).ToList();

            this.module.ServiceProxy.EditEntries(
                entriesToDisableBefore.Concat(entriesToEnableBefore).ToList(),
                entriesToDisableAfter.Concat(entriesToEnableAfter).ToList()
                );

            this.UpdateData();
        }
示例#12
0
        private IEnumerator <object> AddGroupTask()
        {
            using (new ControlWaitCursor(this))
                using (var dialog = new AddGroupDialog()) {
                    long categoryID = 0;
                    yield return(Program.Database.ExecuteScalar <long>(
                                     "SELECT categoryID FROM evedata.categories WHERE name = ?",
                                     "Entity"
                                     ).Bind(() => categoryID));

                    int groupID = (from se in SelectedEntries
                                   where se.GroupID.HasValue
                                   select se.GroupID.Value).FirstOrDefault();

                    yield return(dialog.PopulateList(categoryID, groupID));

                    if (dialog.ShowDialog() != DialogResult.OK)
                    {
                        yield break;
                    }

                    var newGroup = dialog.Group.SelectedItem as GroupEntry;

                    int priority = 0;
                    if (SelectedEntries.Count() > 0)
                    {
                        priority = SelectedEntries.Max((pe) => pe.Priority);
                    }

                    using (var xact = Program.Database.CreateTransaction()) {
                        yield return(xact);

                        yield return(Program.Database.ExecuteSQL(
                                         "DELETE FROM enemyPriorities WHERE groupID = ? and typeID IS NULL",
                                         newGroup.ID
                                         ));

                        yield return(Program.Database.ExecuteSQL(
                                         "REPLACE INTO enemyPriorities (groupID, priority) VALUES (?, ?)",
                                         newGroup.ID, priority
                                         ));

                        yield return(xact.Commit());
                    }

                    Program.EventBus.Broadcast(Script, "PreferenceChanged", "*");

                    yield return(RefreshList(new PriorityEntry {
                        GroupID = newGroup.ID
                    }));
                }
        }
示例#13
0
        private void InsertAbove()
        {
            var firstSelected = SelectedEntries.FirstOrDefault();

            if (firstSelected == null)
            {
                return;
            }

            var index = _items.IndexOf(firstSelected);

            _items.Insert(index, CreateNewEntry());
        }
示例#14
0
        private void InsertBelow()
        {
            var firstSelected = SelectedEntries.FirstOrDefault();

            if (firstSelected == null)
            {
                return;
            }

            var index = Fields.IndexOf(firstSelected);

            Fields.Insert(index + 1, CreateNewEntry());
        }
示例#15
0
        public void Handle(EntryModel entry)
        {
            // Check if model passed is valid
            if (entry.EntryMembers?.Count > 0)
            {
                SelectedEntries.Add(entry);
            }

            SelectedEntriesIsVisible = true;
            CreateEntryIsVisible     = false;

            NotifyOfPropertyChange(() => CanCreateTournament);
        }
示例#16
0
 private void log_VirtualItemsSelectionRangeChanged(object sender, ListViewVirtualItemsSelectionRangeChangedEventArgs e)
 {
     for (int i = e.StartIndex; i <= e.EndIndex; ++i)
     {
         if (e.IsSelected)
         {
             SelectedEntries.Add(i, EntryCache[i]);
         }
         else
         {
             SelectedEntries.Remove(i);
         }
     }
 }
示例#17
0
        private void clear_Click(object sender, EventArgs e)
        {
            //Clear the backing store
            Task.Log.Clear();

            //Reset the list of sessions
            filterSessionCombobox.Items.Clear();

            //And reset the list-view control
            log.VirtualListSize = 0;
            SelectedEntries.Clear();
            EntryCache.Clear();

            //Finally update the UI state.
            EnableButtons();
        }
示例#18
0
        private bool CanMoveDown()
        {
            var selectedEntries = SelectedEntries.ToArray();

            if (selectedEntries.Length == 0)
            {
                return(false);
            }

            if (selectedEntries.Any(entry => Fields.IndexOf(entry) >= Fields.Count - 1))
            {
                return(false);
            }

            return(true);
        }
示例#19
0
        private void CreateNewEntry()
        {
            if (LoadedFile == null || SelectedCategory == null)
            {
                throw new InvalidOperationException("Cannot add entry to unloaded file or null category!");
            }

            CategoryEntry entry = new CategoryEntry();

            SelectedCategory.Entries.Add(entry);

            // Add it to our collection view source so it shows up in the filtered results...
            ((List <CategoryEntry>)CollViewSource.Source).Add(entry);

            // Clear the list of currently selected entries and then add the newly created one as the only selected one.
            SelectedEntries.Clear();
            SelectedEntries.Add(entry);
        }
示例#20
0
        private IEnumerator <object> AddTypeTask()
        {
            using (new ControlWaitCursor(this))
                using (var dialog = new AddTypeDialog(Program.Scheduler)) {
                    long categoryID = 0;
                    yield return(Program.Database.ExecuteScalar <long>(
                                     "SELECT categoryID FROM evedata.categories WHERE name = ?",
                                     "Entity"
                                     ).Bind(() => categoryID));

                    int groupID = (from se in SelectedEntries
                                   where se.GroupID.HasValue
                                   select se.GroupID.Value).FirstOrDefault();

                    yield return(dialog.PopulateGroups(categoryID, groupID));

                    yield return(dialog.RefreshList());

                    if (dialog.ShowDialog() != DialogResult.OK)
                    {
                        yield break;
                    }

                    var newType = dialog.Types.SelectedItem as TypeEntry;

                    int priority = 0;
                    if (SelectedEntries.Count() > 0)
                    {
                        priority = SelectedEntries.Max((pe) => pe.Priority);
                    }

                    yield return(Program.Database.ExecuteSQL(
                                     "REPLACE INTO enemyPriorities (groupID, typeID, priority) VALUES (?, ?, ?)",
                                     newType.GroupID, newType.TypeID, priority
                                     ));

                    Script.Preferences.Flush();

                    yield return(RefreshList(new PriorityEntry {
                        GroupID = newType.GroupID, TypeID = newType.TypeID
                    }));
                }
        }
示例#21
0
        private void InsertBelow()
        {
            if (Items.Count == 0)
            {
                _items.Add(CreateNewEntry());
                return;
            }

            var firstSelected = SelectedEntries.FirstOrDefault();

            if (firstSelected == null)
            {
                return;
            }

            var index = _items.IndexOf(firstSelected);

            _items.Insert(index + 1, CreateNewEntry());
        }
        private void InsertAbove()
        {
            var firstSelected = SelectedEntries.FirstOrDefault();

            if (firstSelected == null)
            {
                return;
            }

            var index = IndexOf(firstSelected);

            var entry = CreateNewEntry();

            if (entry == null)
            {
                return;
            }

            Insert(index, entry);
        }
示例#23
0
        /*****************************************************************************
        *  FUNCTION:  UpdateRowSelection
        *  Description:
        *  Parameters:
        *****************************************************************************/
        private void UpdateRowSelection()
        {
            int i, selrow, selcol;

            SelectedEntries.Clear();
            SelectedCells.Clear();

            //Update row selections
            if (dataGridView1.SelectedRows.Count > 1)
            {
                for (i = 0; i < dataGridView1.SelectedRows.Count; i++)
                {
                    selrow = (int)dataGridView1.SelectedRows[i].Cells[0].Value - 1;
                    SelectedEntries.Add(selrow);
                }
            }
            else if (dataGridView1.SelectedRows.Count == 1 && CurrentSelectedRow < dataGridView1.Rows.Count)
            {
                SelectedEntries.Add((int)dataGridView1.Rows[CurrentSelectedRow].Cells[0].Value - 1);
            }
            else
            {
            }

            //Update cell selections
            for (i = 0; i < dataGridView1.SelectedCells.Count; i++)
            {
                selrow = (int)dataGridView1.SelectedCells[i].OwningRow.Cells[0].Value;
                selcol = (int)dataGridView1.SelectedCells[i].ColumnIndex;

                //Ignore header row and hidden id column
                if (selrow > 0 && selcol > 0)
                {
                    SelectedCells.Add(new Tuple <int, int>(selrow, selcol));
                    if (!SelectedEntries.Contains(selrow - 1))
                    {
                        SelectedEntries.Add(selrow - 1);
                    }
                }
            }
        }
        public virtual void EditSelectedEntry()
        {
            using (var form = new EditHostEntryForm(view.ServiceProvider, addresses))
            {
                form.Text = Resources.EditHostEntryDialogTitle;

                HostEntry templateEntry = this.view.SelectedEntries.First().HostEntry;
                HostEntry editingEntry  = templateEntry.Clone();

                form.EditableFields = options.EditableFields;
                form.HostEntry      = editingEntry;

                DialogResult result = view.ShowDialog(form);

                if (result == DialogResult.OK)
                {
                    var originalEntries = SelectedEntries.Select(m => m.HostEntry).ToList();
                    var editedEntries   = SelectedEntries.Select(entry =>
                    {
                        var newEntry = entry.HostEntry.Clone();
                        this.ApplyChanges(newEntry, editingEntry, form.FieldChanges);

                        return(newEntry);
                    })
                                          .ToList();

                    try
                    {
                        this.module.ServiceProxy.EditEntries(originalEntries, editedEntries);
                    }
                    catch (HostsFileServiceException ex)
                    {
                        uiService.ShowError(ex, null, Resources.ActionFailedTitle, false);
                        return;
                    }

                    this.UpdateData();
                }
            }
        }
        private void InsertBelow()
        {
            var lastSelected = SelectedEntries.LastOrDefault();

            var entry = CreateNewEntry();

            if (entry == null)
            {
                return;
            }

            if (lastSelected == null)
            {
                Add(entry);
            }
            else
            {
                var index = IndexOf(lastSelected);

                Insert(index + 1, entry);
            }
        }
示例#26
0
        public void CreateTournament()
        {
            // Create the TournamentModel
            TournamentModel tournament = new TournamentModel
            {
                TournamentName    = TournamentName,
                TournamentEntries = SelectedEntries.ToList(),
                CurrentRound      = 0
            };

            // Wire up matchups
            TournamentLogic.CreateRounds(tournament);

            // Create Tournament entry
            // Create all TournamentEntries
            GlobalConfig.Connection.CreateTournament(tournament);

            // Handle bye matchups
            TournamentLogic.HandleByeMatchups(tournament);

            EventAggregationProvider.TMEventAggregator.PublishOnUIThread(tournament);
            this.TryClose();
        }
示例#27
0
        public void BuildContextMenus_Books()
        {
            var menulist = new ObservableCollection <System.Windows.Controls.Control>();

            var menuitem = new MenuItem()
            {
                Header  = "開く",
                Command = OpenBookCommand
            };

            menulist.Add(menuitem);

            menuitem = new MenuItem()
            {
                Header  = "新しいタブで開く",
                Command = OpenBookInNewTabCommand
            };
            menulist.Add(menuitem);

            menuitem = new MenuItem()
            {
                Header  = "選択したアイテムで絞り込む",
                Command = FilterBooksCommand
            };
            menulist.Add(menuitem);

            menuitem = new MenuItem()
            {
                Header = "送る"
            };
            menuitem.Items.Add(new MenuItem()
            {
                Header  = "新しいタブ",
                Command = SendBookToNewTabCommand
            });
            foreach (var item in MainWindowViewModel.Value.DockingDocumentViewModels.Where(t => !t.ContentId.Equals("home") && !t.ContentId.Equals(ContentId)))
            {
                menuitem.Items.Add(new MenuItem()
                {
                    Header           = item.Title,
                    Command          = SendBookToExistTabCommand,
                    CommandParameter = item
                });
            }
            menulist.Add(menuitem);

            menuitem = new MenuItem()
            {
                Header           = "DUMMY",
                Command          = ChangeStarCommand,
                CommandParameter = SelectedEntries.Where(x => x is BookViewModel).Cast <BookViewModel>().ToObservableCollection()
            };
            var binding = new Binding("StarLevel.Value")
            {
                Converter = new StarLevelToStringConverter(), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
            };

            menuitem.SetBinding(MenuItem.HeaderProperty, binding);
            menulist.Add(menuitem);

            menuitem = new System.Windows.Controls.MenuItem()
            {
                Header  = "書き出し",
                Command = ExportBooksCommand
            };
            menulist.Add(menuitem);

            var manageMenu = new System.Windows.Controls.MenuItem()
            {
                Header = "管理"
            };

            menuitem = new System.Windows.Controls.MenuItem()
            {
                Header  = "サムネイル再作成",
                Command = RemakeThumbnailOfBookCommand
            };
            manageMenu.Items.Add(menuitem);

            menuitem = new System.Windows.Controls.MenuItem()
            {
                Header  = "削除",
                Command = RemoveBookCommand
            };
            manageMenu.Items.Add(menuitem);
            menulist.Add(manageMenu);

            menuitem = new System.Windows.Controls.MenuItem()
            {
                Header  = "プロパティ",
                Command = OpenBookPropertyDialogCommand,
            };
            menulist.Add(menuitem);

            menulist.Add(new System.Windows.Controls.Separator());

            menuitem = new System.Windows.Controls.MenuItem()
            {
                Header = "Extra",
            };
            menuitem.SetValue(RegionManager.RegionNameProperty, "ExtraBook");
            SelectManager.SelectedItems       = SelectedEntries.Where(x => x is BookViewModel).Cast <object>().ToObservableCollection();
            SelectManager.ElementSelectedType = typeof(BookViewModel);
            menulist.Add(menuitem);

            BooksContextMenuItems = menulist;
        }
示例#28
0
 public void AddToSelectedEntries(IEnumerable <EntryViewModel> add)
 {
     SelectedEntries.AddRange(add);
 }
示例#29
0
 public void AddToSelectedEntry(EntryViewModel add)
 {
     SelectedEntries.Add(add);
 }
示例#30
0
 public void RemoveEntry()
 {
     AvailableEntries.Add(SelectedEntryToRemove);
     SelectedEntries.Remove(SelectedEntryToRemove);
     NotifyOfPropertyChange(() => CanCreateTournament);
 }