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
- spark初级开发记录
- Spark开发问题记录
- spark开发问题记录
- Spark开发记录(windows环境)
- Spark开发记录(windows环境)
- Spark开发记录(windows环境)
- Spark初级入门详解
- Spark初级入门详解
- Spark记录
- spark记录
- git 初级使用记录
- 【学习记录】Java初级
- 记录一下最近几天java web开发遇到的一些初级错误
- 初级软件工程师的实习记录
- 自定义view的初级记录
- spark开发
- spark开发
- 初级游戏开发指南
- LeetCode - 349. Intersection of Two Arrays
- Picasso 加载图片
- 记录---存储过程
- HDU 1890 题解
- First Blood
- spark初级开发记录
- leetcode string to integer
- TortoiseGit 连接记住用户名和密码
- C/C++定义全局变量/常量几种方法的区别
- javascript内建对象Date
- rtmp
- CSS3文本效果 、字体
- 关于手机网页边框很粗的解决方案
- [iOS imageView]headImage 异形图片的画法(小技巧记录)