mirror of
https://github.com/igniterealtime/Spark.git
synced 2026-08-18 11:10:02 +00:00
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:
@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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));
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user