spark初级开发记录

来源:互联网 发布:淘宝店面装修视频教程 编辑:程序博客网 时间:2024/04/29 12:32

spark桌面程序开发(网上整合完整版):

 

保持开源代码不动 , 目前发现有两种方法可以加载插件。

 

一、编写插件

    1 在spark项目中添加 source folder 文件夹(source folder 不是folder),取名为src/plugins/cyb/src/java

 

    2 在此文件夹下新建包名,取名为com.jivesoftware.spark.mytestplugin.plugin

 

    3 在此包下新建两个类,TPlugin实现Plugin接口,TPreference实现Preference接口

    实现Plugin , Preference接口

    在源码中,初始化时会调用plugin的initialize接口,重写该接口即可,下面的例子为添加一个tab到spark   

    PS:想要添加更多其他东西可以参考    Sparkplugin开发人员指南【汉化版】.doc  百度一下

 

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

public class TPlugin implements Plugin{

 @Override public void initialize() {

 

//在这里添加修改面板的代码,例如下面方法

addTabToSpark(); }

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

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

 @Override public void uninstall() {  // TODO Auto-generated method stub   } private void addTabToSpark(){     System.out.println("——————————addTabToSpark———————————");        // 从 SparkManager(Spark管理器) 获取 Workspace UI(主界面) 对象        Workspace workspace = SparkManager.getWorkspace();        // 从 Workspace UI 对象获取 SparkTabbedPane(底部Tab栏) 对象        SparkTabbedPane sparkTabbedPane = workspace.getWorkspacePane();        // 添加自定义Tab        sparkTabbedPane.addTab("我的标签", null, new JButton("11111"));    } 

  }

}
 
package com.jivesoftware.spark.mytestplugin.plugin;import javax.swing.Icon;import javax.swing.JComponent;import org.jivesoftware.spark.preference.Preference;public class Tpreference implements Preference{ @Override public String getTitle() {  // TODO Auto-generated method stub  return null; } @Override public Icon getIcon() {  // TODO Auto-generated method stub  return null; } @Override public String getTooltip() {  // TODO Auto-generated method stub  return null; } @Override public String getListName() {  // TODO Auto-generated method stub  return null; } @Override public String getNamespace() {  // TODO Auto-generated method stub  return null; } @Override public JComponent getGUI() {  // TODO Auto-generated method stub  return null; } @Override public void load() {  // TODO Auto-generated method stub   } @Override public void commit() {  // TODO Auto-generated method stub   } @Override public boolean isDataValid() {  // TODO Auto-generated method stub  return false; } @Override public String getErrorMessage() {  // TODO Auto-generated method stub  return null; } @Override public Object getData() {  // TODO Auto-generated method stub  return null; } @Override public void shutdown() {  // TODO Auto-generated method stub   }}

     4 在src文件夹下找到plugins文件夹,此时自动生成了cyb文件夹

     打开自动生成的src目录下plugins下cyb下的 plugin.xml 文件(没有就新建个),拷下面内容并修改

 

<plugin>     <name>cybPlugin</name>     <version>1.0</version>     <author>cyb</author>     <homePage>http://www.cyb.com</homePage>     <email>cyb@gmail.com</email>     <description>cybcybcybcyb</description> 
  <!-- 其他没什么用,这句改为你实现的plugin类路径-->    <class>com.jivesoftware.spark.mytestplugin.plugin.TPlugin</class>     <os>Windows,Mac,Linux</os>    <java>1.6.0_00</java>    <minSparkVersion>2.6.0</minSparkVersion> </plugin> 

 

      到此为止已经可以运行:把plugin.xml的全部内容拷贝到src/resources/META--INF/plugins.xml文件内,作为该文件的一个节点存放,运行程序即可。想要制作成插件则继 续以下步骤。

 

    5 此文件夹下自动生成了src文件夹。plugin/cyb下新建bulid文件夹,build文件夹下新建bulid.xml,把下面代码拷进去并修改对应名称


bulid.xml

 

<?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}/XXX.jar" basedir="${dest.dir}" /> <!-- 修改一下jar包的名字 -->  <jar jarfile="${im.path}/XXX.jar"> <!-- 修改一下jar包的名字 -->   <fileset dir=".">     <include name="lib/*.jar" />    </fileset>    <fileset dir=".">     <include name="plugin.xml" />    </fileset>   </jar> </target> <target name="release" depends="jar"> </target> </project> 

右键build.xml RUN AS -> ANT BUILD

看到控制台BUILD SUCCESSFUL,就好了~

这时候会在cyb目录下生成lib文件夹,把lib文件夹下的XXX.jar拷到 C:\Users\你的用户名\AppData\Roaming\Spark\plugins下

运行

不要直接运行

右键项目 Run As ——> Run Configurations

创建一个Java Application

Main选项卡:

Project:选择当前项目Spark

MainClass:org.jivesoftware.launcher.Startup

建议勾上Stop in Main

 

Arguments选项卡:

VM arguments:    -Dplugin="${workspace_loc:spark}\src\plugins\cyb\plugin.xml" (该xml就是你在第4步写的)

User Entries ——> Advanced ——> Add Foldes 选择 spark/resources

Run

 

 

 

 

0 0