今天在Dzone 上看到一篇文章介紹,NetBeans 使用 Growl 來實(shí)現(xiàn) NetBeans 執(zhí)行任務(wù)時(shí)的本地化方式提醒,感覺很不錯(cuò)。文章鏈接地址:
http://netbeans.dzone.com/nbnotify-netbeans-growl
聯(lián)想到Linux上也有類似的提醒,而且操作很簡單,于是就想是不是自己也寫個(gè)類似的插件來供自己使用呢? 說干就干,按照流程 新建一個(gè)NetBeans 插件項(xiàng)目,然后再新建一個(gè) Installer ,這個(gè)Installer 是在模塊被載入的時(shí)候執(zhí)行的。所以在這個(gè)Installer中 注冊一個(gè)監(jiān)聽器,用來監(jiān)聽 NetBeans 的任務(wù)操作。監(jiān)聽到任務(wù)后,接下來的事情就好辦了,只要判斷任務(wù)狀態(tài)就可以了,然后根據(jù)任務(wù)的狀態(tài)發(fā)送提醒信息。
在Linux的各個(gè)發(fā)行版中使用提醒命令最多的是
notify-send 這個(gè)命令,在Fedora 和Ubuntu 的Gnome 環(huán)境中都是使用這個(gè)命令。我的機(jī)器上同時(shí)安裝 Fedora 14 (KDE桌面)和 Ubuntu10.10(Gnome桌面),所以我就在這兩個(gè)發(fā)行版上測試。在測試的過程中,發(fā)現(xiàn)在Ubuntu 10.10 中notify-send 這個(gè)命令的 -t 參數(shù)竟然不起作用,-t 參數(shù)是用來控制提醒保留的時(shí)間的,但是在Ubuntu10.10中,無論你設(shè)不設(shè)置 -t 參數(shù),他都是保持10秒后隱藏提醒,于是在Ubuntu10.10 下使用這個(gè)插件就很悲劇的不能及時(shí)的展現(xiàn)通知,只能10秒后再顯示下一條通知,相反在Fedora14 KDE 中卻工作良好。下面四張截圖就是分別在Fedora 14 KDE 和Ubuntu10.10 Gnome桌面環(huán)境下的效果圖:
在Ubuntu10.10 Gnome 中當(dāng) NetBeans 對項(xiàng)目執(zhí)行
“ 生成 ”任務(wù)的開始 和 結(jié)束 時(shí)的提醒狀態(tài)。
在Fedora14 KDE 中當(dāng) NetBenas 對項(xiàng)目執(zhí)行
“清理并生成” 任務(wù)的 開始 和 結(jié)束 時(shí)的提醒狀態(tài)。
怎么樣,效果還不錯(cuò)吧,其實(shí)在KDE中還有一個(gè)更加強(qiáng)大的提醒工具,那就是
kdialog ,kdialog 不僅擁有 notify-send 的所有功能,同時(shí)還擁有更加強(qiáng)大的提示功能,比如對話框形式,密碼輸入等等,如果想要了解更多的kdialog 提醒功能,請使用
kdiglog --help 這個(gè)命令獲取更多的參數(shù)了解。
目前這個(gè)插件的功能還比較弱,只能對執(zhí)行任務(wù)時(shí) 的開始和結(jié)束狀態(tài) 做出提醒,對于執(zhí)行項(xiàng)目出錯(cuò)等狀態(tài)還不能提醒,不過目前的這個(gè)提醒還湊和,至少你可以在編譯 一個(gè)耗時(shí)比較長的項(xiàng)目的時(shí)候去做其他的事情,編譯完成后,NetBeans 會(huì)自動(dòng)的提醒你編譯任務(wù)完成了(無論是否成功)。
BTW: 明天就是 新年--2011 年了,祝大家 新年快樂!萬事如意!財(cái)源滾滾! 同時(shí)也祝福自己!
插件下載:
NbLocalNotify (Linux only,源碼將在下一篇博客中公布)。