The Flexgantt control is now the most advanced Gantt Chart solution under the Java platform, with a high level of abstraction that can be applied to many different domains, such as ERP systems, production planning and scheduling, manufacturing process systems, or project document management procedures. This allows Flexgantt to stand out from other, limited project plans (resources, people, tasks) in the Gantt Chart library.
Specific features:
Original from http://www.51diaodu.com/pdt/2966
- Model View Controller:
Flexgantt follow the same MVC approach as Swing. Many different models are used for a variety of purposes. A calendar model tracks holidays and weekends. A page model enables users to load different planning scopes, and a bookmark model stores applications and user-defined bookmarks. However, the primary model is the Gantt Chart, which provides data for the Gantt Chart component. It is an extension of the tree model, so it can fill the left-hand side of the Gantt Chart with data (tree-like on the left). It also returns the object that becomes the timeline below the right-hand timeline. A Timeline object represents an activity, work, event, important event, or even anything that can be placed on a timeline because it can be connected to a point in time or time zone. The following picture shows the structure of the Gantt Chart model.
- Split screen/double Gantt chart:
Almost all schedules and schedulers need to keep two different models or two different parts of the same model in a horizontal scroll. The FLEXGANTT framework includes a double Gantt chart to achieve this goal. The user can split/ungroup the Gantt chart at any time. Horizontal split lines can be used to adjust the size of the upper and lower two parts. A timeline object can be dragged from one to the other.
Users are increasingly accustomed to the concept of bookmarks. Flexgantt also supports them, and users can use them to quickly adjust the timeline settings so that a specific point-in-time, interval, and range are displayed on the Gantt chart. The defined bookmarks are listed in the navigation controls of the menu. When the user taps the menu button, if the control key is pressed, a small preview image of the time interval of the label will be displayed.
Flexgantt uses a unique layer approach, which is known for its use in graphics and drawing programs. Each Gantt chart consists of two layer collections, which provide core functionality (such as drawing vertical gridlines), and another layer collection to draw timeline objects (activities, events, important events). The following picture shows the layer stack. The program can add as many timeline object layers as possible, and it is easy to complete grouped objects, show/Hide functions at once. Layers also support transparency, so cascading timeline objects can be easily identified.
- Drag and drop grids:
Timeline objects can be dragged horizontally, scaled, and dragged vertically. A visible grid can be activated by a drag-and-drop operation, so the timeline object can be placed more easily at a specific time. The grid is controlled by policy, which means that any kind of grid can be completed. You can set the default grid policy so that the Timeline object can be adsorbed to any time from millennia, hundred years, ten years, years, months, weeks, days, or milliseconds.
- Policy Control Behavior:
Schedulers vary widely in displaying information, editing data, and responding to user interactions. The Flexgantt's policy framework can be used to set the appropriate Gantt chart based on these differences. A policy is a small decision-making person and usually does not contain much code. They are also stateless. In many cases, they only return tokens (booleans) and commands. tags are used as program flow, and commands are used to implement actual data modifications (through a stack of commands containing undo and redo).
- To insert the display and editor:
Swing defines a number of display and edit classes used as its user interface components, such as trees, tables, or lists. Flexgantt is the same as the display of the tree table cell, column header, popup, Date Line model, Timeline object, and Event line object. The Timeline Object Editor is displayed in a transparent window on the left-hand side of the Ganter (see).
- Popup/Comment:
The bar below the timeline is a good area to display an event, but because of space constraints, it can only display limited information. When the mouse pointer hovers over this column, displaying a popup/comment is a good feature that displays enough information for the planner to use to make scheduling decisions. The Flexgantt pop-up can be customized just like Swing components. Different displays can be mapped to different kinds of pop-up objects. The popup object is exported by a specific popup policy. The following picture shows the default pop-up display, which shows the popup object in the serialized form.
- Print:
The Gantt chart shows the plan as a document, and any document should be able to print. Built-in print support allows the user to specify the time range and interval to print (see). The result table can be printed as a width and height with multiple pages.
It is common to have some kind of relationship between timeline objects. For example, the project planning software typically defines constraints between them. Some examples of constraints: "in ... Then start "," in ... Finish "," start at the same time "," complete at the same time ". Flexgantt Show relationships by drawing the lines between them. Each program has its own display method (different constraints have different colors and/or different line styles). By inserting a custom relationship display, you can implement any kind of relationship display.
- Lazy Loading:
Depending on the type of application, the amount of data that needs to be displayed can be very large. In this case, the user interface can respond quickly and quickly only with the lazy load method. Lazy loading means that the data is only uploaded to the client from the server (or database) when the user really needs it. Flexgantt supports lazy loading from the bottommost design. For example, the object that implements the tree table expansion Listener interface receives an event before the tree expands, so that the child nodes of the parent node can be loaded. The page model is another example that supports lazy loading schemas.
- Command frame:
Flexgantt provides a small but powerful command framework. It is used to support the undo and redo of editing operations. The command framework contains commands, command stacks, command stack listeners, and progress monitors. Commands are executed, revoked, and restored through Ganter, and a replaceable command stack is used inside the Gantt table. To ensure that the user interface is appropriate, the command is carried out in its own thread. The command stack event is committed when the command executes. The progress monitor is used to display the progress of the command. The child Progress Monitor is used to monitor mixed commands that contain many other commands. Once a command finishes executing, it is added to the Undo list in the command stack. When a command is executed and cannot be undone, the list is emptied. The command framework uses an advanced level of abstraction, an existing command architecture (legacy code) that can be reused.
If a scheduler needs to handle a large number of timeline objects, it is necessary to split the timeline into several pages/time spans. This method divides the data into small chunks, and the Gantt table can be processed more easily. The page model processes individual pages. It can be queried on the current page, the previous page, the next page, the first and last pages. The user interface provides a control for selecting individual pages.
Each line of the Flexgantt chart can have its own height. Such an attribute is useful when a tree table node represents different types of objects or a quantity associated with each node. In this case, the row height can reflect such a volume (for example, the capacity of a resource).
The tree table on the left-hand side of the Gantt Chart supports multi-row sorting, meaning that users can select multiple tree table columns at the same time, and the data in the table is arranged based on this selection. The Flexgantt uses the quick sort algorithm to sort and support the ascending/descending arrangement.
- To customize the timeline:
Each program has special requirements for customizing the timeline. Some need to show the number of weeks next to the date, while others need to display the number of days (for example, "No. 241 Day"). The timeline can be flexibly designed. Its model can be replaced, its display can be replaced, and even the entire timeline can be replaced with custom subclasses.
The calendar model provides data for weekends, holidays, or any special time range in the Gantt chart. The entry for the calendar model is displayed at the height of the entire layer container (right hand side). The most notable example of using a calendar model is the definition of the weekend. The background of the weekend will be shown in gray.
If the Flexgantt diagram frequently updates its "current Time/System time", it is sometimes necessary to make the program aware of such time. When automatic scrolling is activated, the time cursor (the vertical dashed line) is now reserved in the center of the layer container, even when the time passes. This is a very useful feature when the program has more monitoring capabilities than the interactive scheduling feature.
- Multi-line:
The multiline feature allows the Ganter to display time objects on the same line. This allows the timeline objects that might overlap each other to display normally.
Products |
Flexgantt Trial Version (in MB) |
Download the trial version |
Java Gantt Chart control swing version free