上海道寧信息科技有限公司
參考價(jià): | 面議 |
- 產(chǎn)品型號(hào)
- 品牌
- 其他 廠商性質(zhì)
- 所在地
訪問次數(shù):238更新時(shí)間:2021-09-15 11:29:46
-
FlexGantt 是當(dāng)前 Java 中 *的甘特圖解決方案。FlexGantt 使用一個(gè)很高的抽象層次,能適用于多樣的、通常是不同的域,例如 ERP 系統(tǒng)、生產(chǎn)計(jì)劃和調(diào)度程序、制造執(zhí)行系統(tǒng)或項(xiàng)目公文管理程序。這些使得 FlexGantt 能從其他有局限性的項(xiàng)目計(jì)劃(資源、人、任務(wù))甘特圖庫(kù)中脫穎而出。
特征綜述 About Feature
模型視圖控制器:
FlexGantt 遵從與 Swing 相同 MVC 方法。許多不同的模型用于各種各樣的用途。一個(gè)日歷模型跟蹤假日和周末。一個(gè)頁(yè)面模型支持使用者加載不同的計(jì)劃范圍,一個(gè)書簽?zāi)P痛鎯?chǔ)了應(yīng)用程序和用戶自定義書簽。然而,首要的模型是甘特圖,它為甘特圖組件提供數(shù)據(jù)。它是樹狀圖模型的延伸,因此它能在甘特圖的左手邊填上數(shù)據(jù)(左手邊是樹狀圖)。它同樣返回成為時(shí)間線的對(duì)象顯示在右手邊時(shí)間線的下方。時(shí)間線對(duì)象代表活動(dòng)、工作、事件、重要事件,甚至任何可以放在時(shí)間線上的事情,因?yàn)樗梢员贿B接到時(shí)間點(diǎn)或時(shí)間區(qū)。下面的圖片顯示了甘特圖模型的結(jié)構(gòu)。
分屏/雙甘特圖:
幾乎所有計(jì)劃和調(diào)度程序都需要在水平卷動(dòng)時(shí)保持兩個(gè)不同模型或同一模型內(nèi)兩個(gè)不同部分的數(shù)據(jù)一致。FlexGantt 框架包括一個(gè)雙甘特圖可以實(shí)現(xiàn)上述目標(biāo)。用戶可以在任何時(shí)間分割/取消分割甘特圖。水平分割線能用于調(diào)整上下兩部分大小。時(shí)間線對(duì)象可以從一個(gè)拖至另一個(gè)。書簽:
用戶日益習(xí)慣于書簽的概念。FlexGantt 同樣支持它們,而且用戶可以使用它們來快速調(diào)整時(shí)間線設(shè)置,這樣一個(gè)特定的時(shí)間點(diǎn)、間隔和范圍會(huì)被顯示在甘特圖上。定義過的書簽被列在菜單的導(dǎo)航控件中。當(dāng)用戶點(diǎn)擊菜單按鈕時(shí),如果控制鍵被按下,將會(huì)顯示被標(biāo)簽的時(shí)間間隔的小預(yù)覽圖片。層:
FlexGantt 使用*的層方法,該方法因在圖片和繪圖程序中的使用而聞名。每個(gè)甘特圖由兩個(gè)層集合組成,系統(tǒng)層集合提供核心功能(例如繪制垂直網(wǎng)格線),另一個(gè)層集合繪制時(shí)間線對(duì)象(活動(dòng)、事件、重要事件)。下面的圖片顯示了層棧。程序可以增加任意多的時(shí)間線對(duì)象層,可以容易地一次完成分組對(duì)象、顯示/隱藏的功能。層同樣支持透明化,因此層疊時(shí)間線對(duì)象能夠容易地被識(shí)別。拖放網(wǎng)格:
時(shí)間線對(duì)象可以被水平拖動(dòng)、縮放和垂直拖動(dòng)。一個(gè)可見網(wǎng)格能被拖放操作激活,所以時(shí)間線對(duì)象可以更容易地被放置在特定時(shí)間。網(wǎng)格由策略控制,意味著任何種類的網(wǎng)格都可以被完成。可以設(shè)置默認(rèn)網(wǎng)格策略使得時(shí)間線對(duì)象可以吸附到從千年、百年、十年、年、月、星期、日以至于毫秒的任何時(shí)間。策略控制行為:
調(diào)度程序在顯示信息、編輯數(shù)據(jù)、響應(yīng)用戶交互方面有著千差萬(wàn)別。FlexGantt 的策略框架能夠根據(jù)這些不同而被用于設(shè)定相適應(yīng)的甘特圖。策略是小的決定者,通常不包含很多的代碼。它們同樣是無狀態(tài)的。在許多情況下,它們僅僅返回標(biāo)記(booleans)和命令。標(biāo)記用作控制程序流,而命令被用作實(shí)現(xiàn)實(shí)際的數(shù)據(jù)修改(通過一個(gè)包含撤銷和恢復(fù)的命令棧)。可插入顯示和編輯器:
Swing 定義了許多顯示和編輯類用作它的用戶界面組件,例如樹、表格或列表。FlexGantt 與之相同,定義了樹表單元、列頭、彈出、日期線模型、時(shí)間線對(duì)象、事件線對(duì)象的顯示。時(shí)間線對(duì)象編輯器在甘特表左手邊的透明窗口里顯示(見下圖)。彈出/注釋:
時(shí)間線下方的欄是顯示一個(gè)事件的好區(qū)域,但是由于空間限制,它只能顯示有限的信息。當(dāng)鼠標(biāo)指針懸停在這一欄上,顯示彈出/注釋是一個(gè)很好的特性,這樣就能顯示足夠多的信息,提供給計(jì)劃者用作制訂調(diào)度決定。FlexGantt 的彈出可以與 Swing 組件一樣被自定義。不同的顯示可以被映射到不同種類的彈出對(duì)象。彈出對(duì)象由特定的彈出策略導(dǎo)出。下面的圖片顯示了默認(rèn)的彈出顯示,它顯示了序列化形式的彈出對(duì)象。打?。?/strong>
甘特表顯示的計(jì)劃是一份文檔,而任何文檔都應(yīng)該能打印。內(nèi)建的打印支持使得用戶需要打印的時(shí)間范圍和間隔(見下圖)。結(jié)果表可以被打印成具有多頁(yè)的寬度和高度。關(guān)系:
時(shí)間線對(duì)象之間具有某種關(guān)系是很普遍的。例如項(xiàng)目計(jì)劃軟件通常在它們之間定義約束。一些約束的例子:“在……之后開始",“在……之前完成",“同時(shí)開始",“同時(shí)完成"。FlexGantt 通過繪制它們之間的線條來顯示關(guān)系。每個(gè)程序有自己的顯示方式(不同的約束有不同的顏色和/或不同的線風(fēng)格)。通過插入自定義關(guān)系顯示,可以實(shí)現(xiàn)任何種類的關(guān)系顯示。懶載入:
根據(jù)應(yīng)用程序類型,需要顯示的數(shù)據(jù)量可能十分龐大。在這種情況下,只有使用“懶載入"方法,用戶界面才可以迅速和有較快響應(yīng)。“懶載入"意味著數(shù)據(jù)只在用戶真正需要時(shí),從服務(wù)器(或數(shù)據(jù)庫(kù))傳到客戶端。FlexGantt 從 底層設(shè)計(jì)支持懶載入。例如:實(shí)現(xiàn)樹表展開界面的對(duì)象將在樹展開前收到一個(gè)事件,這樣,父節(jié)點(diǎn)的子節(jié)點(diǎn)可以被載入。頁(yè)面模型是另一個(gè)支持懶載入架構(gòu)的例子。命令框架:
FlexGantt 提供一個(gè)小但強(qiáng)大的命令框架。它被用來支持編輯操作的撤銷和恢復(fù)。命令框架包含命令、命令棧、命和進(jìn)度監(jiān)視器。命令通過甘特表被執(zhí)行、撤銷和恢復(fù),甘特表內(nèi)部使用一個(gè)可置換的命令棧。為了保證用戶界面的相應(yīng),命令在自己的線程中進(jìn)行。命令棧事件在命令執(zhí)行時(shí)被提交。進(jìn)度監(jiān)視器用來顯示命令的進(jìn)度。子進(jìn)度監(jiān)視器用來監(jiān)視包含其他許多命令的混合命令。一旦一個(gè)命令結(jié)束執(zhí)行,它將被加入到命令棧的撤銷列表中。當(dāng)一個(gè)命令被執(zhí)行而無法撤銷時(shí),這一列表將被清空。命令框架使用一個(gè)高級(jí)抽象層次,這一已存在的命令架構(gòu)(傳統(tǒng)代碼)可以被重用。頁(yè)面:
如果一個(gè)調(diào)度程序需要處理大量的時(shí)間線對(duì)象,分割時(shí)間線到若干頁(yè)/時(shí)間跨度是有必要的。這一方式將數(shù)據(jù)分為小塊,甘特表可以更加容易地處理。頁(yè)模型處理單獨(dú)的頁(yè)面。可以在當(dāng)前頁(yè)、前一頁(yè)、后一頁(yè)、首頁(yè)和尾頁(yè)查詢。用戶界面提供一個(gè)控件用于選擇單獨(dú)頁(yè)面。可變行高:
FlexGantt 圖的每行可以有自己的高度。這樣特性在樹表節(jié)點(diǎn)代表不同類型的對(duì)象或一個(gè)量與每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)是十分有用。在此情況下,行高可以反映這樣量(例如一個(gè)資源的容量)。多行排序:
甘特圖左手邊的樹表支持多行排序,意味著用戶可以同時(shí)選擇多個(gè)樹表列,表中數(shù)據(jù)將基于此選擇排列。 FlexGantt 使用快速排序算法進(jìn)行排序,支持升/降序排列。可自定義時(shí)間線:
每個(gè)程序有著對(duì)時(shí)間線的自定義的特殊要求。一些需要在日期旁顯示周數(shù),另一些則需要顯示天數(shù)(例如“第241天")。時(shí)間線可以靈活設(shè)計(jì)。它的模型可以被替換,它的顯示可以被替換,甚至整個(gè)時(shí)間線可以被替換為自定義子類。日歷模型:
日歷模型提供甘特圖中有關(guān)周末、假日、或任何特殊時(shí)間范圍的數(shù)據(jù)。日歷模型的入口顯示在整個(gè)層容器的高度(右手邊)。 顯著的使用日歷模型的例子是對(duì)周末的定義。周末的背景將會(huì)以灰色顯示。自動(dòng)卷動(dòng):
如果 FlexGantt 圖頻繁更新它的“現(xiàn)在時(shí)間/系統(tǒng)時(shí)間",有時(shí)使程序注意這樣時(shí)間是有必要的。當(dāng)自動(dòng)卷動(dòng)被激活,現(xiàn)在時(shí)間光標(biāo)(垂直虛線)將提留在層容即使時(shí)間流逝。當(dāng)程序具有更多監(jiān)視功能而不是交互調(diào)度功能時(shí),這是一個(gè)非常有用的特性。多線:
多線特性使得甘特表在同一行上下顯示時(shí)間對(duì)象。這樣原可能互相重疊的時(shí)間線對(duì)象可以正常顯示。產(chǎn)品實(shí)際效果截圖: