private static void BuildMenuHelper(Menu menu, BookmarkGroup group)
        {
            foreach (object i in group.Members)
            {
                if (!(i is BookmarkGroup))
                {
                    continue;
                }

                MenuItem item = new MenuItem(((BookmarkGroup)i).Name);
                item.Activated  += on_bookmarkgroup_activated;
                menu_to_id[item] = ((BookmarkGroup)i).ID;
                menu.Append(item);
                Menu m = new Menu();
                item.Submenu = m;
                BuildMenuHelper(m, ((BookmarkGroup)i));
            }

            foreach (object i in group.Members)
            {
                if (i is Bookmark)
                {
#if DEBUG
                    Console.WriteLine("appending bookmark: [" + ((Bookmark)i).Name + "]");
#endif

                    MenuItem item = new MenuItem(((Bookmark)i).Name);
                    menu_to_id[item] = ((Bookmark)i).ID;
                    item.Activated  += on_bookmark_activated;
                    menu.Append(item);
                    menu_to_id[item] = ((Bookmark)i).ID;
                }
            }
        }
        public BookmarkManager(Browser browser)
        {
            _Browser = browser;

#if DEBUG
            Console.WriteLine("Bookmark Manager init");
#endif

            // discovering bookmark file
            bookmark_file = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
            bookmark_file = System.IO.Path.Combine(bookmark_file, "monodoc");
            bookmark_file = System.IO.Path.Combine(bookmark_file, "bookmarks.xml");

            // creating serializer
            serializer = new XmlSerializer(typeof(BookmarkGroup));

            // trying to load saved bookmarks
            try
            {
                Load();
            }
            catch (Exception e)
            {
                // no bookmarks found, creating new root
                root_group = new BookmarkGroup(ROOT_NAME);
            }

            current_bookmark_group = ROOT_NAME;
            menu_to_id             = new Hashtable();
            BuildMenu(_Browser.bookmarksMenu);
        }
        /// <summary> Recursively adds a bookmark </summary>
        public static void AddBookmarkGroup(BookmarkGroup bookmarks, string parent_ID, string name)
        {
            if (bookmarks.ID == parent_ID)
            {
                bookmarks.Members.Add(new BookmarkGroup(name));
                return;
            }

            foreach (object i in bookmarks.Members)
            {
                if (i is BookmarkGroup)
                {
                    AddBookmarkGroup(((BookmarkGroup)i), parent_ID, name);
                }

                if (i is Bookmark)
                {
                    if (((Bookmark)i).ID == parent_ID)
                    {
                        bookmarks.Members.Add(new BookmarkGroup(name));
                        return;
                    }
                }
            }
        }
Ejemplo n.º 4
0
        protected void FillDbTestData()
        {
            ApplicationUser testUser = new ApplicationUser {
                Id       = this.TestUserId,
                UserName = "******"
            };

            _db.Users.Add(testUser);
            _db.SaveChanges();

            BookmarkContainer testContainer = new BookmarkContainer(testUser.Id, "Test Container",
                                                                    0);

            _db.BookmarkContainers.Add(testContainer);
            _db.SaveChanges();
            this.TestBookmarkContainer = testContainer;

            BookmarkGroup testGroup = new BookmarkGroup("Test Group", "#000000", 0,
                                                        testContainer.BookmarkContainerId);

            _db.BookmarkGroups.Add(testGroup);
            _db.SaveChanges();
            this.TestBookmarkGroup = testGroup;

            Bookmark testBookmark = new Bookmark("Test Bookmark", "http://example.com",
                                                 "Test Notes", 0, testGroup.BookmarkGroupId);

            _db.Bookmarks.Add(testBookmark);
            _db.SaveChanges();
            this.TestBookmark = testBookmark;
        }
Ejemplo n.º 5
0
 private static void Load()
 {
     using (FileStream file = new FileStream(bookmark_file, FileMode.Open)) {
         root_group = (BookmarkGroup)serializer.Deserialize(file);
     }
                 #if DEBUG
     Console.WriteLine("bookmarks loaded ({0})", root_group.Members.Count);
                 #endif
 }
 // recursively builds combo box
 private void BuildComboList(BookmarkGroup bookmarks, ArrayList list)
 {
     foreach (object i in bookmarks.Members)
     {
         if (i is BookmarkGroup)
         {
             BuildComboList(i as BookmarkGroup, list);
         }
     }
     list.Add(bookmarks.Name);
     combo_to_id[bookmarks.Name] = bookmarks.ID;
 }
 /// <summary> Recursively adds a bookmark </summary>
 public static void AddBookmark(BookmarkGroup bookmarks, string parent_ID, string bookmark_text, string bookmark_url)
 {
     if (bookmarks.ID == parent_ID)
     {
         bookmarks.Members.Add(new Bookmark(bookmark_text, bookmark_url));
         return;
     }
     foreach (object i in bookmarks.Members)
     {
         if (i is BookmarkGroup)
         {
             AddBookmark(((BookmarkGroup)i), parent_ID, bookmark_text, bookmark_url);
         }
     }
 }
        /// <summary> Recursively finds a bookmarkbase </summary>
        public static void GetBookmarkBase(BookmarkGroup bookmarks, string ID, ref BookmarkBase retval)
        {
            foreach (object i in bookmarks.Members)
            {
                if (((BookmarkBase)i).ID == ID)
                {
                    retval = i as BookmarkBase;
                    return;
                }

                if (i is BookmarkGroup)
                {
                    GetBookmarkBase((BookmarkGroup)i, ID, ref retval);
                }
            }
        }
            void BuildTreeViewHelper(BookmarkGroup bookmarks, TreeIter iter, TreeStore store)
            {
                TreeIter tmp_iter;

                foreach (object i in bookmarks.Members)
                {
                    if (i is BookmarkGroup)
                    {
                        tmp_iter             = store.AppendValues(iter, ((BookmarkGroup)i).Name);
                        iter_to_id[tmp_iter] = ((BookmarkGroup)i).ID;
                        BuildTreeViewHelper((BookmarkGroup)i, tmp_iter, store);
                    }
                    if (i is Bookmark)
                    {
                        tmp_iter             = store.AppendValues(iter, ((Bookmark)i).Name);
                        iter_to_id[tmp_iter] = ((Bookmark)i).ID;
                    }
                }
            }
            public ManageBookmarkDialog(BookmarkGroup bookmarks)
            {
                Glade.XML xml = new Glade.XML("browser.glade", "manage_bookmarks_dialog");
                xml.Autoconnect(this);
                iter_to_id = new Hashtable();
                root_group = bookmarks;
                bookmarks_treeview.RulesHint    = true;
                bookmarks_treeview.EnableSearch = true;

                // treeview handlers
                bookmarks_treeview.RowExpanded       += new Gtk.RowExpandedHandler(on_row_expanded);
                bookmarks_treeview.Selection.Changed += new EventHandler(on_row_selected);
                bookmarks_treeview.RowActivated      += new Gtk.RowActivatedHandler(on_row_activated);
                cell_render          = new CellRendererText();
                cell_render.Edited  += new EditedHandler(on_cellrender_edited);
                cell_render.Editable = true;

                bookmarks_treeview.AppendColumn("Column 1", cell_render, "text", 0);
            }
Ejemplo n.º 11
0
			public ManageBookmarkDialog (BookmarkGroup bookmarks) {
				Glade.XML xml = new Glade.XML ("browser.glade","manage_bookmarks_dialog");
				xml.Autoconnect (this);
				iter_to_id = new Hashtable ();
				root_group = bookmarks;
				bookmarks_treeview.RulesHint = true;
				bookmarks_treeview.EnableSearch = true;

				// treeview handlers
				bookmarks_treeview.RowExpanded += new Gtk.RowExpandedHandler (on_row_expanded);
				bookmarks_treeview.Selection.Changed += new EventHandler (on_row_selected);
				bookmarks_treeview.RowActivated += new Gtk.RowActivatedHandler (on_row_activated);
				cell_render = new CellRendererText ();
				cell_render.Edited += new EditedHandler (on_cellrender_edited);
				cell_render.Editable = true;
				
				bookmarks_treeview.AppendColumn ("Column 1", cell_render,"text",0);

				
			}
 // static helper methods
 /// <summary> Recursively deletes a bookmark </summary>
 public static void DeleteBookmarkBase(BookmarkGroup bookmarks, string ID)
 {
     foreach (object i in bookmarks.Members)
     {
         if (i is Bookmark)
         {
             if (((Bookmark)i).ID == ID)
             {
                 bookmarks.Members.Remove(i);
                 return;
             }
         }
         else if (i is BookmarkGroup)
         {
             if (((BookmarkGroup)i).ID == ID)
             {
                 bookmarks.Members.Remove(i);
                 return;
             }
             DeleteBookmarkBase(((BookmarkGroup)i), ID);
         }
     }
 }
            public AddBookmarkDialog(BookmarkGroup root_group)
            {
                Glade.XML xml = new Glade.XML("browser.glade", "add_bookmark_dialog");
                xml.Autoconnect(this);

                combo = new Combo();

                ArrayList list = new ArrayList();

                BuildComboList(root_group, list);
                combo.PopdownStrings = list.ToArray(typeof(string)) as string[];
                combo.AllowEmpty     = false;
                combo.Entry.Editable = false;
                combo.DisableActivate();

                // pusihing widget into hbox
                hbox37.PackEnd(combo);

                //combo.Entry.Activated += new EventHandler (on_combo_entry_activated);

                root = root_group;
                text = url = String.Empty;
            }
Ejemplo n.º 14
0
		/// <summary> Recursively adds a bookmark </summary>
		public static void AddBookmarkGroup (BookmarkGroup bookmarks, string parent_ID, string name)
		{
			if (bookmarks.ID == parent_ID) {
				bookmarks.Members.Add (new BookmarkGroup (name));
				return;
			}
			
			foreach (object i in bookmarks.Members)
			{
				if (i is BookmarkGroup)
					AddBookmarkGroup (((BookmarkGroup)i), parent_ID,name);

				if (i is Bookmark){
					if (((Bookmark)i).ID == parent_ID) {
						bookmarks.Members.Add (new BookmarkGroup (name));
						return;
					}
				}
				
			}
		}
Ejemplo n.º 15
0
		/// <summary> Recursively adds a bookmark </summary>
		public static void AddBookmark (BookmarkGroup bookmarks, string parent_ID, string bookmark_text, string bookmark_url) {
			if ( bookmarks.ID == parent_ID) {
				bookmarks.Members.Add (new Bookmark (bookmark_text,bookmark_url) );
				return;
			}
			foreach (object i in bookmarks.Members)
			{
				if (i is BookmarkGroup) {
					AddBookmark (((BookmarkGroup)i), parent_ID,bookmark_text, bookmark_url);
				
				}
			}
		}
Ejemplo n.º 16
0
		/// <summary> Recursively finds a bookmarkbase </summary>
		public static void GetBookmarkBase (BookmarkGroup bookmarks, string ID, ref BookmarkBase retval) {
			
			foreach (object i in bookmarks.Members) {
				if (((BookmarkBase)i).ID == ID) {
					retval = i as BookmarkBase;
					return;
				}
				
				if (i is BookmarkGroup)
					GetBookmarkBase ((BookmarkGroup)i,ID,ref retval);
			}
		}
Ejemplo n.º 17
0
		// static helper methods
		/// <summary> Recursively deletes a bookmark </summary>
		public static void DeleteBookmarkBase (BookmarkGroup bookmarks, string ID) {
		
			foreach (object i in bookmarks.Members) {
				if (i is Bookmark) {
					if (((Bookmark)i).ID == ID) {
						bookmarks.Members.Remove (i);
						return;
					}
					
				} else if (i is BookmarkGroup) {
					if (((BookmarkGroup)i).ID == ID) {
						bookmarks.Members.Remove (i);
						return;
					}
					DeleteBookmarkBase (((BookmarkGroup)i), ID);
				}
			}
		}
Ejemplo n.º 18
0
		private static void BuildMenuHelper (Menu menu, BookmarkGroup group)
		{
			foreach (object i in group.Members) {
				if (!(i is BookmarkGroup))
					continue;
				
				MenuItem item = new MenuItem (((BookmarkGroup)i).Name);
				item.Activated += on_bookmarkgroup_activated;
				menu_to_id[item] = ((BookmarkGroup)i).ID;
				menu.Append (item);
				Menu m = new Menu ();
				item.Submenu = m;
				BuildMenuHelper (m, ((BookmarkGroup)i));
			}
			
			foreach (object i in group.Members) 
			{
				if (i is Bookmark) {
					#if DEBUG
					Console.WriteLine ("appending bookmark: [" + ((Bookmark)i).Name + "]");
					#endif

					MenuItem item = new MenuItem (((Bookmark)i).Name);
					menu_to_id[item] = ((Bookmark)i).ID;
					item.Activated += on_bookmark_activated;
					menu.Append (item);
					menu_to_id[item] = ((Bookmark)i).ID;
				}
			}
		}
Ejemplo n.º 19
0
        public async Task <BookmarkGroup?> UpdateBookmarkGroup(string userId,
                                                               BookmarkGroup bookmarkGroup)
        {
            BookmarkGroup?existingGroup = await this.db.BookmarkGroups
                                          .SingleOrDefaultAsync(bg => bg.BookmarkGroupId == bookmarkGroup.BookmarkGroupId);

            if (existingGroup == null)
            {
                return(null);
            }

            if (!BookmarkOwnershipTools
                .IsBookmarkGroupOwner(this.db, userId, bookmarkGroup.BookmarkGroupId))
            {
                return(null);
            }

            // If it's been moved to a new container
            if (existingGroup.BookmarkContainerId != bookmarkGroup.BookmarkContainerId &&
                !BookmarkOwnershipTools
                .IsBookmarkContainerOwner(this.db, userId, bookmarkGroup.BookmarkContainerId))
            {
                return(null);
            }

            if (existingGroup.BookmarkContainerId != bookmarkGroup.BookmarkContainerId)
            {
                // It's been moved to a different container - shuffle the sort order around

                List <BookmarkGroup>?oldContainerGroups = await db.BookmarkGroups
                                                          .Where(bg => bg.BookmarkContainerId == existingGroup.BookmarkContainerId)
                                                          .Where(bg => bg.SortOrder > existingGroup.SortOrder)
                                                          .ToListAsync();

                oldContainerGroups.ForEach(bg => bg.SortOrder -= 1);

                List <BookmarkGroup>?newContainerGroups = await db.BookmarkGroups
                                                          .Where(bg => bg.BookmarkContainerId == bookmarkGroup.BookmarkContainerId)
                                                          .Where(bg => bg.SortOrder >= bookmarkGroup.SortOrder)
                                                          .ToListAsync();

                newContainerGroups.ForEach(bg => bg.SortOrder += 1);
            }
            else if (existingGroup.SortOrder != bookmarkGroup.SortOrder)
            {
                // The group was moved within the same container

                List <BookmarkGroup>?containerGroups = await db.BookmarkGroups
                                                       .Where(bg => bg.BookmarkContainerId == bookmarkGroup.BookmarkContainerId)
                                                       .Where(bg => bg.BookmarkGroupId != bookmarkGroup.BookmarkGroupId)
                                                       .ToListAsync();

                containerGroups
                .Where(bg => bg.SortOrder > existingGroup.SortOrder)
                .ToList()
                .ForEach(bg => bg.SortOrder -= 1);

                containerGroups
                .Where(bg => bg.SortOrder > bookmarkGroup.SortOrder)
                .ToList()
                .ForEach(bg => bg.SortOrder += 1);
            }

            this.db.Entry(bookmarkGroup).State = EntityState.Modified;
            await this.db.SaveChangesAsync();

            return(bookmarkGroup);
        }
Ejemplo n.º 20
0
			// recursively builds combo box
			private void BuildComboList (BookmarkGroup bookmarks, ArrayList list)
			{
				foreach (object i in bookmarks.Members)
				{
					if (i is BookmarkGroup) {
						BuildComboList (i as BookmarkGroup, list);
					}
					
				}
				list.Add (bookmarks.Name);
				combo_to_id[bookmarks.Name] = bookmarks.ID;
				
			}
Ejemplo n.º 21
0
			void BuildTreeViewHelper (BookmarkGroup bookmarks, TreeIter iter, TreeStore store)
			{
				TreeIter tmp_iter;
				
				foreach (object i in bookmarks.Members) {
					if (i is BookmarkGroup) {
						tmp_iter = store.AppendValues (iter, ((BookmarkGroup)i).Name );
						iter_to_id[tmp_iter] = ((BookmarkGroup)i).ID;
						BuildTreeViewHelper ((BookmarkGroup)i, tmp_iter, store);
					}
					if (i is Bookmark) {
						tmp_iter = store.AppendValues (iter, ((Bookmark)i).Name);
						iter_to_id[tmp_iter] = ((Bookmark)i).ID;
					}
				}
			}
Ejemplo n.º 22
0
 public static BookmarkGroupDto MapToDto(this BookmarkGroup bookmarkGroup)
 {
     return(new BookmarkGroupDto(bookmarkGroup.BookmarkGroupId, bookmarkGroup.Title,
                                 bookmarkGroup.Color, bookmarkGroup.SortOrder, bookmarkGroup.BookmarkContainerId,
                                 bookmarkGroup.Bookmarks?.Select(b => b.MapToDto()).ToList()));
 }
Ejemplo n.º 23
0
		private static void Load () {
			using (FileStream file = new FileStream (bookmark_file,FileMode.Open)) {
				root_group = (BookmarkGroup)serializer.Deserialize (file);
			}
			#if DEBUG
			Console.WriteLine ("bookmarks loaded ({0})",root_group.Members.Count);
			#endif
		}
Ejemplo n.º 24
0
			public AddBookmarkDialog (BookmarkGroup root_group)
			{
				Glade.XML xml = new Glade.XML ("browser.glade","add_bookmark_dialog");
				xml.Autoconnect (this);
				
				combo = new Combo ();

				ArrayList list = new ArrayList ();
				
				BuildComboList (root_group,list);
				combo.PopdownStrings =  list.ToArray (typeof (string)) as string[];
				combo.AllowEmpty = false;
				combo.Entry.Editable = false;
				combo.DisableActivate ();
				
				// pusihing widget into hbox
				hbox37.PackEnd (combo);
				
				//combo.Entry.Activated += new EventHandler (on_combo_entry_activated);

				root = root_group;
				text = url = String.Empty;
				
			}
Ejemplo n.º 25
0
		public BookmarkManager (Browser browser){
			_Browser = browser;
			
			#if DEBUG
			Console.WriteLine ("Bookmark Manager init");
			#endif

			// discovering bookmark file
			bookmark_file = Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData);
			bookmark_file = System.IO.Path.Combine (bookmark_file, "monodoc");
			bookmark_file = System.IO.Path.Combine (bookmark_file, "bookmarks.xml");

			// creating serializer 
			serializer = new XmlSerializer (typeof (BookmarkGroup));

			// trying to load saved bookmarks
			try {
				Load ();
			}catch (Exception e) {
				// no bookmarks found, creating new root
				root_group = new BookmarkGroup (ROOT_NAME);
			}
			
			current_bookmark_group = ROOT_NAME;
			menu_to_id = new Hashtable ();
			BuildMenu (_Browser.bookmarksMenu);

		}