對于希望將基于視覺化的時間添加到Java應(yīng)用程序或applet的開發(fā)者來說,MiG Calendar日歷控件是最佳的選擇,因為您能非常簡單地將它添加到您的工程中。與簡單的日期挑選程序以及日程控件不同的是,MiG Calendar日歷程序能實現(xiàn)完全可配置功能以及具有廣泛的IDE整合功能。
MiG Calendar is a Java component that displays a visually very advanced calendar. What really differs this component from others is the extreme flexibility built in from the start, especially when it comes to the visual presentation and flexible layout. Everything visual is drawn in layers, called decorators, and they can easily be rearranged, modified, extended or recreated.
When we say extremely flexible, we really mean Extremely Flexible. The main reasons for this is:
- The visual style and layout are both theamable and the component includes a visual Theme Editor to edit and create Themes.
- Almost every aspect of the component can be "overridden" to implement totally new behaviors or visual effects.
- Overridable/exchangeable renderers are used extensively for creating the visuals. Those renderers are easy to extend or rewrite.
- Interfaces and abstract base classes have been used to the same degree as in Swing.
- MiG Calendar can be used as a date picker in a Combo Box, a generic calendar view, advanced date spinner(s) including support for date ranges or an API used for advanced date handling.
The component follows the MVC (Model View Controller) paradigm. This ensures that the decoupling of the visual part from the data. An example of this is the possibility to have many views of activities, say a day and a week view, and when you move or resize an activity in on view, the other view(s) are updated live.
When it comes to features, MiG Calendar is packed. It is made from the ground up with extensibility and configurability in mind. Instead of creating several components that looked like different types of calendars we created a single component that can be configured to look like any type of calendar. The advantage is that whatever the customer wants, you can provide.
MiG Calendar Compatibility
MiG Calendar is a Swing JavaBean component and as such should be used in client applications and applets. It works with, and is tested on:
Sun Java 1.4, 5.0, 6.0. IBM Java 1.4+, Excelsior JET Ahead of Time Compiler.
Some of the Features
 |
Extremely flexible API. Very easy to extend with new decorations and behaviors. |
 |
Very good performance with optimized rendering, making it possible to show tens of thousands of activities in one screen. |
 |
Flexible recurrence handling that supports all aspects of the iCalendar (RFC 2445) specification. |
 |
Date utility package included for handling advanced date and date range arithmetic such as iterating over time periods and rounding dates to boundaries. |
 |
Complete all-around header support with mouse interaction effects and events. This includes automatic scrolling and corner fill components. |
 |
Extensive event support. Almost any changes and interactions can be caught by listening for events. |
 |
Both an interface and implementing classes are included for handling the activities in the calendar. This makes it simple to integrate your existing classes, or create new ones, with MiG Calendar. |
 |
The JavaBeans provided have lots and lots of properties. There are many custom Property Editors that makes configuring the component easy. |
 |
The MiG AShape API for defining and painting the shapes that makes out the activities shown in the calendar, are very flexible and totally decoupled from the calendar layout itself. This governs for an until now unseen flexibility creating your own type of calendar. |
 |
The subsystem for importing, exporting and synchronizing the activities handled by the calendar is completely exchangeable and/or extendable. It would for instance be a simple thing to hook it up with a third party iCalendar parser to view and edit .ical files. A reference demo implementation of a .ical parser is included. There are also good Open Source parsers available. |
 |
The class hierarchy of MiG Calendar is simple yet very powerful. It is following the design patterns of Swing. The implementation packs a lot of customization without the need to subclass, but sub classing is still allowed and considered for in the design. |
 |
A vast number of utility classes and helper objects are included. |