public void toChatScreen(String toScreen, boolean selfSeen) throws IOException, BadLocationException { // Timestamp ts = new Timestamp(); String toScreenFinal = ""; Date now = Calendar.getInstance().getTime(); SimpleDateFormat format = new SimpleDateFormat("hh:mm"); String ts = format.format(now); // chatScreen.append(ts + " " + toScreen + "\n"); toScreenFinal = "<font color=gray>" + ts + "</font> "; if (selfSeen) toScreenFinal = toScreenFinal + "<font color=red>" + toScreen + "</font>"; else toScreenFinal = toScreenFinal + toScreen; // chatter.addTo(toScreen); // if(standardWindow) { // chatScreen.setCaretPosition(chatScreen.getDocument().getLength()); // } // else { JScrollBar vBar = scrollChat.getVerticalScrollBar(); int vSize = vBar.getVisibleAmount(); int maxVBar = vBar.getMaximum(); int currVBar = vBar.getValue() + vSize; kit.insertHTML(doc, doc.getLength(), toScreenFinal, 0, 0, null); if (maxVBar == currVBar) { chatScreen.setCaretPosition(chatScreen.getDocument().getLength()); } // } // kit.insertHTML(doc, doc.getLength(), toScreenFinal, 0, 0, null); }
@Override public void writeSource(String x) { try { htmlKit.insertHTML(htmlDoc, htmlDoc.getLength(), x, 0, 0, null); } catch (Exception e) { e.printStackTrace(); } }
private void appendMsg(String msg) { HTMLDocument doc = (HTMLDocument) textArea.getDocument(); HTMLEditorKit kit = (HTMLEditorKit) textArea.getEditorKit(); try { kit.insertHTML(doc, doc.getLength(), msg, 0, 0, null); } catch (Exception e) { Debug.error(me + "Problem appending text to message area!\n%s", e.getMessage()); } }
public static void clearAll(JEditorPane txt) { try { txt.setText(""); HTMLEditorKit kit = (HTMLEditorKit) txt.getEditorKit(); HTMLDocument doc = (HTMLDocument) txt.getDocument(); kit.insertHTML( doc, 0, "<body style=\"font-family:'Courier New';font-size: 12pt;\">", 0, 0, null); } catch (Exception e) { } }
private void addHTML(String html) { synchronized (kit) { try { kit.insertHTML(doc, doc.getLength(), html, 0, 0, null); } catch (BadLocationException | IOException ignored) { Logger.logError(ignored.getMessage(), ignored); } displayArea.setCaretPosition(displayArea.getDocument().getLength()); } }
@Override public void write(int b) throws IOException { try { htmlKit.insertHTML( htmlDoc, htmlDoc.getLength(), new String(new byte[] {(byte) b}), 0, 0, null); } catch (BadLocationException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
public void ClearLog() { try { doc.replace(0, doc.getLength(), "", null); kit.insertHTML(doc, 0, "", 0, 0, null); } catch (BadLocationException e) { // TODO Auto-generated catch block // e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block // e.printStackTrace(); } }
protected void insert(String s, int offset) { try { HTMLEditorKit edKit = (HTMLEditorKit) getEditorKit(); // ((HTMLDocument)getDocument()).insertString(offset,"\n",null); edKit.insertHTML((HTMLDocument) getDocument(), offset, "<BR>\n" + s, 0, 0, HTML.Tag.BR); // HTMLEditorKit.InsertHTMLTextAction("similarity",s,HTML.Tag.BODY,HTML.Tag.P); } catch (BadLocationException ble) { System.out.println("Offset " + offset); ble.printStackTrace(); } catch (Exception exp) { exp.printStackTrace(); } }
// appends a message to the log tab and system out. public void Log(String msg) { try { kit.insertHTML(doc, doc.getLength(), msg, 0, 0, null); int over_length = doc.getLength() - msg.length() - 5000; doc.remove(0, over_length); } catch (BadLocationException e) { // TODO Auto-generated catch block // e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block // e.printStackTrace(); } }
@Override protected void process(final List<String> chunks) { // Updates the messages text area try { HTMLEditorKit kit = (HTMLEditorKit) messagesTextArea.getEditorKit(); HTMLDocument doc = (HTMLDocument) messagesTextArea.getDocument(); for (final String string : chunks) { kit.insertHTML(doc, messagesTextArea.getCaretPosition(), string + "<br>", 0, 0, null); } } catch (Exception e) { e.printStackTrace(); } }
private static void appendHTML(JEditorPane editor, String html) { try { html = StringUtil.replaceAll(html, "\t", " "); html = StringUtil.replaceAll(html, "\r\n", "\n"); html = StringUtil.replaceAll(html, "\r", ""); Vector vt = StringUtil.toStringVector(html, "\n"); HTMLEditorKit kit = (HTMLEditorKit) editor.getEditorKit(); HTMLDocument doc = (HTMLDocument) editor.getDocument(); for (int iIndex = 0; iIndex < vt.size(); iIndex++) kit.insertHTML(doc, doc.getLength(), (String) vt.elementAt(iIndex), 0, 0, null); } catch (Exception e) { e.printStackTrace(); } }
public boolean importData(JComponent c, Transferable t) { if (c != textComponent) { // ### never happens, we dont share transfer handlers System.out.println("*** importData(): c=" + c); } try { DataFlavor[] flavors = t.getTransferDataFlavors(); boolean hasStringFlavor = t.isDataFlavorSupported(DataFlavor.stringFlavor); boolean hasImageFlavor = t.isDataFlavorSupported(DataFlavor.imageFlavor); boolean hasFilelistFlavor = t.isDataFlavorSupported(DataFlavor.javaFileListFlavor); // System.out.println(">>> import data to text panel (" + flavors.length + " flavors)"); // ### for (int i = 0; i < flavors.length; i++) { // ### System.out.println(flavors[i]); // ###} System.out.println(" > string flavor supported: " + hasStringFlavor); System.out.println(" > image flavor supported: " + hasImageFlavor); System.out.println(" > filelist flavor supported: " + hasFilelistFlavor); // // We do not allow dropping on top of the selected text if ((source == textComponent) && (textComponent.getCaretPosition() >= p0.getOffset()) && (textComponent.getCaretPosition() <= p1.getOffset())) { shouldRemove = false; System.out.println( ">>> dropping on top of the selected text is not allowed -- import canceled"); return true; } // if (hasStringFlavor) { String data = (String) t.getTransferData(DataFlavor.stringFlavor); int pos = textComponent.getCaretPosition(); if (DeepaMehtaUtils.isImage(data)) { HTMLEditorKit kit = (HTMLEditorKit) ((JEditorPane) textComponent).getEditorKit(); HTMLDocument doc = (HTMLDocument) textComponent.getDocument(); String html = "<img src=\"" + data + "\"></img>"; kit.insertHTML(doc, pos, html, 0, 0, HTML.Tag.IMG); // ### <img> not XML conform // ### doc.insertBeforeStart(doc.getParagraphElement(pos), html); System.out.println(">>> IMG tag inserted: \"" + html + "\""); } else { textComponent.getDocument().insertString(pos, data, null); System.out.println(">>> regular text inserted: \"" + data + "\""); } } else if (hasFilelistFlavor) { java.util.List files = (java.util.List) t.getTransferData(DataFlavor.javaFileListFlavor); System.out.println(" " + files.size() + " files:"); for (int i = 0; i < files.size(); i++) { File file = (File) files.get(i); String filename = file.getName(); System.out.println(" " + file); if (DeepaMehtaUtils.isHTML(filename)) { String html = DeepaMehtaUtils.readFile(file); textComponent.setText(html); // ### replace instead insert textComponent.setCaretPosition(0); // ### ((JEditorPane) textComponent).setPage("file://" + file); // ### replace instead // insert // ### setDirty("dropping HTML file"); System.out.println(">>> HTML inserted (read from file)"); break; // ### max one file is inserted } else if (DeepaMehtaUtils.isImage(filename)) { HTMLEditorKit kit = (HTMLEditorKit) ((JEditorPane) textComponent).getEditorKit(); HTMLDocument doc = (HTMLDocument) textComponent.getDocument(); int pos = textComponent.getCaretPosition(); String imagefile = file.getPath().replace('\\', '/'); // ### String html = "<img src=\"" + imagefile + "\"></img>"; kit.insertHTML(doc, pos, html, 0, 0, HTML.Tag.IMG); // ### <img> not XML conform // ### doc.insertBeforeStart(doc.getParagraphElement(pos), html); System.out.println(">>> IMG tag inserted: \"" + html + "\""); } else { System.out.println( "### importData(): only implemented for HTML files -- import canceled"); } } } else { System.out.println("*** importData(): no supported flavor " + c); } return true; } catch (UnsupportedFlavorException ufe) { System.out.println("*** while dropping to text panel: " + ufe); } catch (BadLocationException ble) { System.out.println("*** while dropping to text panel: " + ble); } catch (IOException ioe) { System.out.println("*** while dropping to text panel: " + ioe); } // return super.importData(c, t); }
/** Initializes the graphical components */ public void init() { username = getParameter("username"); if (username == null) { username = JOptionPane.showInputDialog( this, "Please enter a username", "Login", JOptionPane.QUESTION_MESSAGE); } try { PORT = Integer.valueOf(getParameter("port")).intValue(); } catch (NumberFormatException e) { PORT = 42412; } URL url = getDocumentBase(); site = url.getHost(); locationURL = "http://" + site + ":" + url.getPort() + "/" + url.getPath(); setSize(615, 362); c = getContentPane(); c.setBackground(new Color(224, 224, 224)); if (site == null || locationURL == null) { c.add(new JLabel("ERROR: did not recieve needed data from page")); } myAction = new MyAction(); myKeyListener = new MyKeyListener(); myMouseListener = new MyMouseListener(); myHyperlinkListener = new MyHyperlinkListener(); c.setLayout(null); cboChannels = new JComboBox(); cboChannels.setBounds(5, 5, 150, 24); butChannel = new JButton("Join"); butChannel.setToolTipText("Join channel"); butChannel.addActionListener(myAction); butChannel.setBounds(160, 5, 60, 24); butCreate = new JButton("Create"); butCreate.setToolTipText("Create new channel"); butCreate.addActionListener(myAction); butCreate.setBounds(230, 5, 100, 24); butCreate.setEnabled(false); butInvite = new JButton("Invite"); butInvite.setToolTipText("Invite Friend"); butInvite.addActionListener(myAction); butInvite.setBounds(340, 5, 80, 24); mainChat = new ChatPane(this); textScroller = new JScrollPane( mainChat, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); textScroller.setBounds(5, 34, 500, 270); userList = new JList(); userList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); userList.setCellRenderer(new MyCellRenderer()); userList.setBackground(new Color(249, 249, 250)); JScrollPane userScroller = new JScrollPane(userList); userScroller.setBounds(510, 34, 100, 297); messageText = new JTextField(); messageText.setBounds(5, 309, 500, 22); messageText.setColumns(10); messageText.setBackground(new Color(249, 249, 250)); JMenuItem item; popup = new JPopupMenu("test"); popup.add("whisper").addActionListener(myAction); popup.add("private message").addActionListener(myAction); popup.add("ignore").addActionListener(myAction); popup.add("clear ignore list").addActionListener(myAction); conNo = new ImageIcon(getURL("images/connect_no.gif")); conYes = new ImageIcon(getURL("images/connect_established.gif")); secNo = new ImageIcon(getURL("images/decrypted.gif")); secYes = new ImageIcon(getURL("images/encrypted.gif")); conIcon = new JLabel(conNo); conIcon.setBorder(new EtchedBorder()); secIcon = new JLabel(secNo); secIcon.setBorder(new EtchedBorder()); conIcon.setBounds(563, 334, 22, 22); secIcon.setBounds(588, 334, 22, 22); bottomText = new JLabel( "<html><body><font color=#445577><b>" + "LlamaChat " + VERSION + "</b></font> © " + "<a href=\"" + linkURL + "\">Joseph Monti</a> 2002-2003" + "</body></html>"); bottomText.setBounds(5, 336, 500, 20); c.add(cboChannels); c.add(butChannel); c.add(butCreate); c.add(butInvite); c.add(textScroller); c.add(userScroller); c.add(messageText); c.add(conIcon); c.add(secIcon); c.add(bottomText); userList.addMouseListener(myMouseListener); messageText.addKeyListener(myKeyListener); bottomText.addMouseListener(myMouseListener); users = new ArrayList(); ignores = new ArrayList(5); afks = new ArrayList(5); admins = new ArrayList(5); history = new CommandHistory(10); admin = false; channels = new Hashtable(); privates = new PrivateMsg(this); showUserStatus = false; myColors[0] = new Color(200, 0, 0); myColors[1] = new Color(0, 150, 0); myColors[2] = new Color(0, 0, 200); rect = new Rectangle(0, 0, 1, 1); String opening = "<font color=#333333>" + "==================================<br>" + "Welcome to LlamaChat " + VERSION + "<br>" + "If you need assistance, type \\help<br>" + "Enjoy your stay!<br>" + "Maestria Aplicada en Redes<br>" + "==================================<br></font>"; HTMLDocument doc = (HTMLDocument) mainChat.getDocument(); HTMLEditorKit kit = (HTMLEditorKit) mainChat.getEditorKit(); try { kit.insertHTML(doc, doc.getLength(), opening, 0, 0, HTML.Tag.FONT); } catch (Throwable t) { t.printStackTrace(System.out); } // validate the name if (!username.matches("[\\w_-]+?")) { error( "username contains invalid characters, changing to " + "'invalid' for now. " + "Type \\rename to chose a new name"); username = "******"; } if (username.length() > 10) { username = username.substring(0, 10); error("username too long, changed to " + username); } connect(); }