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

📄 pointerprocessor.java

📁 openfire whiteboard plugin
💻 JAVA
字号:
/* * * Copyright (C) GNU/GPL AVOIR 2008 * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., 51 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */package org.avoir.realtime.plugins;import java.io.ByteArrayInputStream;import java.util.ArrayList;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.avoir.realtime.common.util.XmlUtils;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.QName;import org.jivesoftware.openfire.PacketRouter;import org.w3c.dom.Document;import org.xmpp.packet.IQ;import org.xmpp.packet.JID;/** * * @author developer */public class PointerProcessor {    private AvoirRealtimePlugin pl;    private ArrayList<JID> jids;    private PacketRouter packetRouter;    private DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();    private DocumentBuilder documentBuilder;    public PointerProcessor(AvoirRealtimePlugin pl) {        this.pl = pl;        jids = pl.getUsers(false);        packetRouter = pl.getPacketRouter();        try {            documentBuilder = documentBuilderFactory.newDocumentBuilder();        } catch (Exception ex) {            ex.printStackTrace();        }    }    private String extractPointerInfo(IQ packet) {        String xmlContents = packet.toXML();        StringBuilder sb = new StringBuilder();        try {            Document doc = documentBuilder.parse(                    new ByteArrayInputStream(xmlContents.getBytes(Constants.PREFERRED_ENCODING)));            int pointer = XmlUtils.readInt(doc, "pointer");            int x = XmlUtils.readInt(doc, "x");            int y = XmlUtils.readInt(doc, "y");            sb.append("<pointer>").append(pointer).append("</pointer>");            sb.append("<x>").append(x).append("</x>");            sb.append("<y>").append(y).append("</y>");        } catch (Exception ex) {            ex.printStackTrace();        }        return sb.toString();    }    public void broadCastPointer(IQ packet) {        IQ replyPacket = IQ.createResultIQ(packet);        Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE));        queryResult.addElement("mode").addText(Mode.POINTER_BROADCAST);        queryResult.addElement("content").addText(extractPointerInfo(packet));        replyPacket.setChildElement(queryResult);               for (int i = 0; i < jids.size(); i++) {            JID jid = jids.get(i);                       replyPacket.setTo(jid);                replyPacket.setFrom(packet.getFrom());                packetRouter.route(replyPacket);               }    }}

⌨️ 快捷键说明

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