📄 xbookmarkmanager.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 + -