mirror of
https://github.com/igniterealtime/Spark.git
synced 2025-12-01 12:27:58 +00:00
Memory work.
git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@9261 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
@ -21,7 +21,6 @@ import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
|
|||||||
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
|
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
|
||||||
|
|
||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
import javax.swing.Action;
|
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
@ -41,6 +40,7 @@ import java.awt.Color;
|
|||||||
import java.awt.Cursor;
|
import java.awt.Cursor;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.event.MouseListener;
|
import java.awt.event.MouseListener;
|
||||||
import java.awt.event.MouseMotionListener;
|
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
|
* The ChatArea class handles proper chat text formatting such as url handling. Use ChatArea for proper
|
||||||
* formatting of bold, italics, underlined and urls.
|
* 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.
|
* The SimpleAttributeSet used within this instance of JTextPane.
|
||||||
*/
|
*/
|
||||||
@ -105,49 +105,18 @@ public class ChatArea extends JTextPane implements MouseListener, MouseMotionLis
|
|||||||
fontSize = fs;
|
fontSize = fs;
|
||||||
setFontSize(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
|
cutMenu = new JMenuItem("Cut");
|
||||||
final Action copyAction = new AbstractAction() {
|
cutMenu.addActionListener(this);
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
SparkManager.setClipboard(getSelectedText());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
copyAction.putValue(Action.NAME, "Copy");
|
|
||||||
|
|
||||||
// Paste Action
|
copyMenu = new JMenuItem("Copy");
|
||||||
final Action pasteAction = new AbstractAction() {
|
copyMenu.addActionListener(this);
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
String text = SparkManager.getClipboard();
|
|
||||||
if (text != null) {
|
|
||||||
replaceSelection(text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
pasteAction.putValue(Action.NAME, "Paste");
|
|
||||||
|
|
||||||
// Select All Action
|
pasteMenu = new JMenuItem("Paste");
|
||||||
Action selectAllAction = new AbstractAction() {
|
pasteMenu.addActionListener(this);
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
requestFocus();
|
|
||||||
selectAll();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
selectAllAction.putValue(Action.NAME, "Select All");
|
|
||||||
|
|
||||||
|
selectAll = new JMenuItem("Select All");
|
||||||
cutMenu = new JMenuItem(cutAction);
|
selectAll.addActionListener(this);
|
||||||
copyMenu = new JMenuItem(copyAction);
|
|
||||||
pasteMenu = new JMenuItem(pasteAction);
|
|
||||||
selectAll = new JMenuItem(selectAllAction);
|
|
||||||
|
|
||||||
// Set Default Font
|
// Set Default Font
|
||||||
setFont(new Font("Dialog", Font.PLAIN, 12));
|
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") {
|
getActionMap().put("cut", new AbstractAction("cut") {
|
||||||
public void actionPerformed(ActionEvent evt) {
|
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") {
|
getActionMap().put("paste", new AbstractAction("paste") {
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
pasteAction.actionPerformed(evt);
|
pasteAction();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -696,4 +665,39 @@ public class ChatArea extends JTextPane implements MouseListener, MouseMotionLis
|
|||||||
return false;
|
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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -605,6 +605,7 @@ public abstract class ChatRoom extends BackgroundPanel implements ActionListener
|
|||||||
getTranscriptWindow().removeMouseListener(transcriptWindowMouseListener);
|
getTranscriptWindow().removeMouseListener(transcriptWindowMouseListener);
|
||||||
getChatInputEditor().removeKeyListener(chatEditorKeyListener);
|
getChatInputEditor().removeKeyListener(chatEditorKeyListener);
|
||||||
|
|
||||||
|
textScroller.getViewport().remove(transcriptWindow);
|
||||||
|
|
||||||
// Remove Connection Listener
|
// Remove Connection Listener
|
||||||
SparkManager.getConnection().removeConnectionListener(this);
|
SparkManager.getConnection().removeConnectionListener(this);
|
||||||
|
|||||||
@ -23,21 +23,6 @@ import org.jivesoftware.spark.util.log.Log;
|
|||||||
import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
|
import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
|
||||||
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
|
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.AbstractAction;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
@ -53,6 +38,21 @@ import javax.swing.text.Style;
|
|||||||
import javax.swing.text.StyleConstants;
|
import javax.swing.text.StyleConstants;
|
||||||
import javax.swing.text.StyledDocument;
|
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
|
* The <CODE>TranscriptWindow</CODE> class. Provides a default implementation
|
||||||
* of a Chat Window. In general, extensions could override this class
|
* of a Chat Window. In general, extensions could override this class
|
||||||
@ -451,12 +451,15 @@ public class TranscriptWindow extends ChatArea implements ContextMenuListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void cleanup() {
|
public void cleanup() {
|
||||||
|
super.releaseResources();
|
||||||
|
|
||||||
clear();
|
clear();
|
||||||
|
|
||||||
removeMouseListener(this);
|
removeMouseListener(this);
|
||||||
removeMouseMotionListener(this);
|
removeMouseMotionListener(this);
|
||||||
|
|
||||||
removeContextMenuListener(this);
|
removeContextMenuListener(this);
|
||||||
|
getActionMap().remove("copy");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -471,6 +474,7 @@ public class TranscriptWindow extends ChatArea implements ContextMenuListener {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds Print and Clear actions.
|
* Adds Print and Clear actions.
|
||||||
|
*
|
||||||
* @param object the TransferWindow
|
* @param object the TransferWindow
|
||||||
* @param popup the popup menu to add to.
|
* @param popup the popup menu to add to.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user