posts - 6, comments - 1, trackbacks - 0, articles - 0

          2008年8月24日

          public class NameManager implements INameManager {
                 private Set namePool = new HashSet();
                

              public String generateName(String nameType) {

                  if (!namePool.contains(nameType)) {
                 namePool.add(nameType);
                  return nameType;
            }

            int i = 1;
            while (namePool.contains(nameType + i)) {
             i++;
            }
            namePool.add(nameType + i);
            return nameType + i;
           }


          posted @ 2008-09-23 11:44 jr4e 閱讀(134) | 評(píng)論 (0)編輯 收藏

           ImageDescriptor temp = ImageDescriptor.createFromURL(url);

           org.eclipse.swt.graphics.Image image = temp.createImage();

          posted @ 2008-09-19 12:38 jr4e 閱讀(147) | 評(píng)論 (0)編輯 收藏

          1.通過(guò)獲得當(dāng)前激活的editor來(lái)得到NameManager
          IEditorPart editor = PlatformUI.getWorkbench()
              .getActiveWorkbenchWindow().getActivePage().getActiveEditor();
            ReportEditor reportEditor = null;
            if (editor instanceof ReportEditor)
             reportEditor = (ReportEditor) editor;

            String dsDisplayName = reportEditor.getDisplaynameByQDSName(table
              .getDataSet());
            INameManager nameManager = ((ReportEditorInput) reportEditor
              .getEditorInput()).getNameManager();
          2.獲得editPart的祖先的方法
          GefUtilities.getAncestorOfClass(Class c, EditPart editPart)
          public static EditPart getAncestorOfClass(Class c, EditPart editPart)

          3.獲得模型祖先的方法
          ModelUtilities.getAncestorOfClass(Class c, EObject model));
          public static EObject getAncestorOfClass(Class c, EObject model)

          posted @ 2008-09-18 18:55 jr4e 閱讀(188) | 評(píng)論 (0)編輯 收藏

          Eclipse的Wizard是由一系列WizardPage組成的。缺省情況下,WizardDialog在初始化的時(shí)候就會(huì)調(diào)用每個(gè)WizardPage的createControl()方法來(lái)布局這些WizardPage,這是為了方便決定WizardDialog窗口的大小。但如果某個(gè)WizardPage里的控件是需要?jiǎng)討B(tài)生成的,例如,用戶在Page1里輸入一個(gè)整數(shù)n,Page2里要根據(jù)這個(gè)整數(shù)生成n個(gè)文本框,由于Page2的createControl()只有一次被調(diào)用的機(jī)會(huì),并且在得到n之前就被WizardDialog調(diào)用過(guò)了,集中布局的方式就為生成Page2的界面帶來(lái)了困難。

          和問(wèn)題的描述比起來(lái),解決的方法簡(jiǎn)單很多,只要覆蓋Wizard的createPageControls()方法讓它什么都不要做就可以了
          @Override
          public void createPageControls(Composite pageContainer) {
              
          //super.createPageControls(pageContainer);
          }

          posted @ 2008-09-09 10:15 jr4e 閱讀(301) | 評(píng)論 (1)編輯 收藏

          1.用于大小改變,位置改變,以及添加操作-XYLayoutEditPolicy
          2.用于實(shí)現(xiàn)菜單,刪除操作-ComponentEditPolicy
          3.用于實(shí)現(xiàn)選擇操作 -ResizableEditPolicy

          posted @ 2008-09-01 14:53 jr4e 閱讀(121) | 評(píng)論 (0)編輯 收藏

          JAVA體系結(jié)構(gòu)-java虛擬機(jī)概述

          最初,Sun公司為java體系定義了4個(gè)規(guī)范:
          java語(yǔ)言;=》規(guī)范了源文件
          class文件格式;
          java API;
          java 虛擬機(jī);

          編譯期,java編譯器(javac)將java源文件編譯成class文件;運(yùn)行期用戶的class文件和java API的class文件在java虛擬機(jī)上協(xié)同工作。

          java虛擬機(jī)最主要的2個(gè)作用是裝載class文件和執(zhí)行這些class文件所包含的字節(jié)碼(bytecode)。
          這決定了java虛擬機(jī)的主要2個(gè)部件是:
          類裝載器 class loader;
          執(zhí)行引擎 execution engine;

          顧名思義,類裝載器就是把用戶程序的class和java API里的class裝載到執(zhí)行引擎,但是它僅僅只選擇真正被用到的class進(jìn)行裝載。

          執(zhí)行引擎的任務(wù)則是執(zhí)行class文件中的字節(jié)碼。由于class文件格式都遵循一種規(guī)范,所以執(zhí)行引擎是可以有多種不同的方式來(lái)實(shí)現(xiàn)的。比如它可以是一個(gè)解釋器,讀一句字節(jié)碼,生成一句機(jī)器碼,然后執(zhí)行之,這是典型的解釋器行為; 它也可以在第一次執(zhí)行某個(gè)方法時(shí),將該方法編譯成機(jī)器碼,并緩存起來(lái),下次該方法再被調(diào)用時(shí)它直接執(zhí)行緩存的機(jī)器碼,這其實(shí)是編譯行為。所以必須記住,并不是所有的java虛擬機(jī)都是解釋器(interpreter)。

          關(guān)于JNI(java native interface)
          通過(guò)JNI,java允許你的程序調(diào)用任何其他語(yǔ)言寫的方法。然而這樣也將使你失去java平臺(tái)無(wú)關(guān)的優(yōu)勢(shì)。建議只用java實(shí)現(xiàn)方法或只調(diào)用java API提供的native方法。

          posted @ 2008-08-24 13:38 jr4e 閱讀(206) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 虞城县| 治县。| 佛冈县| 丹江口市| 方城县| 田阳县| 阜新市| 桃园市| 德阳市| 图片| 太白县| 南阳市| 万宁市| 罗甸县| 永和县| 宜兴市| 新巴尔虎右旗| 遂溪县| 乌兰县| 兴海县| 弥勒县| 乌恰县| 延安市| 田林县| 土默特左旗| 松溪县| 兴城市| 太谷县| 喀喇| 商丘市| 吉木萨尔县| 大邑县| 涞源县| 合川市| 洮南市| 郸城县| 合阳县| 阳泉市| 孟津县| 前郭尔| 肃北|