From 741ee521da25f1d1608a575dbda0a84d216ed278 Mon Sep 17 00:00:00 2001 From: Derek DeMoro Date: Tue, 25 Jul 2006 18:11:56 +0000 Subject: [PATCH] 1) Fixed history. 2) Updating gateway support. git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@4679 b35dd754-fafc-0310-a699-88a17e54d16e --- .../jivesoftware/spark/ui/ContactList.java | 23 +----- .../plugin/gateways/GatewayPlugin.java | 81 ++++++++++++------- .../gateways/TransportRegistrationPanel.java | 2 +- .../gateways/transports/TransportManager.java | 17 ++-- .../transcripts/ChatTranscriptPlugin.java | 9 ++- .../preference/chat/ChatPreference.java | 4 +- .../settings/local/LocalPreferences.java | 4 +- 7 files changed, 74 insertions(+), 66 deletions(-) diff --git a/src/java/org/jivesoftware/spark/ui/ContactList.java b/src/java/org/jivesoftware/spark/ui/ContactList.java index 112959eaa..a897d8275 100644 --- a/src/java/org/jivesoftware/spark/ui/ContactList.java +++ b/src/java/org/jivesoftware/spark/ui/ContactList.java @@ -142,10 +142,6 @@ public final class ContactList extends JPanel implements ActionListener, Contact public final static String RETRY_PANEL = "RETRY_PANEL"; - // Command Bar - private RolloverButton viewOnline; - - private RetryPanel retryPanel; private RetryPanel.ReconnectListener reconnectListener; @@ -196,7 +192,7 @@ public final class ContactList extends JPanel implements ActionListener, Contact workspace.getCardPanel().add(RETRY_PANEL, retryPanel); - add(mainPanel, BorderLayout.CENTER); + add(treeScroller, BorderLayout.CENTER); // Load Properties file props = new Properties(); @@ -243,13 +239,7 @@ public final class ContactList extends JPanel implements ActionListener, Contact StatusBar statusBar = SparkManager.getWorkspace().getStatusBar(); JPanel commandPanel = statusBar.getCommandPanel(); - viewOnline = new RolloverButton(SparkRes.getImageIcon(SparkRes.VIEW_IMAGE)); - commandPanel.add(viewOnline); - viewOnline.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - showEmptyGroups(!showHideMenu.isSelected()); - } - }); + final RolloverButton addContactButton = new RolloverButton(SparkRes.getImageIcon(SparkRes.SMALL_ADD_IMAGE)); commandPanel.add(addContactButton); @@ -1648,15 +1638,6 @@ public final class ContactList extends JPanel implements ActionListener, Contact localPreferences.setEmptyGroupsShown(show); showHideMenu.setSelected(show); - viewOnline.setSelected(show); - - if (showHideMenu.isSelected()) { - viewOnline.setToolTipText("Hide Empty Groups"); - } - else { - viewOnline.setToolTipText("Show Empty Groups"); - } - } /** diff --git a/src/java/org/jivesoftware/sparkimpl/plugin/gateways/GatewayPlugin.java b/src/java/org/jivesoftware/sparkimpl/plugin/gateways/GatewayPlugin.java index 05eefb0ba..889019fa6 100644 --- a/src/java/org/jivesoftware/sparkimpl/plugin/gateways/GatewayPlugin.java +++ b/src/java/org/jivesoftware/sparkimpl/plugin/gateways/GatewayPlugin.java @@ -25,20 +25,22 @@ import org.jivesoftware.spark.SparkManager; import org.jivesoftware.spark.component.RolloverButton; import org.jivesoftware.spark.plugin.Plugin; import org.jivesoftware.spark.ui.status.StatusBar; +import org.jivesoftware.spark.util.SwingWorker; +import org.jivesoftware.spark.util.log.Log; import org.jivesoftware.sparkimpl.plugin.gateways.transports.AIMTransport; import org.jivesoftware.sparkimpl.plugin.gateways.transports.MSNTransport; import org.jivesoftware.sparkimpl.plugin.gateways.transports.Transport; import org.jivesoftware.sparkimpl.plugin.gateways.transports.TransportManager; +import javax.swing.JOptionPane; +import javax.swing.JPanel; + import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import javax.swing.JOptionPane; -import javax.swing.JPanel; - /** * */ @@ -48,35 +50,51 @@ public class GatewayPlugin implements Plugin { public void initialize() { - try { - populateTransports(SparkManager.getConnection()); - } - catch (Exception e) { - return; - } - - - for (final Transport transport : TransportManager.getTransports()) { - addTransport(transport); - } - - SparkManager.getConnection().addPacketListener(new PacketListener() { - public void processPacket(Packet packet) { - Presence presence = (Presence)packet; - Transport transport = TransportManager.getTransport(packet.getFrom()); - if (transport != null) { - boolean registered = presence != null && presence.getMode() != null; - RolloverButton button = uiMap.get(transport); - if (!registered) { - button.setIcon(transport.getInactiveIcon()); - } - else { - button.setIcon(transport.getIcon()); + SwingWorker thread = new SwingWorker() { + public Object construct() { + try { + populateTransports(SparkManager.getConnection()); + for (final Transport transport : TransportManager.getTransports()) { + addTransport(transport); } } - } - }, new PacketTypeFilter(Presence.class)); + catch (Exception e) { + Log.error(e); + return false; + } + return true; + } + + public void finished() { + Boolean b = (Boolean)get(); + if (!b) { + return; + } + SparkManager.getConnection().addPacketListener(new PacketListener() { + public void processPacket(Packet packet) { + Presence presence = (Presence)packet; + Transport transport = TransportManager.getTransport(packet.getFrom()); + if (transport != null) { + boolean registered = presence != null && presence.getMode() != null; + if (presence.getType() == Presence.Type.UNAVAILABLE) { + registered = false; + } + RolloverButton button = uiMap.get(transport); + if (!registered) { + button.setIcon(transport.getInactiveIcon()); + } + else { + button.setIcon(transport.getIcon()); + } + } + } + }, new PacketTypeFilter(Presence.class)); + + } + }; + + thread.start(); } public void shutdown() { @@ -140,8 +158,11 @@ public class GatewayPlugin implements Plugin { commandPanel.add(button); button.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { - if (!isRegistered) { + boolean reg = TransportManager.isRegistered(SparkManager.getConnection(), transport); + if (!reg) { TransportManager.registerWithService(SparkManager.getConnection(), transport.getServiceName()); // Send Presence diff --git a/src/java/org/jivesoftware/sparkimpl/plugin/gateways/TransportRegistrationPanel.java b/src/java/org/jivesoftware/sparkimpl/plugin/gateways/TransportRegistrationPanel.java index 09ac9f3a3..50351df45 100644 --- a/src/java/org/jivesoftware/sparkimpl/plugin/gateways/TransportRegistrationPanel.java +++ b/src/java/org/jivesoftware/sparkimpl/plugin/gateways/TransportRegistrationPanel.java @@ -40,7 +40,7 @@ public class TransportRegistrationPanel extends JPanel { final Transport transport = TransportManager.getTransport(serviceName); - titlePanel = new TitlePanel("AIM Registration", transport.getTitle(), transport.getIcon(), true); + titlePanel = new TitlePanel(transport.getTitle(), transport.getInstructions(), transport.getIcon(), true); add(titlePanel, new GridBagConstraints(0, 0, 2, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); diff --git a/src/java/org/jivesoftware/sparkimpl/plugin/gateways/transports/TransportManager.java b/src/java/org/jivesoftware/sparkimpl/plugin/gateways/transports/TransportManager.java index 72d3d2322..b72a545f0 100644 --- a/src/java/org/jivesoftware/sparkimpl/plugin/gateways/transports/TransportManager.java +++ b/src/java/org/jivesoftware/sparkimpl/plugin/gateways/transports/TransportManager.java @@ -20,9 +20,14 @@ import org.jivesoftware.smack.packet.Presence; import org.jivesoftware.smack.packet.Registration; import org.jivesoftware.spark.SparkManager; import org.jivesoftware.spark.component.RolloverButton; +import org.jivesoftware.spark.util.GraphicUtils; import org.jivesoftware.spark.util.ModelUtil; import org.jivesoftware.sparkimpl.plugin.gateways.TransportRegistrationPanel; +import javax.swing.JDialog; +import javax.swing.JOptionPane; +import javax.swing.JPanel; + import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; @@ -31,10 +36,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; -import javax.swing.JDialog; -import javax.swing.JOptionPane; -import javax.swing.JPanel; - /** * */ @@ -67,6 +68,9 @@ public class TransportManager { public static boolean isRegistered(XMPPConnection con, Transport transport) { Presence presence = con.getRoster().getPresence(transport.getServiceName()); boolean registered = presence != null && presence.getMode() != null; + if (presence == null || presence.getType() == Presence.Type.UNAVAILABLE) { + registered = false; + } return registered; } @@ -92,9 +96,10 @@ public class TransportManager { final JDialog dialog = new JDialog(SparkManager.getMainWindow(), transport.getTitle(), true); dialog.add(mainPanel); dialog.pack(); - dialog.setLocationRelativeTo(SparkManager.getMainWindow()); dialog.setSize(400, 200); + GraphicUtils.centerWindowOnComponent(dialog, SparkManager.getMainWindow()); + registerButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @@ -109,7 +114,7 @@ public class TransportManager { registerUser(con, serviceName, username, password); // Send updated presence. - + } catch (XMPPException e1) { JOptionPane.showMessageDialog(mainPanel, "Unable to register with Transport.", "Registration Error", JOptionPane.ERROR_MESSAGE); diff --git a/src/java/org/jivesoftware/sparkimpl/plugin/transcripts/ChatTranscriptPlugin.java b/src/java/org/jivesoftware/sparkimpl/plugin/transcripts/ChatTranscriptPlugin.java index 79b93c75f..d07ee21d7 100644 --- a/src/java/org/jivesoftware/sparkimpl/plugin/transcripts/ChatTranscriptPlugin.java +++ b/src/java/org/jivesoftware/sparkimpl/plugin/transcripts/ChatTranscriptPlugin.java @@ -143,7 +143,7 @@ public class ChatTranscriptPlugin implements ChatRoomListener { public void chatRoomOpened(final ChatRoom room) { LocalPreferences pref = SettingsManager.getLocalPreferences(); - if (pref.isHideChatHistory()) { + if (!pref.isChatHistoryEnabled()) { return; } @@ -267,7 +267,7 @@ public class ChatTranscriptPlugin implements ChatRoomListener { private void persistChatRoom(final ChatRoom room) { LocalPreferences pref = SettingsManager.getLocalPreferences(); - if (pref.isHideChatHistory()) { + if (!pref.isChatHistoryEnabled()) { return; } @@ -317,7 +317,8 @@ public class ChatTranscriptPlugin implements ChatRoomListener { SwingWorker transcriptLoader = new SwingWorker() { public Object construct() { - return ChatTranscripts.getChatTranscript(jid); + String bareJID = StringUtils.parseBareAddress(jid); + return ChatTranscripts.getChatTranscript(bareJID); } public void finished() { @@ -338,7 +339,7 @@ public class ChatTranscriptPlugin implements ChatRoomListener { ChatTranscript transcript = (ChatTranscript)get(); List list = transcript.getMessages(); - Collections.sort(list, dateComparator); + //Collections.sort(list, dateComparator); for (HistoryMessage message : list) { String from = message.getFrom(); diff --git a/src/java/org/jivesoftware/sparkimpl/preference/chat/ChatPreference.java b/src/java/org/jivesoftware/sparkimpl/preference/chat/ChatPreference.java index 1c0c0a1c7..79d611d95 100644 --- a/src/java/org/jivesoftware/sparkimpl/preference/chat/ChatPreference.java +++ b/src/java/org/jivesoftware/sparkimpl/preference/chat/ChatPreference.java @@ -79,7 +79,7 @@ public class ChatPreference implements Preference { boolean showTime = pref.isTimeDisplayedInChat(); boolean spellCheckerOn = pref.isSpellCheckerEnabled(); boolean notificationsOn = pref.isChatRoomNotificationsOn(); - boolean chatHistoryHidden = pref.isHideChatHistory(); + boolean chatHistoryHidden = !pref.isChatHistoryEnabled(); panel.setShowTime(showTime); panel.setSpellCheckerOn(spellCheckerOn); panel.setGroupChatNotificationsOn(notificationsOn); @@ -96,7 +96,7 @@ public class ChatPreference implements Preference { pref.setTimeDisplayedInChat(panel.getShowTime()); pref.setSpellCheckerEnabled(panel.isSpellCheckerOn()); pref.setChatRoomNotifications(panel.isGroupChatNotificationsOn()); - pref.setHideChatHistory(panel.isChatHistoryHidden()); + pref.setChatHistoryEnabled(!panel.isChatHistoryHidden()); SettingsManager.saveSettings(); diff --git a/src/java/org/jivesoftware/sparkimpl/settings/local/LocalPreferences.java b/src/java/org/jivesoftware/sparkimpl/settings/local/LocalPreferences.java index 2d84798b5..e7d1bd7bc 100644 --- a/src/java/org/jivesoftware/sparkimpl/settings/local/LocalPreferences.java +++ b/src/java/org/jivesoftware/sparkimpl/settings/local/LocalPreferences.java @@ -378,11 +378,11 @@ public class LocalPreferences { setBoolean("chatNotificationOn", on); } - public boolean isHideChatHistory() { + public boolean isChatHistoryEnabled() { return getBoolean("showHistory", true); } - public void setHideChatHistory(boolean hideChatHistory) { + public void setChatHistoryEnabled(boolean hideChatHistory) { setBoolean("showHistory", hideChatHistory); }