子非鱼

BlogJava 首页 新随笔 联系 聚合 管理
  21 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

#

一个在RCP中快速打开文件的小技巧
一个在RCP中快速打开文件的小技巧,例如,在Word中打开一个Word文档,或者在Acrobat中打开一个PDF文件。
这可以通过SWT的org.eclipse.swt.program.Program类来实现:

    String filename = "myword.doc";
    Program.launch(filename);

这个类还提供了其他一些有用的方法,例如得到某一特定扩展名对应的可执行程序,甚至得到这个可执行程序的图标。
转自(
http://www.blogjava.net/eclipshine/


文件系统不同步问题resource is out of sync with the file  system的解决办法(转)
在eclipse中,启动run on server时报错:
            Resource is out of sync with the file system:
            '/Test_1_Struts_Spring_Hibernate/WebContent/WEB-INF/.struts-config.xml.strutside'.
            查阅资料后发现这是文件系统不同步的问题,是因为在eclipse之外对工程中的resource进行修改引起的;但是,有时没有在eclipse之外进行修改,也会报类似的错误。
            解决办法:需要手动刷新一下资源管理器。
            (1)在eclipse中,工程目录右键,选择F5(refresh)
            (2)设置eclipse自动刷新。
                       通过Window->Preferences->General->Workspace,选中Refresh
            automatically。



将Eclipse中的插件包导入成源码工程
打开Eclipse的PDE的Plug-ins视图,可以列出当前eclipse下(包括workspace中)的所有插件,可以将某一插件导入成工程(右键Import as->Source Project)

删除eclipse的configuration目录导致eclipse无法启动的解决办法
这是由于equinox可以创建 configuration目录,但是无法自己创建config.ini文件。在启动eclipse的时候,需要用到config.ini中的配置内容。
删除了configuration后,启动eclipse会自动重建configuration目录。
然后可以自己在configuration目录下新建一个config.ini文件,增加以下五行内容到config.ini文件中。

osgi.splashPath = platform:/base/plugins/org.eclipse.platform
osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start
eclipse.product=org.eclipse.sdk.ide
osgi.instance.area.default=@user.home/workspace
eof=eof

保存文件后,重新启动eclipse就没有问题了


IFile点滴
//取得IFile文件的绝对路径
    String path= ifile.getLocation().makeAbsolute().toFile().getAbsolutePath(); 
    
//IFile转File
    File file =iFile.getLocation().toFile();

在New菜单组里添加一项
<extension
           
point="org.eclipse.ui.perspectiveExtensions">   
              
<perspectiveExtension
                    
targetID="org.eclipse.jdt.ui.JavaPerspective">   
                    
<newWizardShortcut id="XX.WebProjectWizard"/>
              
</perspectiveExtension>
   
</extension>

其中:如果设置targetID = * 表示应用到所有透视图

java web工程报错 Java compiler level does not match the version of the installed Java project facet

这个是因为Facted Project中的Java版本设定与项目的Java版本设定不一致。
解决方法1:
eclipse 加vm参数  如
创建一个快捷方式,设定目标位置为 D:\eclipse_jee\eclipse.exe -vm D:\Java\jdk1.5.0_10\bin\javaw


Eclipse插件项目运行调试报内存溢出的解决

插件调试时内存溢出 ,调优JVM参数,增加内存:

-Xms64m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128M -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError

(有关JVM参数调优讲解可参考:http://niyunjiu.javaeye.com/blog/337266)

Eclipse WorkSet
将所有的已有的项目引入到工作区后,显示在一个文件夹下。
 
Show -> Working Sets -> create a working set -> select all projects -> ok
 
这样,在eclipse工作区中,所有的项目将以Working Set来显示。
posted @ 2007-08-29 15:01 子非鱼| 编辑 收藏

http://blogger.org.cn/blog/blog.asp?name=hongrui --邢红瑞 JAVA
http://macrochen.blogdriver.com/macrochen/1108553.html
 --疯狂的菠菜 JAVA 等
http://blog.csdn.net/mingjava/category/13936.aspx  --JAVA

http://www.blogjava.net/wadise/category/6079.html  --eclipse代码生成器插件开发

posted @ 2007-08-25 22:58 子非鱼| 编辑 收藏

     摘要:   阅读全文
posted @ 2007-08-15 12:39 子非鱼| 编辑 收藏

public class NodeNameComparator  implements Comparator
{
    
    RuleBasedCollator collator;

    
private NodeNameComparator(){
        collator 
= (RuleBasedCollator)Collator.getInstance(java.util.Locale.CHINA);// 设置规则为中文字符比较
    }

    
    
private static NodeNameComparator instance = new NodeNameComparator();

    
public static NodeNameComparator getInstance() {
        
return instance;
    }
 

    
public int compare(Object obj1, Object obj2) {
        String name1 
= "大牛";
        String name2 
= "小牛";
        
        CollationKey c1 
= collator.getCollationKey(name1);
        CollationKey c2 
= collator.getCollationKey(name2); 
        
return collator.compare(((CollationKey) c1).getSourceString(),
                ((CollationKey) c2).getSourceString());
    }


}

英文情况:

return string1.compareTo(string);
posted @ 2007-08-07 18:20 子非鱼| 编辑 收藏

F2: 类或者方法,查看注释。
F3: 类或者方法,查看源码(同:Ctrl+鼠标左键)
F4: 类,查看在类库中的继承层次。
F5:调试时单步跳入。
F6:调试时单步跳过。
F8:调到下一个断点,如果没有,则执行完毕。
F11:快速运行最新运行过的程序(调试状态)。
F12:激活编辑器。
Ctrl + Shift + G: 类或者方法,查看在其它地方的用法。
Ctrl + Shift + T: 打开按名称查找类的对话框。
Ctrl + Shift + R:打开资源对话框。
Ctrl + Shift + F: 代码格式化。
Ctrl + Shift + O: 快速导入import的包。
Ctrl + Shift + L:显示当前平台的全部快捷键。
Shift + Alt + R: 类或方法、变量,重命名
Ctrl + T: 方法,查看实现该方法的类及其父类。
Ctrl + O: 查看当前编辑器中打开的类中定义的方法。
Ctrl + J: 在编辑器中查找某个字符串,然后"Ctrl + K",查找下一个。
Ctrl + D: 删除当前光标所在的一行。
Ctrl + F:打开"Find/Replace"对话框。
Ctrl + H:打开“Search”对话框。
Ctrl + L:打开“Go to Line”对话框。
Ctrl + N:打开New Wizard对话框。
Ctrl + Q: 回到最后一次编辑的地方。
Ctrl + M:最大化/最小化编辑器窗口。
Ctrl + /:注释/取消注释
Ctrl + 1:显示快速重构方案。
Alt + /: 补足类名或者方法名
Shift + Alt + Q,  Q: 打开视图框。
Shift + Alt + Q, L: 打开"Error Log"视图。
Shift + Alt + Q,P:打开“Package Explorer"视图。
Alt +S,V: 打开Override对话框。
双击左括号:选中括号中的全部内容。
shift + alt + X : j 运行MAIN
shift + alt + X : T 运行JUNIT
Shift + alt + S : R 帮你自动完成 set get 方法!
shift + alt + Z : 4 加 try ,catch
ctrl+D删除一行。
  • Ctrl + Shift + O :引入及管理imports语句
  • Ctrl + Shift + T : 打开Open Type 查找类文件
  • Ctrl + Shift + F4 : 关闭所在打开的窗口
  • Ctrl + O : Open declarations
  • Ctrl + E : 打开编辑器(切换窗口)
  • Ctrl + / : 注释本行
  • Alt + Shift + R : 重命名
  • Alt + Shift + L : 抽取本地变量
  • Alt + Shift + M : 抽取方法
  • F3 : Open Declaration
    转自:
    http://www.blogjava.net/xiaoxiaoleemin/archive/2007/05/02/115072.html


     

    使用Eclipse IDE的技巧
    作者:Sam Brodkin
    翻译:tetsu
    版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
    作者:
    Sam Brodkin ;tetsu
    原文地址:
    http://www.javaworld.com/javaworld/jw-08-2005/jw-0829-eclipse.html
    中文地址:
    http://www.matrix.org.cn/resource/article/43/43844_Eclipse_Hot_Key.html
    关键词: Eclipse Hot Key
    概要

    Eclipse IDE 变得如此热门,以至于出现在许多工作简历中。但是,也正因为它的功能繁多,使得难于入手了。在这篇文章中,Sam Brodkin 分享了他最常用的一些Eclipse功能。他也提到了那些会让你的手指动的飞快的热键组合。在工作的时候,人们会怀疑你是在打电玩。(1,200字;2005年8月29日)
    Eclipse最妙的地方是它的功能是如此的丰富。如果你找不到某项功能,要么是你没有好好的去找,要么有一个插件可以实现它。Eclipse最糟的地方也是它的功能如此的丰富。拥挤的工具条,臃肿的菜单,以及配置对话框都让我想起了拉比林特斯迷宫(译者注:Minotau’s labyrinth,希腊神户中的人身牛头怪,住在Labyrinth迷宫中,吃人们供奉的童男童女,最后被Theseus杀死)(尽管配置对话框在Eclipse3.1中已经好了很多)。甚至是有经验的Eclipse程序员也是慢吞吞,笨手笨脚的。我观察过无数的同事,当试图在Eclipse的navigation面板里找一个类的时候,不假思索的按下“Ctrl + Shift + T”(打开型别(open type))。其实,只要有意识的投入一点点时间,你也会不在笨手笨脚的,而成为热键高手。
    精通Eclipse不单提高了你的效率,(我知道,按小时赚钱的签约人更喜欢文本编辑器),对你的求职简历也有好处。既然Eclipse已经越来越多的出现在Java工作说明上,那么在你的求职简历上也绝对是个好词。我把它放在我的个人简历上,就在POJO(简单初始Java对象)和POJI(简单初始Java接口)的中间。越来越多的公司转向Eclipse,因为它免费,而且为大多数程序员所接受。(除了那些少有的IntelliJ和Emacs的崇拜者)
    因此,你的简历上并不都是帮助你提高编程效率的大话,在本文中,我将给你几条Eclipse高效的建议。注意:如果你是个在寻找初学者教程的新手,那么请参看资源部分。
    Eclipse的快捷键组合功能
    使用Eclipse的快捷键组合功能,让你看起来像是在打电玩。特别是让人想起《真人快打》(Mortal Combat)的感觉。要成为《真人快打》的高手,你必须记住大量的按键顺序。比如,要使出Sub-Zero Skeleton Rip,你必须依次按下????和X键。这里的控制杆就是Ctrl,Alt,Shift,字母键,数字键和功能键的组合。
    让我们按照使用频率来看看我最爱用的一些热键组合。(注:以下内容在Eclipse3.02及一上版本通过测试)
    1. Control-Shift-T: 打开类型(Open type)。如果你不是有意磨洋工,还是忘记通过源码树(source tree)打开的方式吧。
    2. Control-Shift-R: 打开资源(不只是用来寻找Java文件)。小提示:利用Navigator视图的黄色双向箭头按钮让你的编辑窗口和导航器相关联。这会让你打开的文件对应显示在导航器的层级结构中,这样便于组织信息。如果这影响了速度,就关掉它。
    3. F3: 打开申明(Open declaration)。或者,利用Declaration Tab(在Java视图模式下,选择Windows --> Show View -- > Declaration)。当你选中代码中的一个方法,然后按这个按键,它会把整个方法在申明方框里显示出来。
    4. Alt-left arrow: 在导航历史记录(Navigation History)中后退。就像Web浏览器的后退按钮一样,在利用F3跳转之后,特别有用。(用来返回原先编译的地方)
    5. Alt-right arrow: 导航历史记录中向前。
    6. Control-Q: 回到最后依次编辑的地方。这个快捷键也是当你在代码中跳转后用的。特别是当你钻的过深,忘记你最初在做什么的时候。
    7. Control-Shift-G: 在workspace中搜索引用(reference)。这是重构的前提。对于方法,这个热键的作用和F3恰好相反。它使你在方法的栈中,向上找出一个方法的所有调用者。一个与此相关的功能是开启“标记”功能(occurrence marking) 。选择Windows->Preferences->Java-> Editor-> Mark Occurrences,勾选选项。这时,当你单击一个元素的时候,代码中所有该元素存在的地方都会被高亮显示。我个人只使用“标记本地变量”(Mark Local Variables)。注意:太多的高亮显示会拖慢Eclipse。
    8. Control-Shift-F: 根据代码风格设定重新格式化代码。我们的团队有统一的代码格式,我们把它放在我们的wiki上。要这么做,我们打开Eclipse,选择Window?Preferences?Java?Code Style,然后设置Code Formatter,Code Style和Organize Imports。利用导出(Export)功能来生成配置文件。我们把这些配置文件放在wiki上,然后团队里的每个人都导入到自己的Eclipse中。
    9. Control-O: 快速概要(quick outline)。通过这个快捷键,你可以迅速的跳到一个方法或者属性,只需要输入名字的头几个字母。
    10. Control-/: 对一行注释或取消注释。对于多行也同样适用。
    11. Control-Alt-down arrow: 复制高亮显示的一行或多行。
    12. Alt-down arrow: 将一行或多行向下移动。Alt-up arrow会向上移动。
    其他的热键在菜单里有。你可以通过按下Control-Shift-L(从3.1版本开始),看到所有快捷键的列表。按下Control-Shift-L两次,会显示热键对话框(Keys Preferences dialog),你可以在这里自己设置热键。我欢迎你在Talkback部分发表你的Eclipse提示。
    其他的Eclipse窍门
    我总结了几个相关的小窍门:
    锁定命令行窗口:在命令行视图中(Window ? Show View ? Other ? Basic ? Console),试试看用滚动锁定按钮来锁定控制台输出不要滚屏。
    使用Ant视图:在我的Java或Debug模式下,我喜欢显示出Ant视图,这样我就可以迅速的运行Ant任务。通过Window ? Show View ? Other ? Ant可以找到该视图。把Ant视图放在屏幕的一角, 通过“添加编译文件(Add Buildfiles)”按钮来添加build.xml文件。在3.1版本中,甚至支持Ant调试脚本语言。
    自动遍历一个集合:for + Control-Space: 如果你还不知道,那么你应该记住Control-Space是自动完成功能。在Eclipse中,你还可以自动完成结构。在一个数组或集合范围内,试试看输入“for”然后按下Control-Space键。Eclipse会问你你想要遍历哪一个集合然后自动完成循环代码。
    使用分级布局:在包浏览视图(Package Explorer view)中默认的布局(扁平式)方式让我困惑,它把包的全名显示在导航树(navigation tree)中。我更喜欢我源码的包和文件系统视图,在Eclipse中叫做分级布局(Hierarchical Layout)。要切换到这种模式,点击包浏览视图中向下的按钮,选择布局(Layout),然后选择分级(Hierarchial)。
    一次显示多个文件:你可以一次浏览多个文件。把不在激活状态的编辑窗口拖到激活窗口的底部或侧边的滚动条上,就可以打开该编辑窗口。这是我能描述该窍门的最好方式了。
    同时打开两个Eclipse:要将改动从一个CVS分支上合并到另外一个上,我喜欢通过同时打开两个工作目录(Workspace)不同Eclipse来实现。这样我可以通过比较CVS上的最新版本看到所有的变化(右键单击工程,然后选择Compare with ? Lastest from HEAD)然后把每一个变化都合并到另外一个CVS分支上。启动多个Eclipse的最简单的方法是利用Eclipse Launcher。
    Implementors插件:安装一个能够跳到一个接口的实现的插件。如果你是个dependency injection 粉丝,或者正在基于编写优良的接口工作,那么你需要一个这样的插件来加速代码导航。 你可以在SourceForge找到这个插件。
    就像Modest Mouse乐队的歌曲“Out of Gas”唱的,“意见就像小猫,我已经送给别人”。这些是我的Eclipse小猫,希望你能给它找一个温暖的家。
    关于作者
    Sam Brodkin使一个自由Java技术者,住在荷兰的Rotterdam。Brodkin’s的正式职业开始于8年前的Sun公司。他工作内容是Sun Java System Web Server。他目前正致力J2EE软件开发,特别是可维护性和漂亮的代码。Brodkin是一个IntelliJ的狂热者很多年了,但是却被迫转到Eclipse来开发现在的项目。虽然从没被抓到过,不过他还是被人怀疑在上班的时候玩电子游戏。
    资源
    Eclipse 文档说明页:
    http://www.eclipse.org/documentation/main.html
    "A Starter’s Guide to the Eclipse IDE, Part 1," Satya Komatineni (java.net, 2005年3月):
    http://today.java.net/pub/a/today/2005/03/02/eclipsestarter1.html
    Eclipse Launcher:
    http://sourceforge.net/projects/eclauncher/
    Jesper Kamstrup Linnet的Implementors插件:
    http://eclipse-tools.sourceforge.net/implementors/
    可打印的Eclipse快捷键列表:
    http://eclipse-tools.sourceforge.net/shortcuts.html
    关于Java开发工具的更多文章,请浏览JavaWorld的主题索引的开发工具部分:
    http://www.javaworld.com/channel_content/jw-tools-index.shtml
    -----------------------------------------------

  • posted @ 2007-08-02 18:27 子非鱼| 编辑 收藏

    (以前收集的资料,不知道从哪里转载过来的,请原作者包涵)

    安装sqlserver提示以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新重启计算机--问题的解决



       安装软件时,出现无法安装的问题,它提示:“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新重启计算机”问题是,重启了x次,都没有用,还是这个错误,系统是刚刚安装的又没有安装过别的问题怎么会又这个问题,请问各位如何解决!!
    注:如果是要我重新安装系统的话就不要回了!


       解决:注册表
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
    这里面有一个PEND...开头的东西!
    为了安全先备份出来。。然后删了就行!


    sybase学习点滴

    连接
    isql -Usa -P -Jcp936
    清除与关闭日志
    dump transaction fmisdb with truncate_only
    dump transaction fmisdb with no_log
    修改密码:
    sp_password null,longtop,sa
    查看阻塞是否结束
    sp_logshold
    //修改Sybase设备大小
    alter database tempdb on master=512


    高版本下安装低版本的sybase12.52                               


        近来发现在NT环境下卸载SYBASE12。53后安装低版本数据库会报如下错误:

    Errors occurred during the installation.

    Unable to install Sybase Adaptive Server Enterprise Suite over Sybase Adaptive Server Enterprise Suite: Installed product has newer version.
    不能在目前版本下安装。在网上一位朋友的指点下解决。

       解决:在/winnt目录下检索出“vpd.properties”文件,对该文件改名或者删除即可。这可是人家的经验所得哦,赶紧收藏记录吧,希望对你有所用。


    为sybase12.5重罢sa口令


      今天,做个测试,想把sa口令丢失情况下重罢。

      先停掉服务,而后修改Run_XXX.bat(XXX为服务名)。我的实例如下:

    rem
    e:\sybase\ASE-12_5\bin\sqlsrvr.exe  -de:\oadb\master.dat -scq -ee:\oadb\cq.log -ie:\sybase\ini -Me:\sybase\ASE-12_5 -psa

    直接双击运行该批处理文件,启动数据库。控制台显示口令如下:

    00:00000:00001:2005/11/08 15:43:23.56 server  Database 'sybsystemprocs' is now o
    nline.

    New SSO password for sa:bqsfwvnrpuiib8(此为新口令)


    解决Sybase中文问题

    解决Sybase中文问题:
    (1)JDBC连接串要有字符集设置
    jdbc:sybase:Tds:192.168.3.11:5000/Wfis_db?charset=cp936
    (2)服务器配置成cp936
    (a)使用isql查看当前已经安装的字符集
    isql -Usa -Plongtop
    >use master
    >go
    >select id,name from syscharsets
    >go
     id  name
     --- ----------------
       0 ascii_8
       1 iso_1
       2 cp850
      20 defaultml
      21 thaidict
      22 iso14651
      24 utf8bin
      25 binary
      39 altnoacc
      45 altdict
      46 altnocsp
      47 scandict
      48 scannocp
      50 bin_iso_1
      50 bin_cp850
      51 dict
      52 nocase
      53 nocasep
      54 noaccent
      55 espdict
      56 espnocs
      57 espnoac
      59 rusnocs
      64 cyrnocs
      65 elldict
      69 hundict
      70 hunnoac
      71 hunnocs
      73 turknoac
      74 turknocs
     129 cp932bin
     130 dynix
     137 gb2312bn
     140 cyrdict
     155 turdict
     161 euckscbn
     163 gbpinyin
     165 rusdict
     179 sjisbin
     192 eucjisbn
     194 big5bin

    (41 rows affected)
    从列表中看出没有安装cp936字符集

    (b)查看当前使用的缺省字符集
    >sp_configure "default char"
    >go
     Parameter Name                 Default     Memory Used Config Value
             Run Value   Unit                 Type
     ------------------------------ ----------- ----------- ------------
             ----------- -------------------- ----------
     default character set id                 2           0           2
                       2 id                   static

    缺省字符集的id是2,查看上面的列表,可以得知是cp850

    (c)因为上面的列表中没有安装cp936,所以就安装cp936字符集
    进入目录C:\sybase\charsets\cp936
    运行命令 charset -Usa -Plongtop binary.srt cp936
    运行完成后,系统就安装了cp936字符集

    (d)验证是否确实安装了cp936字符集
    isql -Usa -Plongtop
    >use master
    >go
    >select id,name from syscharsets
    >go
     id  name
     --- ------------------------------
       0 ascii_8
       1 iso_1
       2 cp850
      20 defaultml
      21 thaidict
      22 iso14651
      24 utf8bin
      25 binary
      39 altnoacc
      45 altdict
      46 altnocsp
      47 scandict
      48 scannocp
      50 bin_iso_1
      50 bin_cp850
      50 bin_cp936
      51 dict
      52 nocase
      53 nocasep
      54 noaccent
      55 espdict
      56 espnocs
      57 espnoac
      59 rusnocs
      64 cyrnocs
      65 elldict
      69 hundict
      70 hunnoac
      71 hunnocs
      73 turknoac
      74 turknocs
     129 cp932bin
     130 dynix
     137 gb2312bn
     140 cyrdict
     155 turdict
     161 euckscbn
     163 gbpinyin
     165 rusdict
     171 cp936
     179 sjisbin
     192 eucjisbn
     194 big5bin

    (43 rows affected)
    从列表中可以发现已经安装了cp936,id是171

    (e)把系统的当前缺省字符集设置为cp936
    >sp_configure "default char",171
    >go
    In changing the default sort order, you have also reconfigured SQL Server's
    default character set.
     Parameter Name                 Default     Memory Used Config Value
             Run Value   Unit                 Type
     ------------------------------ ----------- ----------- ------------
             ----------- -------------------- ----------
     default character set id                 2           0         171
                       2 id                   static

    (1 row affected)
    Configuration option changed. Since the option is static, Adaptive Server must
    be rebooted in order for the change to take effect.
    Changing the value of 'default character set id' to '171' increases the amount
    of memory ASE uses by 6 K.
    (return status = 0)

    (f)重启Sybase服务,使更改生效
    第一次重启,系统会对已经存在的数据进行转换,转换完成后自动停止服务,只要再次启动服务就可以了。

    (g)更改DB客户端的字符集
    DBArtisan中要更改客户端的字符集为cp936才能连接cp936的服务器
    通过菜单\Logfile\Options...打开对话框,选择Connection标签,
    更改Client Character输入框的值为cp936。

    数据库的charset修改为cp936时,使用isql按如下的方式
    isql -Usa -Plongtop -Sdbserver -Jcp936
     

    posted @ 2007-07-27 18:04 子非鱼| 编辑 收藏

    Shell   dlgShell   =   new   Shell(parent,   SWT.DIALOG_TRIM   |   SWT.APPLICATION_MODAL);   


    setShellStyle(这里可以任意设置样式);能够设置的样式如下:(以下属性可以多选,但是某些属性相冲突时会导致设置的其他属性失效)
    SWT.BORDER //建立一个有边框但没有标题栏的窗口
    SWT.CLOSE //建立一个只有关闭按钮的窗口
    SWT.MIN  //建立一个不能最大化的窗口
    SWT.MAX, //建立一个可以最大化最小化的窗口
    SWT.NO_TRIM //建立一个没有任何边界和标题栏的窗口
    SWT.RESIZE //建立一个可以改变大小的窗口
    SWT.TITLE //建立一个没有标题栏图标,没有关闭按钮的窗口
    SWT.ON_TOP //建立一个总是在上的窗口,注意:此属性最好与CLOSE、MIN、MAX一起使用。
    SWT.TOOL  //建立一个类似工具栏的窗口
    SWT.APPLICATION_MODAL //建立一个APPLICATION模态窗口
    SWT.MODELESS //建立一个非模态窗口
    SWT.PRIMARY_MODAL //建立一个PRIMARY模态窗口
    SWT.SYSTEM_MODAL  //建立一个SYSTEM模态窗口
         还有两个快捷属性来建立窗口
    SHELL_TRIM //建立一个标准模式的窗口,相当于属性设置为CLOSE | TITLE | MIN | MAX | RESIZE
    DIALOG_TRIM //建立一个对话框模式的窗口,相当于属性设置为TITLE | CLOSE | BORDER

            所谓模态对话框,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框。非模态对话框则不会强制此种特性,用户可以在当前对话框以及其他窗口间进行切换。


    参考引用:

    http://blog.csdn.net/zxy6173/archive/2007/03/04/1520113.aspx
    http://www.cnblogs.com/hg98/archive/2006/09/18/507897.aspx
    posted @ 2007-07-27 11:55 子非鱼| 编辑 收藏

     1/**
     2 * 部分类的copy方法实现
     3 *
     4 */

     5public class CopyFactoryImpl implements CopyFactory{
     6
     7    public Object copy(Object from){
     8        if(from != null){
     9//            if(from instanceof Params)
    10//                return copyParams((Params)from);
    11//            if(from instanceof Value)
    12//                return copyValue((Value)from);
    13//            if(from instanceof OvertimePolicies)
    14//                return copyPolicies((OvertimePolicies)from);
    15//            if(from instanceof Event)
    16//                return copyEvent((Event)from);
    17            
    18            return copyObject(from);//from应Serialization
    19            
    20        }

    21        
    22        return null;
    23    }

    24    
    25
    26    /**
    27     * 缓存复制方式拷贝
    28     * @param from
    29     * @return
    30     */

    31    public Object copyObject(Object from){
    32       try{
    33          // 在内存中开辟一块缓冲区,用于将源对象写入
    34          ByteArrayOutputStream bout = new ByteArrayOutputStream();
    35          ObjectOutputStream out = new ObjectOutputStream(bout);
    36          //通过Serialization机制将自身写入该缓冲区
    37          out.writeObject(from);
    38          out.close();
    39
    40          // 找到刚才开辟的缓冲区准备读取
    41          ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
    42          ObjectInputStream in = new ObjectInputStream(bin);
    43          //将刚才写入的内容读入目标对象
    44          Object target = in.readObject();
    45          in.close();
    46
    47          //返回目标对象,拷贝完毕
    48          return target;
    49       }
    catch (Exception e){
    50          return null;
    51       }

    52    }

    53}
    posted @ 2007-07-25 16:51 子非鱼| 编辑 收藏

     

     1<extension point="org.eclipse.ui.actionSets">
     2    <actionSet
     3            id="org.eclipse.mylar.java.actionSet.browsing"
     4            label="Mylar Java Browsing"
     5            visible="false"> 
     6        <action
     7           class="org.eclipse.mylar.internal.java.ui.actions.ApplyMylarToBrowsingPerspectiveAction"
     8           id="org.eclipse.mylar.java.ui.actions.ApplyMylarToBrowsingPerspectiveAction"
     9           style="toggle"
    10           label="Apply Mylar" 
    11           icon="icons/elcl16/interest-filtering-browsing.gif"
    12           tooltip="Filter Packages, Types, and Members views"
    13           toolbarPath="mylar"
    14           enablesFor="*">
    15        </action>
    16      </actionSet>
    17  </extension>
    18
    19 <extension point="org.eclipse.ui.actionSetPartAssociations">
    20    <actionSetPartAssociation targetID="org.eclipse.mylar.java.actionSet.browsing">
    21         <part id="org.eclipse.jdt.ui.MembersView"/>
    22         <part id="org.eclipse.jdt.ui.PackagesView"/>
    23         <part id="org.eclipse.jdt.ui.TypesView"/>
    24    </actionSetPartAssociation>
    25  </extension>
    26
    27    <extension point="org.eclipse.ui.perspectiveExtensions">
    28        <perspectiveExtension 
    29            targetID="org.eclipse.jdt.ui.JavaBrowsingPerspective">
    30            <actionSet id="org.eclipse.mylar.java.actionSet.browsing"/>
    31        </perspectiveExtension>
    32    </extension>

    org.eclipse.ui.actionSetPartAssociations 扩展点提供了另一种选择,当特定的视图或者编辑器打开的时候,不管它们所处的透视图是否打开,都允许一个action集处于可见状态。这是一种极好的方式来保证特定的action出现大范围的透视图中,而不是明确的为这些透视图添加action。
    posted @ 2007-07-25 16:27 子非鱼| 编辑 收藏


    参考:http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/msg01745.html
    在非Editor中实现syntax coloring


    Rainer wrote:
    I hope this is the right place to ask this question:

    It's fine; eclipse.platform would have been right as well.

    I am working on a simple XML editing rich client. One of the main components is a JFace TextViewer, embedded in an Eclipse view (I can't use an Eclipse editor in my special case, unfortunately). I want to add syntax coloring, but can't seem to get the presentation reconciler to work.

    Here's the sample code:

    [...]

    reconciler= new PresentationReconciler();
    DefaultDamagerRepairer dr = new DefaultDamagerRepairer(new CodeRuleScanner());
    dr.setDocument(viewer.getDocument());
    reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.install(viewer);


    [..]

    The CodeRuleScanner (extends RuleBasedScanner) is configured with a set of rules and a default token. However, the PresentationReconciler seems to be totally inactive. Is there any further configuration necessary?

    No. If you look at the implementation of PresentationReconciler.install, you will see that it waits until the viewer's document is set (via an ITextInputListener). So, in order for the above to work, you have to set the document *after* installing the reconciler.


    You should also look at SourceViewer that adds more features and configures itself in the right order using a SourceViewerConfiguration.

    HTH, tom
     
    正确的做法:
     
    PresentationReconciler reconciler= new PresentationReconciler();
            DefaultDamagerRepairer dr 
    = new DefaultDamagerRepairer(new PolicyCodeScanner(new ColorProvider()));
            
            reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
            reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
            reconciler.install(sourceViewer);
    //PresentationReconciler.install必须在setDoucument之前,切记
            
            
    //设置字体
            sourceViewer.getTextWidget().setFont(new Font(sourceViewer.getControl().getDisplay(), 
                    
    new FontData("Courier"10, SWT.NORMAL)));
            
    //设置当前编辑行的背景色
            CursorLinePainter painter= new CursorLinePainter(sourceViewer);
            painter.setHighlightColor(yellow);
            sourceViewer.addPainter(painter);
            
            
    //设置文档帮助
            final ContentAssistant assistant = new ContentAssistant();
            assistant.setContentAssistProcessor(
    new PolicyContentAssistProcessor(), IDocument.DEFAULT_CONTENT_TYPE);
            assistant.install(sourceViewer);
            
            
    //设置文本内容
            sourceViewer.setDocument(new Document(this.content));
            
            dr.setDocument(sourceViewer.getDocument());
            
     
      
    另外:
    注入config:

    sourceViewer.configure(SourceViewerConfiguration configuration)


     

    posted @ 2007-07-24 16:34 子非鱼| 编辑 收藏

    仅列出标题
    共2页: 上一页 1 2