1) Fixed history.

2) Updating gateway support.

git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@4679 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Derek DeMoro
2006-07-25 18:11:56 +00:00
committed by derek
parent 5d4857e036
commit 741ee521da
7 changed files with 74 additions and 66 deletions

View File

@ -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");
}
}
/**

View File

@ -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

View File

@ -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));

View File

@ -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);

View File

@ -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<HistoryMessage> list = transcript.getMessages();
Collections.sort(list, dateComparator);
//Collections.sort(list, dateComparator);
for (HistoryMessage message : list) {
String from = message.getFrom();

View File

@ -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();

View File

@ -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);
}