FlexGantt
將專業的甘特圖添加到您的 Java 應用程式。
由以下開發商製作:DLSC
ComponentSource 開始代理銷售的日期:2007年
將專業的甘特圖添加到您的 Java 應用程式。
FlexGantt 是一個先進的甘特圖用戶介面,可進行Swing,允許用戶與專案計畫和日程結果進行交互。 採用FlexGantt的應用程式幾乎可以以任何方式對甘特構件進行定制化。 不僅與timeline相關的數據的渲染和編輯可以更改,整個構件的行為也可以更改。 這可以通過可插策略的實施來實現,每項策略可對甘特圖的某個因素的行為進行控制。 FlexGantt 採用極高的抽象水準,可用於各種,通常是相當不同的領域,例如專案規劃(資源、人、任務),ERP系統,生產規劃和日程應用程式,製造試試系統或專案組合管理應用程式。
FlexGantt 採取了和Swing所採用的MVC途徑相同的途徑。 為了多種用途,採用了幾種不同的模型。 日曆模型可對假日和週末進行跟蹤。 分頁模型支持用戶載入不同的規劃水準,書簽模型可保存應用程式和用戶定義的書簽。 最主要的模型,即為甘特圖構件輸入數據的模型是甘特圖模型。 這是樹形表模型的擴展,可以將甘特圖的左側進行數據匯總(左側是一個樹形表)。 FlexGantt 還能返回所謂的timeline專案,這些專案顯示在timeline下方的右側。 Timeline 對象代表行為、任務、事件、里程表,基本上任何可放置在timeline上的內容,因為可以與一個時間點或時間跨度相關聯。
FlexGantt的主要功能:
分離屏/雙甘特圖: 幾乎任何規劃和日程應用程式都需要的功能是使兩個不同的模型或同一個模型的兩個不同部分在保持同步的同時,進行水準滾動。 FlexGantt框架包含一個雙甘特圖,可實現上述功能。 用戶可在任何時候對甘特圖進行分隔/消除分隔。 可用一個水準分隔符號來對上、下部分進行縮放。 Timeline對象可以從一個拖動到另一個。
書簽: 用戶將越來越適應書簽的概念。 FlexGantt 支持書簽,而用戶可通過書簽來對timeline的設置進行快速調整,以便在甘特圖中顯示特定的時間點、粒度和水平線。 定義的書簽可在導航控件的功能選單中列出。 如果在用戶點擊功能選單按鈕時,如果控件的按鈕按下,則時間跨度書簽的預覽圖會顯示。
層: FlexGantt 採用了一個與圖形和映射應用程式相比非常獨特的分層途徑。 每個甘特圖都包含一套系統層,這些層可提供核心的功能(例如,繪製垂直網格線)和一套專對timeline對象(行為、時間、里程碑。。。)進行繪製的層。 下圖是對層疊的描述。 應用程式可以加入盡可能多的timeline對象層,允許它們對對象進行輕鬆分組,並一次顯示或隱藏。 層還支持透明度,從而可以輕鬆的識別重疊的timeline對象。
拖 & 放網格 : Timeline 對象可以進行水準拖動和縮放,也可以垂直拖動。 在這些拖& 放操作過程中支持不可見的網格,以便在特定的時間對timeline對象的放置進行簡化。 網格受策略的控制,這就意味著任何種類的網格都可以運行。 默認的網格策略可在經過配置後,使timeline對象與任何單位聯繫起來,從千年、世紀、十年、年、月、周、日直到毫秒。
受策略控制的行為: 日程應用程式在很大程度上取決於資訊的可視化、數據的編輯以及對用戶交互行為的回應方式。 FlexGantt的策略框架可用於根據這些變數對甘特圖進行定制。 策略是小型的決策工具,通常不含大量的代碼。 它們同時是無狀態的。 在許多情況下,它們只返回flag (布爾值)和命令。 flag可用於控制程式流,而命令用於進行數據的實際修改(通過一個具有撤銷和重複功能的命令堆疊)。
可插的渲染程式& 編輯器: Swing 可定義多個渲染程式和編輯器類,可用於其用戶介面構件,如樹、表或列表。 FlexGantt的功能與此相同,並可為樹形表單元格、列表頭、彈出功能選單、日期線模型、timeline對象、eventline對象定義渲染程式。 樹形表單元格和timeline對象具有編輯器。 timeline 對象編輯器可在甘特圖的右手測一個透明窗口中顯示(在位編輯,見下圖)
彈出功能選單/注釋: 位於timeline下的條可以很好的表示一個新崗位,但由於空間的局限,只能承載有限的資訊。 彈出功能選單/注釋可在滑鼠在這樣條上移動時出現,這是一個很好的功能,可顯示豐富的附加資訊,可供決策人在對日程作出決策之前進行參考。 FlexGanttd的彈出功能選單可以和Swing的構件相同的方式進行定制化。 不同的渲染程式可以封裝到不同類型的彈出對象中。 彈出對象受專門的彈出策略的影響。 下圖顯示的是默認的彈出渲染程式,可以系列化的形式顯示彈出對象。
列印: 甘特圖中顯示的計畫是一個文檔,而每個文檔都必須是可列印的。 內建的對FlexGantt的列印支持可讓用戶指定列印的時間跨度和粒度 (見下圖)。 結果圖示可以以幾種不同的頁寬和頁高列印。
關係: Timeline對象通常彼此之間具有某種關係。 專案規劃軟體通常規定它們之間的限制。 這些限制的例子有: '之後開始', '之前結束', '同時開始', '同時結束'。 FlexGantt可通過在這些對象之間劃線來進行可視化。 每個應用程式都有自己的可視化方式(為不同的限制關係提供不同的顏色和/或線型)。 通過插入定制的關係生成器,可進行任何種類的關係生成。
延遲加載(Lazy loading): 需要可視化的數據的兩可能會很大,這取決於應用程式的類型。 在這些情況下,只有在採用“延遲加載”的方法時,用戶介面才可能快速回應,這就是說,數據只有在用戶實際發出請求的情況下才會從伺服器(或資料庫)中傳輸。 FlexGantt是從最底層開始設計的,支持延遲加載。 例如: 可實現樹形表展開監聽器介面的對象會在樹甚至還未展開之前就收到一個事件,以便將展開中的父節點的子節點載入。 分頁模型是另一個支持延遲加載的基礎結構的例子。
命令框架: FlexGantt 提供了一個雖小但強大的命令框架。 該框架可用於對可以撤銷和重複的編輯功能提供支持。 該框架包括命令、一個命令堆疊、一個命令堆疊監聽器和一個進度監控。 命令可通過甘特圖運行、撤銷和重複,而甘特圖在內部採用了一個可更換的命令堆疊。 命令可在自己的線程內運行,以便保持用戶介面的回應性。 命令堆疊事件是在命令的執行過程中發出的。 進度監控程式可用於顯示命令的進度。 子進度監控程式用於由其他命令組成的組合命令。 一旦一個命令執行完畢,將會加入命令堆疊的不可執行命令列表。 當一個不可撤銷的命令運行時,列表會清空。 命令框架是高度抽象化的,因而可對現有的基礎結構(遺留代碼)進行複用。
分頁: 如果一個日程應用程式需要處理大量的timeline對象,通常將timeline的水平線分成幾頁/幾個時間跨度通常是有意義的。 這樣可將數據分成幾個較小的片段,便於甘特圖的處理。 分頁模組可對各頁進行管理。 可查詢當前頁、前頁、下一頁、首頁和最後一頁。 用戶介面提供了一個控件,可用於選擇單獨的頁。
可變行高: FlexGantt圖的每一行都可以有自己的高度。 在樹形表的節點代表不同類型的對象或如果每個節點都與某個數量相關時,此功能非常有用。 在此情況下,行高可反映出數量的大小(例如某種資源的容量)。
多列排序: 為與甘特圖的左手測的樹形表支持多列排序,即用戶可同時選擇幾個樹形表的列,而表中的數據會根據選擇的情況進行排序。 FlexGantt 採用了一種快速排序演算法,支持昇冪和降序排序。
可定制的Timeline: 每個應用程式都有各自關於timeline的要求。 有些要求在日期的旁邊顯示是當年的第幾周,其他的可能要求顯示是當年的第幾天(例如'第241天')。 timeline的設計宗旨考慮了靈活性。 其模型可以更換、其生成器可以被更換,甚至整個timeline都可以被定制的子類替換。
日曆模型 : 日曆模型可為甘特圖提供與週末、假日或任何特殊的時間跨度相關的數據。 日曆模型的條目在整個層容器的高度內進行渲染(右手測)。 關於日曆模型的最明顯的例子是對視為週末的星期進行定義。 週末日的背景呈灰色。
自滾動: 如果FlexGantt圖頻繁對其“當前時間/系統時間”進行更新,有時最好讓應用程式關注這一時間。 當允許自滾動時,當前時間游標(垂直的虛線)會保持在層容器的中心,即便在時間前進時也是如此。 在應用程式更多地強調監控功能,而不是交互進度功能時,這是一種非常有用的功能。
Multiline: multiline功能允許甘特圖在同一行中,以上下疊放的凡是顯示timeline對象。 這樣,可能發生重疊的timeline對象就可以正常顯示了。