在導出RCP時把插件打包成文件夾的形式而不是jar包
posted @ 2008-12-02 11:18 花開有時 閱讀(3013) | 評論 (3) | 編輯 收藏
花開有時花開有時,花落有時,來有時,去有時。不撕扯,只關切;不紀念,只牽掛;不感動,只明白;不尋找,只記得。
隨筆 - 24, 文章 - 0, 評論 - 54, 引用 - 0
|
在導出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 花開有時 閱讀(3013) | 評論 (3) | 編輯 收藏 JME研究群(42691979)建立!
對JME感興趣的同志請加入JME研究群(群號:42691979),大家一起研究,共同進步!
posted @ 2008-04-29 14:13 花開有時 閱讀(1540) | 評論 (2) | 編輯 收藏 定義Eclipse Editor應該要注意的問題1.Editor必須要設置icon,否則會出異常。 2.必須要重寫EditorPart#init(IEditorSite site, IEditorInput input)方法,內容一般為 posted @ 2008-02-05 13:41 花開有時 閱讀(463) | 評論 (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再添加監聽器。 posted @ 2008-02-03 16:26 花開有時 閱讀(2406) | 評論 (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 花開有時 閱讀(675) | 評論 (0) | 編輯 收藏 定義自己的CellEditor
摘要: 定義自己的CellEditor其實不難,完整的實例可以看Eclipse的TextCellEditor與ComboBoxCellEditor(原理都差不多,但推薦看CmboboxCellEditor,它的實現簡單些) 閱讀全文
posted @ 2008-02-03 14:51 花開有時 閱讀(3749) | 評論 (1) | 編輯 收藏 工作隨想
工作差不多有一個月了,突然發現周圍的同事都不是名牌大學順利畢業擁有學位的高材生就是在讀的名牌大學實習生。今天發現我旁邊的一位是保送到清華的南大學生,呵呵,想想自己沒學位,和別人比起來還真是回事啊。真不知道,將來我有成就了,學校會不會給“榮譽學士學位”呢?呵呵,比較好玩。
posted @ 2007-12-26 20:19 花開有時 閱讀(295) | 評論 (0) | 編輯 收藏 java Method類試用
摘要: 背景:在項目中有一堆javabean,要用在界面上畫一堆tableview,要對這一堆tableview進行排序,因此要寫一堆sorter類(假如為每個tableview都寫一個的話),工作量比較大。
思考:其實這些sorter類都是差不多的,只是調用的javabean不同,方法名稱不同,實現的原理,沒有什么不同,那么該如何使用一個sorter類就可對所有的tableview進行排序呢? 思考結果:也許可以用Class類與Method類,也就是什么reflect機制。 閱讀全文 posted @ 2007-12-23 14:07 花開有時 閱讀(5887) | 評論 (4) | 編輯 收藏 自定義具有“上圖片”下“文字”效果的Button
SWT的Button控件時可以加圖片與文字的,但是不能控制圖片與文字的位置。比如我要定義一個Button具有這樣的效果:
![]() 具體代碼如下: //定義一個Button Button button = new Button(shell,SWT.NONE); //加圖片 Button.setImage(new Image(Display.getCurrent(),”….圖片的路徑”); //加上繪制事件 button.addPaintListener(new PaintListener(){ public void paintControl(PaintEvent e){ //設置字體樣式等等 Font font = new Font(Display.getCurrent(),””,8,SWT.BOLD); e.gc.setFont(font); e.gc.drawText(“haha”,0,0); } }); ok,基本上就是這樣了,不知道有沒有更好的方法。 posted @ 2007-12-11 12:57 花開有時 閱讀(940) | 評論 (0) | 編輯 收藏 IFolderLayout#addView()、IPageLayout#addView()與IPageLayout#addStandaloneView()的區別。IFolderLayout#addView():views放在一個IFolderLayout(類似一個文件夾)里,可以疊加view。 IPageLayout#addView():view按照方法的參數設置放置,程序運行后可以疊加view。 IPageLayout#addStandaloneView():view按照方法的參數設置放置view,程序運行后不能疊加view。 posted @ 2007-12-10 12:59 花開有時 閱讀(1821) | 評論 (0) | 編輯 收藏 新生活=退學+找到工作。退學了! 背景:就讀于北京某軍校計算機科學與技術專業,本科,指揮類,已讀完4年大學。 退學原因:5公里跑不合格。 結論:此子不適合部隊。 結果:大學肄業,士官復原。 找到工作! 待遇:畢業生中上水平。 公司:外企。 目的:學習學習再學習!從事自己喜歡的工作。 事情終于告一段落了,找到了工作使我、父母、所有關心我的人稍稍放下心來。舊的日子已經過去,新的生活開始來臨。我要鼓起勇氣,打足精神,迎接挑戰! posted @ 2007-12-05 22:09 花開有時 閱讀(622) | 評論 (7) | 編輯 收藏 AbstractGame類分析
摘要: JME提供了一個包:com.jme.app,這個包里提供了一些開發一個JME應用程序的基本類,其中AbstractGame類是基本的基本,這個包中的其他類都是直接或間接繼承這個類。 閱讀全文
posted @ 2007-09-24 11:25 花開有時 閱讀(823) | 評論 (7) | 編輯 收藏 把JME程序“嵌入”到SWT界面
摘要: 但是在一些應用中,我需要把JME的顯示結果在圖形用戶界面(比如說用Swing或者SWT/Jface做的圖形用戶界面)上顯示出來,而不是又重新彈出一個窗口--這樣怪麻煩,也不方便用戶操作。對于Swing,JME提供了有一套方法可以方便的把JME程序的顯示效果在Swing做的界面是顯示出來(具體做法可參考JME提供的例子),但是對于SWT,JME就沒有說明該怎么做了(似乎對于SWT來說有些不公平)。雖然沒有說明,但是實際上我們還可以通過以Swing為過渡,使SWT實現這樣的功能。不過這樣好像有些麻煩了,因為自Eclipse3.2后,SWT提供了一個類--GLCanvas,可以使OpenGL在SWT的界面上繪制3D圖形。這樣就沒有問題了,JME可以直接在SWT界面中繪制圖形圖像,因為JME本身是封裝了OpenGL的API。
閱讀全文 posted @ 2007-08-08 16:57 花開有時 閱讀(1355) | 評論 (0) | 編輯 收藏 MonkeyWorld3D--JME輔助開發工具
前天我發了一篇《JME麻煩之一:模型》,說是在JME中組織模型太麻煩,沒有像界面開發那樣的所見即所得編輯器。昨天我上JME官網上看了看,卻發現原來官網上提供的MonkeyWorld3D軟件正是這類工具。下載下來使用看看。給我的感覺是太麻煩,拖動不方便,像移動模型、轉動模型、大小變換之類的操作的不方便。導入模型也不方便,還需要一個個導入。真是還不如我在程序里手工輸入數據調試來得便捷。不方便的原因也許是我對這軟件不熟悉、不熟練,如果可能的話真想看看熟練的人是怎么做的,但是這連一個說明怎么使用的文檔都沒有。開源就是這方面不好。
另外說一下,這個軟件是用SWT與JFace做的界面。 MonkeyWorld3D下載地址:這里 posted @ 2007-08-03 15:58 花開有時 閱讀(1321) | 評論 (0) | 編輯 收藏 JME麻煩之一:模型
最近把JME例子的源代碼看了一遍,對使用JME有了初步的了解,看完之后就打算自己編一個例子試試。
使用JME進行3D開發無非就是先用3DMax之類的軟件進行3D建模,然后把建好的模型通過JME中相應的類轉化為JME理解的形式,再在顯示屏時顯示出來,最主要的部分一是建模,二是對模型的操作。 今天通過寫一個例子,發現模型的轉化并不困難,幾行代碼就搞定了,但是對模型在屏幕中應該顯示多大和應該放在什么位置卻不好把握。比如說我要顯示一臺筆記本電腦,由于我要操作筆記本--按筆記本電腦的某個鍵要產生相應的響應,所以我不能在建模中把筆記本的按鍵“建”為一個整體,我需要把筆記本電腦的基礎建立起來,再把每個按鍵建立起來,然后在JME中把按鍵“加”到筆記本電腦的基礎上--這樣才能對筆記本電腦進行操作,比如說按一個有按下去的動作,那么各個按鍵和位置基礎的位置和它們之間的大小關系就要符合常理才有真的感覺。但是在JME中好像沒有那么“智能”能使物體之間的相互關系符合常理,那應該怎么辦呢?在JME中,物體之間的位置是靠三維空間坐標設定的(也就是x,y,z),大小是按比例設定的(也就是百分比,1為原模型大小),那么如果我要使物體之間的位置、大小關系符合常理,就要通過很多次的嘗試才有可能成功,這使我感到非常麻煩。如果我有很多物體需要顯示,那么我不是非常頻繁的嘗試嗎?就像是如果沒有可視化進行界面編輯,那么要做一個美觀的界面將會是一件多么痛苦的事,想想就知道在這上面要花費很多時間。 在官網上看例子,看有的出現了這個問題,想找找看,結果上面一句話把我給噎回去了:為什么要放在這里呢?那是因為經過了很多次試驗得到的(原文大意)。 我不知道3DMax之類的軟件在建模時是不是可以直接把模型的建立符合常理(我不負責建模),如果能符合常理的話直接導入就好了,但就我今天用別人做的模型寫的程序來看,還是需要我進行調整的。 不過好像JME官網上有一個MonkeyWorld3D的軟件,可能是管3D可視化設計的,以前下過,但沒弄懂怎么用。明天上官網看看,找找有沒有這方面的解決辦法。 不知道有哪位仁兄有這方面的經驗,望稍稍告知一二,在下在這里多謝了。 posted @ 2007-08-02 00:26 花開有時 閱讀(1539) | 評論 (7) | 編輯 收藏 使用SWT寫一個基于JGroup的簡單局域網聊天程序
摘要: JGroup簡要說明:JGroup是一種可靠的群組通訊工具,用Java實現。JGroup以IP多播為基礎并且提供可靠性和群組功能。 在JGroup中有一個Chat.java類,是基于Swing的一個簡單的局域網聊天的例子。在這里我按照這個例子的把局域網聊天的功能用SWT實現。 本以為不會出現什么問題但是在實現的時候發現兩個同局域網的客戶端不能互連,找不到對方。在調試的時候發現只要是使用了SWT... 閱讀全文
posted @ 2007-07-28 09:50 花開有時 閱讀(3116) | 評論 (2) | 編輯 收藏 |
|