FlexGantt 控制元件是現在Java 平臺下最先進的甘特圖解決方案,使用一個很高的抽象層次,能適用於多種不同的域,例如 ERP 系統、生產計劃和日程安排、製造流程系統或專案公文管理程式等。這些使得 FlexGantt 能從其他有侷限性的專案計劃(資源、人、任務)甘特相簿中脫穎而出。
具體功能:
原文來自http://www.51diaodu.com/pdt/2966
- 模型檢視控制器:
FlexGantt 遵從與 Swing 相同 MVC 方法。許多不同的模型用於各種各樣的用途。一個日曆模型跟蹤假日和週末。一個頁面模型支援使用者載入不同的計劃範圍,一個書籤模型儲存了應用程式和使用者自定義書籤。然而,首要的模型是甘特圖,它為甘特圖元件提供資料。它是樹狀圖模型的延伸,因此它能在甘特圖的左手邊填上資料(左手邊是樹狀圖)。它同樣返回成為時間線的物件顯示在右手邊時間線的下方。時間線物件代表活動、工作、事件、重要事件,甚至任何可以放在時間線上的事情,因為它可以被連線到時間點或時間區。下面的圖片顯示了甘特圖模型的結構。 - 分屏/雙甘特圖:
幾乎所有計劃和排程程式都需要在水平捲動時保持兩個不同模型或同一模型內兩個不同部分的資料一致。FlexGantt 框架包括一個雙甘特圖可以實現上述目標。使用者可以在任何時間分割/取消分割甘特圖。水平分割線能用於調整上下兩部分大小。時間線物件可以從一個拖至另一個。
- 書籤:
使用者日益習慣於書籤的概念。FlexGantt 同樣支援它們,而且使用者可以使用它們來快速調整時間線設定,這樣一個特定的時間點、間隔和範圍會被顯示在甘特圖上。定義過的書籤被列在選單的導航控制元件中。當用戶點選選單按鈕時,如果控制鍵被按下,將會顯示被標籤的時間間隔的小預覽圖片。
- 層:
FlexGantt 使用獨特的層方法,該方法因在圖片和繪圖程式中的使用而聞名。每個甘特圖由兩個層集合組成,系統層集合提供核心功能(例如繪製垂直網格線),另一個層集合繪製時間線物件(活動、事件、重要事件)。下面的圖片顯示了層棧。程式可以增加任意多的時間線物件層,可以容易地一次完成分組物件、顯示/隱藏的功能。層同樣支援透明化,因此層疊時間線物件能夠容易地被識別。
- 拖放網格:
時間線物件可以被水平拖動、縮放和垂直拖動。一個可見網格能被拖放操作啟用,所以時間線物件可以更容易地被放置在特定時間。網格由策略控制,意味著任何種類的網格都可以被完成。可以設定預設網格策略使得時間線物件可以吸附到從千年、百年、十年、年、月、星期、日以至於毫秒的任何時間。 - 策略控制行為:
排程程式在顯示資訊、編輯資料、響應使用者互動方面有著千差萬別。FlexGantt 的策略框架能夠根據這些不同而被用於設定相適應的甘特圖。策略是小的決定者,通常不包含很多的程式碼。它們同樣是無狀態的。在許多情況下,它們僅僅返回標記(booleans)和命令。標記用作控制程式流,而命令被用作實現實際的資料修改(通過一個包含撤銷和恢復的命令棧)。
- 可插入顯示和編輯器:
Swing 定義了許多顯示和編輯類用作它的使用者介面元件,例如樹、表格或列表。FlexGantt 與之相同,定義了樹表單元、列頭、彈出、日期線模型、時間線物件、事件線物件的顯示。時間線物件編輯器在甘特表左手邊的透明窗口裡顯示(見下圖)。
- 彈出/註釋:
時間線下方的欄是顯示一個事件的好區域,但是由於空間限制,它只能顯示有限的資訊。當滑鼠指標懸停在這一欄上,顯示彈出/註釋是一個很好的特性,這樣就能顯示足夠多的資訊,提供給計劃者用作制訂排程決定。FlexGantt 的彈出可以與 Swing 元件一樣被自定義。不同的顯示可以被對映到不同種類的彈出物件。彈出物件由特定的彈出策略匯出。下面的圖片顯示了預設的彈出顯示,它顯示了序列化形式的彈出物件。 - 列印:
甘特表顯示的計劃是一份文件,而任何文件都應該能列印。內建的列印支援使得使用者指定需要列印的時間範圍和間隔(見下圖)。結果表可以被列印成具有多頁的寬度和高度。
- 關係:
時間線物件之間具有某種關係是很普遍的。例如專案計劃軟體通常在它們之間定義約束。一些約束的例子:“在……之後開始”,“在……之前完成”,“同時開始”,“同時完成”。FlexGantt 通過繪製它們之間的線條來顯示關係。每個程式有自己的顯示方式(不同的約束有不同的顏色和/或不同的線風格)。通過插入自定義關係顯示,可以實現任何種類的關係顯示。
- 懶載入:
根據應用程式型別,需要顯示的資料量可能十分龐大。在這種情況下,只有使用“懶載入”方法,使用者介面才可以迅速和有較快響應。“懶載入”意味著資料只在使用者真正需要時,從伺服器(或資料庫)傳到客戶端。FlexGantt 從最底層設計支援懶載入。例如:實現樹表展開監聽介面的物件將在樹展開前收到一個事件,這樣,父節點的子節點可以被載入。頁面模型是另一個支援懶載入架構的例子。 - 命令框架:
FlexGantt 提供一個小但強大的命令框架。它被用來支援編輯操作的撤銷和恢復。命令框架包含命令、命令棧、命令棧監聽器和進度監視器。命令通過甘特表被執行、撤銷和恢復,甘特表內部使用一個可置換的命令棧。為了保證使用者介面的相應,命令在自己的執行緒中進行。命令棧事件在命令執行時被提交。進度監視器用來顯示命令的進度。子進度監視器用來監視包含其他許多命令的混合命令。一旦一個命令結束執行,它將被加入到命令棧的撤銷列表中。當一個命令被執行而無法撤銷時,這一列表將被清空。命令框架使用一個高階抽象層次,這一已存在的命令架構(傳統程式碼)可以被重用。
- 頁面:
如果一個排程程式需要處理大量的時間線物件,分割時間線到若干頁/時間跨度是有必要的。這一方式將資料分為小塊,甘特表可以更加容易地處理。頁模型處理單獨的頁面。可以在當前頁、前一頁、後一頁、首頁和尾頁查詢。使用者介面提供一個控制元件用於選擇單獨頁面。
- 可變行高:
FlexGantt 圖的每行可以有自己的高度。這樣特性在樹表節點代表不同型別的物件或一個量與每個節點相關聯是十分有用。在此情況下,行高可以反映這樣量(例如一個資源的容量)。
- 多行排序:
甘特圖左手邊的樹表支援多行排序,意味著使用者可以同時選擇多個樹表列,表中資料將基於此選擇排列。 FlexGantt 使用快速排序演算法進行排序,支援升/降序排列。
- 可自定義時間線:
每個程式有著對時間線的自定義的特殊要求。一些需要在日期旁顯示週數,另一些則需要顯示天數(例如“第241天”)。時間線可以靈活設計。它的模型可以被替換,它的顯示可以被替換,甚至整個時間線可以被替換為自定義子類。
- 日曆模型:
日曆模型提供甘特圖中有關週末、假日、或任何特殊時間範圍的資料。日曆模型的入口顯示在整個層容器的高度(右手邊)。最顯著的使用日曆模型的例子是對週末的定義。週末的背景將會以灰色顯示。
- 自動捲動:
如果 FlexGantt 圖頻繁更新它的“現在時間/系統時間”,有時使程式注意這樣時間是有必要的。當自動捲動被啟用,現在時間游標(垂直虛線)將提留在層容器的中央,即使時間流逝。當程式具有更多監視功能而不是互動排程功能時,這是一個非常有用的特性。
- 多線:
多線特性使得甘特表在同一行上下顯示時間物件。這樣原可能互相重疊的時間線物件可以正常顯示。
- 下載試用
產品 |
|
FlexGantt 試用版 (38 MB) |
試用版下載 |