1) Update reconnect panel.

2) Update transcript handling.

git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@4886 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Derek DeMoro
2006-08-11 15:51:04 +00:00
committed by derek
parent 6374f40f72
commit 8c584a269a
5 changed files with 59 additions and 48 deletions

View File

@ -713,7 +713,7 @@ public final class LoginDialog {
Workspace workspace = Workspace.getInstance();
mainWindow.getContentPane().add(workspace, BorderLayout.CENTER);
mainWindow.getContentPane().add(workspace.getCardPanel(), BorderLayout.CENTER);
mainWindow.pack();

View File

@ -147,11 +147,11 @@ public class Workspace extends JPanel implements PacketListener {
cardLayout = new CardLayout();
cardPanel = new JPanel(cardLayout);
cardPanel.setOpaque(false);
cardPanel.add(WORKSPACE_PANE, workspacePane);
cardPanel.add(WORKSPACE_PANE, this);
// Build default workspace
this.setLayout(new GridBagLayout());
add(cardPanel, new GridBagConstraints(0, 9, 1, 1, 1.0, 1.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(4, 4, 4, 4), 0, 0));
add(workspacePane, new GridBagConstraints(0, 9, 1, 1, 1.0, 1.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(4, 4, 4, 4), 0, 0));
add(statusBox, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(4, 4, 4, 4), 0, 0));

View File

@ -63,7 +63,7 @@ public class RetryPanel extends JPanel {
descriptionLabel = new WrappedLabel();
retryButton = new RolloverButton(SparkRes.getImageIcon(SparkRes.SMALL_CHECK));
cancelButton = new RolloverButton("Login", SparkRes.getImageIcon(SparkRes.SMALL_CIRCLE_DELETE));
cancelButton = new RolloverButton("Reconnect", SparkRes.getImageIcon(SparkRes.SMALL_CHECK));
layoutComponents();
@ -92,6 +92,9 @@ public class RetryPanel extends JPanel {
* @param reason the reason the user was disconnected from the server.
*/
public void setDisconnectReason(String reason) {
if(!ModelUtil.hasLength(reason)){
reason = "You have lost your connection to the server. To login again, click on the Reconnect button below.";
}
descriptionLabel.setText(reason);
}

View File

@ -213,50 +213,10 @@ public class ChatRoomImpl extends ChatRoom {
SparkManager.getMessageEventManager().addMessageEventRequestListener(messageEventRequestListener);
SwingWorker worker = new SwingWorker() {
public Object construct() {
return SparkManager.getVCardManager().getVCard(participantJID);
}
public void finished() {
final VCard vcard = (VCard)get();
if (vcard == null) {
// Do nothing.
return;
}
// Add VCard Panel
final VCardPanel vcardPanel = new VCardPanel(vcard, participantJID);
getToolBar().add(vcardPanel, new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
scrollOnTimer();
}
};
worker.start();
lastActivity = System.currentTimeMillis();
}
private void scrollOnTimer() {
SwingWorker worker = new SwingWorker() {
public Object construct() {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
return true;
}
public void finished() {
scrollToBottom();
}
};
worker.start();
}
public void closeChatRoom() {
super.closeChatRoom();

View File

@ -15,6 +15,7 @@ import org.jivesoftware.resource.SparkRes;
import org.jivesoftware.smack.ConnectionListener;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.util.StringUtils;
import org.jivesoftware.smackx.packet.VCard;
import org.jivesoftware.spark.SparkManager;
import org.jivesoftware.spark.component.BackgroundPanel;
import org.jivesoftware.spark.plugin.ContextMenuListener;
@ -34,13 +35,14 @@ import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Iterator;
@ -144,6 +146,8 @@ public class ChatTranscriptPlugin implements ChatRoomListener {
public void chatRoomOpened(final ChatRoom room) {
LocalPreferences pref = SettingsManager.getLocalPreferences();
if (!pref.isChatHistoryEnabled()) {
final String jid = room.getRoomname();
loadUserInformation(room, jid);
return;
}
@ -180,7 +184,7 @@ public class ChatTranscriptPlugin implements ChatRoomListener {
private void insertHistory(final ChatRoom room, final TranscriptWindow roomWindow) {
final StringBuffer buf = new StringBuffer();
final String jid = room.getRoomname();
if (room.getChatType() == Message.Type.CHAT) {
SwingWorker worker = new SwingWorker() {
@ -191,7 +195,7 @@ public class ChatTranscriptPlugin implements ChatRoomListener {
catch (InterruptedException e) {
Log.error("Exception in Chat Transcript Loading.", e);
}
final String jid = room.getRoomname();
ChatTranscript transcript = ChatTranscripts.getChatTranscript(jid);
@ -240,7 +244,7 @@ public class ChatTranscriptPlugin implements ChatRoomListener {
}
}
room.scrollToBottom();
loadUserInformation(room, jid);
}
};
worker.start();
@ -402,4 +406,48 @@ public class ChatTranscriptPlugin implements ChatRoomListener {
}
};
private void loadUserInformation(final ChatRoom room, final String participantJID) {
SwingWorker worker = new SwingWorker() {
public Object construct() {
return SparkManager.getVCardManager().getVCard(participantJID);
}
public void finished() {
final VCard vcard = (VCard)get();
if (vcard == null) {
// Do nothing.
return;
}
// Add VCard Panel
final VCardPanel vcardPanel = new VCardPanel(vcard, participantJID);
room.getToolBar().add(vcardPanel, new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
scrollOnTimer(room);
}
};
worker.start();
}
private void scrollOnTimer(final ChatRoom room) {
SwingWorker worker = new SwingWorker() {
public Object construct() {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
return true;
}
public void finished() {
room.scrollToBottom();
}
};
worker.start();
}
}