`

【基于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"的判断吧

 

 

主界面右上角的关闭按钮 默认是 点了之后不做退出操作,只是最小化,如果有需要你可以改成退出

ChatFrame.java line 64

this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

 可选择:

public interface WindowConstants
{
    public static final int DO_NOTHING_ON_CLOSE = 0;
    public static final int HIDE_ON_CLOSE = 1;
    public static final int DISPOSE_ON_CLOSE = 2;
    public static final int EXIT_ON_CLOSE = 3;
}

 
 

  • 设置主界面默认大小

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

if (settings.getMainWindowX() == 0 && settings.getMainWindowY() == 0) {
            // Use default settings.
            setSize(500, 500);
            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 = true

 

 
 

  • 直接拿掉菜单栏

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




 在配置文件 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

if (!Default.getBoolean("CONTACT_LIST_DISABLED")) {
        	// Initialize Contact List
        	contactList = UIComponentRegistry.createContactList();
        	conferences = UIComponentRegistry.createConferenceServices();
        	// Init contact list.
        	contactList.initialize();
  }

 效果图在上面

  • 添加自定义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();
            
        }
        MessageTreePlugin mtp = new MessageTreePlugin();
        mtp.initialize();

  效果图在上面

 

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

 

 

 

  • 大小: 6 KB
  • 大小: 3.6 KB
  • 大小: 6.5 KB
  • 大小: 5.7 KB
  • 大小: 4.8 KB
  • 大小: 3.3 KB
  • 大小: 2.5 KB
  • 大小: 6.7 KB
分享到:
评论
5 楼 鸭子听雷公 2014-11-18  
谢谢,解决
4 楼 wll52 2013-12-19  
楼主有没有更多的文件说明? 不知道聊天窗口用的是哪个,想做一个在聊天中打字,生成一些代码,好做正在输入功能,谢谢!!
3 楼 juforg 2013-10-12  
鸭子听雷公 写道
博主,我是刚接触spark二次开发,公司要的急能给个修改登陆界面以及其它副界面的logo标志的过程吗。我邮箱:869182963@qq.com.  谢谢

这个应该没啥过程吧,把  resources  >  images 里的图片 spark的log换成你公司的logo就行了吧
2 楼 鸭子听雷公 2013-09-15  
博主,我是刚接触spark二次开发,公司要的急能给个修改登陆界面以及其它副界面的logo标志的过程吗。我邮箱:869182963@qq.com.  谢谢
1 楼 臧圩人 2013-05-21  

相关推荐

    spark最新源码以及二次开发教程

    总之,Spark的二次开发是一项涉及广泛技术的复杂工作,但借助于丰富的社区资源和详尽的文档,我们可以逐步掌握这项技能,打造出更加符合业务需求的Spark解决方案。在Openfire环境中,这样的定制化开发将极大地提升...

    大数据资料Spark\HBase\HDFS 二次开发 PPT

    这份压缩包文件包含了一系列关于大数据技术的PPT和PDF文档,主要聚焦于Spark、HBase、HDFS的二次开发以及相关的技术,如Hive、Kafka、Solr和MapReduce等。以下是这些资源中涉及的主要知识点: 1. **Spark二次开发**...

    基于spark的大数据论文资料

    本资料是集合20篇知网被引最高的基于spark的大数据论文,包括大数据Spark技术研究_刘峰波、大数据下基于Spark的电商实时推荐系统的设计与实现_岑凯伦、基于Spark的Apriori算法的改进_牛海玲、基于Spark的大数据混合...

    openfire + spark 开发

    在本文中,我们将讨论基于 Openfire 和 Spark 的 XMPP IM 软件开发。我们将从 XMPP 协议的介绍开始,接着讨论如何使用 Spark 和 Openfire 来实现一个完整的 IM 软件开发。 什么是 XMPP? XMPP(Extensible ...

    spark+openfire二次开发(三)

    《Spark+Openfire二次开发(三):深入理解与实践》 在IT行业中,Spark和Openfire是两个非常重要的开源工具,它们分别在大数据处理和即时通讯领域有着广泛的应用。本篇文章将深入探讨如何对这两者进行二次开发,...

    大数据Spark二次开发.pdf

    大数据Spark二次开发 大数据Spark二次开发是指使用Apache Spark进行大数据处理和分析的过程。Spark是基于内存的计算引擎,可以快速处理大量数据。 Spark任务运行流程 Spark任务运行流程包括以下几个步骤: 1. ...

    spark+openfire二次开发

    Spark+Openfire 二次开发详解 Spark 和 Openfire 是两个基于 Java 的即时通讯平台,分别由 Apache 和 Ignite Realtime 开发。Spark 是一个基于 XMPP 协议的即时通讯客户端,而 Openfire 是一个基于 XMPP 协议的...

    基于Spark的全球新冠疫情系统的分析与实现

    《基于Spark的全球新冠疫情系统的分析与实现》 在大数据时代,快速、高效地处理和分析海量数据成为关键。Apache Spark作为一个分布式计算框架,以其高效的数据处理能力,成为了大数据领域的重要工具。本文将深入...

    基于spark的电影点评系统

    Spark是一种快速、通用且可扩展的大数据处理引擎,它提供了基于内存计算的DAG(有向无环图)执行模型,相较于Hadoop MapReduce,Spark能够提供更高的计算性能。Spark的核心组件包括Spark Core、Spark SQL、Spark ...

    基于spark的外卖大数据平台分析系统.zip

    本文将深入探讨如何利用Spark构建一个基于外卖数据的分析系统,以及在这个过程中涉及到的关键技术和应用。 首先,我们需要理解Spark的核心特性。Spark提供了一种内存计算模型,它将数据存储在内存中,从而极大地...

    基于Spark的电影推荐系统

    本课程论文阐述了spark和spark集成开发环境Intellij IDEA的安装与操作,也详细说明了基于Spark的电影推荐系统的开发流程。推荐引擎是最常用的机器学校应用,我们可以在各大购物网站上看到这方面的应用。基于Spark的...

    基于Spark的电影推荐系统的设计与实现.docx

    基于Spark的电影推荐系统的设计与实现.docx基于Spark的电影推荐系统的设计与实现.docx基于Spark的电影推荐系统的设计与实现.docx基于Spark的电影推荐系统的设计与实现.docx基于Spark的电影推荐系统的设计与实现.docx...

    IM, spark 分析代码

    IMClient-master可能是一个包含IM客户端源代码的项目,而IMProject.userlibraries可能包含了项目的依赖库,gradle.properties则是Gradle构建系统的配置文件。 首先,让我们详细了解一下Apache Spark。Spark是一个...

    基于Spark大数据环境开发的二手房分析和预测系统源码设计.rar

    基于Spark大数据环境开发的二手房分析和预测系统源码设计 基于Spark大数据环境开发的二手房分析和预测系统源码设计 基于Spark大数据环境开发的二手房分析和预测系统源码设计 基于Spark大数据环境开发的二手房分析和...

    基于Spark的电商用户分析系统-开题报告.pdf

    基于Spark的电商用户分析系统的设计和实现主要包括四个方面:一是使用CDH大数据集群研究与搭建,二是使用Flume监控制定日志文件以及使用Kafka将数据转移到HDFS中,三是使用SparkStreaming实时处理平台,四是使用行为...

    基于Spark Streaming的大数据实时流计算平台和框架,并且是基于运行在yarn模式运行的spark streaming

    一个完善的Spark Streaming二次封装开源框架,包含:实时流任务调度、kafka偏移量管理,web后台管理,web api启动、停止spark streaming,宕机告警、自动重启等等功能支持,用户只需要关心业务代码,无需关注繁琐的...

    spark-2聊天客户端,可二次开发

    Spark-2是一款基于Java开发的即时通讯(IM)客户端,主要设计用于企业级通信环境,提供了丰富的功能,如文本消息、文件传输、群组聊天、音视频通话等。这款聊天客户端以其开源、可扩展和易二次开发的特点受到了IT...

    spark笔记整理文档

    Spark最初由加州大学伯克利分校AMPLab开发,其设计理念是提供一个快速、通用且可扩展的大数据处理系统。与Hadoop MapReduce相比,Spark通过内存计算显著提升了迭代算法的执行效率,同时支持多种数据处理模型,包括...

    基于CDH 6.3.0 搭建 Hive on Spark 及相关配置和调优

    ### 基于CDH 6.3.0 搭建 Hive on Spark 及相关配置和调优 #### 概述 随着大数据技术的发展,Hadoop生态系统不断成熟与完善,其中Apache Hive作为数据仓库工具,支持通过SQL语句进行查询、分析存储在Hadoop文件系统...

    基于Spark架构开发的电影推荐系统源码.zip

    基于Spark架构开发的电影推荐系统源码.zip基于Spark架构开发的电影推荐系统源码.zip基于Spark架构开发的电影推荐系统源码.zip基于Spark架构开发的电影推荐系统源码.zip基于Spark架构开发的电影推荐系统源码.zip基于...

Global site tag (gtag.js) - Google Analytics