⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xbookmarkmanager.java

📁 XBrowser是一个完全免费并且开源的Web浏览器
💻 JAVA
字号:
/****************************************************************
*              XBrowser  -  eXtended web Browser                *
*                                                               *
*           Copyright (c) 2000-2001  Armond Avanes              *
*     Refer to ReadMe & License files for more information      *
*                                                               *
*                                                               *
*                      By: Armond Avanes                        *
*       Armond555@yahoo.com     &    Armond333@yahoo.com        *
*                http://xbrowser.sourceforge.net/               *
*****************************************************************/
package xbrowser.bookmark;

import java.io.*;
import java.util.*;

import xbrowser.*;
import xbrowser.widgets.*;
import xbrowser.util.*;
import xbrowser.bookmark.io.*;
import xbrowser.bookmark.event.*;

/** Bookmark subsystem; management and storage of bookmarks. */
public final class XBookmarkManager extends XBookmarkFolder
{
	/** Creates empty root bookmark folder. */
	public XBookmarkManager()
	{
		setTitle( XRepository.getResourceManager().getProperty(this, "Title") );
	}

	private void loadDefaults()
	{
	XBookmarkFolder xbrowser_folder = new XBookmarkFolder(XProjectConstants.PRODUCT_NAME, XProjectConstants.PRODUCT_NAME+" on the Internet");

		addBookmark( new XBookmark("http://java.sun.com", "java.sun.com", "Java's mother land ;-)") );
		xbrowser_folder.addBookmark( new XBookmark(XProjectConstants.AUTHOR_HOME_PAGE, "Java! Java! Java!", "") );
		xbrowser_folder.addBookmark( new XBookmark(XProjectConstants.PRODUCT_HOME_PAGE, XProjectConstants.PRODUCT_NAME, "") );

		addBookmark(xbrowser_folder);
	}

	/** Reads XBrowser's saved bookmarks.Restores defaults on error. */
	public void load()
	{
		try
		{
		String file_name = XProjectConstants.CONFIG_DIR+XRepository.getConfiguration().getBookmarkFileName();

			XRepository.getConfiguration().getActiveBookmarkSerializer().getSerializer().importFrom(file_name, this);
		}
		catch( Exception e )
		{
			XRepository.getLogger().warning(this, "An error occured on loading the bookmarks!");
			XRepository.getLogger().warning(this, e);

			removeAllBookmarks();
			loadDefaults();
			XRepository.getConfiguration().setPersonalToolBar(false);

			//save();
		}
	}

	/** Saves XBrowser's bookmarks to file. */
	public void save()
	{
		try
		{
		String file_name = XProjectConstants.CONFIG_DIR+XRepository.getConfiguration().getBookmarkFileName();

			XRepository.getConfiguration().getActiveBookmarkSerializer().getSerializer().exportTo(file_name, this);
		}
		catch( Exception e )
		{
			XRepository.getLogger().warning(this, "An error occured while saving the bookmarks!");
			XRepository.getLogger().warning(this, e);
		}
	}

	/** Registers listener for adding bookmark. */
	public void addBookmarkFolderListener(XBookmarkFolderListener listener)
	{
		if( !bookmarkFolderListeners.contains(listener) )
		{
			bookmarkFolderListeners.add(listener);
			updateListener(listener);
		}
	}

	/** Removes listener for adding bookmark. */
	public void removeBookmarkFolderListener(XBookmarkFolderListener listener)
	{
		bookmarkFolderListeners.remove(listener);
	}

	/** Create new empty bookmark folder (named 'New Folder' translated). */
	public XBookmarkFolder createNewBookmarkFolder()
	{
		return new XBookmarkFolder(XProjectConstants.NEW_BOOKMARK_FOLDER_TITLE, XProjectConstants.NEW_BOOKMARK_FOLDER_DESCRIPTION);
	}

	/** Create new empty bookmark (named 'New Bookmark' translated). */
	public XBookmark createNewBookmark()
	{
		return new XBookmark(XProjectConstants.NEW_BOOKMARK_HREF, XProjectConstants.NEW_BOOKMARK_TITLE, XProjectConstants.NEW_BOOKMARK_DESCRIPTION);
	}

	private void updateListener(XBookmarkFolderListener listener)
	{
	Iterator it = getBookmarks();

		while( it.hasNext() )
			listener.bookmarkAdded((XAbstractBookmark)it.next(), parent);
	}

	void bookmarkAdded(XAbstractBookmark bookmark, XBookmarkFolder parent)
	{
	XBookmarkFolderListener listener;

		for( int i=0; i<bookmarkFolderListeners.size(); i++ )
		{
			listener = (XBookmarkFolderListener)bookmarkFolderListeners.get(i);
			listener.bookmarkAdded(bookmark, parent);
		}
	}

	void bookmarkRemoved(XAbstractBookmark bookmark, XBookmarkFolder parent)
	{
	XBookmarkFolderListener listener;

		for( int i=0; i<bookmarkFolderListeners.size(); i++ )
		{
			listener = (XBookmarkFolderListener)bookmarkFolderListeners.get(i);
			listener.bookmarkRemoved(bookmark, parent);
		}
	}

	void setPersonalFolder(XBookmarkFolder folder)
	{
		if( personalFolder==folder )
				return;

	XBookmarkFolder old_personal_folder = personalFolder;
	XBookmarkFolderListener listener;

		personalFolder = folder;

		for( int i=0; i<bookmarkFolderListeners.size(); i++ )
		{
			listener = (XBookmarkFolderListener)bookmarkFolderListeners.get(i);
			listener.personalFolderChanged(old_personal_folder, personalFolder);
		}
	}

	XBookmarkFolder getPersonalFolder()
	{
		return personalFolder;
	}

// Attributes:
    private LinkedList bookmarkFolderListeners = new LinkedList();
    private XBookmarkFolder personalFolder = null;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -