Index: third_party/twisted_8_1/twisted/words/im/jychat.py |
diff --git a/third_party/twisted_8_1/twisted/words/im/jychat.py b/third_party/twisted_8_1/twisted/words/im/jychat.py |
deleted file mode 100644 |
index 54d4ca89d72de78a7af34dc2ddef41d5d041976f..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/words/im/jychat.py |
+++ /dev/null |
@@ -1,286 +0,0 @@ |
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
-# |
-from twisted.words.im.basechat import ContactsList, Conversation, GroupConversation,\ |
- ChatUI |
-from twisted.words.im.locals import OFFLINE, ONLINE, AWAY |
- |
-from java.awt import GridLayout, FlowLayout, BorderLayout, Container |
-import sys |
-from java.awt.event import ActionListener |
-from javax.swing import JTextField, JPasswordField, JComboBox, JPanel, JLabel,\ |
- JTextArea, JFrame, JButton, BoxLayout, JTable, JScrollPane, \ |
- ListSelectionModel |
-from javax.swing.table import DefaultTableModel |
- |
-doublebuffered = 0 |
- |
- |
-class UneditableTableModel(DefaultTableModel): |
- def isCellEditable(self, x, y): |
- return 0 |
- |
-class _AccountAdder: |
- def __init__(self, contactslist): |
- self.contactslist = contactslist |
- self.mainframe = JFrame("Add New Contact") |
- self.account = JComboBox(self.contactslist.clientsByName.keys()) |
- self.contactname = JTextField() |
- self.buildpane() |
- |
- def buildpane(self): |
- buttons = JPanel() |
- buttons.add(JButton("OK", actionPerformed=self.add)) |
- buttons.add(JButton("Cancel", actionPerformed=self.cancel)) |
- |
- acct = JPanel(GridLayout(1, 2), doublebuffered) |
- acct.add(JLabel("Account")) |
- acct.add(self.account) |
- |
- mainpane = self.mainframe.getContentPane() |
- mainpane.setLayout(BoxLayout(mainpane, BoxLayout.Y_AXIS)) |
- mainpane.add(self.contactname) |
- mainpane.add(acct) |
- mainpane.add(buttons) |
- self.mainframe.pack() |
- self.mainframe.show() |
- |
- #action listeners |
- def add(self, ae): |
- acct = self.contactslist.clientsByName[self.account.getSelectedItem()] |
- acct.addContact(self.contactname.getText()) |
- self.mainframe.dispose() |
- |
- def cancel(self, ae): |
- self.mainframe.dispose() |
- |
-class ContactsListGUI(ContactsList): |
- """A GUI object that displays a contacts list""" |
- def __init__(self, chatui): |
- ContactsList.__init__(self, chatui) |
- self.clientsByName = {} |
- self.mainframe = JFrame("Contacts List") |
- self.headers = ["Contact", "Status", "Idle", "Account"] |
- self.data = UneditableTableModel([], self.headers) |
- self.table = JTable(self.data, |
- columnSelectionAllowed = 0, #cannot select columns |
- selectionMode = ListSelectionModel.SINGLE_SELECTION) |
- |
- self.buildpane() |
- self.mainframe.pack() |
- self.mainframe.show() |
- |
- def setContactStatus(self, person): |
- ContactsList.setContactStatus(self, person) |
- self.update() |
- |
- def registerAccountClient(self, client): |
- ContactsList.registerAccountClient(self, client) |
- if not client.accountName in self.clientsByName.keys(): |
- self.clientsByName[client.accountName] = client |
- |
- def unregisterAccount(self, client): |
- ContactsList.unregisterAccountClient(self, client) |
- if client.accountName in self.clientsByName.keys(): |
- del self.clientsByName[client.accountName] |
- |
- def contactChangedNick(self, person, newnick): |
- ContactsList.contactChangedNick(self, person, newnick) |
- self.update() |
- |
- #GUI code |
- def buildpane(self): |
- buttons = JPanel(FlowLayout(), doublebuffered) |
- buttons.add(JButton("Send Message", actionPerformed=self.message)) |
- buttons.add(JButton("Add Contact", actionPerformed=self.addContact)) |
- #buttons.add(JButton("Quit", actionPerformed=self.quit)) |
- |
- mainpane = self.mainframe.getContentPane() |
- mainpane.setLayout(BoxLayout(mainpane, BoxLayout.Y_AXIS)) |
- mainpane.add(JScrollPane(self.table)) |
- mainpane.add(buttons) |
- self.update() |
- |
- def update(self): |
- contactdata = [] |
- for contact in self.onlineContacts.values(): |
- if contact.status == AWAY: |
- stat = "(away)" |
- else: |
- stat = "(active)" |
- contactdata.append([contact.name, stat, contact.getIdleTime(), |
- contact.client.accountName]) |
- self.data.setDataVector(contactdata, self.headers) |
- |
- #callable actionlisteners |
- def message(self, ae): |
- row = self.table.getSelectedRow() |
- if row < 0: |
- print "Trying to send IM to person, but no person selected" |
- else: |
- person = self.onlineContacts[self.data.getValueAt(row, 0)] |
- self.chat.getConversation(person) |
- |
- def addContact(self, ae): |
- _AccountAdder(self) |
- |
- def quit(self, ae): |
- sys.exit() |
- |
- |
-class ConversationWindow(Conversation): |
- """A GUI window of a conversation with a specific person""" |
- def __init__(self, person, chatui): |
- """ConversationWindow(basesupport.AbstractPerson:person)""" |
- Conversation.__init__(self, person, chatui) |
- self.mainframe = JFrame("Conversation with "+person.name) |
- self.display = JTextArea(columns=100, |
- rows=15, |
- editable=0, |
- lineWrap=1) |
- self.typepad = JTextField() |
- self.buildpane() |
- self.lentext = 0 |
- |
- def buildpane(self): |
- buttons = JPanel(doublebuffered) |
- buttons.add(JButton("Send", actionPerformed=self.send)) |
- buttons.add(JButton("Hide", actionPerformed=self.hidewindow)) |
- |
- mainpane = self.mainframe.getContentPane() |
- mainpane.setLayout(BoxLayout(mainpane, BoxLayout.Y_AXIS)) |
- mainpane.add(JScrollPane(self.display)) |
- self.typepad.actionPerformed = self.send |
- mainpane.add(self.typepad) |
- mainpane.add(buttons) |
- |
- def show(self): |
- self.mainframe.pack() |
- self.mainframe.show() |
- |
- def hide(self): |
- self.mainframe.hide() |
- |
- def sendText(self, text): |
- self.displayText("\n"+self.person.client.name+": "+text) |
- Conversation.sendText(self, text) |
- |
- def showMessage(self, text, metadata=None): |
- self.displayText("\n"+self.person.name+": "+text) |
- |
- def contactChangedNick(self, person, newnick): |
- Conversation.contactChangedNick(self, person, newnick) |
- self.mainframe.setTitle("Conversation with "+newnick) |
- |
- #GUI code |
- def displayText(self, text): |
- self.lentext = self.lentext + len(text) |
- self.display.append(text) |
- self.display.setCaretPosition(self.lentext) |
- |
- #actionlisteners |
- def hidewindow(self, ae): |
- self.hide() |
- |
- def send(self, ae): |
- text = self.typepad.getText() |
- self.typepad.setText("") |
- if text != "" and text != None: |
- self.sendText(text) |
- |
- |
-class GroupConversationWindow(GroupConversation): |
- """A GUI window of a conversation witha group of people""" |
- def __init__(self, group, chatui): |
- GroupConversation.__init__(self, group, chatui) |
- self.mainframe = JFrame(self.group.name) |
- self.headers = ["Member"] |
- self.memberdata = UneditableTableModel([], self.headers) |
- self.display = JTextArea(columns=100, rows=15, editable=0, lineWrap=1) |
- self.typepad = JTextField() |
- self.buildpane() |
- self.lentext = 0 |
- |
- def show(self): |
- self.mainframe.pack() |
- self.mainframe.show() |
- |
- def hide(self): |
- self.mainframe.hide() |
- |
- def showGroupMessage(self, sender, text, metadata=None): |
- self.displayText(sender + ": " + text) |
- |
- def setGroupMembers(self, members): |
- GroupConversation.setGroupMembers(self, members) |
- self.updatelist() |
- |
- def setTopic(self, topic, author): |
- topictext = "Topic: " + topic + ", set by " + author |
- self.mainframe.setTitle(self.group.name + ": " + topictext) |
- self.displayText(topictext) |
- |
- def memberJoined(self, member): |
- GroupConversation.memberJoined(self, member) |
- self.updatelist() |
- |
- def memberChangedNick(self, oldnick, newnick): |
- GroupConversation.memberChangedNick(self, oldnick, newnick) |
- self.updatelist() |
- |
- def memberLeft(self, member): |
- GroupConversation.memberLeft(self, member) |
- self.updatelist() |
- |
- #GUI code |
- def buildpane(self): |
- buttons = JPanel(doublebuffered) |
- buttons.add(JButton("Hide", actionPerformed=self.hidewindow)) |
- |
- memberpane = JTable(self.memberdata) |
- memberframe = JScrollPane(memberpane) |
- |
- chat = JPanel(doublebuffered) |
- chat.setLayout(BoxLayout(chat, BoxLayout.Y_AXIS)) |
- chat.add(JScrollPane(self.display)) |
- self.typepad.actionPerformed = self.send |
- chat.add(self.typepad) |
- chat.add(buttons) |
- |
- mainpane = self.mainframe.getContentPane() |
- mainpane.setLayout(BoxLayout(mainpane, BoxLayout.X_AXIS)) |
- mainpane.add(chat) |
- mainpane.add(memberframe) |
- |
- def displayText(self, text): |
- self.lentext = self.lentext + len(text) |
- self.display.append(text) |
- self.display.setCaretPosition(self.lentext) |
- |
- def updatelist(self): |
- self.memberdata.setDataVector([self.members], self.headers) |
- |
- #actionListener |
- def send(self, ae): |
- text = self.typepad.getText() |
- self.typepad.setText("") |
- if text != "" and text != None: |
- GroupConversation.sendText(self, text) |
- |
- def hidewindow(self, ae): |
- self.hide() |
- |
-class JyChatUI(ChatUI): |
- def __init__(self): |
- ChatUI.__init__(self) |
- self.contactsList = ContactsListGUI(self) |
- |
- def getConversation(self, person, stayHidden=0): |
- return ChatUI.getGroupConversation(self, person, ConversationWindow, |
- stayHidden) |
- |
- def getGroupConversation(self, group, stayHidden=0): |
- return ChatUI.getGroupConversation(self, group, |
- GroupConversationWindow, |
- stayHidden) |