mirror of
https://github.com/igniterealtime/Spark.git
synced 2025-12-01 12:27:58 +00:00
SPARK-1221: Bookmark Plugin causes error in error log
git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@12044 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
committed by
konstantin.zolotarev
parent
7f98e035f8
commit
744bcde294
@ -99,9 +99,16 @@ public class BookmarksUI extends JPanel {
|
||||
private BookmarkManager manager;
|
||||
|
||||
/**
|
||||
* Initialize Conference UI.
|
||||
*
|
||||
*/
|
||||
public BookmarksUI() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize Conference UI.
|
||||
*/
|
||||
public void loadUI() {
|
||||
setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY));
|
||||
setLayout(new GridBagLayout());
|
||||
|
||||
@ -111,6 +118,7 @@ public class BookmarksUI extends JPanel {
|
||||
tree = new Tree(rootNode) {
|
||||
private static final long serialVersionUID = -8445572224948613446L;
|
||||
|
||||
@Override
|
||||
protected void setExpandedState(TreePath path, boolean state) {
|
||||
// Ignore all collapse requests; collapse events will not be fired
|
||||
if (state) {
|
||||
@ -120,10 +128,12 @@ public class BookmarksUI extends JPanel {
|
||||
};
|
||||
|
||||
tree.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent mouseEvent) {
|
||||
tree.setCursor(GraphicUtils.HAND_CURSOR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent mouseEvent) {
|
||||
tree.setCursor(GraphicUtils.DEFAULT_CURSOR);
|
||||
}
|
||||
@ -142,6 +152,7 @@ public class BookmarksUI extends JPanel {
|
||||
tree.setRootVisible(false);
|
||||
|
||||
tree.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent mouseEvent) {
|
||||
if (mouseEvent.getClickCount() == 2) {
|
||||
TreePath path = tree.getPathForLocation(mouseEvent.getX(), mouseEvent.getY());
|
||||
@ -160,10 +171,12 @@ public class BookmarksUI extends JPanel {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent mouseEvent) {
|
||||
checkPopup(mouseEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent mouseEvent) {
|
||||
checkPopup(mouseEvent);
|
||||
}
|
||||
@ -179,6 +192,7 @@ public class BookmarksUI extends JPanel {
|
||||
}
|
||||
|
||||
final TimerTask bookmarkTask = new SwingTimerTask() {
|
||||
@Override
|
||||
public void doRun() {
|
||||
try {
|
||||
setBookmarks(manager.getBookmarkedConferences());
|
||||
@ -207,6 +221,7 @@ public class BookmarksUI extends JPanel {
|
||||
Action browseAction = new AbstractAction() {
|
||||
private static final long serialVersionUID = -8866708581713789939L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
browseRooms(node.toString());
|
||||
}
|
||||
@ -217,6 +232,7 @@ public class BookmarksUI extends JPanel {
|
||||
Action removeServiceAction = new AbstractAction() {
|
||||
private static final long serialVersionUID = -5276754429117462223L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
DefaultTreeModel treeModel = (DefaultTreeModel)tree.getModel();
|
||||
treeModel.removeNodeFromParent(node);
|
||||
@ -232,6 +248,7 @@ public class BookmarksUI extends JPanel {
|
||||
Action joinRoomAction = new AbstractAction() {
|
||||
private static final long serialVersionUID = -356016505214728244L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
String roomName = node.getUserObject().toString();
|
||||
String roomJID = node.getAssociatedObject().toString();
|
||||
@ -245,6 +262,7 @@ public class BookmarksUI extends JPanel {
|
||||
Action removeRoomAction = new AbstractAction() {
|
||||
private static final long serialVersionUID = -7560090091884746914L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
DefaultTreeModel treeModel = (DefaultTreeModel)tree.getModel();
|
||||
treeModel.removeNodeFromParent(node);
|
||||
@ -273,6 +291,7 @@ public class BookmarksUI extends JPanel {
|
||||
Action autoJoin = new AbstractAction() {
|
||||
private static final long serialVersionUID = 7857469398581933449L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String roomJID = node.getAssociatedObject().toString();
|
||||
if (autoJoinRooms.contains(roomJID)) {
|
||||
@ -298,6 +317,7 @@ public class BookmarksUI extends JPanel {
|
||||
Action roomInfoAction = new AbstractAction() {
|
||||
private static final long serialVersionUID = -8336773839944003744L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
String roomJID = node.getAssociatedObject().toString();
|
||||
RoomBrowser roomBrowser = new RoomBrowser();
|
||||
@ -326,6 +346,7 @@ public class BookmarksUI extends JPanel {
|
||||
private void addRegisteredServices() {
|
||||
SwingWorker worker = new SwingWorker() {
|
||||
|
||||
@Override
|
||||
public Object construct() {
|
||||
try {
|
||||
if (SparkManager.getConnection().isConnected()) {
|
||||
@ -338,6 +359,7 @@ public class BookmarksUI extends JPanel {
|
||||
return mucServices;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finished() {
|
||||
if (mucServices == null) {
|
||||
return;
|
||||
@ -431,6 +453,7 @@ public class BookmarksUI extends JPanel {
|
||||
final Action conferenceAction = new AbstractAction() {
|
||||
private static final long serialVersionUID = 7973928300442518496L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
final String conferenceService = serviceField.getText();
|
||||
if (hasService(conferenceService)) {
|
||||
@ -445,6 +468,7 @@ public class BookmarksUI extends JPanel {
|
||||
SwingWorker worker = new SwingWorker() {
|
||||
DiscoverInfo discoInfo;
|
||||
|
||||
@Override
|
||||
public Object construct() {
|
||||
ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(SparkManager.getConnection());
|
||||
|
||||
@ -477,6 +501,7 @@ public class BookmarksUI extends JPanel {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finished() {
|
||||
if (discoInfo != null) {
|
||||
for (String aServiceList : serviceList) {
|
||||
@ -505,6 +530,7 @@ public class BookmarksUI extends JPanel {
|
||||
|
||||
|
||||
serviceField.addKeyListener(new KeyAdapter() {
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
|
||||
conferenceAction.actionPerformed(null);
|
||||
|
||||
@ -70,7 +70,7 @@ import org.jivesoftware.spark.util.log.Log;
|
||||
* you can remove from the plugins.xml file located in the classpath of Communicator.
|
||||
*/
|
||||
public class ConferenceServices {
|
||||
private static BookmarksUI bookmarksUI;
|
||||
private static BookmarksUI bookmarksUI = new BookmarksUI(); //This variable shouldn't be null.
|
||||
|
||||
public ConferenceServices() {
|
||||
ServiceDiscoveryManager manager = ServiceDiscoveryManager.getInstanceFor(SparkManager.getConnection());
|
||||
@ -224,7 +224,7 @@ public class ConferenceServices {
|
||||
}
|
||||
|
||||
public void finished() {
|
||||
bookmarksUI = new BookmarksUI();
|
||||
bookmarksUI.loadUI();
|
||||
workspace.getWorkspacePane().addTab(Res.getString("tab.conferences"), SparkRes.getImageIcon(SparkRes.CONFERENCE_IMAGE_16x16), bookmarksUI);
|
||||
}
|
||||
};
|
||||
|
||||
@ -81,6 +81,7 @@ public class BookmarkItem extends JPanel {
|
||||
action = new AbstractAction() {
|
||||
private static final long serialVersionUID = 6986851628853679682L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
try {
|
||||
BrowserLauncher.openURL(bookmark.getURL());
|
||||
@ -99,8 +100,10 @@ public class BookmarkItem extends JPanel {
|
||||
action = new AbstractAction() {
|
||||
private static final long serialVersionUID = 4324785627112595384L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
SwingWorker worker = new SwingWorker() {
|
||||
@Override
|
||||
public Object construct() {
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
@ -111,6 +114,7 @@ public class BookmarkItem extends JPanel {
|
||||
return "ok";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finished() {
|
||||
ConferenceUtils.joinConferenceOnSeperateThread(bookmark.getName(), bookmark.getJid(), bookmark.getPassword());
|
||||
}
|
||||
|
||||
@ -27,8 +27,6 @@ import javax.swing.AbstractAction;
|
||||
import javax.swing.Action;
|
||||
import javax.swing.JMenu;
|
||||
|
||||
import javax.swing.event.MenuEvent;
|
||||
import javax.swing.event.MenuListener;
|
||||
import org.jivesoftware.resource.Res;
|
||||
import org.jivesoftware.resource.SparkRes;
|
||||
import org.jivesoftware.smack.XMPPException;
|
||||
@ -52,18 +50,32 @@ import org.jivesoftware.spark.util.log.Log;
|
||||
*/
|
||||
public class BookmarkPlugin implements Plugin {
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
|
||||
final SwingWorker bookmarkThreadWorker = new SwingWorker() {
|
||||
|
||||
@Override
|
||||
public Object construct() {
|
||||
return this;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Installing menu into spark menu and adding events to bookmarks
|
||||
*/
|
||||
@Override
|
||||
public void finished() {
|
||||
|
||||
try {
|
||||
initialize();
|
||||
} catch (Exception e) {
|
||||
Log.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public void initialize() {
|
||||
final JMenu bookmarkMenu = new JMenu(Res.getString("menuitem.bookmarks"));
|
||||
|
||||
createMenu(bookmarkMenu);
|
||||
@ -74,38 +86,18 @@ public class BookmarkPlugin implements Plugin {
|
||||
}
|
||||
|
||||
BookmarksUI bookmarksUi = ConferenceServices.getBookmarkedConferences();
|
||||
if ( bookmarksUi != null ) {
|
||||
bookmarksUi.addBookmarksListener(new BookmarksListener() {
|
||||
bookmarksUi.addBookmarksListener(new BookmarksListener() {
|
||||
|
||||
@Override
|
||||
public void bookmarkAdded(String roomJID) {
|
||||
rescan(bookmarkMenu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bookmarkRemoved(String roomJID) {
|
||||
rescan(bookmarkMenu);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
/**
|
||||
* IF our plugin loaded earlier than BookmarkUI we have to reskan bookmarks every time we open this menu
|
||||
* And BookmarksListener event wouldn't work
|
||||
*/
|
||||
Log.error("Bookmark plugin loaded earlier then BookmarkUI. BookmarksListener Events wouldn't work!");
|
||||
bookmarkMenu.addMenuListener(new MenuListener() {
|
||||
|
||||
public void menuSelected(MenuEvent menuEvent) {
|
||||
rescan(bookmarkMenu);
|
||||
}
|
||||
|
||||
public void menuDeselected(MenuEvent arg0) {
|
||||
//ignore
|
||||
}
|
||||
|
||||
public void menuCanceled(MenuEvent arg0) {
|
||||
//ignore
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,8 +105,7 @@ public class BookmarkPlugin implements Plugin {
|
||||
*
|
||||
* @param Bookmark menu Jmenu
|
||||
*/
|
||||
public void rescan(JMenu bookmarkMenu)
|
||||
{
|
||||
public void rescan(JMenu bookmarkMenu) {
|
||||
bookmarkMenu.removeAll(); // removing old menus
|
||||
try {
|
||||
setBookmarks(bookmarkMenu); // making new
|
||||
@ -126,16 +117,15 @@ public class BookmarkPlugin implements Plugin {
|
||||
SparkManager.getMainWindow().getMenu().add(bookmarkMenu, menuCount - 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (onPanel >= 0) {
|
||||
if (bookmarkMenu.getMenuComponentCount() <= 0) {
|
||||
SparkManager.getMainWindow().getMenu().remove(bookmarkMenu);
|
||||
}
|
||||
}
|
||||
// Refreshing menu panel
|
||||
SparkManager.getWorkspace().getStatusBar().invalidate();
|
||||
SparkManager.getWorkspace().getStatusBar().validate();
|
||||
SparkManager.getWorkspace().getStatusBar().repaint();
|
||||
SparkManager.getMainWindow().getMenu().invalidate();
|
||||
SparkManager.getMainWindow().getMenu().validate();
|
||||
SparkManager.getMainWindow().getMenu().repaint();
|
||||
} catch (XMPPException ex) {
|
||||
Log.error(ex);
|
||||
}
|
||||
@ -146,11 +136,7 @@ public class BookmarkPlugin implements Plugin {
|
||||
*
|
||||
* @param Bookmark menu Jmenu
|
||||
*/
|
||||
public void createMenu(JMenu bookmarkMenu)
|
||||
{
|
||||
SparkManager.getWorkspace().getStatusBar().invalidate();
|
||||
SparkManager.getWorkspace().getStatusBar().validate();
|
||||
SparkManager.getWorkspace().getStatusBar().repaint();
|
||||
public void createMenu(JMenu bookmarkMenu) {
|
||||
try {
|
||||
setBookmarks(bookmarkMenu);
|
||||
} catch (XMPPException ex) {
|
||||
@ -164,8 +150,7 @@ public class BookmarkPlugin implements Plugin {
|
||||
*
|
||||
* @param Bookmark menu Jmenu
|
||||
*/
|
||||
public void setBookmarks(JMenu bookmarkMenu ) throws XMPPException
|
||||
{
|
||||
public void setBookmarks(JMenu bookmarkMenu) throws XMPPException {
|
||||
BookmarkManager manager = BookmarkManager.getBookmarkManager(SparkManager.getConnection());
|
||||
|
||||
if (manager != null) {
|
||||
@ -177,13 +162,14 @@ public class BookmarkPlugin implements Plugin {
|
||||
final BookmarkedURL link = (BookmarkedURL) bookmarkedLink;
|
||||
|
||||
Action urlAction = new AbstractAction() {
|
||||
private static final long serialVersionUID = 4246574779205966917L;
|
||||
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
private static final long serialVersionUID = 4246574779205966917L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
try {
|
||||
BrowserLauncher.openURL(link.getURL());
|
||||
}
|
||||
catch (Exception e) {
|
||||
} catch (Exception e) {
|
||||
Log.error(e);
|
||||
}
|
||||
}
|
||||
@ -199,10 +185,14 @@ public class BookmarkPlugin implements Plugin {
|
||||
final BookmarkedConference conferences = (BookmarkedConference) bookmarkedConference;
|
||||
|
||||
Action conferenceAction = new AbstractAction() {
|
||||
private static final long serialVersionUID = 5964584172262968704L;
|
||||
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
private static final long serialVersionUID = 5964584172262968704L;
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
final TimerTask task = new SwingTimerTask() {
|
||||
|
||||
@Override
|
||||
public void doRun() {
|
||||
ConferenceUtils.joinConferenceOnSeperateThread(conferences.getName(), conferences.getJid(), conferences.getPassword());
|
||||
}
|
||||
@ -217,20 +207,23 @@ public class BookmarkPlugin implements Plugin {
|
||||
bookmarkMenu.add(conferenceAction);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
bookmarkThreadWorker.start();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutdown() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canShutDown() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uninstall() {
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,6 +56,7 @@ public class BookmarkUI extends JPanel {
|
||||
list.setCellRenderer(new JPanelRenderer());
|
||||
|
||||
list.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent mouseEvent) {
|
||||
if (mouseEvent.getClickCount() == 2) {
|
||||
BookmarkItem item = (BookmarkItem)list.getSelectedValue();
|
||||
@ -66,10 +67,12 @@ public class BookmarkUI extends JPanel {
|
||||
|
||||
|
||||
pane.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent e) {
|
||||
list.setCursor(GraphicUtils.HAND_CURSOR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent e) {
|
||||
list.setCursor(GraphicUtils.DEFAULT_CURSOR);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user