zoukankan      html  css  js  c++  java
  • 【基于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

    不少功能都可以在这个配置文件中配置

    Xml代码 复制代码
    1. # If true, Spark cannot shut down   
    2. # users wont be able to shut down Spark   
    3. DISABLE_EXIT = true  

     

     

    由于退出不止这一个方法 我们得考虑很多地方



     但是你会发现



     这两登出按钮始终不会消失,看代码:

    MainWindow.java line 506

    Java代码 复制代码
    1. if ((Spark.isWindows() || Spark.isLinux()) || Spark.isMac() && !Default.getBoolean("DISABLE_EXIT")) {   
    2.             connectMenu.add(logoutMenuItem);   
    3.             connectMenu.add(logoutWithStatus);   
    4.         connectMenu.addSeparator();   
    5.     }  

     看代码后 貌似配置"DISABLE_EXIT"没啥意义了 想登出就 只留"DISABLE_EXIT"的判断吧

     

     

    • 设置主界面默认大小

    在主界面面第一次启动时,会采取一个默认值,关闭时会把这个默认值保存,如果你在关闭之前手动拖拉过主界面的大小,下次启动时的主界面会是你上次关闭时的大小
    MainWindow.java

    Java代码 复制代码
    1. if (settings.getMainWindowX() == 0 && settings.getMainWindowY() == 0) {   
    2.             // Use default settings.   
    3.             <SPAN style="COLOR: #ff0000">setSize(500500);   
    4. </SPAN>            GraphicUtils.centerWindowOnScreen(this);   
    5.         }  

     

    •  拿掉更新功能

    改了半天界面别谁手一犯贱就更新成最新版了


    Xml代码 复制代码
    1. # Disables updateability, you should set this, if you have a custom Spark-build   
    2. # or are in an environment where installfiles are distributed via network   
    3. DISABLE_UPDATES = <SPAN style="COLOR: #ff0000">true</SPAN>  

     

     
     

    • 直接拿掉菜单栏

    这可没有配置,自己加呗(需要才动这可,谁知道哪里会报错)




     在配置文件 default.properties 中添加

    Xml代码 复制代码
    1. # true to hide menu bar   
    2. HIDE_MENUBAR = true  

     MainWindow.java 中修改 line 160

    Java代码 复制代码
    1. if (!Default.getBoolean("HIDE_MENUBAR")) {   
    2.             // Add menubar   
    3.             this.setJMenuBar(mainWindowBar);   
    4.             this.getContentPane().add(topToolbar, BorderLayout.NORTH);   
    5.  }else { //不加个空的menubar其它地方会报错导致托盘图标都没了,懒得去研究就用了这个笨办法,图中红箭头就是效果,影响不打   
    6.             JMenuBar jmenubar = new JMenuBar();   
    7.             jmenubar.add(new JMenu());   
    8.             this.setJMenuBar(jmenubar);   
    9. }  
    • 拿掉联系人和会议Tab
       在配置文件 default.properties 中添加
    Xml代码 复制代码
    1. #true to hide contact list and conference   
    2. CONTACT_LIST_DISABLED = true  

     Workspace.java 中修改 line 206

    Java代码 复制代码
    1. <SPAN style="COLOR: #0000ff">if (!Default.getBoolean("CONTACT_LIST_DISABLED")) {   
    2. </SPAN>         // Initialize Contact List   
    3.             contactList = UIComponentRegistry.createContactList();   
    4.             conferences = UIComponentRegistry.createConferenceServices();   
    5.             // Init contact list.   
    6.             contactList.initialize();   
    7.   <SPAN style="COLOR: #0000ff">}</SPAN>  

     效果图在上面

    • 添加自定义Tab
       也就是sparkplug开发啦,我这边需求不需要原来的联系人和会议Tab,反正要改代码所以干脆放一起了,没以插件的形式加入

    自己新建个插件包,建个类实现Plugin

    Java代码 复制代码
    1. public class MessageTreePlugin implements Plugin {   
    2.   
    3.     @Override  
    4.     public void initialize() {   
    5.         System.out.println("Welcome To Spark message Tree!");   
    6.         addTabToSpark();   
    7.     }   
    8.   
    9.     @Override  
    10.     public void shutdown() {   
    11.         // TODO Auto-generated method stub   
    12.   
    13.     }   
    14.   
    15.     @Override  
    16.     public boolean canShutDown() {   
    17.         // TODO Auto-generated method stub   
    18.         return false;   
    19.     }   
    20.   
    21.     @Override  
    22.     public void uninstall() {   
    23.         // TODO Auto-generated method stub   
    24.   
    25.     }   
    26.        
    27.     /**  
    28.      * Adds a tab to Spark  
    29.      */  
    30.     private void addTabToSpark(){   
    31.          // Get Workspace UI from SparkManager   
    32.         Workspace workspace = SparkManager.getWorkspace();   
    33.   
    34.         // Retrieve the Tabbed Pane from the WorkspaceUI.   
    35.         SparkTabbedPane tabbedPane = workspace.getWorkspacePane();   
    36.   
    37.         // Add own Tab.   
    38.         tabbedPane.addTab("My Plugin"null,new JButton("Hello"));   
    39.     }   
    40. }  

     

    在Workspace.java line 204中添加

    Java代码 复制代码
    1. public void buildLayout() {   
    2.     new Enterprise();   
    3.     if (!Default.getBoolean("CONTACT_LIST_DISABLED")) {   
    4.         // Initialize Contact List   
    5.         contactList = UIComponentRegistry.createContactList();   
    6.         conferences = UIComponentRegistry.createConferenceServices();   
    7.         // Init contact list.   
    8.         contactList.initialize();   
    9.            
    10.     }   
    11.    <SPAN style="COLOR: #ff0000"> MessageTreePlugin mtp = new MessageTreePlugin();   
    12.     mtp.initialize();</SPAN>  

      效果图在上面

     

    今天就这么多吧 明天在自定义Tab上添加树型结构

  • 相关阅读:
    125、TensorFlow计算图的执行
    123、TensorFlow的Job
    122、TensorFlow多设备运行
    121、TensorFlow张量命名
    关于CSRF跨域请求伪造的解决办法
    angular基于ui-router实现系统权限控制
    gulp自动化打包及静态文件自动添加版本号
    深入研究HTML5实现图片压缩上传
    移动web模拟客户端实现多方框输入密码效果
    高级功能:很有用的javascript自定义事件
  • 原文地址:https://www.cnblogs.com/juforg/p/3088373.html
Copyright © 2011-2022 走看看