JavaHelp幫助文件功能自研替換的可行性研究

      網友投稿 856 2022-05-29

      【引言】

      最近接到一個任務,說JavaHelp的License存在涉A問題,因此需要裁剪或者替換。由于這個庫是針對桌面系統應用開發框架Swing的支持,而Swing是一個非常老舊的框架,目前很難找到對應的替代品。本文就從JavaHelp的背景和所提供的功能來探索一下自研替換的可能性。

      【替換的技術】

      由于我們幫助系統的內容是基于HTML的靜態網頁,本文就假定用前端框架應用來替換目前的幫助系統,由于所有幫助文件可以放在本地,因此先暫時假定前端應用無需訪問后端API。

      本地應用在程序中打開指定幫助頁面時可通過調用前端頁面的路徑及其參數實現。這個可以通過前端框架中的路徑路由管理來實現。

      【主窗口的三個部分】

      (圖1)

      如上圖所示,現有的幫助系統主窗口包含三部分:

      頂部的工具欄:這個工具欄包含三個按鈕,向前翻頁,向后翻頁和打印按鈕。

      左邊的導航欄:導航欄是樹結構,列出了整個幫助文件的層次關系。

      右邊的內容視圖:內容視圖顯示的是當前選中頁面的內容。

      【彈窗】

      彈窗會在用戶要求顯示某個具體頁面的時候顯示,它只有一個內容視圖。

      【目錄】

      目錄就是在左邊導航欄顯示的內容,是樹狀的結構,是整個幫助文件系統的縮略顯示。當在顯示某個頁面時,對應的目錄項會處于高亮選中狀態。

      目錄的樹結構中的節點會是一對值,鍵值對應的是標簽也就是顯示的索引內容,映射值會是一個頁面路徑或者頁面路徑加參數指定某個區域。

      【內容頁】

      內容頁會基于HTML5, CSS。估計會有少量的邏輯代碼如Javascript, TypeScript等等。

      每個索引可以對應一個單獨的頁面或者頁面的某個區域。

      【索引】

      索引是指在目錄中的單個條目,在顯示對應的頁面時,索引項會高亮顯示。

      【全文字搜索】

      全文字搜索主要有如下特征:

      通過自然語言搜索:

      1.?????定位文檔

      2.?????定位段落

      3.?????顯示搜索的分數

      4.?????顯示匹配的個數

      5.?????搜索結果排序顯示

      6.?????搜索結果是目錄表中的索引項目

      (圖2)

      關于全文字搜索更多詳情,請參看:

      https://docs.oracle.com/cd/E19253-01/819-0913/author/search.html

      【上下文敏感幫助功能】

      這項功能是指:

      1.?????通過應用程序的幫助按鈕可以打開幫助系統的主界面

      2.?????通過F1可在應用程序的某個頁面打開對應的幫助系統的內容頁面

      更多詳情,請參看:

      https://docs.oracle.com/cd/E19253-01/819-0913/dev/csh.html

      【幫助文件管理靈活】

      這部分是說幫助文件的添加,刪除和修改比較容易。

      【開發建議】

      假定我們開始自研這個功能,需要先拿一個項目做實驗。

      步驟一:根據目前的幫助文檔樣式,寫出對應的網站應用幫助文檔。新的應用要具有以上描述的必要功能?;旧鲜侵赜矛F有的HTML和CSS。

      步驟二:在享有的項目中寫一個Helper工具類調用打開對應的頁面。

      步驟三:對比前后兩套系統的差別,查漏補缺,繼續優化,直至滿意。

      步驟四:抽象出共性組件,一個是Helper工具類,一個是前端應用創建模板化。

      1.?????Helper工具類:?這一部分相對直接一些。就是通過這個工具類在現有的項目中顯示幫助文件。

      2.?????前端應用創建模板化。這一部分的工作跟現有的幫助文件創建差不多,都是構造HTML和CSS。構造方式和工具上會略有差別。

      【擴展性】

      目前的JavaHelp系統是在桌面應用系統下使用的。經過自研開發以后,由于采用了獨立的前端應用,其支持的系統廣度會大大提高,不僅可以支持桌面應用,而且還可以在任何能支持現代前端應用的平臺上使用。

      【小結】

      做桌面的幫助系統開發中,?JavaHelp是Java桌面系統的標準程序庫。?HelpProvider是.Net桌面環境下開發幫助系統的標準程序庫。

      然而,以上兩種技術都已經無法或者很難支持HTML5的內容需求。因此,我們對于幫助系統的開發需要嘗試新的技術領域。

      JavaHelp幫助文件功能自研替換的可行性研究

      本文從幫助系統的需求出發,以前端應用開發為假定替換技術,做了一個探索性的思考,希望對以后的工作有所幫助。請大家多多評論,留言,批評和指正。

      Java web前端

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:基于ZYNQ的CameraLink圖像采集與邊緣檢測開發詳解
      下一篇:HarmonyOS 工程【鴻蒙開發 02】
      相關文章
      亚洲色大情网站www| 亚洲性猛交xx乱| 亚洲国产精华液2020| 亚洲一区电影在线观看| 亚洲免费在线视频播放| 亚洲免费闲人蜜桃| 亚洲校园春色另类激情| 亚洲一卡二卡三卡| 亚洲精品美女网站| 国产成人亚洲合集青青草原精品 | 狠狠色婷婷狠狠狠亚洲综合| 亚洲国产午夜精品理论片在线播放 | 亚洲色欲色欱wwW在线| 天天爽亚洲中文字幕| 中文字幕亚洲码在线| 亚洲另类无码专区首页| 亚洲成av人片在线天堂无| 狼人大香伊蕉国产WWW亚洲| 天堂亚洲免费视频| 久久99亚洲综合精品首页 | 亚洲高清中文字幕综合网| 亚洲精品资源在线| 亚洲一区中文字幕| 亚洲欧洲无码一区二区三区| 亚洲av日韩精品久久久久久a| 最新亚洲人成无码网站| 亚洲人成无码网站久久99热国产| 区久久AAA片69亚洲| 亚洲AV无码一区二区二三区软件| 亚洲午夜免费视频| 亚洲男人的天堂久久精品| 亚洲精品无码久久久久APP| 无码欧精品亚洲日韩一区夜夜嗨 | 区久久AAA片69亚洲| 亚洲av日韩av高潮潮喷无码| 18gay台湾男同亚洲男同| 亚洲一本之道高清乱码| 午夜亚洲WWW湿好爽| 国产成人亚洲综合| 亚洲av无码潮喷在线观看 | 亚洲福利视频一区二区三区|