/* * MessageEditor.java * * Created on 8 Июнь 2010 г., 20:27 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package protocol.ui; import jimm.Jimm; import jimm.Options; import jimmui.view.*; import protocol.Contact; import protocol.Protocol; /** * * @author Vladimir Krukov */ public class MessageEditor implements TextBoxListener { private InputTextBox messageTextbox; private Protocol protocol = null; private Contact toContact = null; /** Creates a new instance of MessageEditor */ public MessageEditor() { createTextBox(); } private void createTextBox() { int size = 5000; // #sijapp cond.if modules_ANDROID is "true" # size = 10000; // #sijapp cond.end # messageTextbox = new InputTextBox().create("message", size, "send"); messageTextbox.setCancelNotify(true); } public void writeMessage(Protocol p, Contact to, String message) { boolean recreate = Options.getBoolean(Options.OPTION_RECREATE_TEXTBOX); String prevText = null; if (recreate) { prevText = messageTextbox.getRawString(); createTextBox(); } else { messageTextbox.updateCommands(); } /* If user want reply with quotation */ if (null != message) { messageTextbox.setString(message); /* Keep old text if press "cancel" while last edit */ } else if (toContact != to) { messageTextbox.setString(null); } else if (recreate) { messageTextbox.setString(prevText); } if (toContact != to) { protocol = p; toContact = to; /* Display textbox for entering messages */ messageTextbox.setCaption(" " + to.getName()); } protocol.sendTypingNotify(to, true); messageTextbox.setTextBoxListener(this); messageTextbox.show(); } public void textboxAction(InputTextBox box, boolean ok) { protocol.sendTypingNotify(toContact, false); if (ok) { String text = messageTextbox.getString(); if (!toContact.isSingleUserContact() && text.endsWith(", ")) { text = ""; } protocol.sendMessage(toContact, text, true); if (toContact.hasChat()) { Jimm.getJimm().getChatUpdater().activate(protocol.getChatModel(toContact)); } else { Jimm.getJimm().getCL().activate(); } messageTextbox.setString(null); return; } } public void insert(String text) { } public InputTextBox getTextBox() { return messageTextbox; } public boolean isActive(Contact c) { return c == toContact; } }