【基于spark IM 的二次开发笔记】第一天 各种配置
-
开发环境配置
已经有现成的了 我就不再造轮子了
http://huxj62488.iteye.com/blog/615600
- 登录界面 描述类
/spark/src/java/org/jivesoftware/LoginDialog.java
- 主界面 描述类
/spark/src/java/org/jivesoftware/spark/Workspace.java
/spark/src/java/org/jivesoftware/MainWindow.java
- 托盘图标 右键 描述类
/spark/src/java/org/jivesoftware/sparkimpl/plugin/systray/SysTrayPlugin.java
- 禁止退出功能
spark 已经有了相关功能,只不过是在配置文件中
/spark/src/java/org/jivesoftware/resource/default.properties
不少功能都可以在这个配置文件中配置
- # If true, Spark cannot shut down
- # users wont be able to shut down Spark
- DISABLE_EXIT = true
由于退出不止这一个方法 我们得考虑很多地方
但是你会发现
这两登出按钮始终不会消失,看代码:
MainWindow.java line 506
- if ((Spark.isWindows() || Spark.isLinux()) || Spark.isMac() && !Default.getBoolean("DISABLE_EXIT")) {
- connectMenu.add(logoutMenuItem);
- connectMenu.add(logoutWithStatus);
- connectMenu.addSeparator();
- }
看代码后 貌似配置"DISABLE_EXIT"没啥意义了 想登出就 只留"DISABLE_EXIT"的判断吧
- 设置主界面默认大小
在主界面面第一次启动时,会采取一个默认值,关闭时会把这个默认值保存,如果你在关闭之前手动拖拉过主界面的大小,下次启动时的主界面会是你上次关闭时的大小
MainWindow.java
- if (settings.getMainWindowX() == 0 && settings.getMainWindowY() == 0) {
- // Use default settings.
- <SPAN style="COLOR: #ff0000">setSize(500, 500);
- </SPAN> GraphicUtils.centerWindowOnScreen(this);
- }
- 拿掉更新功能
改了半天界面别谁手一犯贱就更新成最新版了
- # Disables updateability, you should set this, if you have a custom Spark-build
- # or are in an environment where installfiles are distributed via network
- DISABLE_UPDATES = <SPAN style="COLOR: #ff0000">true</SPAN>
- 直接拿掉菜单栏
这可没有配置,自己加呗(需要才动这可,谁知道哪里会报错)
在配置文件 default.properties 中添加
- # true to hide menu bar
- HIDE_MENUBAR = true
MainWindow.java 中修改 line 160
- if (!Default.getBoolean("HIDE_MENUBAR")) {
- // Add menubar
- this.setJMenuBar(mainWindowBar);
- this.getContentPane().add(topToolbar, BorderLayout.NORTH);
- }else { //不加个空的menubar其它地方会报错导致托盘图标都没了,懒得去研究就用了这个笨办法,图中红箭头就是效果,影响不打
- JMenuBar jmenubar = new JMenuBar();
- jmenubar.add(new JMenu());
- this.setJMenuBar(jmenubar);
- }
- 拿掉联系人和会议Tab
在配置文件 default.properties 中添加
- #true to hide contact list and conference
- CONTACT_LIST_DISABLED = true
Workspace.java 中修改 line 206
- <SPAN style="COLOR: #0000ff">if (!Default.getBoolean("CONTACT_LIST_DISABLED")) {
- </SPAN> // Initialize Contact List
- contactList = UIComponentRegistry.createContactList();
- conferences = UIComponentRegistry.createConferenceServices();
- // Init contact list.
- contactList.initialize();
- <SPAN style="COLOR: #0000ff">}</SPAN>
效果图在上面
- 添加自定义Tab
也就是sparkplug开发啦,我这边需求不需要原来的联系人和会议Tab,反正要改代码所以干脆放一起了,没以插件的形式加入
自己新建个插件包,建个类实现Plugin
- public class MessageTreePlugin implements Plugin {
- @Override
- public void initialize() {
- System.out.println("Welcome To Spark message Tree!");
- 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
- }
- /**
- * Adds a tab to Spark
- */
- private void addTabToSpark(){
- // Get Workspace UI from SparkManager
- Workspace workspace = SparkManager.getWorkspace();
- // Retrieve the Tabbed Pane from the WorkspaceUI.
- SparkTabbedPane tabbedPane = workspace.getWorkspacePane();
- // Add own Tab.
- tabbedPane.addTab("My Plugin", null,new JButton("Hello"));
- }
- }
在Workspace.java line 204中添加
- public void buildLayout() {
- new Enterprise();
- if (!Default.getBoolean("CONTACT_LIST_DISABLED")) {
- // Initialize Contact List
- contactList = UIComponentRegistry.createContactList();
- conferences = UIComponentRegistry.createConferenceServices();
- // Init contact list.
- contactList.initialize();
- }
- <SPAN style="COLOR: #ff0000"> MessageTreePlugin mtp = new MessageTreePlugin();
- mtp.initialize();</SPAN>
效果图在上面
今天就这么多吧 明天在自定义Tab上添加树型结构
作者:九州浪子
出处:http://www.cnblogs.com/juforg/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。