spark插件开发简单实例(版本spark2.5.8)

原创 2011年01月25日 08:48:00

    最近在研究openfire和spark,但是发现关于spark的插件开发的例子很少,而且做的也不是很简单。所以自己就小试牛刀,为大家做一个简单的入门级的spark插件开发实例。

    首先,看我建立的目录结构:

    com.jivesoftware.spark.bidlink.plugin下面包含两个文件,BidlinkPlugin.java是官方规定建立的插件类,而BidlinkPluginUtil.java是我自己写的方法实现类,本实例所实现的所有功能都将在此类中实现。

    我在plugins目录下建立了自己的文件夹,bidlink目录下包含bin,build,lib目录以及plugin.xml文件。bin目录是存放ant之后.class文件的存放目录(其中包含了包结构),build目录只存放build.xml文件,此文件为ant所需文件,lib目录是存放生成后的jar包所用,其可以为空,plugin.xml文件是一些关于插件的描述和BidlinkPlugin.java的路径指向。好了目录结构已经介绍好了,下面来分别介绍各个文件的内容吧。

 

 

 

 

    BinlinkPlugin.java

 

(这个类很简单,我什么都没做,只需要在 initialize()方法中引用下BidlinkPluginUtil.java中的addWorkspacePane()方法即可)

 

import org.jivesoftware.spark.plugin.Plugin;

public class BidlinkPlugin implements Plugin {

 @Override
 public boolean canShutDown() {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public void initialize() {
  BidlinkPluginUtil.addWorkspacePane();

 }

 @Override
 public void shutdown() {
  // TODO Auto-generated method stub

 }

 @Override
 public void uninstall() {
  // TODO Auto-generated method stub

 }

}

 

 

BidlinkPluginUtil.java

 

(这个类里面是功能方法的具体实现,具体效果不再介绍,一会有图片相送)

 

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;

import javax.swing.Icon;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JTextPane;
import javax.swing.UIManager;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.plaf.FontUIResource;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;

import org.jivesoftware.MainWindow;
import org.jivesoftware.spark.SparkManager;
import org.jivesoftware.spark.Workspace;
import org.jivesoftware.spark.component.tabbedPane.SparkTab;
import org.jivesoftware.spark.component.tabbedPane.SparkTabbedPane;

public class BidlinkPluginUtil {

 /**
  * 添加WorkspacePane
  */
 public static void addWorkspacePane() {
  Workspace workspace = SparkManager.getWorkspace();

  SparkTabbedPane tabbedPane = workspace.getWorkspacePane();

  JTextPane textPane = new JTextPane();
  Document doc = textPane.getDocument();
  SimpleAttributeSet attrSet = new SimpleAttributeSet();
  // 颜色
  StyleConstants.setForeground(attrSet, Color.RED);
  // 加粗
  StyleConstants.setBold(attrSet, true);
  // 字体大小
  StyleConstants.setFontSize(attrSet, 25);

  StyleConstants.setBackground(attrSet, Color.YELLOW);

  String content = "必联采购网——互联网第一个采购管理平台,"
    + "由中国政府商务部、财政部授权的唯一招投标采购在线业务平台," + "成立于2001年3月。坐落于北京中关村软件园区,"
    + "是一家拥有自主软件版权的大型企业";
  try {
   doc.insertString(doc.getLength(), content, attrSet);
  } catch (BadLocationException e) {
   e.printStackTrace();
  }

  // Add own Tab.
  tabbedPane.addTab("必联介绍", new Icon() {

   @Override
   public void paintIcon(Component c, Graphics g, int x, int y) {
    // TODO Auto-generated method stub

   }

   @Override
   public int getIconWidth() {
    // TODO Auto-generated method stub
    return 0;
   }

   @Override
   public int getIconHeight() {
    // TODO Auto-generated method stub
    return 0;
   }
  }, textPane);

 }

}

 

 

 

build.xml

 

(这个是最重要的,它将完成编译,发布jar包的任务。红色标出的部分是比较重要的,因为BidlinkPlugin.java在编译的时候要引用其他类,所以必须指定引用jar包。spark.home 目录下有一个spark.jar,这个是spark最重要的资源包,pugin文件将会引用它,如果spark.home没有spark.jar文件,大家可以从安装版的spark的相应目录下拷贝到这个目录下,记住,要对应版本哦,这个实例是2.5.8的)

 

<?xml version="1.0" encoding="UTF-8"?>
<project name="bidlink" default="release" basedir="..">
 <property name="src.dir" value="src" />
 <property name="dest.dir" value="bin" />
 <property name="lib.dir" value="lib" />
 <property name="im.path" value="lib/dist" />


 <property name="spark.home" value="../../../target/build/lib" />


 <path id="lib.classpath">
  <fileset dir="${spark.home}" includes="**/*.jar, **/*.zip" />
 </path>

 <target name="clean">
  <delete dir="${dest.dir}" />
  <delete dir="${lib.dir}" />
  <delete dir="${im.path}" />
 </target>

 <target name="init" depends="clean">
  <mkdir dir="${dest.dir}" />
  <mkdir dir="${lib.dir}" />
  <mkdir dir="${im.path}" />
 </target>

 <target name="build" depends="init">
  <javac srcdir="${src.dir}" destdir="${dest.dir}" classpathref="lib.classpath" target="1.6" />
 </target>

 <!-- 最重要的是这里,打两次包 -->
 <target name="jar" depends="build">
  <jar jarfile="${lib.dir}/bidlink.jar" basedir="${dest.dir}" />
  <jar jarfile="${im.path}/bidlink.jar">
   <fileset dir=".">
    <include name="lib/*.jar" />
   </fileset>
   <fileset dir=".">
    <include name="plugin.xml" />
   </fileset>
  </jar>
 </target>
 <target name="release" depends="jar">
 </target>
</project>

 

 

plugin.xml

 

(这个文件里,最重要的内容我已经标出来了,其他的内容随便写,写错了也没啥大事)

 

<plugin>
    <name>bidlink Plugin</name>
    <version>1.0</version>
    <author>linyu</author>
    <homePage>http://www.bidlink.com</homePage>
    <email>linyu19872008@gmail.com</email>
    <description>Adds bidlink Desktop Search   to Spark.</description>
    <class>com.jivesoftware.spark.bidlink.plugin.BidlinkPlugin</class>
    <minSparkVersion>2.5.8</minSparkVersion>
</plugin>

 

 

具体ant过程我将不再介绍,大家可以查阅相关资料,以下链接是spark的部署过程,您可以参考它的ant过程

http://ljhmustang.blog.163.com/blog/static/421754472010102621345608/

 


如果您的部署一切顺利的话,您将可以看到如下的效果

相关文章推荐

synthetica.jar spark 2.5.8

  • 2012年11月12日 16:37
  • 450KB
  • 下载

开发你自己的XMPP IM 续 - Spark 插件开发

转:http://phoenixtoday.blogbus.com/logs/17878527.html继续3月18日介绍基于XMPP IM开发的那篇Blog,今天主要总结一下如何基于Spark 的插...
  • YH555
  • YH555
  • 2011年03月18日 15:07
  • 635

openfire插件开发简单实例

网上找了半天openfire插件开发的例子,都只是从原理上将的,并不利于菜鸟学习,所以我在这里从动手方面将下openfire插件的开发 1  这是我建立的目录,请大家看清目录结构 2  再次从包结构...

一个简单的jQuery插件开发实例

用了几年的jQuery了,插件也接触了不少,但还没正经写过自己的插件,今天花了大半天时间才搞定,主要问题是在处理命名空间上: (function($){ // 为指定节点添加遮盖效果 ...

简单的dedecms在线报名插件开发 实例 有后台

后台界面: 前台界面: 比较简单 可自行美化    文件结构: enroll.php 文件在 plus文件下 enroll.htm文件在templets/plus 文件夹下 adenr...

openfire插件开发简单实例

网上找了半天openfire插件开发的例子,都只是从原理上将的,并不利于菜鸟学习,所以我在这里从动手方面将下openfire插件的开发 1  这是我建立的目录,请大家看清目录结构 2  再次从...

3DS Max 2010简单导出插件开发(实例开发)

适用平台: VS2008 + 3dsmax 2010          模型对于一个游戏引擎来说至关重要,而3DS Max是主流的建模软件,但其中的模型格式不一定适合你的要求,开发一个适合你要求的模...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spark插件开发简单实例(版本spark2.5.8)
举报原因:
原因补充:

(最多只允许输入30个字)