📄 defaultpacketprocessor.java
字号:
File file = new File(path); sb.append("<file>"); sb.append("<file-name>").append(file.getName()).append("</file-name>"); sb.append("<file-path>").append(path).append("</file-path>"); sb.append("<is-directory>").append(file.isDirectory() + "").append("</is-directory>"); sb.append("<access>").append("private").append("</access>"); sb.append("</file>"); } } File publicFileDir = new File(Constants.FILES_DIR + "/" + fileType + "/"); String[] publicList = publicFileDir.list(); if (publicList != null) { for (int i = 0; i < publicList.length; i++) { File file = new File(Constants.FILES_DIR + "/" + fileType + "/" + publicList[i]); if (!file.isDirectory()) { //jump dirs sb.append("<file>"); sb.append("<file-name>").append(file.getName()).append("</file-name>"); sb.append("<file-path>").append(file.getAbsolutePath()).append("</file-path>"); sb.append("<is-directory>").append(file.isDirectory()).append("</is-directory>"); sb.append("<access>").append("public").append("</access>"); sb.append("</file>"); } } } sb.append("</fileview>"); return sb.toString(); } /** * this creates a list of files in the specified directory and send sit back to the * client. private file and those in public dir * @param packet * @param dirPath the directory to list * @param fileType the type of file: question, slideshow, image * @param username the users idrectory * @return */ public IQ getFileView(IQ packet, String fileType, String username) { IQ replyPacket = IQ.createResultIQ(packet); Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE)); queryResult.addElement("mode").addText(fileType + "-file-view"); queryResult.addElement("content").addText(constructFileView(fileType, username)); replyPacket.setChildElement(queryResult); return replyPacket; } public IQ getFileView(IQ packet, String fileType, String username, String extra) { IQ replyPacket = IQ.createResultIQ(packet); Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE)); queryResult.addElement("mode").addText(extra + "-file-view"); queryResult.addElement("content").addText(constructFileView(fileType, username)); replyPacket.setChildElement(queryResult); return replyPacket; } public void broadcastImage(IQ packet, String imagePath) { IQ replyPacket = IQ.createResultIQ(packet); Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE)); queryResult.addElement("mode").addText(Mode.WB_IMAGE_BROADCAST); String imageData = Base64.encodeFromFile(imagePath); StringBuilder sb = new StringBuilder(); sb.append("<image-data>").append(imageData).append("</image-data>"); queryResult.addElement("content").addText(sb.toString()); 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); } } public void broadcastItem(IQ packet) { IQ replyPacket = IQ.createResultIQ(packet); Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE)); queryResult.addElement("mode").addText(Mode.ITEM_BROADCAST_FROM_SERVER); String xmlContent = packet.toXML(); int start = xmlContent.indexOf("<item-content>"); int end = xmlContent.indexOf("</item-content>") + ("</item-content>".length()); String content = xmlContent.substring(start, end); queryResult.addElement("content").addText(content); 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); } } public void broadcastModifiedTextItem(IQ packet) { IQ replyPacket = IQ.createResultIQ(packet); Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE)); queryResult.addElement("mode").addText(Mode.MODIFIED_TEXT_BROADCAST); String xmlContent = packet.toXML(); int start = xmlContent.indexOf("<item-content>"); int end = xmlContent.indexOf("</item-content>") + ("</item-content>".length()); String content = xmlContent.substring(start, end); queryResult.addElement("content").addText(content); 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); } } public void broadcastItemPosition(IQ packet, int x, int y, String id, String type) { IQ replyPacket = IQ.createResultIQ(packet); Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE)); queryResult.addElement("mode").addText(Mode.TRANSFORMED_ITEM_BROADCAST); StringBuilder sb = new StringBuilder(); sb.append("<x>").append(x).append("</x>"); sb.append("<y>").append(y).append("</y>"); sb.append("<id>").append(id).append("</id>"); sb.append("<item-type>").append(type).append("</item-type>"); queryResult.addElement("content").addText(sb.toString()); 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); } } public void broadcastItemPosition(IQ packet, int x1, int y1, int x2, int y2, String id, String type) { IQ replyPacket = IQ.createResultIQ(packet); Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE)); queryResult.addElement("mode").addText(Mode.TRANSFORMED_ITEM_BROADCAST); StringBuilder sb = new StringBuilder(); sb.append("<x1>").append(x1).append("</x1>"); sb.append("<y1>").append(y1).append("</y1>"); sb.append("<x2>").append(x2).append("</x2>"); sb.append("<y2>").append(y2).append("</y2>"); sb.append("<item-type>").append(type).append("</item-type>"); sb.append("<id>").append(id).append("</id>"); queryResult.addElement("content").addText(sb.toString()); replyPacket.setChildElement(queryResult); for (int i = 0; i < jids.size(); i++) { JID jid = jids.get(i); replyPacket.setTo(jid); replyPacket.setFrom(packet.getFrom()); try { packetRouter.route(replyPacket); } catch (Exception ex) { ex.printStackTrace(); } } } public void broadcastItemToBeDeleted(IQ packet, String id) { IQ replyPacket = IQ.createResultIQ(packet); Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE)); queryResult.addElement("mode").addText(Mode.DELETE_ITEM_BROADCAST); StringBuilder sb = new StringBuilder(); sb.append("<id>").append(id).append("</id>"); queryResult.addElement("content").addText(sb.toString()); replyPacket.setChildElement(queryResult); for (int i = 0; i < jids.size(); i++) { JID jid = jids.get(i); replyPacket.setTo(jid); replyPacket.setFrom(packet.getFrom()); try { packetRouter.route(replyPacket); } catch (Exception ex) { ex.printStackTrace(); } } } public void broadcastResizedItem(IQ packet, String id, int x, int y, String type) { IQ replyPacket = IQ.createResultIQ(packet); Element queryResult = DocumentHelper.createElement(QName.get("query", Constants.NAME_SPACE)); queryResult.addElement("mode").addText(Mode.RESIZE_ITEM_BROADCAST); StringBuilder sb = new StringBuilder(); sb.append("<x>").append(x).append("</x>"); sb.append("<y>").append(y).append("</y>"); sb.append("<r-type>").append(type).append("</r-type>"); sb.append("<id>").append(id).append("</id>"); queryResult.addElement("content").addText(sb.toString()); replyPacket.setChildElement(queryResult); for (int i = 0; i < jids.size(); i++) { JID jid = jids.get(i); replyPacket.setTo(jid); replyPacket.setFrom(packet.getFrom()); try { packetRouter.route(replyPacket); } catch (Exception ex) { ex.printStackTrace(); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -