Memory work.

git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@9261 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Derek DeMoro
2007-10-02 20:20:10 +00:00
committed by derek
parent c3c056d8ba
commit 4eac4d1ed6
3 changed files with 71 additions and 62 deletions

View File

@ -21,7 +21,6 @@ import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.JMenuItem;
@ -41,6 +40,7 @@ import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
@ -53,7 +53,7 @@ import java.util.StringTokenizer;
* The ChatArea class handles proper chat text formatting such as url handling. Use ChatArea for proper
* formatting of bold, italics, underlined and urls.
*/
public class ChatArea extends JTextPane implements MouseListener, MouseMotionListener {
public class ChatArea extends JTextPane implements MouseListener, MouseMotionListener, ActionListener {
/**
* The SimpleAttributeSet used within this instance of JTextPane.
*/
@ -99,55 +99,24 @@ public class ChatArea extends JTextPane implements MouseListener, MouseMotionLis
public ChatArea() {
emoticonManager = EmoticonManager.getInstance();
// Set Default Font
// Set Default Font
final LocalPreferences pref = SettingsManager.getLocalPreferences();
int fs = pref.getChatRoomFontSize();
fontSize = fs;
setFontSize(fs);
// Cut Action
final Action cutAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
String selectedText = getSelectedText();
replaceSelection("");
SparkManager.setClipboard(selectedText);
}
};
cutAction.putValue(Action.NAME, "Cut");
// Copy Action
final Action copyAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
SparkManager.setClipboard(getSelectedText());
}
};
copyAction.putValue(Action.NAME, "Copy");
cutMenu = new JMenuItem("Cut");
cutMenu.addActionListener(this);
// Paste Action
final Action pasteAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
String text = SparkManager.getClipboard();
if (text != null) {
replaceSelection(text);
}
}
};
pasteAction.putValue(Action.NAME, "Paste");
copyMenu = new JMenuItem("Copy");
copyMenu.addActionListener(this);
// Select All Action
Action selectAllAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
requestFocus();
selectAll();
}
};
selectAllAction.putValue(Action.NAME, "Select All");
pasteMenu = new JMenuItem("Paste");
pasteMenu.addActionListener(this);
cutMenu = new JMenuItem(cutAction);
copyMenu = new JMenuItem(copyAction);
pasteMenu = new JMenuItem(pasteAction);
selectAll = new JMenuItem(selectAllAction);
selectAll = new JMenuItem("Select All");
selectAll.addActionListener(this);
// Set Default Font
setFont(new Font("Dialog", Font.PLAIN, 12));
@ -157,7 +126,7 @@ public class ChatArea extends JTextPane implements MouseListener, MouseMotionLis
getActionMap().put("cut", new AbstractAction("cut") {
public void actionPerformed(ActionEvent evt) {
cutAction.actionPerformed(evt);
cutAction();
}
});
@ -173,7 +142,7 @@ public class ChatArea extends JTextPane implements MouseListener, MouseMotionLis
getActionMap().put("paste", new AbstractAction("paste") {
public void actionPerformed(ActionEvent evt) {
pasteAction.actionPerformed(evt);
pasteAction();
}
});
@ -696,4 +665,39 @@ public class ChatArea extends JTextPane implements MouseListener, MouseMotionLis
return false;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == cutMenu) {
cutAction();
}
else if (e.getSource() == copyMenu) {
SparkManager.setClipboard(getSelectedText());
}
else if (e.getSource() == pasteMenu) {
pasteAction();
}
else if (e.getSource() == selectAll) {
requestFocus();
selectAll();
}
}
private void cutAction() {
String selectedText = getSelectedText();
replaceSelection("");
SparkManager.setClipboard(selectedText);
}
private void pasteAction() {
String text = SparkManager.getClipboard();
if (text != null) {
replaceSelection(text);
}
}
protected void releaseResources() {
getActionMap().remove("copy");
getActionMap().remove("cut");
getActionMap().remove("paste");
}
}

View File

@ -246,7 +246,7 @@ public abstract class ChatRoom extends BackgroundPanel implements ActionListener
// Add Key Listener to Send Field
chatEditorKeyListener = new KeyAdapter() {
public void keyPressed(KeyEvent e) {
checkForEnter(e);
checkForEnter(e);
}
};
@ -605,6 +605,7 @@ public abstract class ChatRoom extends BackgroundPanel implements ActionListener
getTranscriptWindow().removeMouseListener(transcriptWindowMouseListener);
getChatInputEditor().removeKeyListener(chatEditorKeyListener);
textScroller.getViewport().remove(transcriptWindow);
// Remove Connection Listener
SparkManager.getConnection().removeConnectionListener(this);

View File

@ -23,21 +23,6 @@ import org.jivesoftware.spark.util.log.Log;
import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JComponent;
@ -53,6 +38,21 @@ import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
/**
* The <CODE>TranscriptWindow</CODE> class. Provides a default implementation
* of a Chat Window. In general, extensions could override this class
@ -440,7 +440,7 @@ public class TranscriptWindow extends ChatArea implements ContextMenuListener {
writer.write(buf.toString());
writer.close();
JOptionPane.showMessageDialog(SparkManager.getMainWindow(), "Chat transcript has been saved.",
"Chat Transcript Saved", JOptionPane.INFORMATION_MESSAGE);
"Chat Transcript Saved", JOptionPane.INFORMATION_MESSAGE);
}
}
catch (Exception ex) {
@ -451,12 +451,15 @@ public class TranscriptWindow extends ChatArea implements ContextMenuListener {
}
public void cleanup() {
super.releaseResources();
clear();
removeMouseListener(this);
removeMouseMotionListener(this);
removeContextMenuListener(this);
getActionMap().remove("copy");
}
@ -471,8 +474,9 @@ public class TranscriptWindow extends ChatArea implements ContextMenuListener {
/**
* Adds Print and Clear actions.
*
* @param object the TransferWindow
* @param popup the popup menu to add to.
* @param popup the popup menu to add to.
*/
public void poppingUp(final Object object, JPopupMenu popup) {
Action printAction = new AbstractAction() {