示例#1
0
        SolutionTemplate FromRecentItem(IEnumerable <TemplateCategory> categories, RecentItem item)
        {
            var templatePath = item.Uri.StartsWith(templateUriScheme, StringComparison.Ordinal) ? item.Uri.Substring(templateUriScheme.Length) : item.Uri;
            var parts        = templatePath.Split('/');
            var templateId   = parts [parts.Length - 1];
            SolutionTemplate recentTemplate = null;

            if (parts.Length > 1)
            {
                recentTemplate = TemplatingService.GetTemplate(
                    categories,
                    (template) => template.Id == templateId,
                    (category) => parts.Length > 1 ? category.Id == parts[0] : true,
                    (category) => parts.Length > 2 ? category.Id == parts[1] : true
                    );
            }

            // fallback to global template lookup if no category matched
            // in this case the category is not guaranteed if a template is listed in more than one category
            if (recentTemplate == null)
            {
                recentTemplate = TemplatingService.GetTemplate(categories, templateId);
            }
            return(recentTemplate);
        }
        private void InvokeItemClicked(RecentItem recentItem)
        {
            var handler = this.ItemClicked;

            if (handler != null)
            {
                handler(this, new RecentItemClickedEventArgs(recentItem));
            }
        }
        /// <summary>
        /// Adds the given recent item as menu item
        /// </summary>
        private void RecentItemAdd(RecentItem item)
        {
            ToolStripMenuItem toolStripItem = new ToolStripMenuItem(item.Caption);

            toolStripItem.Click += this.RecentItemClicked;
            this.FileToolStripMenuItem.DropDownItems.Insert(this.RecentItemsMenuIndex, toolStripItem);
            item.MenuItem     = toolStripItem;
            toolStripItem.Tag = item;
            this.RecentItemsToolStripSeparator.Visible = this.recentItems.Count > 0;
        }
示例#4
0
        public void Update(DXUser user, string fileName)
        {
            if (!Contains(user, fileName))
            {
                return;
            }

            RecentItem item = collection
                              .FindOne(r => r.FileName == fileName);

            item.LastedTime = DateTime.Now;

            collection.Update(item);
        }
示例#5
0
        void UpDateRecentsList(string FileToOpen)
        {
            RecentItem ri = new RecentItem()
            {
                FileName = FileToOpen
            };

            foreach (RecentItem rl in Inventory)
            {
                if (rl.FileName == FileToOpen)
                {
                    return;
                }
            }
            Inventory.Add(ri);
            RecentsGrid.ItemsSource = Inventory;
        }
        private void OnNewQuotationEvent(QuotationEventArgs arg)
        {
            if (arg != null && arg.QuotationDataSet != null && arg.QuotationDataSet.Tables.Count == 5)
            {
                var recentItem = new RecentItem()
                {
                    OwnerName = arg.OwnerName, NRIC = arg.NRICNumber, QuotationNo = arg.QuotationNumber, CreatedDateTime = DateTime.Now, IsAvailable = true
                };
                RecentListUtility.AddRecentData(recentItem, recentFileName);

                if (this.RecentItems.Count == 0)
                {
                    this.RecentItems.Add(new RecentItemViewModel(recentItem));
                }
                else if (this.RecentItems.Count > 0)
                {
                    this.RecentItems.Insert(0, new RecentItemViewModel(recentItem));
                }
            }
        }
        public static void AddRecentData(RecentItem recentItem, string recentFileName)
        {
            RecentListModel recentListModel = null;
            string          filePath        = GetRecentFilePath(recentFileName);

            if (!File.Exists(filePath))
            {
                recentListModel = new RecentListModel();
            }
            try
            {
                recentListModel = XmlParser.ConvertFromXml <RecentListModel>(filePath);
            }
            catch
            {
                recentListModel = new RecentListModel();
            }

            recentListModel.Add(recentItem);
            XmlParser.ConvertToXml <RecentListModel>(recentListModel, filePath);
        }
        public void AddRecent(string item)
        {
            RecentItem r = null;

            foreach (RecentItem recent in recents)
            {
                if (string.Compare(recent.Filename, item, StringComparison.OrdinalIgnoreCase) == 0)
                {
                    r = recent;
                    recents.Remove(r);
                    break;
                }
            }

            if (r == null)
            {
                r = new RecentItem(item);
            }

            recents.Insert(0, r);
        }
示例#9
0
        public static RecentItemViewModel ToViewModel(this RecentItem result, DateTime today, bool showExtension)
        {
            var path    = result.Value.LocalProperties.FullPath;
            var date    = result.Value.LastAccessed.Date;
            var name    = showExtension ? Path.GetFileName(path) : Path.GetFileNameWithoutExtension(path);
            var pinned  = result.Value.IsFavorite;
            var folder  = Path.GetDirectoryName(path);
            var period  = CalculatePeriodType(pinned, today, date);
            var type    = path.CalculateRecentItemType();
            var moniker = type.ToImageMoniker();

            return(new RecentItemViewModel
            {
                Name = name,
                Description = folder,
                Date = date,
                Path = path,
                Pinned = pinned,
                PeriodType = period,
                ItemType = type,
                Moniker = moniker
            });
        }
        public IEnumerable <RecentItem> Load([NotNull] string storageKey)
        {
            Assert.ArgumentNotNull(storageKey, nameof(storageKey));

            var n = 0;

            var recentItems = new List <RecentItem>();

            while (n < 99)
            {
                var uri = AppHost.Settings.Get(storageKey, "itemuri" + n, null) as string;
                if (string.IsNullOrEmpty(uri))
                {
                    break;
                }

                ItemUri itemUri;
                if (!ItemUri.TryParse(uri, out itemUri))
                {
                    n++;
                    continue;
                }

                var name         = AppHost.Settings.Get(storageKey, "name" + n, string.Empty) as string ?? string.Empty;
                var icon         = new Icon(itemUri.Site, AppHost.Settings.Get(storageKey, "icon" + n, string.Empty) as string ?? string.Empty);
                var templateId   = new ItemId(new Guid(AppHost.Settings.Get(storageKey, "templateid" + n, string.Empty) as string ?? string.Empty));
                var templateName = AppHost.Settings.Get(storageKey, "templatename" + n, string.Empty) as string ?? string.Empty;

                var item = new RecentItem(itemUri, name, icon, templateId, templateName);

                recentItems.Insert(0, item);

                n++;
            }

            return(recentItems);
        }
 /// <summary>
 /// Removes given item from recent list
 /// </summary>
 public void RemoveItem(RecentItem item)
 {
     this.recentItems.RemoveItem(item);
 }
示例#12
0
        /// <summary>
        /// Loads Preferences from disk.
        /// </summary>
        public static void Load()
        {
            RecentItem firstItem = App.Preferences.RecentlyOpenedProjects.Items.FirstOrDefault();

            if (App.Preferences.OpenLastProjectOnStartup && firstItem is { })
示例#13
0
 /// <summary>
 /// Adds the given recent item as menu item
 /// </summary>
 private void RecentItemAdd(RecentItem item)
 {
     ToolStripMenuItem toolStripItem = new ToolStripMenuItem(item.Caption);
     toolStripItem.Click += this.RecentItemClicked;
     this.FileToolStripMenuItem.DropDownItems.Insert(this.RecentItemsMenuIndex, toolStripItem);
     item.MenuItem = toolStripItem;
     toolStripItem.Tag = item;
     this.RecentItemsToolStripSeparator.Visible = this.recentItems.Count > 0;
 }
示例#14
0
 private void HandleCommandLine(string[] arguments)
 {
     if(arguments.Length > 1)
     {
         _recentItem = new RecentItem(new FileInfo(arguments[0]));
         this.Password = arguments[1];
         OpenDatabase();
         this.OnRequestClose();
     }
 }
 public RecentItemClickedEventArgs(RecentItem recentItem)
 {
     this.RecentItem = recentItem;
 }
示例#16
0
        /// <summary>
        /// Add the RecentItem to the ObservableCollection for the UI to render.
        /// </summary>
        /// <param name="recentItem">The recent item to be added</param>
        private async Task AddItemToRecentListAsync(RecentItem recentItem, bool sortInsert = false)
        {
            await recentItem.LoadRecentItemIcon();

            recentItemsCollection.Add(recentItem);
        }
示例#17
0
        /// <summary>Handles the CollectionChanged event of the Files list.</summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The [NotifyCollectionChangedEventArgs] instance containing the event data.</param>
        private void Files_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            void AddItems()
            {
                foreach (RecentItem recentItem in e.NewItems.OfType <RecentItem>())
                {
                    RecentItem listItem = _recentItems.FirstOrDefault(item => string.Equals(item.FilePath, recentItem.FilePath, StringComparison.OrdinalIgnoreCase));

                    if (listItem != null)
                    {
                        int index = _recentItems.IndexOf(listItem);
                        if (index != -1)
                        {
                            _recentItems[index] = recentItem;
                        }
                        return;
                    }

                    _recentItems.Add(recentItem);
                }
            }

            void RemoveItems()
            {
                foreach (RecentItem recentItem in e.OldItems.OfType <RecentItem>())
                {
                    RecentItem listItem = _recentItems.FirstOrDefault(item => string.Equals(item.FilePath, recentItem.FilePath, StringComparison.OrdinalIgnoreCase));

                    if (listItem == null)
                    {
                        continue;
                    }

                    _recentItems.Remove(listItem);
                }
            }

            switch (e.Action)
            {
            case NotifyCollectionChangedAction.Add:
                AddItems();
                break;

            case NotifyCollectionChangedAction.Remove:
                RemoveItems();
                break;

            case NotifyCollectionChangedAction.Replace:
                RemoveItems();
                AddItems();
                break;

            case NotifyCollectionChangedAction.Reset:
                _recentItems.Clear();

                foreach (RecentItem item in Files)
                {
                    _recentItems.Add(item);
                }
                break;
            }
        }
示例#18
0
 private static int RecentItemsComparison(RecentItem item1, RecentItem item2)
 {
     return item2.lastUpdated.CompareTo(item1.lastUpdated);
 }
示例#19
0
        private void ReloadRecentItems()
        {
            recentMenuItem.Items.Clear();

            RegistryKey outlinerKey = registryKey.OpenSubKey("Software\\UVOutliner\\Recent", false);
            if (outlinerKey == null)
                return;

            string[] files = outlinerKey.GetValueNames();
            List<RecentItem> recentItems = new List<RecentItem>();

            foreach (var file in files)
            {
                string recentData = outlinerKey.GetValue(file, "") as string;
                if (recentData != null && recentData != "")
                {
                    string[] date = recentData.Split(new char[] { ';' });
                    if (date.Length < 6)
                        continue;

                    RecentItem r = new RecentItem();
                    r.fileName = file;

                    try
                    {
                        r.lastUpdated = Int64.Parse(date[5]);
                    }
                    catch
                    {
                        continue;
                    }

                    recentItems.Add(r);
                }
            }

            recentItems.Sort(RecentItemsComparison);
            for (int i = 0; i < Math.Min(recentItems.Count, 10); i++)
            {
                if (recentItems[i].fileName == __Document.FileName)
                    continue;

                if (recentItems[i].fileName == OutlinerDocument.DefaultFileName)
                    continue;

                string fileName = recentItems[i].fileName;
                MenuItem mi = new MenuItem();
                mi.Header = fileName;
                mi.Command = OutlinerCommands.OpenRecentFile;
                mi.CommandParameter = recentItems[i].fileName;
                recentMenuItem.Items.Add(mi);

                if (!System.IO.File.Exists(fileName))
                    mi.IsEnabled = false;
            }

            if (recentMenuItem.Items.Count > 0)
                recentMenuItem.IsEnabled = true;
            else
                recentMenuItem.IsEnabled = false;
        }
    public void AddRecent(string item)
    {
      RecentItem r = null;
      foreach (RecentItem recent in recents)
        if (string.Compare(recent.Filename, item, StringComparison.OrdinalIgnoreCase) == 0)
        {
          r = recent;
          recents.Remove(r);
          break;
        }

      if (r == null)
        r = new RecentItem(item);
      
      recents.Insert(0, r);
    }
示例#21
0
 public SearchResultRecentVM(RecentItem item) : base(item.Text)
 {
     this.item = item;
 }
 /// <summary>
 /// Pushes given item from recent list by adding it on top other others.
 /// </summary>
 public void PushItem(RecentItem item)
 {
     this.recentItems.PushItem(item);
 }
 public RecentItemActionEventArgs(RecentItem item)
 {
     this.Item = item;
 }
 public RecentItemViewModel(RecentItem model)
 {
     this.model = model;
 }
示例#25
0
 /// <summary>
 /// Pushes given item from recent list by adding it on top other others.
 /// </summary>
 public void PushItem(RecentItem item)
 {
     this.recentItems.PushItem(item);
 }
示例#26
0
 /// <summary>
 /// Removes given item from recent list
 /// </summary>
 public void RemoveItem(RecentItem item)
 {
     this.recentItems.RemoveItem(item);
 }
示例#27
0
 /// <summary>Initializes a new instance of the <see cref="RecentItemDeleteEventArgs"/> class.</summary>
 /// <param name="item">The item.</param>
 public RecentItemDeleteEventArgs(RecentItem item) => Item = item;
示例#28
0
 private void InvokeItemClicked(RecentItem recentItem)
 {
     var handler = this.ItemClicked;
     if (handler != null)
     {
         handler(this, new RecentItemClickedEventArgs(recentItem));
     }
 }
示例#29
0
 /// <summary>Initializes a new instance of the <see cref="T:Gorgon.Editor.UI.RecentItemClickEventArgs"/> class.</summary>
 /// <param name="item">The item.</param>
 public RecentItemClickEventArgs(RecentItem item) => Item = item;
 public RecentItemClickedEventArgs(RecentItem recentItem)
 {
     this.RecentItem = recentItem;
 }