大梦想家

5年开发工程师,2年实施经理,X年售前顾问,......
数据加载中……

西安java用户群成立~_~

西安java用户群,感谢dudu,为我们开通团队,所有西安java界的朋友都可以到这里报道或者mail我,我来做初步的管理,等人足够多了,我会交出管理权!
初步想建立一个类似GJUG的小社团,也丰富一下,我们西安程序员的业余生活。
感谢大家支持。
联系方法:
leeguannan@gmail.com
leeguannan@msn.com

posted @ 2007-05-23 15:58 阿南 阅读(1273) | 评论 (18)编辑 收藏
Eclipse3.3m7 VS Eclipse3.2.2

Eclipse3.3m7 VS Eclipse3.2.2
没有深入研究过两者的差别,只是昨天在更换平台时发现的。差别主要存在与Application类上,两者继承或者实现的类不同,也就决定了其底层的不同。
Eclipse3.3M7

 1import org.eclipse.equinox.app.IApplication;
 2import org.eclipse.equinox.app.IApplicationContext;
 3import org.eclipse.jface.wizard.WizardDialog;
 4import org.eclipse.swt.widgets.Display;
 5import org.eclipse.swt.widgets.Shell;
 6import org.eclipse.ui.IWorkbench;
 7import org.eclipse.ui.PlatformUI;
 8
 9import com.glnpu.glbom.ui.wizard.FirstTimeConfigWizard;
10
11/**
12 * This class controls all aspects of the application's execution
13 */

14public class Application implements IApplication {
15
16    /* (non-Javadoc)
17     * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
18     */

19    public Object start(IApplicationContext context) throws Exception {
20        Display display = PlatformUI.createDisplay();
21
22        try {
23            int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
24            if (returnCode == PlatformUI.RETURN_RESTART)
25                return IApplication.EXIT_RESTART;
26            else
27                return IApplication.EXIT_OK;
28        }
 finally {
29            display.dispose();
30        }

31        
32    }

33
34
35
36    /* (non-Javadoc)
37     * @see org.eclipse.equinox.app.IApplication#stop()
38     */

39    public void stop() {
40        final IWorkbench workbench = PlatformUI.getWorkbench();
41        if (workbench == null)
42            return;
43        final Display display = workbench.getDisplay();
44        display.syncExec(new Runnable() {
45            public void run() {
46                if (!display.isDisposed())
47                    workbench.close();
48            }

49        }
);
50    }

51}

52

实现再org.eclipse.core.runtime.IPlatformRunnable;

Eclipse3.2.2
 1import org.eclipse.core.runtime.IPlatformRunnable;
 2import org.eclipse.jface.wizard.WizardDialog;
 3import org.eclipse.swt.widgets.Display;
 4import org.eclipse.swt.widgets.Shell;
 5import org.eclipse.ui.PlatformUI;
 6
 7import com.bom.demo.ui.wizard.FirstTimeConfigWizard;
 8
 9/**
10 * This class controls all aspects of the application's execution
11 */

12public class Application implements IPlatformRunnable {
13
14    /* (non-Javadoc)
15     * @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
16     */

17    public Object run(Object args) throws Exception {
18        Display display = PlatformUI.createDisplay();
19        
20        try {
21            int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
22            if (returnCode == PlatformUI.RETURN_RESTART) {
23                return IPlatformRunnable.EXIT_RESTART;
24            }

25            return IPlatformRunnable.EXIT_OK;
26        }
 finally {
27            display.dispose();
28        }

29    }

Eclipse3.2.2则实现自org.eclipse.core.runtime.IPlatformRunnable;
看来是又做了一次小幅度的分离,而且给出了更加合理的方法命名。

posted @ 2007-05-22 08:37 阿南 阅读(2194) | 评论 (7)编辑 收藏
介绍一个好站

http://www.krugle.com/
代码搜索工具,使用大量AJAX,可以搜索各种代码,还提供Eclipse插件。所有优秀程序员都应该收藏!

posted @ 2007-05-20 10:42 阿南 阅读(1144) | 评论 (0)编辑 收藏
简单应用Maven2

Maven2对项目的管理确实可以说是无微不至的,而且给出了大量的硬性规定。强制要求项目的目录结构,而且还强烈建议使用“测试驱动开发”的使用。比方说它生成的标准项目目录中就自带了test目录,而且POM.XML文件就直接带有Junit3.8的Jar引用了。
暂时就先简单介绍一下两种Maven2自带的标准项目的生成方法:

mvn archetype:create -DgroupId=com.mycompany.ap -DartifactId=my-app

生成目录结构:
 

my-app

|-- pom.xml

`-- src

|-- main

    | `-- java

        | `-- com

            | `-- mycompany

                | `-- app

                    | `-- App.java

`-- test

    `-- java

        `-- com
....


上面生成出来的一个标准的jar项目格式。

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp

-DarchetypeArtifactId=maven-archetype-webapp

my-webapp

|-- pom.xml

`-- src

`-- main

|-- webapp

| |-- WEB-INF

| | `-- web.xml

| `--index.jsp

`-- resources

上面生成的是一个标准的 war 项目。

在命令行运行上面的命令以后在到项目文件夹下运行 mvn eclipse:eclipse,就将这个项目生成了eclipse项目依赖的文件,这个项目就可以导入到eclipse中开发了。
暂时就先介绍这么多,有时间,把我们的预研报告整理出来。

posted @ 2007-05-18 13:54 阿南 阅读(1091) | 评论 (2)编辑 收藏
读jlibrary代码的部分疑问,希望有人解答~

昨天在Bolg中贴出来一个很不错的RCP项目http://jlibrary.sourceforge.net/
今天已经开始研读他的代码了~,由于第一次解除RCP项目,难免总是一头雾水,碰到了不少问题。在此记录下来,希望有高手挺身而出帮忙解决,也再次记录疑问,以备后辈享用.

  
1.如何使用Maven2如果完成对EclipseRCP项目的管理?

2.此项目在JLibraryActionBarAdvisor中使用自己封装的ActionFactory来产生Action,而ActionFactory产生的Action只是RetargetAction,而RetargetAction对应的Action仅仅只有一个简单的ID。此时在ActionBar上面显示的Action仅仅是显示而是不能用的。到了View中再产生真实的可以用的Action,而这个真实的Action并没有包括任何ID信息。疑问就是RetargetAction与真实的Action是如何联系起来的?
    此问题已经解决,他们的意图是在JLibraryActionBarAdvisor首先使用RetargetAction对Toolbar上的Action进行注册,此时这些RetargetAction都还有对应的真实Action。当用户切换视图到对应的透视图,并且选择了某个Veiw时,View中的代码开始真正的注册真是的Acion,注册完成真是的Action以后再使用

1actionBars.setGlobalActionHandler(ActionFactory.IMPORT_ID, fImport);
方法将虚拟的RetargetAction与真实的Action进行关联。
    这样做的好处,我认为是先使用RetargetAction进行了占位,显示不能用,然后根据不同的选择Site,在判断这个Action是否可用。


3.整个系统的权限是如何控制的?

posted @ 2007-05-18 10:30 阿南 阅读(1668) | 评论 (5)编辑 收藏
发现一个优秀的开源RCP项目

http://jlibrary.sourceforge.net/
各种功能都齐全,把RCP发挥的林立极致~~最好的是它开源!
哪个高手可以告诉我如何使用maven2来管理RCP的项目~

posted @ 2007-05-17 17:44 阿南 阅读(2620) | 评论 (4)编辑 收藏
TreeView思维图

TreeView思维图
 
下载

posted @ 2007-05-17 10:57 阿南 阅读(1426) | 评论 (1)编辑 收藏
RCP经典代码集中营(整理添加中... ...)

RCP 如何产生Eclipse一样的流线型视图窗口?
    在 WorkbenchWindowAdvisor 中的preWindowOpen()中设置

1//ʾЧ
2    PlatformUI.getPreferenceStore().setDefault(
3          IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS, true); 
4//ʾͳĴ
5    PlatformUI.getPreferenceStore().setDefault(
6          IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS,
7          false); 
    在补充一个 在状态栏显示 内存监控和垃圾回收的哪个按钮       
1PlatformUI.getPreferenceStore().setDefault(
2                IWorkbenchPreferenceConstants.SHOW_MEMORY_MONITOR, true);

posted @ 2007-05-16 09:32 阿南 阅读(803) | 评论 (1)编辑 收藏
向XMIND 2007学习

    XMIND 2007(未注册)运行以后,先彪出一个Wizard,向人们要钱~
    OK,我的东东第一次运行的时候也要一个Wizard,不要钱,要数据库配置信息。
    首先了解一下Wizard基础:

    图是Eclips Help的,不用文字,一张图就够~说的很详细。
    Wizard的显示是需要Wizard Dialog的, Wizard Dialog显示的是Wizard,Wizard(继承自Wizard,实现自INewWizard)中则包含了N个Wizard Page.只要page的数量大于2,那么下面的back和next就可以用了,太简单了~
    Wizard Page中的public void createControl(Composite parent)方法主要是Page中的控件;
    Wizard中的public boolean performFinish()方法是处理,点击Finish以后的处理方法;
    在RCP启动之前先启动Wizard就是在Applicationpublic Object start(IApplicationContext context) throws Exception 方法中Display display = PlatformUI.createDisplay();之下,int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());之上增加启动Wizard的代码:
1WizardDialog wizardDialog = new WizardDialog(new Shell(), new FirstTimeConfigWizard());
2        wizardDialog.open();


哪个哥哥知道XMIND 2007的注册里面,点击关闭以后直接关闭RCP这个东东是怎么实现的?

posted @ 2007-05-15 18:26 阿南 阅读(944) | 评论 (2)编辑 收藏
郁闷的Perspective

下午正式开始RCP开发,于是乎轻车熟路的开始打基础框架。
       
       1. 建RCP项目
       2. 复制Form的jar包
       3. 写第一次使用时需要维护信息的Wizard和WizardPage
       4. 写用户登录窗口
       5. 在ApplicationWorkbenchWindowAdvisor中增加最大化代码,在ApplicationWorkbenchAdvisor中增加保存用户配置的代码

1    public void postWindowOpen(){
2        this.getWindowConfigurer().getWindow().getShell().setMaximized(true);
3    }

 

1    public void initialize(IWorkbenchConfigurer configurer) {
2         configurer.setSaveAndRestore(true);
3    }


       5. 写Perspective们

       6. 写View们
       7. 给Perspective们分配View们
    run一下看看~晕,什么都不出来~Why!

    寻了一大圈才发现问题出在第五步给ApplicationWorkbenchAdvisor中增加保存用户配置的代码上~注释掉configurer.setSaveAndRestore(true);就一切正常了。

    非常之不解,难道是我再给Perspective们分配View们之前已经run过了,所以记录了我的布局方式了?不至于这么白痴吧~
希望知道的大哥给解释一下~

posted @ 2007-05-15 18:11 阿南 阅读(902) | 评论 (0)编辑 收藏
仅列出标题
共13页: First 上一页 5 6 7 8 9 10 11 12 13 下一页