Netbeans平台的顶层组件:org.openide.windows.TopComponent是JComponent的子类. 顶层组件知道如何在Netbeans的窗口系统中工作. 如果你想想主窗口中添加组件, 通常的办法是你自己写一个类,继承顶层组件, 就像你开发普通的Swing程序, 继承一个JPanel一样.
顶层组件需要在模式Mode中生存, Mode是一种docking容器.
顶层组件有各种状态:
开/关 open/closed - 当一个顶层组件被打开时,一个Tab面板将会出现在主窗口代表这个顶层组件
可见的/不可见的 ...
数据对象是文件对象的包装器. 一个文件对象仅仅是一个数据容器,也许这个文件有一个MIME类型, 不过像java.io.File一样, 他一点也不知道也不关心它到底代表了何种文件或者是这个文件究竟是什么. 数据对象是Netbeans平台中装载器API的一部分.
一个数据对象代表一个或多个(通常都是只代表一个)文件对象. 一个数据对象知道它代表的文件是何种类型. 它能够代表一个例如java源文件的经过解析的内容.或者在一个InstanceDataObject的情况下, 文件名就可以提供所有的信息.
数据对象由数据装载器产生. 模块为特定的文件类型注册相应的数据装载器. 所有对于每个文件类型 ...
Netbeans平台中, .shadow文件主要用于系统文件系统的配置数据上. .shadow文件在功能上和Unix的软连接很像. 实际上就是一个文件的指针. .shadow文件通常在只需要一个对象实例,但是必须在多个目录下存在的情况下使用. 例如, 一个动作通常在系统文件系统中Action目录下声明,但是这个动作也必须在菜单和工具栏中出现. 我们不能创建这个动作的多个实例来解决上面的问题. 一个.instance文件在模块的层文件layer.xml中的Actions目录中创建. 然后在其他需要这个对象的地方创建对应的.shadow文件指向这个.instance文件. 在系统文件系统中声明 ...
我们知道在Netbeans平台中有四种注册/安装方式:
在模块的JAR文件的META-INF/services目录下增加文件条目
在系统文件系统下的某目录下增加文件
在模块的manifest文件中增加manifest条目
实现org.openide.modules.ModuleInstall类并且在manifest文件中配置, 这种方式是在系统启动时执行Java代码
我们知道模块的注册和安装其实在Netbeans平台中是同一个概念. 那么我们究竟应该使用何种方式进行注册呢?
具体情况具体分析:
如果我们正在 ...
在很久很久以前, Netbeans中的大部分对象都是在启动的时候装载的. 当开发程序很小的时候,这个方式没有什么问题, 但是当你开发很大的应用的时候, 这种方式就是一场灾难. 每个系统的新的组件都让启动过长变得更加漫长,垃圾回收变得更加频繁,需要更多的内存支持.这种方式被称为程序式的安装.
不过,现在的Netbeans慢慢改变了这种方式. 大部分系统安装只涉及一个文本条目: 在XML层文件中添加一些东西,而不是运行Java代码. 理想情况下,一个模块在系统启动的时候应该不做任何事情,只有需要这个模块的时候,再做处理.这种方式被称为声明式的安装.
声明式的安装是通过在模块的JAR文件的M ...
Netbeans平台中的模块包含两个重要的内容,一个是配置数据,一个是对象. 模块有四种方式来在Netbeans平台中安装配置数据和对象, 其中三种方式是声明式的,这种机制使我们鼓励的.
Netbeans平台中窗口系统负责创建主应用窗口,能够在用户界面打开组件. 窗口系统位于org.openide.windows包内.实现类位于窗口模块org.netbeans.core.windows包.
窗口系统最著名的两个概念: 模式(Mode)和顶层组件(TopComponent).
什么是模式?
模式这个名词命名的非常令人困惑, 不过由于历史原因和兼容性只能继续使用这个名词. 这个名词其实仅仅指的是主窗口中Tab容器的位置. 例如在中间还是左侧,右侧还是底部等等.
顶层组件
我们开发的可视组件,例如一个面板通常都是继承自这个顶层组件. 这个组件是我们开发中最经常 ...
.settings files are similar to .instance files, with the distinction that they specify all the superclasses/interfaces of the object represented, so that some code can ask Lookup/whatever "Do you have one of these?" without needing to actually create an instance of the object. You could ca ...
Netbeans平台中有.instance文件这个概念. 实际上, .instance文件代表一个对象实例, 所以也称为实例文件
一个实例文件通过它的类名来表明它是哪个类的实例. 例如 com-foo-mymodule-MyObject.instance 实例文件表明它是MyObject类的实例. 实例文件可以代表任何Java类,只要它提供一个默认的构造器或者一个静态的创建方法.
在Netbeans的基础构建中, 一个实例文件产生InstanceDataObject,实例数据对象, 实例数据对象能够提供一个实例Cookie, InstanceCookie, 然后实例Cookie初始化这 ...
Netbeans平台中的文件对象(FileObject)是存在Netbeans文件系统(FileSystem)中的虚拟文件. 它可以是磁盘上的文件,也可以是任何类似文件的东西.例如远端FTP服务器上的文件,JAR包里的一个文件条目,甚至XML文件中的一个条目,等等.
Netbeans平台中的文件对象和java.io.File文件有很大不同:
你不能生成一个代表尚不存在的文件的文件对象, 就是说如果真正的文件不存在,你不能生成一个对应的Netbeans文件对象
你可以监听文件对象的变化.
文件对象可以拥有键值对形式的文件属性
很多应用程序通过用户界面来显示目录和文件, Netbeans用户界面是通过系统文件系统中的虚拟文件来创建的,很多Netbeans的用户界面其实是系统文件系统的一个视图.而系统文件系统其实是运行时根据解析所有模块的层次文件layer.xml构建的.
基本的机制是:特定的,已知的文件类型分别具有自己的图标,菜单选项和行为或者动作.
Netbeans如何知道这些文件的类型呢?
答案是:这些文件其实或者是FileObject包装起来的文件(java.io.File),或者是配置文件(通过包装模块的XML文件). 真正你看到的其实是节点. 节点提供文件相关的动作,名字等其他事情. 而在节点和文件 ...
Netbeans平台中有一个概念: System FileSystem, 系统文件系统, 又叫配置文件系统.
系统文件系统其实就是Netbeans的配置数据的中心仓库,也就是用来存储配置数据信息的.系统文件系统由Netbeans系统在运行时根据所有模块的XML层文件(XML Layer, layer.xml)文件组装配置形成. 各个模块使用系统文件系统的目录去定义扩展点(Extension Point).
扩展点: 每个模块可以定义一个目录或者文档来指定其他模块可以放置到此的文件或者对象(通常是实例文件, instance file),Netbeans系统在运行时扫描并且装载这些内 ...
Netbeans平台的数据系统是文件系统和面向文件操作之间的逻辑层,提供在文件对象(file object)之上的工作API,能够文件的逻辑处理:图标,名字,操作等等。例如Netbeans如何识别HTML文件,XML文件,Java源文件等,对于不同的文件/数据类型,Netbeans会以不同的方式处理,例如可以对Java源文件编译,可以对XML文件提供折叠显示等。Netbeans通过数据加载器DataLoader实现这个功能的, 基本流程是系统加载池 System Data Loader Pool负责扫描磁盘上的目录,过滤掉不相关的文件,然后依次询问在系统注册了的数据加载器是否对这个文件类型进行 ...
Netbeans使用Node将JavaBeans或者其他具备属性的容器以树状的结构展现。Netbeans中有专门的Node包负责使用和创建节点,同时提供Cookies(以后会讲到)和动作,能够被查看器以树状结构显示。
什么是节点?可以说节点是任何Netbeans中的数据对象的包装器,这些对象通过节点来显示和执行任务(通过节点的动作),一般来说这些数据对象由数据系统接口(Datasystem API)提供。当然数据对象也可以根据特定需要单独创建。你看到的查看器中的图标,对话框,组件窗口都是基于节点的,他们通过查看器API显示。节点本身不存储数据,这个任务是由数据对象完成,节点仅仅是 ...
Netbeans平台上开发富客户端需要仔细研究他的API,这里简单梳理一下:
Actions APIs - 最重要的也是开发者必须使用的API,负责处理象表单和工具栏等上面的动作, 想一下Swing的Action.
Ant -Ant的整合API.
Ant-Based Project S ...
开发Netbeans RCP前需要一些基础知识:
原文
一个模块其实就是一个带有特定manifest条目的JAR文件,Netbeans支持创建模块,而其本身也是模块搭键起来的.
模块如何和Netbeans系统打交道呢?答案是通过模块内部的一个XML文件来和Netbeans系统交互,这个XML文件被称为层次文件(Layer file/Module Layer),通常是layer.xml. Netbeans系统将会读取这个文件.关于这个层次文件,我们以后详细介绍
通过模块,你可以改变主窗口或者工具栏等地方的菜单
通过继承 To ...
http://www.ociweb.com/jnb/jnbSep2005.html
http://www.ociweb.com/jnb/jnbOct2005.html
Visual Web Pack是Netbeans5.5的一个卖点。好像是从Sun 的 Creator平台直接移植过来的。Netbeans5.5的Visual Web Pack面板提供了许多可视化的组件,能够让你方便的进行可视化Web开发。不过可惜的是,它只支持Sun的JSF实现,不支持诸如Apache MyFaces等优秀的JSF实现。说句实在话,MyFaces的实现的确比Sun的实现更加好看和强大(至少从文档上看起来)。例如Data Scoller(就是象Google的“上一页 123456 下一页”这种导航效果,非常适用于大量数据的显示),MyFaces实现的很漂亮 ...
前些天升级到了Netbeans5.5英文版,这几天发现中文版测试也出来了。Netbeans5.5最令我有好感的特性有:
支持最新版本的Java(废话,Sun和Netbeans是一家)
支持Subversion版本控制(忘了VSS和CVS吧,Apache和Sourceforge改用Subversion了)
Visual Web Pack(从Sun自己的开发平台移植到NetBeans的,想象一下,象开发Swing一样开发Web,靠!)
JUnit测试(测试驱动开发,不用我说了)
Profiler(看看你的应用瓶颈在哪里,我心目中的高手是项目还没 ...
- 浏览: 54121 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
JSF中的事件类型
阶段事件没有弄明白,值改变事件和动作事件都用过
-- by lysmart_8 -
Roller分析(2): 商业逻辑
roller 不是开源的吗?怎么会还有商业的逻辑呢?
-- by bhlove -
转贴:Nutch爬虫工作流程及 ...
不错啊~~
-- by savage100 -
Jackrabbit的简单节点定义 ...
写得很清晰,很不错! 我想问一下,如果可以实现动态注册,那么用户在使用定义的新节 ...
-- by java9920 -
Apache Solr 剖析系列(1 ...
支持 支持 继续分析啊
-- by zhaoyongling721






评论排行榜