亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
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的內容需求。因此,我們對于幫助系統的開發需要嘗試新的技術領域。
本文從幫助系統的需求出發,以前端應用開發為假定替換技術,做了一個探索性的思考,希望對以后的工作有所幫助。請大家多多評論,留言,批評和指正。
Java web前端
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。