⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chatdialogview.java

📁 用jxse开发的一个p2p通讯软件 有聊天 文件共享 视频3大功能
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        if (Logging.SHOW_FINE && LOG.isLoggable(Level.FINE)) {            LOG.fine("Begin removeText(JXEditorPane, int, int)");        }        String s = readText(editorPane);        if (Logging.SHOW_FINE && LOG.isLoggable(Level.FINE)) {            LOG.fine("editorPane = " + s);            LOG.fine("start      = " + start);            LOG.fine("end        = " + end);        }        try {            editorPane.getDocument().remove(start, end);        } catch (BadLocationException ble) {            if (Logging.SHOW_SEVERE && LOG.isLoggable(Level.SEVERE)) {                LOG.log(Level.SEVERE, "Caught unexpected Exception", ble);            }        }        update(editorPane);        if (Logging.SHOW_FINE && LOG.isLoggable(Level.FINE)) {            LOG.fine("End   removeText(JXEditorPane, int, int)");        }        return s;    }    private void update(JXEditorPane editorPane) {        if (Logging.SHOW_FINE && LOG.isLoggable(Level.FINE)) {            LOG.fine("In update(JXEditorPane)");        }        editorPane.revalidate();        editorPane.repaint();    }    public void updateConnectionState() {        if (this.dialog != null && this.send != null) {            boolean connected = this.dialog.isConnected();            send.setEnabled(connected);        }    }    /**     * External Object wrappes the different Datasources (Dnd or Copy/Paste for now)     * TODO: move this class hierachy to a separate Class (something like an own TransferHandler)     */    private interface ExternalObject {        Object getData(DataFlavor p_dataFlavour) throws UnsupportedFlavorException;        boolean isDataFlavorSupported(DataFlavor p_dataFlavour);        Transferable getTransferable();    }    /**     * Wrappes an external object generated by an Paste Event     */    private final class PastedExternalObject implements ExternalObject {        private final Transferable m_transferable;        public Transferable getTransferable() {            return m_transferable;        }        public PastedExternalObject(Transferable p_transferableFromClipboard) {            m_transferable = p_transferableFromClipboard;        }        public Object getData(DataFlavor p_dataFlavour) throws UnsupportedFlavorException {            try {                return m_transferable.getTransferData(p_dataFlavour);            } catch (IOException e) {                e.printStackTrace();                return null;            }        }        public boolean isDataFlavorSupported(DataFlavor p_dataFlavour) {            return m_transferable.isDataFlavorSupported(p_dataFlavour);        }    }    /**     * Wrappes an external object generated by a drop Event     */    private class DroppedExternalObject implements ExternalObject {        private final DropTargetDropEvent m_dropEvent;        public DroppedExternalObject(DropTargetDropEvent p_dropEvent) {            m_dropEvent = p_dropEvent;        }        public Transferable getTransferable() {            return m_dropEvent.getTransferable();        }        public Object getData(DataFlavor p_dataFlavour) throws UnsupportedFlavorException {            try {                return m_dropEvent.getTransferable().getTransferData(p_dataFlavour);            }            catch (IOException e) {                e.printStackTrace();                return null;            }        }        public boolean isDataFlavorSupported(DataFlavor p_dataFlavour) {            return m_dropEvent.isDataFlavorSupported(p_dataFlavour);        }    }    private class MyDropTargetListener implements DropTargetListener {        public void dragEnter(DropTargetDragEvent dtde) {            dtde.acceptDrag(DnDConstants.ACTION_COPY);        }        public void dragExit(DropTargetEvent dte) {            // Do nothing.  Needed for DropTargetListener Interface        }        public void dragOver(DropTargetDragEvent dtde) {            // Do nothing.  Needed for DropTargetListener Interface        }        public void drop(DropTargetDropEvent dtde) {            if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {                dtde.acceptDrop(DnDConstants.ACTION_COPY);            } else if (dtde.isDataFlavorSupported(DataFlavor.stringFlavor)) {                dtde.acceptDrop(DnDConstants.ACTION_COPY);            }            boolean isValid = handleExternalDataInput(new DroppedExternalObject(dtde));            dtde.dropComplete(isValid);            if (!isValid) {                dtde.rejectDrop();            }        }        public void dropActionChanged(DropTargetDragEvent dtde) {            // Do nothing.  Needed for DropTargetListener Interface        }        /**         * This one is doing the editor manipulation based on a already choosen dropped java object         *         * @param d         * @return         */        public boolean handle(Object d) {            boolean isValid = false;            String s = null;            if (d != null) {                if (d instanceof Collection) {                    for (Object o : ((Collection) d)) {                        isValid = handle(o);                    }                } else if (d instanceof File) {                    s = processFile((File) d);                } else if (d instanceof String) {                    s = processString((String) d);                }                if (s != null) {                    insertText(editor, s);                    isValid = true;                } else {                    isValid = false;                }            }            return isValid;        }        private String processFile(File p_file) {            try {                URL url = p_file.toURL();                return processURL(url);            }            catch (MalformedURLException e) {                if (Logging.SHOW_WARNING && LOG.isLoggable(Level.WARNING)) {                    LOG.log(Level.WARNING, "Caught unexpected Exception", e);                }            }            return null;        }        private String processString(String d) {            String s = null;            if (d != null &&                    d.trim().length() > 0) {                URL u = null;                try {                    u = new URL(d);                } catch (MalformedURLException mue) {                    if (Logging.SHOW_WARNING && LOG.isLoggable(Level.WARNING)) {                        LOG.log(Level.WARNING, "Caught unexpected Exception", mue);                    }                }                if (u != null) {                    s = processURL(u);                } else {                    s = decorateText(d);                }            }            return s;        }        private String processURL(URL p_u) {            String s = null;            if (p_u.getProtocol().equalsIgnoreCase(UIConstants.PROTOCOL_FILE)) {                try {                    Object o = p_u.getContent();                    //nano:                    //right now we can only handle simple input streams                    //dragged textfiles will end here as a SimpleTextInputStream                    //maybe move this filehandling inside processFile                    if (o instanceof InputStream) {                        s = decorateText(readInputStream((InputStream) o));                    }                }                catch (IOException e) {                    e.printStackTrace();                }            } else if (p_u.getProtocol().equalsIgnoreCase(UIConstants.PROTOCOL_HTTP)) {                //firefox url for example                s = decorateHTML(p_u);            }            return s;        }        /**         * Read all data from the given input Stream and returns it as a string         *         * @param o         * @return         */        private String readInputStream(InputStream o) {            StringBuffer sb = null;            try {                Reader r = new BufferedReader(new InputStreamReader(o));                for (int c = r.read(); c >= 0; c = r.read()) {                    if (sb == null) {                        sb = new StringBuffer();                    }                    sb.append((char) c);                }            } catch (IOException ioe) {                if (Logging.SHOW_SEVERE && LOG.isLoggable(Level.SEVERE)) {                    LOG.log(Level.SEVERE, "Caught unexpected Exception", ioe);                }            }            return sb != null ? sb.toString() : null;        }        private String decorateHTML(URL u) {            String s = null;            String t = u != null ? u.toString() : null;            if (t != null) {                if (isImage(u)) {                    s = UIConstants.IMAGE_PREFIX + t +                            UIConstants.IMAGE_POSTFIX;                } else {                    int i = t.indexOf(UIConstants.URI_DELIMITER);                    s = UIConstants.ANCHOR_PREFIX + t +                            UIConstants.ANCHOR_PREFIX_CLOSE +                            ((i >= 0) ?                                    t.substring(i + UIConstants.URI_DELIMITER.length()) : t) +                            UIConstants.ANCHOR_POSTFIX;                }            }            return s;        }        private boolean isImage(URL u) {            String s = u != null ? u.getFile().toLowerCase() : null;            int i = s.lastIndexOf(UIConstants.DOT);            String t = i > -1 ? s.substring(i) : null;            return imageTypes.contains(t);        }        private String decorateText(String s) {            String t = s != null ? s.trim() : null;            if (t != null &&                    t.length() > 0) {                t = UIConstants.PRE_PREFIX + t + UIConstants.PRE_POSTFIX;            }            return t;        }        /**         * This is the central entry point for Paste and DnD Drop         *         * @param p_externalObject         * @return         */        public boolean handleExternalDataInput(ExternalObject p_externalObject) {            Object d = null;            if (p_externalObject.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {                try {                    d = p_externalObject.getData(DataFlavor.javaFileListFlavor);                } catch (UnsupportedFlavorException use) {                    if (Logging.SHOW_SEVERE && LOG.isLoggable(Level.SEVERE)) {                        LOG.log(Level.SEVERE, "Caught unexpected Exception", use);                    }                }            } else if (p_externalObject.isDataFlavorSupported(DataFlavor.stringFlavor)) {                try {                    d = p_externalObject.getData(DataFlavor.stringFlavor);                } catch (UnsupportedFlavorException use) {                    if (Logging.SHOW_SEVERE && LOG.isLoggable(Level.SEVERE)) {                        LOG.log(Level.SEVERE, "Caught unexpected Exception", use);                    }                }            }            boolean ownHandlingSuccess = handle(d);            if (!ownHandlingSuccess && p_externalObject.getTransferable() != null) {                return editor.getTransferHandler().importData(editor, p_externalObject.getTransferable());            } else {                return true;            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -