??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品丝袜一区二区三区,亚洲精品一区二区三区影院,天堂√在线观看一区二区http://www.aygfsteel.com/chengang/category/8012.html    逝者如斯乎不舍昼夜zh-cnTue, 27 Feb 2007 14:42:16 GMTTue, 27 Feb 2007 14:42:16 GMT60表格修改器实例BUG的解冟?/title><link>http://www.aygfsteel.com/chengang/archive/2006/12/12/87356.html</link><dc:creator>陈刚</dc:creator><author>陈刚</author><pubDate>Tue, 12 Dec 2006 14:22:00 GMT</pubDate><guid>http://www.aygfsteel.com/chengang/archive/2006/12/12/87356.html</guid><wfw:comment>http://www.aygfsteel.com/chengang/comments/87356.html</wfw:comment><comments>http://www.aygfsteel.com/chengang/archive/2006/12/12/87356.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chengang/comments/commentRss/87356.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chengang/services/trackbacks/87356.html</trackback:ping><description><![CDATA[不帖代码?jin),打到一个包里,大家下蝲吧。程序需要Apache Common Lang的支持,一q包含在?jin)压~包里了(jin)?a href="/Files/chengang/jface_tableviewer.rar">http://www.aygfsteel.com/Files/chengang/jface_tableviewer.rar</a><img src ="http://www.aygfsteel.com/chengang/aggbug/87356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chengang/" target="_blank">陈刚</a> 2006-12-12 22:22 <a href="http://www.aygfsteel.com/chengang/archive/2006/12/12/87356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SWT的状态栏和进度条的实?/title><link>http://www.aygfsteel.com/chengang/archive/2006/12/12/87353.html</link><dc:creator>陈刚</dc:creator><author>陈刚</author><pubDate>Tue, 12 Dec 2006 14:15:00 GMT</pubDate><guid>http://www.aygfsteel.com/chengang/archive/2006/12/12/87353.html</guid><wfw:comment>http://www.aygfsteel.com/chengang/comments/87353.html</wfw:comment><comments>http://www.aygfsteel.com/chengang/archive/2006/12/12/87353.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chengang/comments/commentRss/87353.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chengang/services/trackbacks/87353.html</trackback:ping><description><![CDATA[     摘要: |站很久没更C(jin)Q最q忙着写《Eclipse从入门到_N》的W二版,因ؓ(f)SWT API变化的原因,E序全验证了(jin)一,有些实例重写?jin),q增加了(jin)很多内容。这里是新增的一个实例,来源于一个读者的提问。这一节将实现一个如?3.2所C的实例。ؓ(f)?jin)能看清更面板的框架Q把面板都设成了(jin)Ҏ(gu)型。实例有以下内容Qq        如何创徏一个简单的状态栏Q基于RCPq_能够直接使用它的q度条服务)(j)q        ...  <a href='http://www.aygfsteel.com/chengang/archive/2006/12/12/87353.html'>阅读全文</a><img src ="http://www.aygfsteel.com/chengang/aggbug/87353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chengang/" target="_blank">陈刚</a> 2006-12-12 22:15 <a href="http://www.aygfsteel.com/chengang/archive/2006/12/12/87353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Eclipse's RCP中配|Hibernatehttp://www.aygfsteel.com/chengang/archive/2006/08/24/65484.html陈刚陈刚Thu, 24 Aug 2006 04:28:00 GMThttp://www.aygfsteel.com/chengang/archive/2006/08/24/65484.htmlhttp://www.aygfsteel.com/chengang/comments/65484.htmlhttp://www.aygfsteel.com/chengang/archive/2006/08/24/65484.html#Feedback3http://www.aygfsteel.com/chengang/comments/commentRss/65484.htmlhttp://www.aygfsteel.com/chengang/services/trackbacks/65484.html阅读全文

陈刚 2006-08-24 12:28 发表评论
]]>
Eclipse3.2正式版导出RCP的BUGhttp://www.aygfsteel.com/chengang/archive/2006/08/09/62517.html陈刚陈刚Wed, 09 Aug 2006 02:42:00 GMThttp://www.aygfsteel.com/chengang/archive/2006/08/09/62517.htmlhttp://www.aygfsteel.com/chengang/comments/62517.htmlhttp://www.aygfsteel.com/chengang/archive/2006/08/09/62517.html#Feedback1http://www.aygfsteel.com/chengang/comments/commentRss/62517.htmlhttp://www.aygfsteel.com/chengang/services/trackbacks/62517.html换用Eclipse3.2有些日子?jin),从RC一直用到l(f)ast releaseQ以前用3.2RC版在6月䆾导出qRCP目Q没什么问题。现?月,换了(jin)3.2 last releaseQ用*.product文g的导出功能导出RCP目后,却死zd动不?jin)。依赖项目检查过?jin),和以往的版本也比对q了(jin)Q虽然config.ini文g有变化,我想那也是最版本自已的变动,不会(x)有什么大问题。异常日志如下:(x)

! SESSION  2006 - 08 - 09   10 : 25 : 55.734   -----------------------------------------------
eclipse.buildId
= unknown
java.version
= 1.5 .0_05
java.vendor
= Sun Microsystems I(yng)nc.
BootLoader constants: OS
= win32, ARCH = x86, WS = win32, NL = zh_CN
Command
- line arguments:   - os win32  - ws win32  - arch x86

! ENTRY org.eclipse.core.runtime  2006 - 08 - 09   10 : 25 : 57.125
! MESSAGE 找不C品 com.wxxr.management.admin.console.admin_console_product?br />
! ENTRY org.eclipse.osgi  4   0   2006 - 08 - 09   10 : 25 : 57.140
! MESSAGE Application error
! STACK  1
java.lang.RuntimeException: 找不到应用程序标识?br />    at org.eclipse.core.internal.runtime.PlatformActivator$
1 .run(PlatformActivator.java: 56 )
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:
92 )
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:
68 )
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
400 )
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
177 )
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39 )
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25 )
    at java.lang.reflect.Method.invoke(Method.java:
585 )
    at org.eclipse.core.launcher.Main.invokeFramework(Main.java:
336 )
    at org.eclipse.core.launcher.Main.basicRun(Main.java:
280 )
    at org.eclipse.core.launcher.Main.run(Main.java:
977 )
    at org.eclipse.core.launcher.Main.main(Main.java:
952 )

! ENTRY org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 25 : 57.156
! MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
! SUBENTRY  1  org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 25 : 57.156
! MESSAGE Bundle update@plugins / org.eclipse.gef_3. 2.0 .v20060626.jar was not resolved.
! SUBENTRY  2  org.eclipse.gef  2   0   2006 - 08 - 09   10 : 25 : 57.156
! MESSAGE Missing required bundle org.eclipse.draw2d_[ 3.2 . 0 , 4.0 . 0 ).

! ENTRY org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 25 : 57.156
! MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry  for  the root cause  if  it exists:
! SUBENTRY  1  org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 25 : 57.156
! MESSAGE Bundle update@plugins / com.wxxr.management.admin.console_1. 0.0 .jar [ 6 ] was not resolved.
! SUBENTRY  2  com.wxxr.management.admin.console  2   0   2006 - 08 - 09   10 : 25 : 57.156
! MESSAGE Missing required bundle org.eclipse.gef_0. 0.0 .
! SUBENTRY  1  org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 25 : 57.156
! MESSAGE Bundle update@plugins / org.eclipse.gef_3. 2.0 .v20060626.jar [ 40 ] was not resolved.
! SUBENTRY  2  org.eclipse.gef  2   0   2006 - 08 - 09   10 : 25 : 57.156
! MESSAGE Missing required bundle org.eclipse.draw2d_[ 3.2 . 0 , 4.0 . 0 ).

下面是中文版的异常日志,英文版的如下Q?br />

! SESSION  2006 - 08 - 09   10 : 29 : 38.125   -----------------------------------------------
eclipse.buildId
= unknown
java.version
= 1.5 .0_05
java.vendor
= Sun Microsystems I(yng)nc.
BootLoader constants: OS
= win32, ARCH = x86, WS = win32, NL = zh_CN
Command
- line arguments:   - os win32  - ws win32  - arch x86

! ENTRY org.eclipse.core.runtime  2006 - 08 - 09   10 : 29 : 39.421
! MESSAGE Product com.wxxr.management.admin.console.admin_console_product could not be found.

! ENTRY org.eclipse.osgi  4   0   2006 - 08 - 09   10 : 29 : 39.421
! MESSAGE Application error
! STACK  1
java.lang.RuntimeException: No application id has been found.
    at org.eclipse.core.internal.runtime.PlatformActivator$
1 .run(PlatformActivator.java: 56 )
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:
92 )
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:
68 )
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
400 )
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
177 )
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39 )
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25 )
    at java.lang.reflect.Method.invoke(Method.java:
585 )
    at org.eclipse.core.launcher.Main.invokeFramework(Main.java:
336 )
    at org.eclipse.core.launcher.Main.basicRun(Main.java:
280 )
    at org.eclipse.core.launcher.Main.run(Main.java:
977 )
    at org.eclipse.core.launcher.Main.main(Main.java:
952 )

! ENTRY org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 29 : 39.437
! MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
! SUBENTRY  1  org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 29 : 39.437
! MESSAGE Bundle update@plugins / org.eclipse.gef_3. 2.0 .v20060626.jar was not resolved.
! SUBENTRY  2  org.eclipse.gef  2   0   2006 - 08 - 09   10 : 29 : 39.437
! MESSAGE Missing required bundle org.eclipse.draw2d_[ 3.2 . 0 , 4.0 . 0 ).

! ENTRY org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 29 : 39.437
! MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry  for  the root cause  if  it exists:
! SUBENTRY  1  org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 29 : 39.437
! MESSAGE Bundle update@plugins / com.wxxr.management.admin.console_1. 0.0 .jar [ 5 ] was not resolved.
! SUBENTRY  2  com.wxxr.management.admin.console  2   0   2006 - 08 - 09   10 : 29 : 39.437
! MESSAGE Missing required bundle org.eclipse.gef_0. 0.0 .
! SUBENTRY  1  org.eclipse.osgi  2   0   2006 - 08 - 09   10 : 29 : 39.437
! MESSAGE Bundle update@plugins / org.eclipse.gef_3. 2.0 .v20060626.jar [ 25 ] was not resolved.
! SUBENTRY  2  org.eclipse.gef  2   0   2006 - 08 - 09   10 : 29 : 39.437
! MESSAGE Missing required bundle org.eclipse.draw2d_[ 3.2 . 0 , 4.0 . 0 ).


最后耗了(jin)一个下午,Google?jin)很多资料,q是不行。于是去Eclipse.org当了(jin)3.2的一?月䆾更新的版本,文g名eclipse-SDK-M20060802-0800-win32.zip。用q个版本导出RCP目一炚w题也没有?br />
我比对了(jin)3.2M20060802版和3.2正式版的不同。发现config.ini?eclipseproduct都一栗把后者导出的目jar包换在前者中Q也能正常启动。而且我检查了(jin)plugin目录下的文gQ两者种cL目都相同Q所以依赖的插g也对。唯一不同的就是plugin目录下依赖插件的版本不同。我惛_能是后者导出的q些依赖插g的内部存在有BUG吧?br />
另外Q?.2版的语言包在3.2M20060802中也能用?br />



陈刚 2006-08-09 10:42 发表评论
]]>
RCP最灉|的模块组l方?/title><link>http://www.aygfsteel.com/chengang/archive/2006/04/29/43986.html</link><dc:creator>陈刚</dc:creator><author>陈刚</author><pubDate>Sat, 29 Apr 2006 04:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/chengang/archive/2006/04/29/43986.html</guid><wfw:comment>http://www.aygfsteel.com/chengang/comments/43986.html</wfw:comment><comments>http://www.aygfsteel.com/chengang/archive/2006/04/29/43986.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chengang/comments/commentRss/43986.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chengang/services/trackbacks/43986.html</trackback:ping><description><![CDATA[?陈刚 from <a >www.ChenGang.com.cn</a> at 2006q??9?(转蝲h明出?<br /><br />起因是这L(fng)Q有一个已l开发了(jin)比较多功能的RCPE序Q它包含q样几个模块QJMX览?cM于MC4J的功?、系l事件监控器、权限控制框架等。这些模块是写在一个RCP目中的?br /><br />现在Q我x灉|些。比如,JMX览器模块这个是通用的,但如果谁要用这个功能,必运行整个RCP目才行Q而我希望q个JMX模块是可单装卸的。充分运行Eclipse的插件机Ӟ让各模块成ؓ(f)一个独立的插gQ应该可以实现这个功能?br /><br />比如QJMX模块形成一个独立的插gQ它既可以让其他人当做一个普通插Ӟ安装到Eclipse中;也可以成Z个模块,插入我RCP目中来。这L(fng)设计Q让模块的开重用性变得很高了(jin)?br /><br />q个x中,RCP部䆾Q仅仅成Z个空壻I提供更插件的插入机制。这个方案特别适合那种x原有插g目Q改装成RCP而发布的目Q基本上原有插g无需做改动?br /><br />然而这个想法是否可行呢Q?br />(1) 插g能否x入到EclipseQ插入到RCPI壳目中?<br />(2) 插g中的如果存在依赖关系(比如Q一个插仉要用到另一个插件的代码)Q怎么实现?br />(3) 插g依然的JAR包怎么处理。比如有三个插g都要用到l(f)og4j.jar来输出日志,如果把log4j.jar攑֜插g目的lib目录来用的话,log4j.jar在三个插件各有一份,׃(x)有三份。当三个插g合到RCP目中时Q就有两个log4j是冗余的。这?x)增在RCP目的大?br />(4) RCP目有一些界面元素须要根据插入的插gQ做相应的变化。怎么实现Q?br /><br /><br />Z(jin)验证W?1)点,我做?jin)这个实验?x)<br /><br />创徏一个很单的插g目Q此插g目包含一个很单的透视图。我要看看这个透视图能否出现在RCP目中的。很ZQ当我把插g目导出后,安装到RCP目的plugin目录Q再q行RCP目Q发现这个插仉目的透视囑և现在?jin)RCP目的透视囑ֈ表中?br /><br />如果是开发时Q我希望q行RCP目Ӟp看到插g目插入q来后的效果。实C不难Q步骤如下:(x)<br />(1) 在Plugin.xml的dependencies,把插仉目加入到Required Plug-ins中?表示目的依?<br />(2) 在run..里的Plug-ins,选择插g目和RCP目Qƈ单击Add Required Plug-ins(表现q行时的依赖)<br /><br /><br />Z(jin)验证W?2)点,我做?jin)这个实验?x)<br />在插仉目中创徏一个类Q在RCP目中用这个类Q这时还是找不到cȝ。解军_法是Q在打开插g目的plugin.xml-->runtime选项?->Exported Packages(输出的包)Q把q个cL在的包加入进来。这下RCP目可以使用插g目的类?jin)?br /><br />关于W?3)点,我没有做实验Q我的想法是Q把jar包封装成插g(可参考eclipse对junit的封?Q从而将目对JAR包的依赖Q{变成Ҏ(gu)件的依赖?br /><br />关于W?4)点,我没有做实验Q我的想法是Q通过自定义RCP目的扩展点来实现?br /><br /><br />在我q个目分解模块q会(x)遇到q样的问题:(x)权限安全模块是媄(jing)响到整个RCP目的,但JMX模块独立出来后,昄不是必须要权限安全模块的。怎么解除q种依赖关系呢。我看是解除不了(jin)的了(jin)Q但可以设一个开养I让权限安全模块失效。这栯然代码和权限安全模块有依赖,但可以把权限(g)查的功能关闭?br /><br /><br />ȝQ?br /><br />q种方式虽然灉|Q但也是有代L(fng)---~程和项目管理更复杂?jin)?img src ="http://www.aygfsteel.com/chengang/aggbug/43986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chengang/" target="_blank">陈刚</a> 2006-04-29 12:40 <a href="http://www.aygfsteel.com/chengang/archive/2006/04/29/43986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RCP中product文g的用?/title><link>http://www.aygfsteel.com/chengang/archive/2006/04/29/43926.html</link><dc:creator>陈刚</dc:creator><author>陈刚</author><pubDate>Sat, 29 Apr 2006 01:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/chengang/archive/2006/04/29/43926.html</guid><wfw:comment>http://www.aygfsteel.com/chengang/comments/43926.html</wfw:comment><comments>http://www.aygfsteel.com/chengang/archive/2006/04/29/43926.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chengang/comments/commentRss/43926.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chengang/services/trackbacks/43926.html</trackback:ping><description><![CDATA[         ?陈刚 from <a >www.ChenGang.com.cn</a>  at 2006q??9?br /><br />插g或RCP目Q可以创Z?.product文gQ这个文件提供了(jin)一个和plugin.xmlcM的界面。它提供?jin)项目的启动、打包导出、项目个性化{功能。我最喜欢的还是它的打包导出功能。在前段旉Q有一关于依赖包升后的处理Q也涉及(qing)到这个文?a href="/chengang/archive/2006/04/27/43494.html">http://www.aygfsteel.com/chengang/archive/2006/04/27/43494.html</a>?br /><br />今天来简单谈谈这个文件?br />(1) 创徏product文gQFile -> new -> otherQ选择plug-in Development->Product configuration<br /><img height="500" alt="20060429_3.jpg" src="http://www.aygfsteel.com/images/blogjava_net/chengang/rcp/20060429_3.jpg" width="525" border="0" /><br /><br /><br />(2) 如果你用run...q以product(非application)方式启动q项目,则在界面的第三项QUse a launch configuration可以选择C的项目。如果在plugin.xml有关于product的扩展点讄Q则在界面的W二:(x)Use an existing product可以选择C的项目。徏议先考虑W二,再考虑W三V?br /><img height="640" alt="20060429_4.jpg" src="http://www.aygfsteel.com/images/blogjava_net/chengang/rcp/20060429_4.jpg" width="593" border="0" /><br /><br /><br />(3) 如果plugin.xmlq没有关于product的扩展点讄Q则创徏product文g?x)在plugin.xml创徏一个?br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">   </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">extension<br />         id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">application_ccc</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">可以d</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">         point</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org.eclipse.core.runtime.applications</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">      </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">application</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />         </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">run<br />               </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">aaa.bbb.ccc.Application</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">  <font color="#006400">//对应于项目里实现?jin)IPlatformRunnable的那个类</font><br />         </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">run</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />      </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">application</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />   </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">extension</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />   <br />   </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">extension<br />         id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">product_ccc</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">可以d</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">         point</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org.eclipse.core.runtime.products</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"> </span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">      </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">product<br />            application</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">aaa_bbb_ccc.application_ccc</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">aaa_bbb_ccc对应于MANIFEST.MF的Bundle-SymbolicName。可以改为aaa.bbb.cccQ当然MANIFEST.MF中也要相应做修改?/span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">            name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RCP Product</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />         </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">property<br />               name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">aboutText</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />               value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%aboutText</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">>  <font color="#006400">//about界面的显C文字,在plugin.properties文g中定?/font></span><span style="COLOR: #000000"><br />         </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">property</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />         </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">property<br />               name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">windowImages</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />               value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">icons/sample2.gif</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />         </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">property</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />         </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">property<br />               name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">aboutImage</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />               value</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">product_lg.gif</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />         </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">property</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />      </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">product</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />   </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">extension</span><span style="COLOR: #000000">></span></div><br /><br />打开*.product在overview选项卡的W二Product IDQ可以newQ这?x)在plugin.xml新增一个product扩展点设定。徏议不要这P没有必要在plugin.xml中保留两个以上的product扩展点设定?br /><br /><br />用product文g来导出项?br /><br /><div><img height="484" alt="20060429_1.jpg" src="http://www.aygfsteel.com/images/blogjava_net/chengang/rcp/20060429_1.jpg" width="912" border="0" /></div><br /><br /><br />在product文g中,q可以设定执行文件的名称和图标,如下<br /><br /><div><img height="475" alt="20060429_0.jpg" src="http://www.aygfsteel.com/images/blogjava_net/chengang/rcp/20060429_0.jpg" width="708" border="0" /></div><br /><br />较果如下Q?br /><br /><img height="146" alt="20060429_2.jpg" src="http://www.aygfsteel.com/images/blogjava_net/chengang/rcp/20060429_2.jpg" width="428" border="0" /><img src ="http://www.aygfsteel.com/chengang/aggbug/43926.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chengang/" target="_blank">陈刚</a> 2006-04-29 09:19 <a href="http://www.aygfsteel.com/chengang/archive/2006/04/29/43926.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>lRCPpȝd全局快捷?/title><link>http://www.aygfsteel.com/chengang/archive/2006/04/28/43873.html</link><dc:creator>陈刚</dc:creator><author>陈刚</author><pubDate>Fri, 28 Apr 2006 13:35:00 GMT</pubDate><guid>http://www.aygfsteel.com/chengang/archive/2006/04/28/43873.html</guid><wfw:comment>http://www.aygfsteel.com/chengang/comments/43873.html</wfw:comment><comments>http://www.aygfsteel.com/chengang/archive/2006/04/28/43873.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chengang/comments/commentRss/43873.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chengang/services/trackbacks/43873.html</trackback:ping><description><![CDATA[ <div>               ?陈刚 from <a ><font color="#1111cc">www.chengang.com.cn</font></a> at 2006q??8?br /><br />一个RCPpȝQ给它添加一个象Eclipse中Ctrl+Shift+O一L(fng)全局快捷键,怎么加?<br /><br />参考了(jin)RCP的Email目CZQ给我RCP目中MonitorActionQ显CZ个监视器的命<br />令)(j)d一个快捷键Ctrl+1。简单把d的过E概q如下:(x)<br /><br />1、首先在plugin.xml中添加两个扩展点如下<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 78.81%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 334px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">   </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">extension<br />         point</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org.eclipse.ui.bindings</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />      </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">key<br />            commandId</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org.eclipse.ui.file.exit</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />            schemeId</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org.eclipse.ui.defaultAcceleratorConfiguration</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />            sequence</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">CTRL+X</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br />      </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">key<br />            commandId</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">adminconsole.monitor</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />            schemeId</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org.eclipse.ui.defaultAcceleratorConfiguration</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />            sequence</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">CTRL+1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br />   </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">extension</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><br />   </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">extension<br />         point</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org.eclipse.ui.commands</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br />      </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">category<br />            id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">adminconsole.perspective</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />            name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Perspective</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br />      </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">command<br />            categoryId</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">adminconsole.perspective</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />            id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">adminconsole.monitor</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br />            name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Open Monitor Perspective</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/></span><span style="COLOR: #000000"><br />   </span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">extension</span><span style="COLOR: #000000">></span></div></div> <br />说明Q?br /><span style="COLOR: #000000">。org.eclipse.ui.file.exit是另一个退出系l命令,是复用了(jin)Eclipse本n的那个,它和本例无关?br />。commandId要求唯一<br />。cmmands扩展点的category是一个组Q估计不要也可以Q最后还是加上吧?br />。bindings扩展点中的commandId对应于cmmands扩展点中的id<br /><br /><br /><br />2、创Z个类Q专门保存所有commandId<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 81.01%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 52px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">interface</span><span style="COLOR: #000000"> I(yng)CommandIds {<br />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000"> String CMD_MONITOR </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">adminconsole.monitor</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br />}<br /></span></div>    <br /><br />3、创建Actionc,在构造函数里用两个方法注册一?br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 81.69%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 161px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> MonitorAction </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> Action {<br />        </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> MonitorAction() {<br />            setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">监视</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> The id is used to refer to the action in a menu or toolbar</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">            setId(ICommandIds.CMD_MONITOR);<br />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Associate the action with a pre-defined command, to allow key bindings.</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">            setActionDefinitionId(ICommandIds.CMD_MONITOR);<br />        }<br /><br />        ...<br />    }<br /></span></div><div></div></span><br />4、在ApplicationActionBarAdvisor的makeActionsҎ(gu)Q给monitorAction对象加上q样一? <div> </div><div><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 81.01%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 25px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">register(monitorAction);</span></div><br />注意Q如果你没有在plugin.xml和makeActions做上面讲q的讄Q加上这一句将可能D<br />你的RCPpȝ无法启动?/div><img src ="http://www.aygfsteel.com/chengang/aggbug/43873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chengang/" target="_blank">陈刚</a> 2006-04-28 21:35 <a href="http://www.aygfsteel.com/chengang/archive/2006/04/28/43873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RCP中包更新后的处理http://www.aygfsteel.com/chengang/archive/2006/04/27/43494.html陈刚陈刚Thu, 27 Apr 2006 02:33:00 GMThttp://www.aygfsteel.com/chengang/archive/2006/04/27/43494.htmlhttp://www.aygfsteel.com/chengang/comments/43494.htmlhttp://www.aygfsteel.com/chengang/archive/2006/04/27/43494.html#Feedback0http://www.aygfsteel.com/chengang/comments/commentRss/43494.htmlhttp://www.aygfsteel.com/chengang/services/trackbacks/43494.html我gef、emf的包q是以前老的Q现在用的是Eclipse 3.2M6Q于是去eclipse.org下蝲?jin)相应版gef/emfQ更C下?br />
q一更新问题来了(jin)Q项目运行不h?jin)。报名application id找不刎ͼ或product找不刎ͼC太清Q。以下是处理的过E?br />

Q?Q把????.product依赖包重新弄?jin)一遍。不行?br />Q?Q把run..中的依赖包重新弄?jin)一遍,用run来运行。成功?br />Q?Q通过????.product的项目导出功能,导出目后运行。运行失败?br />Q?Q嗯Q可能是????.product中依赖包没有调整。于是和Q?Q一样重新弄?jin)依赖包。再ơ导出项目还是不行。ƈ且用run来运行,又失败了(jin)?br />Q?Q看来run..????.product没有影响Q????.product反过来对run..里的讑֮产生的媄(jing)响?br />Q?Q重做了(jin)Q?Q步Q再删除????.productQ重新生????.product。所有问题都解决Q运行成功,目导出后也q行成功?br />
ȝQ看来更C赖包后,臛_要做以下处理
Q?Q在run..中调整依赖包.
Q?Q重???.product文g?/div>

陈刚 2006-04-27 10:33 发表评论
]]>
在Eclipse RCP中用Springhttp://www.aygfsteel.com/chengang/archive/2006/04/26/43378.html陈刚陈刚Wed, 26 Apr 2006 09:44:00 GMThttp://www.aygfsteel.com/chengang/archive/2006/04/26/43378.htmlhttp://www.aygfsteel.com/chengang/comments/43378.htmlhttp://www.aygfsteel.com/chengang/archive/2006/04/26/43378.html#Feedback5http://www.aygfsteel.com/chengang/comments/commentRss/43378.htmlhttp://www.aygfsteel.com/chengang/services/trackbacks/43378.html 注:(x)在发完此文后Q我惊奇的发现在新版Eclipse中(我用的是3.2M6Q已l不需要{换ClassLoader。估计这是RCP的一个BUGQ已l被FIX。希望各位同学共同验证一下,如果是这L(fng)话,q篇文章也就没有什么意义了(jin)?br />

在RCP中用SpringQ最关键的一点在于spring配置文g的读取,因ؓ(f)RCP使用自己的ClassLoaderQ所以用通常的方法是无法装蝲Spring的配|文件。解决的思\是:(x)在读取Spring配置文g时将RCP的ClassLoader暂时换一下?br />
在这里我Ҏ(gu)Spring配置文g在项目中的存放位|,l出两种办法?br />
一、配|文件存攑֜源代码根目录下?/strong>

假设我有一个叫admin_console的项目,我把Spring的配|文件myspring.xml攑֜源代码根据目录src下,如下图所C?br />admin_console
      --src
           --cn      //包名
               --com
                  --chengang 
                      ---......     //源代码类
          --myspring.xml      //Spring配置文gQ位于src目录下和cn目录q
      --bin
      --lib
      --icons
      --properties


那么我们在RCPE序中可以这h装蝲myspring.xml
        ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
        
try {
            Thread.currentThread().setContextClassLoader(this.getClass()
.getClassLoader());
            
ctx = new ClassPathXmlApplicationContext("/myspring.xml");
        } finally {
            Thread.currentThread().setContextClassLoader(oldLoader);
        }



二、配|文件存攑֜目根目录的某个子目录下

目根目录和源代码根目录是不同的两个概念。如上图的项目结构中Qsrc是源代码根目录,admin_console是项目根目录Q那么properties是目根目录下的一个子目录?br />
如果myspring.xml攑օ到properties目录中,以上的读取代码就没用?jin),dҎ(gu)如下Q?br />
        ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
        
try {
            Thread.currentThread().setContextClassLoader(this.getClass()
.getClassLoader());
   ctx = new FileSystemXmlApplicationContext(ProjectUtil.toFullPath("properties/myspring.xml"));
        } finally {
            Thread.currentThread().setContextClassLoader(oldLoader);
        }

其中ProjectUtil.toFullPath是我自己写的一个方法,主要是得到myspring.xml的绝对\径,其代码如下:(x)

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
 
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.ui.plugin.AbstractUIPlugin;
 
import com.wxxr.management.admin.console.AdminConsolePlugin;
 
/**
 * 用于插g目和非插g目Q提供两者通用的方法接?br /> * @author chengang 2006-3-30
 */
public class ProjectUtil {
 
    private static AbstractUIPlugin plugin = AdminConsolePlugin.getDefault();
 
    private ProjectUtil() {}
 
    /**
     * 判断当前的运行状态是否ؓ(f)插g方式
     * @return true=插g方式q行
     */
    private static boolean isPlugin() {
        return plugin != null;
    }
 
    public static URL getURL(String path) {
        if (isPlugin())//如果是插?br />            return FileLocator.find(plugin.getBundle(), new Path(path), null);
        else
            try {
                return new URL("file:" + path);
            } catch (MalformedURLException e) {
                throw new RuntimeException(path + " is error", e);
            }
    }
 
    public static InputStream getInputStream(String path) {
        URL url = getURL(path);
        try {
            return url.openStream();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
 
    public static String toFullPath(String path) {
        if (isPlugin()) {
            try {
                return FileLocator.toFileURL(ProjectUtil.getURL(path)).getPath();
            } catch (IOException e) {
                throw new RuntimeException(path + " toFullPath is fault", e);
            }
        } else {
            return path;
        }
    }
 
}


三、ȝ

上面两种方式那一U更好呢Q应该是W二U。一般来_(d)源代码的~译文g?x)打成一个jar包(其实不打成一个JAR包也可以的,我在很多以前尝试过class文g松散的部|Ԍ如果哪个c要修改Q修改后只部v覆盖q个classQ看h也挺方便。不q这U方式不是最?jng)_践,不推荐正式发布时使用Q一不心(j)可能引v依赖它的其他cd现问题。)(j)。如果用W一U方式在目打包后,myspring.xml?x)打包到jar文g中,q样不利于今后对myspringq行动态修攏V如果用W二U就没有q种~点?br />
很多时候,在Eclipse开发环境中Q运行RCPE序没有问题。但导出目后,在独立的环境中却报配|文Ӟ不光是SpringQ找不到的错误,解决的方法都基本与此相同?br />

陈刚 2006-04-26 17:44 发表评论
]]>
Eclipse插g集合http://www.aygfsteel.com/chengang/archive/2006/04/01/38609.html陈刚陈刚Sat, 01 Apr 2006 07:32:00 GMThttp://www.aygfsteel.com/chengang/archive/2006/04/01/38609.htmlhttp://www.aygfsteel.com/chengang/comments/38609.htmlhttp://www.aygfsteel.com/chengang/archive/2006/04/01/38609.html#Feedback6http://www.aygfsteel.com/chengang/comments/commentRss/38609.htmlhttp://www.aygfsteel.com/chengang/services/trackbacks/38609.html
Easy Explore 我必装的工具Q可以直接打开目或文件的所在目?br />Easy Struts  q个q接有两个YӞq个是用于Struts开发的
Update URLQ?a >http://easystruts.sourceforge.net/eclipse/updates/site.xml

Subversion for Eclipse 代码版本控制工具Subversion的客L(fng)Eclipse插g
Update URLQ?a >http://subclipse.tigris.org/update
 
Jalopy for Eclipse(3.0,3.1) - 代码化工具
Download URLQ?a >http://prdownloads.sourceforge.net/jalopy/jalopy-eclipse-0.2.7.zip
 
Freemarker for Eclipse - JSP模版引擎
Version: 0.3.1
Download URLQ?a >http://sourceforge.net/project/showfiles.php?group_id=794&package_id=86096
 
log4e - Log代码工具
Update URLQ?a >http://log4e.jayefem.de/update
 
TomcatPlugin for Eclipse - Tomcat调试
Download URLQ?a >http://www.sysdeo.com/eclipse/tomcatplugin
 
XMLBuddy for Eclipse - XML工具
Download URLQ?a >http://www.xmlbuddy.com
 
Checkstyle for Eclipse - 代码规范(g)查工?
Update URLQ?a >http://eclipse-cs.sourceforge.net/update/
 
Metrics for Eclipse - 代码复杂度检查工?
Update URLQ?a >http://metrics.sourceforge.net/update/
 
JDepend for Eclipse - 代码依赖度检查工?
Download URLQ?a >http://andrei.gmxhome.de/eclipse/
 
JBoss Hibernate - ORM工具
Update URLQ?a >http://downloads.jboss.com/jbosside/updates/development/
 
AnyEdit - 增强Editor工具
Download URLQ?a >http://andrei.gmxhome.de/anyedit/links.html
 
serialVer - 生成serialVersionUID工具
Download URLQ?a >http://211.147.225.71/elvis/serialversion.zip
 
QuickREx - 正则表达式验证工?
Update URLQ?a >http://www.bastian-bergerhoff.com/eclipse/features
 
 


陈刚 2006-04-01 15:32 发表评论
]]>
Plugin和App的统一路径接口http://www.aygfsteel.com/chengang/archive/2006/03/30/38214.html陈刚陈刚Thu, 30 Mar 2006 03:22:00 GMThttp://www.aygfsteel.com/chengang/archive/2006/03/30/38214.htmlhttp://www.aygfsteel.com/chengang/comments/38214.htmlhttp://www.aygfsteel.com/chengang/archive/2006/03/30/38214.html#Feedback0http://www.aygfsteel.com/chengang/comments/commentRss/38214.htmlhttp://www.aygfsteel.com/chengang/services/trackbacks/38214.html在Eclipse插gQPluginQ开发中Q需要写一些Test CaseQby JUnitQ,q些Test Case不是以插件方法运行的Q而是一些普通的Application。这时要注意到插件和App获取路径的方式是不同的,q时如果你要试一些项目中的一些涉?qing)到L件的一些类Q无疑会(x)D出错。ؓ(f)?jin)让Plugin和App路径获取透明化,不防写一个工L(fng)来提供统一的\径获取方法,CZcd下所C:(x)

q个思\也可以扩展到Plugin和App不一L(fng)地方Q这样写起Test Case方便多?jin)?br />
说明Q示例中的AdminConsolePlugincd是创建插仉目自动生成的那个c,你的目也许叫“项目名+Plugin?br />
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

import org.eclipse.core.runtime.Path;
import org.eclipse.ui.plugin.AbstractUIPlugin;

import com.wxxr.management.admin.console.AdminConsolePlugin;

/**
 * 用于插g目和非插g目Q提供两者通用的方法接?br /> * 
@author chengang 2006-3-30
 
*/
public class ProjectUtil {

    
private static AbstractUIPlugin plugin = AdminConsolePlugin.getDefault();

    
private ProjectUtil() {}

    
/**
     * 判断当前的运行状态是否ؓ(f)插g方式
     * 
@return true=插g方式q行
     
*/
    
private static boolean isPlugin() {
        
return plugin != null;
    }

    
public static URL getURL(String path) {
        
if (isPlugin())//如果是插?/span>
            //return plugin.find(new Path(path));
            return FileLocator.find(plugin.getBundle(), new Path(path), null);    //陈刚修改?006-8-24Qeclipse3.2已经用此Ҏ(gu)
        
else
            
try {
                
return new URL("file:" + path);
            } 
catch (MalformedURLException e) {
                
throw new RuntimeException(path + " is error", e);
            }
    }

    
public static I(yng)nputStream getInputStream(String path) {
        URL url 
= getURL(path);
        
try {
            
return url.openStream();
        } 
catch (IOException e) {
            
throw new RuntimeException(e);
        }
    }

}


陈刚 2006-03-30 11:22 发表评论
]]>
RCP中因ClassLoader 而导致找不到cȝ解决Ҏ(gu)http://www.aygfsteel.com/chengang/archive/2006/03/07/34073.html陈刚陈刚Tue, 07 Mar 2006 06:49:00 GMThttp://www.aygfsteel.com/chengang/archive/2006/03/07/34073.htmlhttp://www.aygfsteel.com/chengang/comments/34073.htmlhttp://www.aygfsteel.com/chengang/archive/2006/03/07/34073.html#Feedback0http://www.aygfsteel.com/chengang/comments/commentRss/34073.htmlhttp://www.aygfsteel.com/chengang/services/trackbacks/34073.html
我的RCP对ClassLoad问题的解冻Iq是一个读jndi配置文g的方法?/DIV>
    private void intJNDI() {
        ClassLoader cl = Thread.currentThread().getContextClassLoader(); //保存老的ClassLoader
        Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); //讄新的ClassLoader
        IPath path = new Path("properties/jndi.properties");
        URL url = AdminConsolePlugin.getDefault().find(path);
        Properties p = new Properties();
        try {
            p.load(url.openStream());
            String address = System.getProperty("jndi.address");
            String port = System.getProperty("jndi.port");
            if (address != null && !address.trim().equals("") && port != null && !port.trim().equals("")) {
                p.remove("java.naming.provider.url");
                p.setProperty("java.naming.provider.url", "jnp://" + address.trim() + ":" + port.trim());
            }
            AdminConsolePlugin.getDefault().setJNDIInitContext(new InitialContext(p));
        } catch (Throwable e) {
            throw new RuntimeException("Failed to connect to domain controller.", e);
        } finally {
            Thread.currentThread().setContextClassLoader(cl);//最后恢复成老的ClassLoader
        }
    }


陈刚 2006-03-07 14:49 发表评论
]]>
Eclipse插g?qing)RCP开发中的第三方库的讄http://www.aygfsteel.com/chengang/archive/2006/03/07/34072.html陈刚陈刚Tue, 07 Mar 2006 06:48:00 GMThttp://www.aygfsteel.com/chengang/archive/2006/03/07/34072.htmlhttp://www.aygfsteel.com/chengang/comments/34072.htmlhttp://www.aygfsteel.com/chengang/archive/2006/03/07/34072.html#Feedback0http://www.aygfsteel.com/chengang/comments/commentRss/34072.htmlhttp://www.aygfsteel.com/chengang/services/trackbacks/34072.html
?陈刚 from www.chengang.com.cn at 2005-12-14
 
  很多人在开发RCPӞ发现开发时都没问题Q但导出成包时却报找不到W三方库中类的错误。主要原因就是没有将W三方库配置好。现在我l出一个实现项目的配置为示例,以供参考?/div>
 
  环境QEclipse3.2M3 一个RCP的实际项目,插g目同样适用此方?/div>
  
一、最关键的就是plugin.xml和MANIFEST.MF
  所有界面上的最后操作,l果都是保存在这两个文g中。注意:(x)?classpath”文件只是开发时对引用第三库有用Q打包发行之后它的作用就没有?jin),q得靠plugin.xml和MANIFEST.MF?/div>
 
1、plugin.xml文g
<?xml version="1.0" encoding="GB2312"?>
<?eclipse version="3.0"?>
<plugin>
   <extension
         id="AdminConsole"
         point="org.eclipse.core.runtime.applications">
        <application>
            <run class="com.wxxr.management.admin.console.AdminConsole"/>
        </application>
   </extension>
 
   <extension id="AdminConsole" point="org.eclipse.core.runtime.products">
  <product name="%productName" application="com.wxxr.management.admin.console.AdminConsole">
   <property name="appName" value="%swtAppName"/>
   <property name="windowImages" value="icons/eclipse.gif,icons/eclipse32.gif"/>
   <property name="aboutText" value="%aboutText"/>
   <property name="aboutImage" value="icons/eclipse_lg.gif"/>
   <property name="windowImages" value="icons/alt16.gif,icons/eclipse.gif"/>
  </product>
   </extension>
  
   <extension
      point="org.eclipse.ui.perspectives">
      <perspective
            class="com.wxxr.management.admin.console.monitor.MonitorPerspective"
            name="%perspectiveName"
            id="com.wxxr.management.admin.console.monitor.MonitorPerspective"/>
      <perspective
            class="com.wxxr.management.admin.console.configure.ConfigurePerspective"
            name="%configurePerspectiveName"
            id="com.wxxr.management.admin.console.configure.ConfigurePerspective"/>
      <perspective
            class="com.wxxr.management.admin.console.jmx.JMXPerspective"
            name="%jmxPerspectiveName"
            id="com.wxxr.management.admin.console.jmx.JMXPerspective"/>
   </extension>
 <extension
   point="org.eclipse.ui.editors">
   <editor
   name="事g列表"
   icon="icons/alt16.gif"
   class="com.wxxr.management.admin.console.log.ui.LogEditor"
   id="com.wxxr.management.admin.console.log.ui.LogEditor">
   </editor>
   <editor
   name="地图"
   icon="icons/map_view.gif"
   class="com.wxxr.management.admin.console.map.MapEditor"
   id="com.wxxr.management.admin.console.map.MapEditor">
   </editor>
 </extension>
   <extension
         point="org.eclipse.ui.views">
      <category
            id="com.wxxr.management.admin.console.monitor.view"
            name="%views.category.name"/>
      <view
            id="com.wxxr.management.admin.console.navigator.ui.StationExploreView"
            name="工作?
            icon="icons/eclipse.gif"
            class="com.wxxr.management.admin.console.navigator.ui.StationExploreView"
            category="com.wxxr.management.admin.console.monitor.view"/>
      <view
            name="事gl节"
            icon="icons/eclipse.gif"
            category="com.wxxr.management.admin.console.monitor.view"
            class="com.wxxr.management.admin.console.monitor.eventview.EventDetailView"
            id="com.wxxr.management.admin.console.monitor.eventview.EventDetailView" />
      <view
            name="事gl计"
            icon="icons/eclipse.gif"
            category="com.wxxr.management.admin.console.monitor.view"
            class="com.wxxr.management.admin.console.monitor.view.SystemEventStatisticsView"
            id="com.wxxr.management.admin.console.monitor.view.SystemEventStatisticsView" />
      <view
            name="紧急事件处?
            icon="icons/eclipse.gif"
            category="com.wxxr.management.admin.console.monitor.view"
            class="com.wxxr.management.admin.console.emergency.ui.EmergencyEventReceiverView"
            id="com.wxxr.management.admin.console.emergency.ui.EmergencyEventReceiverView" />
      <category
            id="com.wxxr.management.admin.console.jmx.view"
            name="%views.category.name"/>
      <view
            name="JMX Connections"
            icon="icons/eclipse.gif"
            category="com.wxxr.management.admin.console.jmx.view"
            class="com.wxxr.management.admin.console.jmx.ui.JMXExploreView"
            id="com.wxxr.management.admin.console.jmx.ui.JMXExploreView" />
      <view
            name="JMX Attributes View"
            icon="icons/eclipse.gif"
            category="com.wxxr.management.admin.console.jmx.view"
            class="com.wxxr.management.admin.console.jmx.ui.AttributesView"
            id="com.wxxr.management.admin.console.jmx.ui.AttributesView" />
      <view
            name="JMX Operations View"
            icon="icons/eclipse.gif"
            category="com.wxxr.management.admin.console.jmx.view"
            class="com.wxxr.management.admin.console.jmx.ui.OperationsView"
            id="com.wxxr.management.admin.console.jmx.ui.OperationsView" />
      <view
            name="JMX MBean View"
            icon="icons/eclipse.gif"
            category="com.wxxr.management.admin.console.jmx.view"
            class="com.wxxr.management.admin.console.jmx.ui.MBeanView"
            id="com.wxxr.management.admin.console.jmx.ui.MBeanView" />
   </extension>
   <extension
         id="AdminConsole"
         point="org.eclipse.core.runtime.products">
      <product
            application="com.wxxr.management.admin.console.AdminConsole"
            name="AdminConsole"/>
   </extension>
  
</plugin>
  
2、META-INF\MANIFEST.MF文g
注意Q?/div>
Q?Q这里require-bundle定义?jin)项目依赖的插g?/div>
Q?QBundle-ClassPath定义?jin)引用的W三方库Q别忘了(jin)把AdminConolse目自己console.jar加进去,否则q自己项目里的类都会(x)找不到?/div>
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: com.wxxr.management.admin.console; singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: com.wxxr.management.admin.console.AdminConsolePlugin
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime,
 org.eclipse.core.resources,
 org.eclipse.gef,
 org.eclipse.ui.forms,
 org.eclipse.ui.console
Eclipse-AutoStart: true
Bundle-Vendor: %providerName
Bundle-ClassPath: console.jar,
 lib/commons-codec-1.3.jar,
 lib/jboss.jar,
 lib/jbossall-client.jar,
 lib/jboss-jmx.jar,
 lib/jboss-system.jar,
 lib/log4j-1.2.8.jar,
 lib/wxxr-common-1.0-b1.jar,
 lib/wxxr-common-jboss-1.0-b1.jar,
 lib/wxxr-db-persistence-1.0-b1.jar,
 lib/wxxr-jboss-controller-1.0-b1.jar,
 lib/wxxr-jboss-workstation-1.0-b1.jar,
 lib/wxxr-remoting-1.0-b1.jar,
 lib/wxxr-security-1.0-b1.jar,
 lib/xerces-2.6.2.jar,
 lib/xmlParserAPIs-2.2.1.jar,
 lib/xmlrpc-2.0.jar
 
3、build.properties文g。这个文件主要是用Eclipse导出包的时候用?/div>
source.console.jar = src/
output.console.jar = bin/
bin.includes = plugin.xml,\
     *.jar,\
               console.jar, \
               plugin.properties
              
pluginName = Admin Console Plug-in
providerName = WXXR.com.cn
perspectiveName = Admin Console
configurePerspectiveName= Configure
jmxPerspectiveName= JMX Console
               
jars.extra.classpath = lib/commons-codec-1.3.jar,\
                       lib/jboss.jar,\
                       lib/jbossall-client.jar,\
                       lib/jboss-jmx.jar,\
                       lib/jboss-system.jar,\
                       lib/log4j-1.2.8.jar,\
                       lib/wxxr-common-1.0-b1.jar,\
                       lib/wxxr-common-jboss-1.0-b1.jar,\
                       lib/wxxr-db-persistence-1.0-b1.jar,\
                       lib/wxxr-jboss-controller-1.0-b1.jar,\
                       lib/wxxr-jboss-workstation-1.0-b1.jar,\
                       lib/wxxr-security-1.0-b1.jar,\
                       lib/wxxr-remoting-1.0-b1.jar,\
                       lib/xerces-2.6.2.jar,\
                       lib/xmlParserAPIs-2.2.1.jar,\
                       lib/xmlrpc-2.0.jar
 
4、plugin.propertiesQ这个放一些上面几个文件用到的变量?/div>
pluginName= WXXR Admin Console
providerName= wxxr.com.cn
 
productName= WXXR SMS Operation Platform
appName= WXXR Admin Console
perspectives.browser.name= WXXR Admin Console
views.category.name= WXXR Admin Console
views.browser.name= Browser
views.history.name= History
views.stationexplore.name= Stations
views.tasklist.name= Task List
views.loglist.name= Workstation Monitor
monitor.message.detail=Monitor Message Detail
monitor.message.statistics=????
 
swtAppName= AdminConsole
aboutText= WXXR Admin Console \n\n\
(c) Copyright WXXR Ltd. and others 2003, 2004.  All rights reserved.\n\
Visit http://www.wxxr.com.cn
 
 
二、图形方?/div>
 有时直接~辑plugin.xml{文件容易出错(全角I格什么的Q,那么可以用图形编辑方式来Q不q最后结果还是反映到plugin.xml{文件中的。我把plugin.xml打开Q然后一个项一个项的把图截下来Q以供大家参考?/div>
 
1134538761302_5236.gif 

1134538769117_7853.gif 

1134538790864_4652.gif 

1134538806626_1515.gif 

1134538814862_3413.gif 

 
 q个界面是build.properties配置的反?/div>
1134538823973_7531.gif 

 
 最好在目属性的库用引项的效果如下:(x)
1134535421290_7544.gif 


 
作者简?/strong>

陈刚Q广西桂林hQ著作有《Eclipse从入门到_N?br />(zhn)可以通过其博客了(jin)解更多信息和文章Q?a >http://www.chenGang.com.cn



陈刚 2006-03-07 14:48 发表评论
]]>在RCP目中找不到JAR包的异常的解?/title><link>http://www.aygfsteel.com/chengang/archive/2006/03/07/34063.html</link><dc:creator>陈刚</dc:creator><author>陈刚</author><pubDate>Tue, 07 Mar 2006 06:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/chengang/archive/2006/03/07/34063.html</guid><wfw:comment>http://www.aygfsteel.com/chengang/comments/34063.html</wfw:comment><comments>http://www.aygfsteel.com/chengang/archive/2006/03/07/34063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chengang/comments/commentRss/34063.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chengang/services/trackbacks/34063.html</trackback:ping><description><![CDATA[陈刚/www.chengang.com.cn 2006-02-17<BR><BR> <div id="wmqeeuq" class=item-content> <DIV>  前段旉看到有版友,因ؓ(f)RCP中找不到JAR包的问题Q弄得焦头烂额。由于没有版友的开发环境,所以也很难l他提出错误原因在哪。授Z|不如授h以渔。今天我也遇C(jin)一ơ了(jin)Q就把我解决q个问题的思\写出来,以供参考?BR> <BR>今天RCP加入一个新的模块,其中需要用DOM4Jd一个XML文g。进行的q程如下<BR> <BR>1.dom4j-1.6.jar复制到LIB目录?BR> <BR>2.在maven的project.xml中加入了(jin)引用Q这是ؓ(f)?jin)在构徏目Ӟ从jar仓库自动dom4j-1.6.jar复制到项目lib目录?BR>  <dependency><BR>   <groupId>dom4j</groupId><BR>   <artifactId>dom4j</artifactId><BR>   <version>1.6</version><BR>   <properties><BR>    <plugin.library>true</plugin.library><BR>   </properties><BR>  </dependency><BR> <BR>3.在项目下maven update_libs Q将目的lib库更C?q时W?步手动复制可以不用,如果你是用ANT或手工构建项目的Q第2?步省?<BR> <BR>4. 在build.properties加入对dom4j-1.6.jar的引?BR>jars.extra.classpath = lib/commons-codec-1.3.jar,\<BR>                       lib/dom4j-1.6.jar,\<BR>                       lib/jboss.jar,\<BR> </DIV> <DIV></DIV> <DIV>q时已经可以在Eclipse中开发dom4j的程序了(jin)Q。在Application环境下做?jin)dom4j的测试,没有问题。虽然没有在.classpath中加入对dom4j-1.6.jar的引用,但项目属性中?java build path"->"Libraries"中的"Plug-in Dependencies"中已l有?jin)对dom4j-1.6.jar的引用?BR> <BR>然而运行RCPE序q行试时却出现?jin)错误,界面和console没有提示错误原因。是E序错误吗?于是程序注释至最Q还是不行。难道是包没扑ֈ的错误?哦忘记去看看错误日志?jin),于是转到runtime-adminconsole\.metadata目录下打开.log文gQ果然是cL扑ֈ错误异常Q如下:(x)<BR>java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader<BR> <BR>但application下怎么能找到dom4j包呢Q难道有什么地方的对dom4j我没加上Q于是打开plugin.xmlQ在它的囑Ş界面里翻?jin)翻Q发现runtime选项卡的classpath没有加入对dom4j包的引用。runtimew名思议是q行时的依赖V在q里加上对dom4j包的引用后,错误解除?BR> <BR>加的Ҏ(gu)有两U,最单的通用囑Ş界面加,另外也可以通过META-INF/MANIFEST.MF文g来加。我?fn)惯直接操作文gQ当初ؓ(f)?jin)加入dom4j包的引用在项目根目录下翻?jin)一遍,却没注意META-INF目录下还有一个配|?/DIV> <div id="wmqeeuq" class=clear></DIV></DIV><BR><BR><img src ="http://www.aygfsteel.com/chengang/aggbug/34063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chengang/" target="_blank">陈刚</a> 2006-03-07 14:32 <a href="http://www.aygfsteel.com/chengang/archive/2006/03/07/34063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>draw2dCZ错误的解?/title><link>http://www.aygfsteel.com/chengang/archive/2006/03/02/33198.html</link><dc:creator>陈刚</dc:creator><author>陈刚</author><pubDate>Thu, 02 Mar 2006 06:08:00 GMT</pubDate><guid>http://www.aygfsteel.com/chengang/archive/2006/03/02/33198.html</guid><wfw:comment>http://www.aygfsteel.com/chengang/comments/33198.html</wfw:comment><comments>http://www.aygfsteel.com/chengang/archive/2006/03/02/33198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/chengang/comments/commentRss/33198.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/chengang/services/trackbacks/33198.html</trackback:ping><description><![CDATA[<DIV>?陈刚 2005-11-04<BR><BR>  在学?fn)draw2d中,发现以前Qeclipse2.*Q没问题的帮助自带示例,在eclipse3.1q行有了(jin)一些问题:(x)椭圆{显CZ出来。经试Q解x法如下:(x)<BR><BR> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://glchengang.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">在程序中加一句 ellipse.setBounds(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> Rectangle(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">137</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">1000</SPAN><SPAN style="COLOR: #000000">, </SPAN><SPAN style="COLOR: #000000">1000</SPAN><SPAN style="COLOR: #000000">)); 卛_Q?BR><IMG src="http://glchengang.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV><BR>  估计是过L一个大的默认|而新版的draw2d取消?jin)。另?draw2dq不包含在默认的Eclipse下蝲包中,你需要去eclipse.org另外下蝲.</DIV><img src ="http://www.aygfsteel.com/chengang/aggbug/33198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/chengang/" target="_blank">陈刚</a> 2006-03-02 14:08 <a href="http://www.aygfsteel.com/chengang/archive/2006/03/02/33198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">ף</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ϴ</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">٤ʦ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ѱ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ٸ</a>| <a href="http://" target="_blank">ͭ</a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʻ</a>| <a href="http://" target="_blank">ɫ</a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank">Ƿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank">ﴨ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">׳</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ӽ</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>