仓酷云
标题:
了解下JAVA的利用CommonNavigator开辟资本办理器--模子篇
[打印本页]
作者:
再见西城
时间:
2015-1-18 11:07
标题:
了解下JAVA的利用CommonNavigator开辟资本办理器--模子篇
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。
在基本篇中,已经由过程例子开端申明了,怎样基于CNF制造一个复杂的资本办理器,但良多开辟职员并不睬解,树上的结点是怎样失掉的,这就触及到CNF的模子。在胪陈CNF的模子之前,必要先对Tree所利用的模子举行形貌。
关于初期习气C/S开辟的程序员来讲,关于SWT中的Tree其实不生疏,能够经由过程响应的TreeItem来创立子结点,可是这并非一种好的计划和利用体例,它年夜年夜的增添了模子与UI之间的耦合度,以是在Swing中,利用了TreeNode来形貌树范型,而Eclipse则经由过程JFace供应了ITreeContentProvider接口来形貌树范型。这两种体例有殊途同归的地方,人人能够看一下这两个接口,就会发明二者十分之相同,最年夜的区分在于前者经由过程userObject持有实在的数据,尔后者则是由TreeItem的getData来持有,在利用的时分,才会由响应的TreeViewer传给ITreeContentProvider,从布局来讲,后者是一个地道的把持类,而TreeNode则是更天真一些,能够作为一个把持类,也能够作为一个模子体,以是绝对而言,TreeNode加倍天真一些,但从实质上而言,二者并没有区分。
外表上看来,一个TreeViewer将会具有一个ITreeContentProvider用来获得树状的数据模子,进而呈现出来,但CNF中的树却加倍天真,在基本篇中,展示的图中,却暗示能够经由过程扩大点org.eclipse.ui.navigator.navigatorContent来增加新的结点,并且这些与资本并没有实质的干系,它能够与一个详细的文件大概目次资本绑定,也能够与多个详细的文件大概目次绑定,还能够是一个与文件大概目次有关的模子。那末如今来看一下CNF究竟做了哪些事变,使得它的模子扩大云云简单呢?
起首启动Eclipse32.,然后创立一个新的事情区,再将CNF相干的代码以插件的情势导进到这个事情区中,入手下手我们的剖析历程。
讲到这里,要提到Eclipse供应的一个接口IWorkbenchAdapter和IWorkbenchAdapter2,这两个接口是有一点点怪的,由于从计划的角度来看,它将模子与展示层夹杂在一同,违背罕见的计划原则,但从另外一个角度来说,它能够削减用户扩大的内容,有益于用户开辟。因而可知计划原则并非刻舟求剑的,良多时分,它也要在易用性和公道性方面做出得当的让步。这一点也能够在我们本人的计划中加以思索,计划并非要倾向哪个偏向,恰好相反,计划是要在多者之间,如易用性,不乱性,公道性之间获得一个平衡点,而不是在各方面都做到完善。
别的ITreeContentProvider有一个办法getParent(Objectparent),它是用来为一个指定结点找到相应的父亲结点,从而便于查找和定位,而这个办法却被良多人所无视,开辟职员常常会习气性的间接前往null,并且也不会呈现甚么毛病,但这个办法实在倒是一个十分有效的办法,开辟职员在利用Java资本管理器的时分,有一个常常利用的功效就是LinkWithEditor,这个功效常常是用来在资本办理器上定位以后翻开的文件,这个功效云云之主要,以致于CNF专门为此界说了一个org.eclipse.ui.navigator.linkHelper来撑持该功效。以是请依据实践情形,来完成这个办法,不然就没法准确的完成响应的功效。
以上对TreeViewer的模子举行了复杂的先容和剖析,接上去就看一下CNF是怎样处置树范型从而取得如此高的天真性。
CNF很好的使用了代办署理形式,它本身并没有供应模子的才能,以是它将供应模子的才能仍旧交给内部扩展点供应的类,它会依据以后要处置的结点,和每一个扩大点的表达式,来找出可以处置以后结点的ITreeContentProvider实例,然后再将这些实例前往的子结点放进响应的Set中,终极以数组的体例前往给TreeViewer,从外表下去看,大概很难了解一般情形下,每一个TreeViewer只要一个ITreeContentProvider的模子接口,怎样可以从多个实例中获得模子呢?就是由NavigatorContentServiceContentProvider这个代办署理类完成模子的组合功效。
因而只需供应本人的ITreeContentProvidre完成,然后经由过程扩大点挂进,便可将各类实在大概假造的模子挂进体系。
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。
作者:
飘灵儿
时间:
2015-1-20 14:47
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者:
小女巫
时间:
2015-1-29 10:26
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者:
透明
时间:
2015-2-1 13:19
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者:
兰色精灵
时间:
2015-2-2 17:04
是一种为 Internet发展的计算机语言
作者:
不帅
时间:
2015-2-24 00:12
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者:
愤怒的大鸟
时间:
2015-3-7 10:26
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者:
莫相离
时间:
2015-3-7 10:26
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者:
小妖女
时间:
2015-3-14 21:50
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者:
山那边是海
时间:
2015-3-21 14:26
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2