花開有時

          花開有時,花落有時,來有時,去有時。不撕扯,只關切;不紀念,只牽掛;不感動,只明白;不尋找,只記得。
          隨筆 - 24, 文章 - 0, 評論 - 54, 引用 - 0
          數據加載中……

          2008年2月3日

          在導出RCP時把插件打包成文件夾的形式而不是jar包

               摘要: 在使用RCP做項目時,最后的發布一般是用.product文件的Export wizard導出Product,但是導出的插件默認情況下都是以jar包的形式導出,而有的時候會有在項目中使用的第三方包不允許我們在導出的產品中進行發布,但可以允許用戶自己下載后進行添加,因為jar包的形式是把所有依賴的jar包也一起打包成jar,因此jar的形式就不能達到我們發布的要求。在試過了很多方法后,我們覺得如果導出的形式改成文件夾的形式是可行的。因為一般來說,發布的插件都會有一個lib文件夾存放依賴的jar,如果我們在build.properties文件中設置不把依賴的lib下jar包發布,并且以文件夾的形式發布插件,讓用戶自己下載添加到lib文件夾里,這樣就ok了。  閱讀全文

          posted @ 2008-12-02 11:18 花開有時 閱讀(3021) | 評論 (3)編輯 收藏

          JME研究群(42691979)建立!

              對JME感興趣的同志請加入JME研究群(群號:42691979),大家一起研究,共同進步!

          posted @ 2008-04-29 14:13 花開有時 閱讀(1543) | 評論 (2)編輯 收藏

          定義Eclipse Editor應該要注意的問題

          1.Editor必須要設置icon,否則會出異常。
          2.必須要重寫EditorPart#init(IEditorSite site, IEditorInput input)方法,內容一般為
          this.setSite(site);
          this.setInput(input);
          this.setPartName(input.getName());
          否則會出異常。 3.自定義的EditorInput的以下方法的返回值不能為null:getName()、getToolTipText(),否則會出異常。

          posted @ 2008-02-05 13:41 花開有時 閱讀(471) | 評論 (0)編輯 收藏

          如何自定義SWT Table的每一個Cell的height and width

          demonstration code:
          Display display = new Display();
          Shell shell = new Shell(display);
          shell.setBounds(10,10,200,250);
          final Table table = new Table(shell, SWT.NONE);
          table.setBounds(10,10,150,200);
          table.setLinesVisible(true);
          for (int i = 0; i < 5; i++) {
          new TableItem(table, SWT.NONE).setText("item " + i);
          }
          table.addListener(SWT.MeasureItem, new Listener() { 
          public void handleEvent(Event event) { 
          int clientWidth = table.getClientArea().width;
          event.height = event.gc.getFontMetrics().getHeight() * 2; 
          event.width = clientWidth * 2; 
           } 
          });  
          shell.open();
          while (!shell.isDisposed()) {
          if (!display.readAndDispatch()) display.sleep();
          }
          display.dispose();
          

          說明:黑體部分是關鍵,主要是要為table添加一個監聽器并要用到SWT.MeasureItem屬性,如果是在TableView下則需要調用TableView#getTable()方法獲得Table再添加監聽器。
          還需要注意的是:
          1)這個特性可能只在Eclipse3.2以上的版本中才有。
          2)不能對單行(Item)進行height的設置。
          3)如果設置了width,則column的width以它為準。
          參考文章:[[1]]http://www.eclipse.org/articles/Article-CustomDrawingTableAndTreeItems/customDraw.htm#_tb10D

          posted @ 2008-02-03 16:26 花開有時 閱讀(2411) | 評論 (1)編輯 收藏

          RCP開發--對PropertyView定義自己的排序器

          在RCP開發中難免要使用要PropertyView對自己的一些Object進行屬性描述,但是有時候需要對PropertyView (org.eclipse.ui.views.properties.PropertySheetPage)
          進行自己的排序(PropertySheetPage有定義好的排序器),經研究發現PropertySheetPage并沒有提供方法可以設置排序器,怎么辦呢?
          方法是實現一個自己的PropertySheetPage,因為在PropertySheetPage中實際上是提供了一個設置排序器的方法的,但是這個方法是受保護的(protected),
          并不是公開的(public),所以我們需要實現自己的PropertySheetPage,而且還需要實現自己的排序器PropertySheetSorter。
          1.實現自己的PropertySheetSorter:需要繼承PropertySheetSorter類并實現sort(IPropertySheetEntry[] entries)方法,具體可以看父類的實現。
          2.實現自己的PropertySheetPage:需要繼承PropertySheetPage類并重寫createControl(Composite parent)方法,
          在方法中首先調用setSorter(自己定義的PropertySheetSorter類的對象),然后調用super.createControl(parent)方法。

          posted @ 2008-02-03 15:52 花開有時 閱讀(680) | 評論 (0)編輯 收藏

          定義自己的CellEditor

               摘要: 定義自己的CellEditor其實不難,完整的實例可以看Eclipse的TextCellEditor與ComboBoxCellEditor(原理都差不多,但推薦看CmboboxCellEditor,它的實現簡單些)  閱讀全文

          posted @ 2008-02-03 14:51 花開有時 閱讀(3757) | 評論 (1)編輯 收藏

          主站蜘蛛池模板: 东方市| 社会| 内江市| 盐城市| 泰和县| 石狮市| 巢湖市| 裕民县| 博白县| 和平区| 丽江市| 菏泽市| 江陵县| 新和县| 苏州市| 林口县| 进贤县| 高唐县| 克拉玛依市| 民县| 祁阳县| 丹棱县| 德庆县| 吴堡县| 武定县| 古蔺县| 会宁县| 家居| 水城县| 富民县| 潜江市| 梨树县| 陇川县| 无锡市| 田林县| 吉首市| 宁强县| 莱阳市| 贺州市| 山丹县| 大城县|