??xml version="1.0" encoding="utf-8" standalone="yes"?>日产精品久久久久久久性色,日韩免费一级,在线资源免费观看http://www.aygfsteel.com/Andyluo/category/1762.html<table><tr><td><font color="blue">ȝw体、提升技能、修w养?lt;/font><br> 讨论Eclipse, Java, Linux, Google产品<br> </td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> <script type="text/javascript"><!-- google_ad_client = "pub-9685945790422740"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "text_image"; google_ad_channel =""; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script></td></tr></table>zh-cnFri, 29 Jun 2007 21:26:10 GMTFri, 29 Jun 2007 21:26:10 GMT60OSGi框架规范W???要介l?/title><link>http://www.aygfsteel.com/Andyluo/archive/2007/06/29/OSGi_Introduction.html</link><dc:creator>|明</dc:creator><author>|明</author><pubDate>Fri, 29 Jun 2007 06:18:00 GMT</pubDate><guid>http://www.aygfsteel.com/Andyluo/archive/2007/06/29/OSGi_Introduction.html</guid><wfw:comment>http://www.aygfsteel.com/Andyluo/comments/127065.html</wfw:comment><comments>http://www.aygfsteel.com/Andyluo/archive/2007/06/29/OSGi_Introduction.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Andyluo/comments/commentRss/127065.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Andyluo/services/trackbacks/127065.html</trackback:ping><description><![CDATA[     摘要: Eclipse?.0版本开始采用基于OSGi的插件体pȝ构。这文章简要介lOSGi框架的功能架构。OSGi框架是OSGi服务q_规范的核心部分。该框架提供了一个大众化Q安全,可管理的q_Q可以支持可扩展可下载应用插件的部vQ我们称q些应用插g为Bundle?nbsp; <a href='http://www.aygfsteel.com/Andyluo/archive/2007/06/29/OSGi_Introduction.html'>阅读全文</a><img src ="http://www.aygfsteel.com/Andyluo/aggbug/127065.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Andyluo/" target="_blank">|明</a> 2007-06-29 14:18 <a href="http://www.aygfsteel.com/Andyluo/archive/2007/06/29/OSGi_Introduction.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse WTP的BugQ?/title><link>http://www.aygfsteel.com/Andyluo/archive/2006/04/18/41588.html</link><dc:creator>|明</dc:creator><author>|明</author><pubDate>Tue, 18 Apr 2006 02:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/Andyluo/archive/2006/04/18/41588.html</guid><wfw:comment>http://www.aygfsteel.com/Andyluo/comments/41588.html</wfw:comment><comments>http://www.aygfsteel.com/Andyluo/archive/2006/04/18/41588.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Andyluo/comments/commentRss/41588.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Andyluo/services/trackbacks/41588.html</trackback:ping><description><![CDATA[ <p>昨天看了IBM <a class="" title="" target="_blank">Developerworks</a>上一介lWTP?a class="" title="Eclipse Web 工具q_ V1.0 ? target="_blank">教程</a>Q对照着使用WTP1.0完成一个J2EECZ书签应用E序Q服务器使用<a class="" title="" target="_blank">JBoss</a>Q数据库用的?a class="" title="" target="_blank">Derby</a>QEclipse版本3.1.1?br /><br />在新建JBoss ServerӞ因ؓ本机上已有Tomcat占用?080端口Q未启动Q,所以将监听端口由默认的8080Ҏ?081Q结果运行服务器后:JBossq程明明正常启动Q根据Console得出Q,但WTP的Servers视图却提C“Timeout waiting for JBOSS 3.2.3 to start. Server did not start after 50000s”,服务器的状态也昄Stopped。但Ҏ默认?080׃切正常。怎么能出q种问题呢?NWTP是通过查询8080有没有JBoss在监听,从而判断JBoss是否启动成功Q强烈怀疑这是一个BugQ不知道在最新版Eclipse和WTP改过来没?img height="19" src="http://www.aygfsteel.com/Emoticons/confused_smile.gif" width="19" border="0" /><br /><br /><strong>PS</strong>: 用老版的Eclipse3.1.1来开发也是迫不得Ԍ本来已安装了<a class="" title="" target="_blank">Callisto</a>最?strong>完整</strong>版(Eclipse3.2M5Q,但在J2EE透视图中是看不到EJB目分类Q新建EJB目也抛q个异常Q看Log发现是JFace插g里抛ZNullPointerExceptionQM是做不下MQ不知道q样的Callisto怎么会算MileStoneQ? (<br /><br />那个50000s应该?0000ms吧,50000s可是13?3分啊Q^_^</p> <img src ="http://www.aygfsteel.com/Andyluo/aggbug/41588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Andyluo/" target="_blank">|明</a> 2006-04-18 10:10 <a href="http://www.aygfsteel.com/Andyluo/archive/2006/04/18/41588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse BIRT报表不能预览的解军_?/title><link>http://www.aygfsteel.com/Andyluo/archive/2006/04/09/40113.html</link><dc:creator>|明</dc:creator><author>|明</author><pubDate>Sun, 09 Apr 2006 10:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/Andyluo/archive/2006/04/09/40113.html</guid><wfw:comment>http://www.aygfsteel.com/Andyluo/comments/40113.html</wfw:comment><comments>http://www.aygfsteel.com/Andyluo/archive/2006/04/09/40113.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Andyluo/comments/commentRss/40113.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Andyluo/services/trackbacks/40113.html</trackback:ping><description><![CDATA[ <p>预览报表时提C无法显C网,查看D:\eclipse\workspace\.metadata\.log文g后发现错误:<br />!MESSAGE <strong>Exception occurred starting the embedded application server.<br /></strong>!STACK 0<br />org.apache.commons.logging.LogConfigurationException: <br />org.apache.commons.logging.LogConfigurationException: <br />org.apache.commons.logging.LogConfigurationException: <br />     <strong>Class org.apache.commons.logging.impl.Log4JLogger does not implement Log<br /></strong>...<br /><br />搜烦plugins目录下的log文gQ发现既有Log4j又有CommonsLoggingQ将plugins目录下的org.apache.jakarta_log4j_logging_version.jarUdEclipse目录Q移出ClasspathQ,重启动EclipseQ就可以预览了?br /><br />其他Web服务器不能启动(如Eclipse的Help打不开QJBoss提示上述Log异常Q的错误也可以参照以上方法解冟?/p> <img src ="http://www.aygfsteel.com/Andyluo/aggbug/40113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Andyluo/" target="_blank">|明</a> 2006-04-09 18:44 <a href="http://www.aygfsteel.com/Andyluo/archive/2006/04/09/40113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[备䆾from blueline]Keyboard driven Eclipse [Terse Systems](zz)http://www.aygfsteel.com/Andyluo/archive/2006/02/16/31012.html|明|明Thu, 16 Feb 2006 06:09:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2006/02/16/31012.htmlhttp://www.aygfsteel.com/Andyluo/comments/31012.htmlhttp://www.aygfsteel.com/Andyluo/archive/2006/02/16/31012.html#Feedback0http://www.aygfsteel.com/Andyluo/comments/commentRss/31012.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/31012.htmlI had to get obsessed with keyboard shortcuts when using IDEA.
Apparently some of that must have rubbed off, because
lately I've been looking for shortcuts to methods and classes in Eclipse 3.0.

There are two traversal shortcuts I use all the time: Ctrl-O and Ctrl-T.

Ctrl-O shows the methods of the class in the current editor in a popup.
Hit Ctrl-O when the popup is up, and you'll see all the inherited
methods as well. This is incredibly useful, as it allows me to bounce
between methods even when I'm not sure which class is implementing
which method.

Ctrl-T shows the type hierarchy of a selected type in a popup. This is the
complement to Ctrl-O. When I'm sure of what
interface I'm looking at, but I really want to pick a particular implementation
and want to go trawling through that
implementation for a bit, Ctrl-T will show me all the subclasses or
implementors for that type.

There is a third option which I haven't used much. Ctrl-F3 shows the
methods of a selected type in a popup. I can see how this can be useful,
but in practice I have a pretty good idea of which methods are attached
 to which classes and Ctrl-Space fills most of my needs there.

However, I have been missing a couple of things. These are the shortcuts
I just found recently, and are very good for hitting up random files:

Ctrl-E shows a popup list of all the open files.
Ctrl-Shift-T creates a dialog box that you can use to navigate to any class.
Ctrl-Shift-R creates a dialog box that shows any resource in the project
(basically any file.)
Alternately, there's an Eclipse plugin called GotoFile which seems to behave
a little more "IDEAish".

Finally, I found a plugin which actually integrates Eclipse with Windows!
Eclipse Platform Extensions is actually functional and useful, although
you wouldn't guess it by looking at the website. Although it says that
it provides a "System GC" functionality, it actually does far more,
like provide a "Open in Windows Explorer" and
"Open Command Window here" dialog to the Package Explorer.



|明 2006-02-16 14:09 发表评论
]]>
[备䆾from blueline]Installing the help system as an infocenterhttp://www.aygfsteel.com/Andyluo/archive/2006/02/16/31011.html|明|明Thu, 16 Feb 2006 06:08:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2006/02/16/31011.htmlhttp://www.aygfsteel.com/Andyluo/comments/31011.htmlhttp://www.aygfsteel.com/Andyluo/archive/2006/02/16/31011.html#Feedback0http://www.aygfsteel.com/Andyluo/comments/commentRss/31011.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/31011.htmlInstalling the help system as an infocenter

You can allow your users to access the help system over the Internet or an intranet, by
installing the infocenter and the documentation plug-ins on a server. Clients view help
by navigating to a URL, and the help system is shown in their web browser. The
infocenter help system can be used both for client applications and for web
applications, either of which can have their help accessed remotely. All features
of help system except infopops and active help are supported.

The infocenter help system allows passing number of options that can be used to
customize various aspects of the infocenter. The following options are supported:

  • -eclipsehome eclipseInstallPath - specifies Eclipse installation directory.
    This directory is a parent to "plugins" directory and eclipse executable.
    The option must be provided, when current directory from which infocenter
    is launched, is not the same as Eclipse installation directory.
  • -data instanceArea - specifies a path that Eclipse can use to write instance data.
    The value can be an absolute path of a directory, or a path relative to Eclipse
    installation directory. The option must be provided when Eclipse is installed in
    the read only location, or has been customized to override osgi.instance.area
    or osgi.instance.area.default properties.
  • -host helpServerHost - specifies host name of the interface that help server
    will use. It overrides host name specified in the application server plugin preferences.
  • -port helpServerPort - specifies port number that help server will use. It overrides
    port number specified in the application server plugin preferences.
  • -locales localeList - specifies a list of locales that infocenter will recognize and
    provide a customized content for. If the option is not specified, infocenter will
    build navigation, and index documents for each preferred locale of the browsers
    accessing the infocenter. When the option is present, locales from browser
    requests will be matched with locales in the list. If browser preferred locale
    does not exist in the list, but its language part does, it will be used. Subsequently,
    additional browser locales in decreased order of preference will be matched
    against the list. If none of the browser locales (or its language part) matches any
    locale on the list, the client will be served content in the default locale - server
    locale or locale passed with -nl option. For example using options
    -nl en -locales de en es fr it ja ko pt_BR zh_CN zh_TW
    will cause infocenter operating in 10 locales. All other locales will receive content
    for en locale.
  • -dir rtl - sets right-to-left rendering direction of help UI in the browser.
  • -noexec - indicates that Eclipse executable should not be used. You may need to use
    this option when running on a platform for which Eclipse executable is not available.
  • Additionally, most options accepted by Eclipse executable can be passed. They are
    especially useful during debugging and for applying customization to Eclipse.
    For example, passing options
    -vmargs -Xmx256M 
    increases memory available to the infocenter and will allow serving a larger book collection.

Installation/packaging

These steps are for the help system integrator and are not meant to address all the possible scenarios.
 It is assumed that all your documentation is delivered as Eclipse plug-ins and, in general, you are
familiar with the eclipse help system.

  1. Download the Eclipse Platform Runtime Binary driver from www.eclipse.org.
  2. Install (unzip) the driver in a directory, d:\myApp. This will create an eclipse sub-directory,
    d:\myApp\eclipse that contains the code required for the Eclipse platform
    (which includes the help system).

How to start or stop infocenter from command line

The org.eclipse.help.standalone.Infocenter class has a main method that you can use to
launch infocenter from a command line. The command line arguments syntax is:

-command start | shutdown | [-eclipsehome eclipseInstallPath] 
[-data instanceArea] [-host helpServerHost] [-locales localeList]
[-port helpServerPort] [-dir rtl] [-noexec] [platform options]
[-vmargs JavaVMarguments]

To start an infocenter on port 8081 issue a start command by running

java -classpath d:\myApp\eclipse\plugins\org.eclipse.help.base_3.1.0.jar 
org.eclipse.help.standalone.Infocenter -command start -eclipsehome
d:\myApp\eclipse -port 8081

To shut the infocenter down issue a shutdown command by running

java -classpath d:\myApp\eclipse\plugins\org.eclipse.help.base_3.1.0.jar 
org.eclipse.help.standalone.Infocenter -command shutdown -eclipsehome
d:\myApp\eclipse

Using the infocenter

Start the web server. Point a web browser to the path "help" web application running on a port
specified when starting the infocenter.  On the machine the infocenter is installed, this would be
http://localhost:8081/help/.

How to start or stop infocenter from Java

When including infocenter as part of another application, it may be more convenient to start it
and stop using Java APIs instead of using system commands. Follow the steps if it is the case:

  1. Make sure d:\myApp\eclipse\plugins\org.eclipse.help.base_3.1.0.jar is on your app classpath.
    The class you use to start, and shut down the infocenter isorg.eclipse.help.standalone.Infocenter.
  2. Create an array of String containing options that you want to pass to the infocenter. Typically,
    the eclipsehome and port options are needed.
    String[] options = new String[] { "-eclipsehome", "d:\\myApp\\eclipse" ,
    "-port", "8081" };
  3. In your application, create an instance of the Help class by passing the options.
    Infocenter infocenter = new Help(options); 
  4. To start the help system:
    helpSystem.start();
  5. To shut the infocenter down:

    helpSystem.shutdown(); 

Making infocenter available on the web

Eclipse contains a complete infocenter and does not require other server software to run.
However, in unsecure environment like Internet, it is recommended infocenter is not accessed
directly by clients, but is made available through an HTTP server or an application server.
Most servers come with modules or servlets for delegating certain request to other web
resources. For example, one may configure a proxy module of Apache HTTP Server to
redirect requests made to http://mycompany.com/myproduct/infocenter to
http://internalserver:8081/help that runs an infocenter. Adding the lines

LoadModule proxy_module modules/ApacheModuleProxy.dll
ProxyPass /myproduct/infocenter http://internalserver:8081/help
ProxyPassReverse /myproduct/infocenter http://internalserver:8081/help
to conf/httpd.conf file of Apache server running mycompany web site accomplishes this.

Some versions of Apache HTTP server, may contain AddDefaultCharset directive enabled in
configuration file. Remove the directive or replace with

AddDefaultCharset Off
to have browsers display documents using correct character set.

Running multiple instance of infocenter

Multiple instances of infocenter can be run on a machine from one installation. Each started
instance must use its own port and be provided with a workspace, hence -port and -data
options must be specified. The instances can serve documentation from different set of plug-ins,
by providing a valid platform configuration with -configuration option.

If -configuration is not used and configuration directory is shared among multiple infocenter
instances, with overlapping set of locales, it must be ensured that all search indexes are created
by one infocenter instance before another instance is started. Indexes are saved in the configuration
directory, and write access is not synchronized across infocenter processes.

[Optional] Installing a minimal set of plug-ins

The infocenter does not require the entire  Eclipse Platform package. It is possible to run the
infocenter with the following plug-ins (located in the  eclipse\plugins directory):

org.apache.lucene
org.eclipse.core.runtime
org.eclipse.help
org.eclipse.help.appserver
org.eclipse.help.base
org.eclipse.help.webapp
org.eclipse.osgi
org.eclipse.tomcat
org.eclipse.update.configurator

Some documentation plug-ins may have dependencies on other plug-ins, usually by specifying required
plug-ins in their plugin.xml. The dependent plug-ins need to be installed on the infocenter as well.
Additionally, plug-ins that were designed for earlier than 3.0 version of Eclipse implicitly require an org.eclipse.core.runtime.compatibility being present plug-in to work.

Infocenter plug-ins can be updated without restarting the infocenter, using commands explained
in Updating a running infocenter from command line topic. To use this functionality, the minimal
set of plug-ins must include org.eclipse.update.core plug-in.

See Help System Preferences for more information on customizing help system.



|明 2006-02-16 14:08 发表评论
]]>
以前做的两个开源项目,分别ZJava Swing ?Eclipse RCPhttp://www.aygfsteel.com/Andyluo/archive/2005/12/16/24286.html|明|明Fri, 16 Dec 2005 13:06:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2005/12/16/24286.htmlhttp://www.aygfsteel.com/Andyluo/comments/24286.htmlhttp://www.aygfsteel.com/Andyluo/archive/2005/12/16/24286.html#Feedback4http://www.aygfsteel.com/Andyluo/comments/commentRss/24286.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/24286.html
XmallCharter是一个基于JFreeChart库的图表软gQ仿照PowerPoint里的图表功能Q支持饼状图、域图、线状图、条形图?D条Ş囄图表cdQ?00% Java Swing 代码Q绿色YӞ解压~即可在Linux、W${系l上q行?BR>
目现在“寄居”在SourceForge.net上,最新版本是0.2?BR>
d学校的创新竞赛(也是挑战杯的校内选拔赛)Q每个俱乐部都要交作品,我顺便把XmallCharter和文交了上去,q好Q得了个三等奖,当时q比较兴奋(q个目本来是《界面设计》课E的大作业,那时候刚刚完成,才花了一个星期,意外之喜Q?BR>
目|址Q?A >www.sourceforge.net/projects/xmallcharter

xmall.jpg


W二个是XBloggerQ一个基于Eclipse RCP的Blog客户端,是今qIBM校园U技创新竞赛的参赛作品,但是׃某些原因Q最l没能提交(55~,早点回学校就好了Q。本地数据库使用HSqlDBQ目前只支持Blogger.comQ?Textcd的也能支持,但还没加上,懒了Q。本来应该有个Web Service中间层,以后可行的话可能会加上,基本架构和截屏如下(现在q没开源,完善一下先Q:

基本架构Q?BR>
xmall_arch.gif

Q用OpenOffice打开的Word文Q有点变形)

截图Q?BR>
Xblogger.JPG


|明 2005-12-16 21:06 发表评论
]]>
在Eclipse Plugin中执行Q?/title><link>http://www.aygfsteel.com/Andyluo/archive/2005/10/06/14875.html</link><dc:creator>|明</dc:creator><author>|明</author><pubDate>Thu, 06 Oct 2005 07:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/Andyluo/archive/2005/10/06/14875.html</guid><wfw:comment>http://www.aygfsteel.com/Andyluo/comments/14875.html</wfw:comment><comments>http://www.aygfsteel.com/Andyluo/archive/2005/10/06/14875.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Andyluo/comments/commentRss/14875.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Andyluo/services/trackbacks/14875.html</trackback:ping><description><![CDATA[<P>Job代表一个异步操作?BR>要执行的操作写在runҎ里?/P> <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"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">定义一个Job</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> AJob </SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000"> Job<BR><IMG id=Codehighlighter1_33_203_Open_Image onclick="this.style.display='none'; Codehighlighter1_33_203_Open_Text.style.display='none'; Codehighlighter1_33_203_Closed_Image.style.display='inline'; Codehighlighter1_33_203_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_33_203_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_33_203_Closed_Text.style.display='none'; Codehighlighter1_33_203_Open_Image.style.display='inline'; Codehighlighter1_33_203_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_33_203_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_33_203_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top> </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> AJob()<BR><IMG id=Codehighlighter1_51_77_Open_Image onclick="this.style.display='none'; Codehighlighter1_51_77_Open_Text.style.display='none'; Codehighlighter1_51_77_Closed_Image.style.display='inline'; Codehighlighter1_51_77_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_51_77_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_51_77_Closed_Text.style.display='none'; Codehighlighter1_51_77_Open_Image.style.display='inline'; Codehighlighter1_51_77_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top> </SPAN><SPAN id=Codehighlighter1_51_77_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_51_77_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff">super</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Andy's Job</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top> }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top> </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> IStatus run(IProgressMonitor monitor)<BR><IMG id=Codehighlighter1_127_201_Open_Image onclick="this.style.display='none'; Codehighlighter1_127_201_Open_Text.style.display='none'; Codehighlighter1_127_201_Closed_Image.style.display='inline'; Codehighlighter1_127_201_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_127_201_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_127_201_Closed_Text.style.display='none'; Codehighlighter1_127_201_Open_Image.style.display='inline'; Codehighlighter1_127_201_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top> </SPAN><SPAN id=Codehighlighter1_127_201_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_127_201_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>  System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">This is Andy's Job</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>  </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> Status.OK_STATUS;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top> }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV> <P><BR>schedule后,d在^台线E等待队列中排队Q等待调度执行?BR>调用方式1Q?/P> <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"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">异步调用</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">AJob job </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> AJob();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>job.schedule(); </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">唤vq_U程来调度这个Job</SPAN></DIV> <P>调用方式2Q?/P> <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: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">l束后再q行</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">AJob job </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> AJob();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>job.schedule();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><IMG src="http://www.aygfsteel.com/images/dot.gif"> </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> do some other things.</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">job.join();        </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">blockQ直到job完成或调用线E被中断</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(job.getResult().isOk())<BR><IMG id=Codehighlighter1_211_244_Open_Image onclick="this.style.display='none'; Codehighlighter1_211_244_Open_Text.style.display='none'; Codehighlighter1_211_244_Closed_Image.style.display='inline'; Codehighlighter1_211_244_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_211_244_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_211_244_Closed_Text.style.display='none'; Codehighlighter1_211_244_Open_Image.style.display='inline'; Codehighlighter1_211_244_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_211_244_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_211_244_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top> </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">Job completed with success.</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></SPAN><SPAN style="COLOR: #000000">}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_251_291_Open_Image onclick="this.style.display='none'; Codehighlighter1_251_291_Open_Text.style.display='none'; Codehighlighter1_251_291_Closed_Image.style.display='inline'; Codehighlighter1_251_291_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_251_291_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_251_291_Closed_Text.style.display='none'; Codehighlighter1_251_291_Open_Image.style.display='inline'; Codehighlighter1_251_291_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_251_291_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_251_291_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top> </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">Job did not complete successfully.</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></SPAN><SPAN style="COLOR: #000000">}</SPAN></SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><BR>取消一个JobQ?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"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000">job.cancel())<BR><IMG id=Codehighlighter1_18_33_Open_Image onclick="this.style.display='none'; Codehighlighter1_18_33_Open_Text.style.display='none'; Codehighlighter1_18_33_Closed_Image.style.display='inline'; Codehighlighter1_18_33_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_18_33_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_18_33_Closed_Text.style.display='none'; Codehighlighter1_18_33_Open_Image.style.display='inline'; Codehighlighter1_18_33_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_18_33_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_18_33_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top> job.join();<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">cancel可能不会立即成功Q我们用join{待cancel操作完成?/SPAN></DIV><img src ="http://www.aygfsteel.com/Andyluo/aggbug/14875.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Andyluo/" target="_blank">|明</a> 2005-10-06 15:26 <a href="http://www.aygfsteel.com/Andyluo/archive/2005/10/06/14875.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Tip: Sharing Java project settings (ZZ)http://www.aygfsteel.com/Andyluo/archive/2005/07/15/7794.html|明|明Fri, 15 Jul 2005 12:05:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2005/07/15/7794.htmlhttp://www.aygfsteel.com/Andyluo/comments/7794.htmlhttp://www.aygfsteel.com/Andyluo/archive/2005/07/15/7794.html#Feedback0http://www.aygfsteel.com/Andyluo/comments/commentRss/7794.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/7794.htmlThe Eclipse 3.1 has a new feature. Now the Java project settings like Compiler and Code Style can be shared with the entire team using the version control tool.

To do this right click the project in Package Explorer or Navigator view and got to either Java Code Style or Java Compiler options. Check the Enable project specific settings.

This will create a .settings folder in the project root. Eclipse will add and maintain the project specific configuration in this folder. Commit this folder to the version control. Thats it. Now the project settings are shared with the team. When the other team members synchronize with the repository they will get the project settings too. Any team member can update and check in the settings. Cool!



|明 2005-07-15 20:05 发表评论
]]>
Eclipse Iconshttp://www.aygfsteel.com/Andyluo/archive/2005/07/15/7792.html|明|明Fri, 15 Jul 2005 11:50:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2005/07/15/7792.htmlhttp://www.aygfsteel.com/Andyluo/comments/7792.htmlhttp://www.aygfsteel.com/Andyluo/archive/2005/07/15/7792.html#Feedback0http://www.aygfsteel.com/Andyluo/comments/commentRss/7792.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/7792.htmlorg.eclipse.debug.ui/icons
org.eclipse.pde.ui/icons
org.eclipse.jdt.ui/icons
org.eclipse.vcm.ui/icons
org.eclipse.team.ui/icons
org.eclipse.ant.ui/icons
org.eclipse.help.ui/icons
org.eclipse.ui/icons
org.eclipse.ui.views/icons
org.eclipse.ui.console/icons

一个比较全的Icon|页Q?BR>http://www.codehaus.org/~bwalding/eclipse-icons/

以后找Eclipse的图片就方便了,: )

|明 2005-07-15 19:50 发表评论
]]>
Eclipse's process monitor & Container Selection Dialoghttp://www.aygfsteel.com/Andyluo/archive/2005/07/10/7440.html|明|明Sun, 10 Jul 2005 02:35:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2005/07/10/7440.htmlhttp://www.aygfsteel.com/Andyluo/comments/7440.htmlhttp://www.aygfsteel.com/Andyluo/archive/2005/07/10/7440.html#Feedback0http://www.aygfsteel.com/Andyluo/comments/commentRss/7440.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/7440.htmlThe wizard in this code is a standard wizard that displays pages, then generates code in the doFinish method. What is most interesting about this class is that in performFinish, it demonstrates how to interact with Eclipse's process monitor for tasks that take a long time.

/**
   * This method is called when 'Finish' button is pressed 
   * in the wizard. We will create an operation and run it
   * using wizard as execution context.
   
*/

  
public boolean performFinish() {
    final String containerName 
= page.getContainerName();
    final String fileName 
= page.getFileName();
    IRunnableWithProgress op 
= new IRunnableWithProgress() 
    
{
      
public void run(IProgressMonitor monitor) 
          throws InvocationTargetException 
      
{
        
try {
          doFinish(containerName, fileName, monitor);
        }
 catch (CoreException e) {
          
throw new InvocationTargetException(e);
        }
 finally {
          monitor.done();
        }

      }

    }
;
    
try {
      getContainer().run(
truefalse, op);
    }
 catch (InterruptedException e) {
      
return false;
    }
 catch (InvocationTargetException e) {
      Throwable realException 
= e.getTargetException();
      MessageDialog.openError(
          getShell(), 
          
"Error", realException.getMessage());
      
return false;
    }

    
return true;
  }


/*  */
/**
   * The worker method. It will find the container, create
   * the file if missing or just replace its contents, and 
   * open the editor on the newly created file.
   
*/


  
private void doFinish(
      String containerName,
      String fileName,
      IProgressMonitor monitor)
      throws CoreException 
  
{
    
// create a sample file
    monitor.beginTask("Creating " + fileName, 2);
    IWorkspaceRoot root 
= 
        ResourcesPlugin.getWorkspace().getRoot();
    IResource resource 
= root.findMember(
        
new Path(containerName));
    
if (!resource.exists() || 
        
!(resource instanceof IContainer)) 
    
{
      throwCoreException(
"Container \"" + 
          containerName + "\" does not exist.");
    }

    IContainer container 
= (IContainer) resource;
    final IFile file 
= 
        container.getFile(
new Path(fileName));
    
try {
      InputStream stream 
= openContentStream();
      
if (file.exists()) {
        file.setContents(stream, 
truetrue, monitor);
      }
 else {
        file.create(stream, 
true, monitor);
      }

      stream.close();
    }
 catch (IOException e) {
    }

    monitor.worked(
1);
    monitor.setTaskName(
"Opening file for editing");
    getShell().getDisplay().asyncExec(
new Runnable() {
        
public void run() {
          IWorkbenchPage page 
=
              PlatformUI.getWorkbench().
              getActiveWorkbenchWindow().getActivePage();
          
try {
            IDE.openEditor(page, file, 
true);
          }
 catch (PartInitException e) {
          }

        }

      }
);
    monitor.worked(
1);
  }


This code is a simple SWT wizard page. The most interesting characteristic of this class is in the handleBrowse method. This method uses Eclipse's ContainerSelectionDialog for displaying the folders in the workspace.

/**
   * Uses the standard container selection dialog to
   * choose the new value for the container field.
   
*/

  
private void handleBrowse() {
    ContainerSelectionDialog dialog 
=
        
new ContainerSelectionDialog(
            getShell(),
            ResourcesPlugin.getWorkspace().getRoot(),
            
false,
            
"Select new file container");
    
if (dialog.open() == ContainerSelectionDialog.OK) {
      Object[] result 
= dialog.getResult();
      
if (result.length == 1{
        containerText.setText(
            ((Path)result[
0]).toOSString());
      }

    }

  }

 



|明 2005-07-10 10:35 发表评论
]]>
<IMG alt=EclipseIcon src="http://www.aygfsteel.com/images/blogjava_net/kukoo/1547/EclipseIcon.GIF" border=0 align=top>如何制作和用库插g --Eclipse RCP -- 设计结http://www.aygfsteel.com/Andyluo/archive/2005/07/06/7208.html|明|明Wed, 06 Jul 2005 08:30:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2005/07/06/7208.htmlhttp://www.aygfsteel.com/Andyluo/comments/7208.htmlhttp://www.aygfsteel.com/Andyluo/archive/2005/07/06/7208.html#Feedback1http://www.aygfsteel.com/Andyluo/comments/commentRss/7208.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/7208.html在Eclipse的插件体pMQ所有的cd文g都是以插件的形式存在的。如果你的Plugin目要用到第三方API库或者另一个工E的APIQ你可以他们包装成一个插Ӟq就是库插g的含义?/P>

在我们小l的设计中,Plugin和控刉辑是分成两个工E单独开发的QPlugin主要实现界面功能Q通过调用控制逻辑实现数据存储、Blog发布、打印等功能Q所以接触到了制作库插gq个q程Q现在写下来Q希望有点帮助?/P>

如何制作库插Ӟ
库工程转换为Plugin工程Q在MANIFEST.MF的overview里定义IDQ在Runtime里加入你要公开的包QExported PackagesQ。OK

如何使用库插Ӟ主要分ؓ三步Q?BR>1、在Dependencies Tab的Required Plug-ins中加入你的库插gQ保证输出项目时导出相应的库插gQ?BR>2、然后Compute build pathQə目能够利通过~译Q?BR>3、在q行对话框的Plugin Tab里单击Add required pluginsQ这样项目才能正常运?BR>
有一点忘了就会挺郁闷的!

o_folder.gif     



|明 2005-07-06 16:30 发表评论
]]>
Help嵌入Eclipse RCP需要注意的一些问?/title><link>http://www.aygfsteel.com/Andyluo/archive/2005/07/06/7207.html</link><dc:creator>|明</dc:creator><author>|明</author><pubDate>Wed, 06 Jul 2005 08:28:00 GMT</pubDate><guid>http://www.aygfsteel.com/Andyluo/archive/2005/07/06/7207.html</guid><wfw:comment>http://www.aygfsteel.com/Andyluo/comments/7207.html</wfw:comment><comments>http://www.aygfsteel.com/Andyluo/archive/2005/07/06/7207.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Andyluo/comments/commentRss/7207.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Andyluo/services/trackbacks/7207.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class=postcontent> <P>详细的制作Helpq程我就不说了,?A >q里</A>可以扑ֈ?/P> <P>要注意三个问题:<BR>1、添加的插g要齐全,使用Help要增加以下几个插Ӟ<BR><CODE>org.apache.ant</CODE> <BR><CODE>org.apache.lucene</CODE> <BR><CODE>org.eclipse.help.appserver</CODE> <BR><CODE>org.eclipse.help.base</CODE> <BR><CODE>org.eclipse.help.ui</CODE> <BR><CODE>org.eclipse.help.webapp</CODE> <BR><CODE>org.eclipse.tomcat</CODE> <BR><BR>2、在Build里添加html文g的信息,使html文g能正导出,如:<BR>bin.includes = plugin.xml,\<BR>               *.jar,\<BR>               plugin.properties,\<BR>               <B>book.xml,\</B><BR>               <B>html/,\</B><BR>               <B>icons/<BR></B><BR>3、在html文g中不能有中文的链接(昄Zؕ码,服务器会提示找不到该文gQ,所以html和图片的名称量用英文,内容用中文倒没有问题?/P></DIV><img src ="http://www.aygfsteel.com/Andyluo/aggbug/7207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Andyluo/" target="_blank">|明</a> 2005-07-06 16:28 <a href="http://www.aygfsteel.com/Andyluo/archive/2005/07/06/7207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>l习RCP遇到的一个问题及思?/title><link>http://www.aygfsteel.com/Andyluo/archive/2005/06/23/6611.html</link><dc:creator>|明</dc:creator><author>|明</author><pubDate>Thu, 23 Jun 2005 11:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/Andyluo/archive/2005/06/23/6611.html</guid><wfw:comment>http://www.aygfsteel.com/Andyluo/comments/6611.html</wfw:comment><comments>http://www.aygfsteel.com/Andyluo/archive/2005/06/23/6611.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Andyluo/comments/commentRss/6611.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Andyluo/services/trackbacks/6611.html</trackback:ping><description><![CDATA[<P>Problem DescriptionQ新Z一个RCP Mail的Template ExampleQ运行正常,但是当我在另一个RCP工程里徏好的View放进来时Q工E运行就抛出Invalid Menu Extension (Path is invalid): org.eclipse.ui.edit.text.gotoLastEditPositionQ而且菜单和工h里多Z一些Eclipse自己的东西(如SearchQGo to Last Edit LocationQ。捣动半天未果,后来偶然发现另外一个一模一Lq行配置q行OKQ只是用了另一个WorkspaceQ比较一下发玎ͼ出错工程的Workspace多了三四个Plugin的配|(org.eclipse.core.resourcesQorg.eclipse.core.runtimeQorg.eclipse.debug.coreQorg.eclipse.debug.uiQ,而成功的工程workspace只有org.eclipse.ui.workbench的Plugin配置Q其他都一P即我复制过来也不好ѝ现在只能用以前的那个成功的配置了,好Q但不知道ؓ什么会出现上述情况Q?BR> N是成功的工程已经一些Extension注册了,所以后面的工程都用不了?/P> <P>可能的原因:今天看Eclipse的RCP Tutorial时注意到Eclipse RCP所需的Plugin最集是org.eclipse.core.runtime和org.eclipse.uiQ又记v昨天使用了PDE的调试功能,所以org.eclipse.debug.coreQorg.eclipse.debug.ui可能是调试时生成的,或者是以前别的目用过出错工程的workspace目录Q生成了一些别的Plugin目录Q而多出的Plugin在Plugin.xml文g里注册的menu在我的程序里没有被添加(或者没有定义对应的MenuPathQ,于是抛ZQInvalid Menu Extension (Path is invalid)</P> <P>不过q有一个问题:怎么workspace?Plugin文g多w只有org.eclipse.ui.workbench而没有org.eclipse.core.runtimeQ有谁知道这是ؓ什么吗Q?/P><img src ="http://www.aygfsteel.com/Andyluo/aggbug/6611.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Andyluo/" target="_blank">|明</a> 2005-06-23 19:43 <a href="http://www.aygfsteel.com/Andyluo/archive/2005/06/23/6611.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Contributing to Eclipse》阅ȝ?- W零循环 - Eclipse整体架构http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6319.html|明|明Fri, 17 Jun 2005 14:53:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2005/06/17/6319.htmlhttp://www.aygfsteel.com/Andyluo/comments/6319.htmlhttp://www.aygfsteel.com/Andyluo/archive/2005/06/17/6319.html#Feedback4http://www.aygfsteel.com/Andyluo/comments/commentRss/6319.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/6319.htmlZ打好做Plugin的基Q今天特地借了本《Contributing to Eclipse》,其实应该是买一本的Q这本书q么l典。听说这本书是从Eclipse的内部构架来讲的Q对于快速入门Plugin的开发可能不是特别合适,但没有发C店有别的关于SWT或Plugin的书Q?55

好了Q开始切入正题,Go Go Go

《Contributing to Eclipse》分为四个@环,W一个@环是W零个@环(hahahaQ?BR>
W零个@环介l了Eclipse的基架构Q然后通过~写一个最单的HelloWorld Plugin带我们走qContributing的大门?/P>

先说说这里列出的比较重要的概念:
Eclipse分ؓ三层QPlatform、JDT、PDE。其中PDE是对JDT的扩展,提供了插件开发支持?/P>

Platform又分Z层:CoreQWorkspace、RuntimeQ、UIQWorkbench、JFace、SWTQ?BR>下面分别介绍一下:
Runtime --- 定义了插件的基础设施。启动时发现所有可用插件ƈ理插g的加载?BR>Workspace --- 理一个或多个目?BR>SWTQStandard Widget ToolkitQ?-- 提供囑Ş昄功能Q定义了一l标准窗体组件?BR>JFace --- 建立在SWT上的一l比较小的UI框架Q提供对常用UId的支持?BR>Workbench --- Eclipse的UI聚合体,核心要素是编辑器、视图(ViewQ和视角QPerspectiveQ?BR>其中视角QPerspectiveQ定义了各工作台部g的可视化排列方式?/P>

All Right. That's how you get it.
Go on, be a tiger.



|明 2005-06-17 22:53 发表评论
]]>
q个界面挺好?/title><link>http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6248.html</link><dc:creator>|明</dc:creator><author>|明</author><pubDate>Fri, 17 Jun 2005 00:20:00 GMT</pubDate><guid>http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6248.html</guid><wfw:comment>http://www.aygfsteel.com/Andyluo/comments/6248.html</wfw:comment><comments>http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6248.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Andyluo/comments/commentRss/6248.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Andyluo/services/trackbacks/6248.html</trackback:ping><description><![CDATA[SWT里的Right to Left StyleQ将Menu设ؓSWT.RIGHT_TO_LEFT可以了Q以前没看到q这U效果,不知道别的语a可不可以q样?BR><IMG height=336 alt=倒窗?JPG src="http://www.aygfsteel.com/images/blogjava_net/andyluo/倒窗?JPG" width=494 border=0><img src ="http://www.aygfsteel.com/Andyluo/aggbug/6248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Andyluo/" target="_blank">|明</a> 2005-06-17 08:20 <a href="http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SWT = 本地化的JavaQ?/title><link>http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6249.html</link><dc:creator>|明</dc:creator><author>|明</author><pubDate>Thu, 16 Jun 2005 20:30:00 GMT</pubDate><guid>http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6249.html</guid><wfw:comment>http://www.aygfsteel.com/Andyluo/comments/6249.html</wfw:comment><comments>http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6249.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Andyluo/comments/commentRss/6249.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Andyluo/services/trackbacks/6249.html</trackback:ping><description><![CDATA[<P>刚才看了Examples里的Web Browser实例Q感觉特别像一个Rss Reader里的易浏览器?/P> <P>上software.hit.edu.cn看Flash没有问题Q打开一个Word文档也OKQ应该是内嵌了IE吧?/P> <P>看了代码也只发现一个setLocation(URL)Q没有跟本地pȝ联系的代码,NSWT里的Browser本n内嵌了IE?/P> <P>以前也听说过SWT是不用虚拟机的(是吗Q)Q都是调用本地的dllQ只是现在亲眼目睹了?/P> <P><STRONG>q不有点像AWT吗?Q?/STRONG></P><IMG height=1 src="http://blueline.hit.edu.cn/blog/andy/aggbug/1685.aspx" width=1><img src ="http://www.aygfsteel.com/Andyluo/aggbug/6249.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Andyluo/" target="_blank">|明</a> 2005-06-17 04:30 <a href="http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6249.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SWT Examples阅读W记 - Custom Controlshttp://www.aygfsteel.com/Andyluo/archive/2005/06/17/6250.html|明|明Thu, 16 Jun 2005 20:01:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2005/06/17/6250.htmlhttp://www.aygfsteel.com/Andyluo/comments/6250.htmlhttp://www.aygfsteel.com/Andyluo/archive/2005/06/17/6250.html#Feedback0http://www.aygfsteel.com/Andyluo/comments/commentRss/6250.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/6250.htmlq就是定制的ControlsQ有什么特别的地方吗?我好像也没看出来

CCombo是一个ComboBoxQ不q可以设为FlatQ这h较酷?BR>
CLabel有一个Shadow相关的属性,可以讄IN或OUTQ就是突出或凹进Q这是Label啊!搞得q么花哨Q?BR>
CTabFolder在视觉上有些改进Q也是Flat StyleQ看着看着忍不住想碰一下。当Size~小ӞCTabItem可以隐藏hQ在右上ҎCZ个下拉双头Q还昄了隐藏的Item数目Q应该就是Eclipse里的那种风格了?BR>CTabFolder.JPG

StyledTextQ顾名思义。比较特别的Q可以将句子StrikeoutQ就是在选择的句子上划一条“删除线”?BR>
TableTree跟上节Controls里讲的Tree差不多?U>有一个SWT.FULL_SELECTION Style不知道有什么用?BR>
例子看完了,休息...休息一下?/P>

|明 2005-06-17 04:01 发表评论
]]>
SWT Examples阅读W记 - Controlshttp://www.aygfsteel.com/Andyluo/archive/2005/06/17/6251.html|明|明Thu, 16 Jun 2005 19:20:00 GMThttp://www.aygfsteel.com/Andyluo/archive/2005/06/17/6251.htmlhttp://www.aygfsteel.com/Andyluo/comments/6251.htmlhttp://www.aygfsteel.com/Andyluo/archive/2005/06/17/6251.html#Feedback0http://www.aygfsteel.com/Andyluo/comments/commentRss/6251.htmlhttp://www.aygfsteel.com/Andyluo/services/trackbacks/6251.html首先是ButtonQ里面的TOGGLEQ按下不弹vQ、FLATQ^q的Q跟DotNet里的Flat Style差不多)和ARROWQ一个方向箭_可以指定方向Q挺好玩的,l合一下会有多重效果(?| 来组合,如SWT.ARROW | SWT.FLAT | SWT.PUSHQ?BR>
再看看CanvasQ画布),SWT.NO_REDRAW_RESIZE属性设|resize时画布不重画Q想起了田老师的实?Q呵c?U>Caret昄一个光?/U>Q不知道是干什么用的?U>q有一个Fill Damaged Area With ColorQ看源代码也没弄懂,不就是画几个五颜六色的Rectangle吗,要单独列出来吗?

W三是ComboBoxQStyle是SWT.DROP_DOWN时是下拉列表QSWT.SIMPLE是将所有选项都^铺在板子上的ComboBox?BR>
CoolBar也是工具栏咯Q只不过比一般的ToolBar漂亮QSWT里还有ToolBarQ不知道Item Styles中的SWT.DROP_DOWN有什么用Q好像只对Toggle Item起作用。工h里可以放Text了。(后补 -> 发现DROP_DOWN的功能了QItem被隐藏时昄一个扩展箭头。刚才说的Toggle Item其实是RadioQ?BR>
Dialog有四个Model StyleQSWT.MODELESS、SWT.PRIMARY_MODAL、SWT.APPLICATION_MODAL、SWT.SYSTEM_MODAL(不知道PRIMARY_MODAL是做什么用?

ToolBar里可以加入ComboBox

Tree可以有Multiple Columns和Header。甚臌能显C列,直就是Tree和Table的结晶?BR>
例子看完了,休息...休息一下?IMG height=1 src="http://blueline.hit.edu.cn/blog/andy/aggbug/1683.aspx" width=1>

|明 2005-06-17 03:20 发表评论
]]>
SWT Examples阅读W记 - 开题报?/title><link>http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6252.html</link><dc:creator>|明</dc:creator><author>|明</author><pubDate>Thu, 16 Jun 2005 17:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6252.html</guid><wfw:comment>http://www.aygfsteel.com/Andyluo/comments/6252.html</wfw:comment><comments>http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6252.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Andyluo/comments/commentRss/6252.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Andyluo/services/trackbacks/6252.html</trackback:ping><description><![CDATA[<P>假如不考研的话Q我p在这一D|间多弄弄技术了Q决定学学Eclipse的plugin和RCPQ于是首先得学SWT?BR><BR>上次看了几篇中文的paperQ知道了SWT的基本应用,现在该动动手了(管我向来都提倡君子动口不动手的,呵呵Q,当然是首先看看swt都能q什么啦Q最好的下手之处是swt examples?BR><BR>q行环境是Eclipse啦,我的Eclipse本来不打换的,我已l装了RC1Q那天下RC2也是一位朋友要用,我的电脑上从3.0.1?.1RC2都有QpatQ,但听说RC2快,所以也解压~试一下。说了这么多废话Q真有点对不赯众,555<BR><BR>现在看看怎么q行SWT ExamplesQ我们启动EclipseQ从Help的Welcome里选择SamplesQ单击SWT下面的红圆圈Q链接到download examples(我在Update里设了代理,速度马马虎虎)Q自动安装完examples后,单击OutLine里的run examplesQ不要害怕,q时会弹Z个Eclipse的启动画面,不要认ؓ哪里做错了,对,q就是Examples的Laucher。在Laucher打开的workbench里选择Window->Show View->Other,选择Swt Examples里的例子。现在可以慢慢看了?/P><img src ="http://www.aygfsteel.com/Andyluo/aggbug/6252.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Andyluo/" target="_blank">|明</a> 2005-06-17 01:39 <a href="http://www.aygfsteel.com/Andyluo/archive/2005/06/17/6252.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>