summaryrefslogtreecommitdiff
path: root/libs/FLib/JCalendar
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2009-03-04 17:31:40 +0000
committerPaul Buetow <paul@buetow.org>2009-03-04 17:31:40 +0000
commit9129838d208c0df7293e5b757661125545cd6df8 (patch)
treecde0b095a7ad120b68450f705d8fc16d278bfff8 /libs/FLib/JCalendar
parente2c501ba5aaffd9d5ace6bc1706353d9f83329b7 (diff)
flib added
Diffstat (limited to 'libs/FLib/JCalendar')
-rw-r--r--libs/FLib/JCalendar/License.txt123
-rw-r--r--libs/FLib/JCalendar/README.txt27
-rw-r--r--libs/FLib/JCalendar/build.xml121
-rw-r--r--libs/FLib/JCalendar/doc-templates/License.html180
-rw-r--r--libs/FLib/JCalendar/doc/example/Example1.java181
-rw-r--r--libs/FLib/JCalendar/doc/example/Example2.java173
-rw-r--r--libs/FLib/JCalendar/doc/examples.html66
-rw-r--r--libs/FLib/JCalendar/doc/features.html58
-rw-r--r--libs/FLib/JCalendar/doc/images/Logo.pngbin0 -> 38186 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-meta-noedit.gifbin0 -> 5036 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-metal-all.gifbin0 -> 6029 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-skin1.gifbin0 -> 12423 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-skin2.gifbin0 -> 12928 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-skin3.gifbin0 -> 7246 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-panel-metal-all.gifbin0 -> 5131 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-panel-metal-french.gifbin0 -> 4746 bytes
-rw-r--r--libs/FLib/JCalendar/doc/index.html64
-rw-r--r--libs/FLib/JCalendar/doc/resources.html81
-rw-r--r--libs/FLib/JCalendar/doc/screenshots.html65
-rw-r--r--libs/FLib/JCalendar/doc/stylesheet.css48
-rw-r--r--libs/FLib/JCalendar/doc/tutorial.html149
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/Bundle.properties45
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/DateEvent.java86
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/DateListener.java46
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/JCalendar.java1681
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/JCalendarCombo.java1448
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Back16.gifbin0 -> 130 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Back24.gifbin0 -> 164 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward16.gifbin0 -> 200 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward24.gifbin0 -> 279 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward16.gifbin0 -> 186 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward24.gifbin0 -> 247 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind16.gifbin0 -> 200 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind24.gifbin0 -> 279 bytes
-rw-r--r--libs/FLib/JCalendar/project.dtd5193
35 files changed, 9835 insertions, 0 deletions
diff --git a/libs/FLib/JCalendar/License.txt b/libs/FLib/JCalendar/License.txt
new file mode 100644
index 0000000..be12e9d
--- /dev/null
+++ b/libs/FLib/JCalendar/License.txt
@@ -0,0 +1,123 @@
+ Artistic License
+
+Preamble
+
+The intent of this document is to state the conditions under which a
+Package may be copied, such that the Copyright Holder maintains some
+semblance of artistic control over the development of the package,
+while giving the users of the package the right to use and distribute
+the Package in a more-or-less customary fashion, plus the right to
+make reasonable modifications.
+
+Definitions:
+
+ * "Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files
+ created through textual modification.
+
+ * "Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes of
+ the Copyright Holder.
+
+ * "Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.
+
+ * "You" is you, if you're thinking about copying or distributing
+ this Package.
+
+ * "Reasonable copying fee" is whatever you can justify on the
+ basis of media cost, duplication charges, time of people
+ involved, and so on. (You will not be required to justify it to
+ the Copyright Holder, but only to the computing community at
+ large as a market that must bear the fee.)
+
+ * "Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item.
+ It also means that recipients of the item may redistribute it
+ under the same conditions they received it.
+
+1. You may make and give away verbatim copies of the source form of
+ the Standard Version of this Package without restriction, provided
+ that you duplicate all of the original copyright notices and
+ associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A
+ Package modified in such a way shall still be considered the
+ Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way,
+ provided that you insert a prominent notice in each changed file
+ stating how and when you changed that file, and provided that you
+ do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise make
+ them Freely Available, such as by posting said modifications to
+ Usenet or an equivalent medium, or placing the modifications on
+ a major archive site such as ftp.uu.net, or by allowing the
+ Copyright Holder to include your modifications in the Standard
+ Version of the Package.
+
+ b) use the modified Package only within your corporation or
+ organization.
+
+ c) rename any non-standard executables so the names do not
+ conflict with standard executables, which must also be
+ provided, and provide a separate manual page for each
+ non-standard executable that clearly documents how it differs
+ from the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the
+ following:
+
+ a) distribute a Standard Version of the executables and library
+ files, together with instructions (in the manual page or
+ equivalent) on where to get the Standard Version.
+
+ b) accompany the distribution with the machine-readable source of
+ the Package with your modifications.
+
+ c) accompany any non-standard executables with their corresponding
+ Standard Version executables, giving the non-standard
+ executables non-standard names, and clearly documenting the
+ differences in manual pages (or equivalent), together with
+ instructions on where to get the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of
+ this Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial)
+ software distribution provided that you do not advertise this
+ Package as a product of your own.
+
+6. The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whomever
+ generated them, and may be sold commercially, and may be aggregated
+ with this Package.
+
+7. C or perl subroutines supplied by you and linked into this Package
+ shall not be considered part of this Package.
+
+8. Aggregation of this Package with a commercial distribution is
+ always permitted provided that the use of this Package is embedded;
+ that is, when no overt attempt is made to make this Package's
+ interfaces visible to the end user of the commercial distribution.
+ Such use shall not be construed as a distribution of this Package.
+
+9. The name of the Copyright Holder may not be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.
+
+10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+
+The End
diff --git a/libs/FLib/JCalendar/README.txt b/libs/FLib/JCalendar/README.txt
new file mode 100644
index 0000000..8c51360
--- /dev/null
+++ b/libs/FLib/JCalendar/README.txt
@@ -0,0 +1,27 @@
+ JCalendar
+
+This package provides a Calendar component for use in Java programs.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the Artistic License. You should have received a
+copy of the Artistic License along with this program (in file
+License.txt). If not, a copy is available at
+
+ http://opensource.org/licenses/artistic-license.php
+
+To build it you'll need Ant. I used version 1.6.2. Use
+
+ ant all
+
+This will create build/jcalendar.jar. To create the API documentation, use
+
+ ant javadoc
+
+To view all the documentation, view doc/index.html.
+
+There is a tutorial in doc/tutorial.html. There are also two sample
+Java program that uses the JCalendar package. You can build and run
+these programs with
+
+ ant runExample1
+ ant runExample2
diff --git a/libs/FLib/JCalendar/build.xml b/libs/FLib/JCalendar/build.xml
new file mode 100644
index 0000000..1bef6f7
--- /dev/null
+++ b/libs/FLib/JCalendar/build.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "project.dtd">
+
+<project basedir="." default="all" name="JCalendar">
+
+ <!-- Set up the classpath for compilation and execution -->
+
+ <path id="project.class.path">
+ <pathelement location="."/>
+ <!-- <pathelement location="../../../MediaTracker/Jars/skinlf.jar"/> -->
+ </path>
+
+ <!-- Common settings for all targets -->
+
+ <target name="init" description="Initialize.">
+ <tstamp/>
+ </target>
+
+ <!-- Compile everything -->
+
+ <target depends="init" name="compile" description="Compile the project.">
+ <javac debug="true" deprecation="true" destdir="." srcdir=".">
+ <include name="org/freixas/**"/>
+ <include name="doc/example/**"/>
+ <classpath refid="project.class.path"/>
+ </javac>
+ </target>
+
+ <!-- Place the class files in a jar file -->
+
+ <target depends="compile" name="jar" description="Create a jar file.">
+ <mkdir dir="build"/>
+ <jar basedir="." compress="false" jarfile="build/jcalendar.jar">
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <section name="JCalendar">
+ <attribute name="Specification-Title" value="JCalendar Library"/>
+ <attribute name="Specification-Version" value="${version}"/>
+ <attribute name="Implementation-Title" value="JCalendar"/>
+ <attribute name="Implementation-Version" value="${version} ${TODAY}"/>
+ </section>
+ </manifest>
+ <exclude name="**/*.java"/>
+ <exclude name="doc"/>
+ <exclude name="build"/>
+ <include name="org/freixas/jcalendar/*.class"/>
+ <include name="**/*.gif"/>
+ <include name="**/*.properties"/>
+ </jar>
+ </target>
+
+ <!-- Build all -->
+
+ <target depends="jar" name="all" description="Build everything.">
+ <echo message="JCalendar library built."/>
+ </target>
+
+ <!-- Run Example1 -->
+
+ <target depends="compile" name="runExample1" description="Run Example1.">
+ <java classname="doc.example.Example1" failonerror="true" fork="true">
+ <classpath refid="project.class.path"/>
+ </java>
+ </target>
+
+ <!-- Run Example2 -->
+
+ <target depends="compile" name="runExample2" description="Run Example2.">
+ <java classname="doc.example.Example2" failonerror="true" fork="true">
+ <classpath refid="project.class.path"/>
+ </java>
+ </target>
+
+ <!-- Build the documentation -->
+
+ <target depends="init" name="javadoc" description="Javadoc for JCalendar.">
+ <mkdir dir="doc/api"/>
+ <copy todir="doc/api">
+ <fileset dir="doc-templates">
+ <include name="**/*.html"/>
+ </fileset>
+ </copy>
+ <javadoc
+ sourcepath="org"
+ destdir="doc/api"
+ use="true"
+ author="true"
+ windowtitle="JCalendar"
+ footer="&lt;small&gt;Copyright &#169; 2004-2005 Antonio Freixas&lt;br&gt;Licensed under the &lt;a href='{@docRoot}/License.html' target='_top'&gt;Artistic License&lt;/a&gt;&lt;/small&gt;">
+ <classpath refid="project.class.path"/>
+ <packageset dir=".">
+ <include name="org/freixas/**"/>
+ </packageset>
+ <link href="http://java.sun.com/j2se/1.5/docs/api/" />
+ </javadoc>
+ </target>
+
+ <!-- Clean the build tree -->
+
+ <target depends="init" name="clean" description="Clean all build products.">
+ <delete>
+ <fileset dir="org/freixas">
+ <include name="**/*.class"/>
+ </fileset>
+ </delete>
+ <delete>
+ <fileset dir="doc/example">
+ <include name="**/*.class"/>
+ </fileset>
+ </delete>
+ <delete dir="build"/>
+ <delete dir="doc/api"/>
+ </target>
+
+ <!-- Generate a DTD for this buildfile -->
+
+ <target name="dtd" description="Generate a DTD">
+ <antstructure output="project.dtd"/>
+ </target>
+
+</project>
diff --git a/libs/FLib/JCalendar/doc-templates/License.html b/libs/FLib/JCalendar/doc-templates/License.html
new file mode 100644
index 0000000..d5fbdc1
--- /dev/null
+++ b/libs/FLib/JCalendar/doc-templates/License.html
@@ -0,0 +1,180 @@
+<html>
+ <style type="text/css">
+ body {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ h1 {
+ text-align: center;
+ font-weight: bold;
+ font-size: 145%;
+ }
+
+ h2 {
+ text-align: left;
+ font-weight: bold;
+ font-size: 120%;
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+
+ ol ol {
+ list-style-type: lower-alpha;
+ }
+
+ li {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+
+ </style>
+</head>
+
+ <body>
+
+ <h1>Artistic License</h1>
+
+ <h2>Preamble</h2>
+
+ <p>The intent of this document is to state the conditions under which a
+ Package may be copied, such that the Copyright Holder maintains some
+ semblance of artistic control over the development of the package,
+ while giving the users of the package the right to use and distribute
+ the Package in a more-or-less customary fashion, plus the right to
+ make reasonable modifications.</p>
+
+ <h2>Definitions:</h2>
+
+ <ul>
+
+ <li>"Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files created
+ through textual modification.</li>
+
+ <li>"Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes of the
+ Copyright Holder.</li>
+
+ <li>"Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.</li>
+
+ <li>"You" is you, if you're thinking about copying or distributing
+ this Package.</li>
+
+ <li>"Reasonable copying fee" is whatever you can justify on the basis
+ of media cost, duplication charges, time of people involved, and so
+ on. (You will not be required to justify it to the Copyright Holder,
+ but only to the computing community at large as a market that must
+ bear the fee.)</li>
+
+ <li>"Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item. It
+ also means that recipients of the item may redistribute it under the
+ same conditions they received it.</li>
+
+ </ul>
+
+ <hr>
+
+ <ol>
+
+ <li>You may make and give away verbatim copies of the source form of
+ the Standard Version of this Package without restriction, provided
+ that you duplicate all of the original copyright notices and
+ associated disclaimers.</li>
+
+ <li>You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A Package
+ modified in such a way shall still be considered the Standard
+ Version.</li>
+
+ <li>You may otherwise modify your copy of this Package in any way,
+ provided that you insert a prominent notice in each changed file
+ stating how and when you changed that file, and provided that you do
+ at least ONE of the following:
+
+ <ol>
+
+ <li>place your modifications in the Public Domain or otherwise make
+ them Freely Available, such as by posting said modifications to Usenet
+ or an equivalent medium, or placing the modifications on a major
+ archive site such as ftp.uu.net, or by allowing the Copyright Holder
+ to include your modifications in the Standard Version of the Package.</li>
+
+ <li>use the modified Package only within your corporation or
+ organization.</li>
+
+ <li>rename any non-standard executables so the names do not conflict
+ with standard executables, which must also be provided, and provide a
+ separate manual page for each non-standard executable that clearly
+ documents how it differs from the Standard Version.</li>
+
+ <li>make other distribution arrangements with the Copyright
+ Holder.</li>
+
+ </ol>
+ </li>
+
+ <li>You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the following:
+
+ <ol>
+
+ <li>distribute a Standard Version of the executables and library
+ files, together with instructions (in the manual page or equivalent)
+ on where to get the Standard Version.</li>
+
+ <li>accompany the distribution with the machine-readable source of the
+ Package with your modifications.</li>
+
+ <li>accompany any non-standard executables with their corresponding
+ Standard Version executables, giving the non-standard executables
+ non-standard names, and clearly documenting the differences in manual
+ pages (or equivalent), together with instructions on where to get the
+ Standard Version.</li>
+
+ <li>make other distribution arrangements with the Copyright
+ Holder.</li>
+
+ </ol>
+ </li>
+
+ <li>You may charge a reasonable copying fee for any distribution of
+ this Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial)
+ software distribution provided that you do not advertise this Package
+ as a product of your own.</li>
+
+ <li>The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whomever generated
+ them, and may be sold commercially, and may be aggregatedwith this
+ Package.</li>
+
+ <li>r perl subroutines supplied by you and linked into this Package
+ shall not be considered part of this Package.</li>
+
+ <li>Aggregation of this Package with a commercial distribution is
+ always permitted provided that the use of this Package is embedded;
+ that is, when no overt attempt is made to make this Package's
+ interfaces visible to the end user of the commercial distribution.
+ Such use shall not be construed as a distribution of this Package.</li>
+
+ <li>The name of the Copyright Holder may not be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.</li>
+
+ <li>THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.</li>
+
+ </ol>
+
+ <p>The End</p>
+ </body>
+</html>
diff --git a/libs/FLib/JCalendar/doc/example/Example1.java b/libs/FLib/JCalendar/doc/example/Example1.java
new file mode 100644
index 0000000..57e3b87
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/example/Example1.java
@@ -0,0 +1,181 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package doc.example;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.border.*;
+import java.util.Calendar;
+import java.util.Locale;
+import org.freixas.jcalendar.*;
+
+/**
+ * This example shows various instances of the JCalendar class.
+ * <hr>
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the Artistic License. You should have
+ * received a copy of the Artistic License along with this program. If
+ * not, a copy is available at
+ * <a href="http://opensource.org/licenses/artistic-license.php">
+ * opensource.org</a>.
+ *
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2004 Antonio Freixas
+// All Rights Reserved.
+
+public class Example1
+ extends JFrame
+{
+
+//**********************************************************************
+// main
+//**********************************************************************
+
+public static void
+main(
+ String[] args)
+{
+ new Example1();
+}
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create various instances of a JCalendar.
+ */
+
+public
+Example1()
+{
+ // Set up the frame
+
+ setTitle("Example1");
+ setDefaultCloseOperation(EXIT_ON_CLOSE);
+
+ Container contentPane = getContentPane();
+ contentPane.setLayout(new GridLayout(2, 2, 5, 5));
+
+ // Create a border for all calendars
+
+ Border etchedBorder =
+ BorderFactory.createEtchedBorder();
+ Border emptyBorder =
+ BorderFactory.createEmptyBorder(10, 10, 10, 10);
+ Border compoundBorder =
+ BorderFactory.createCompoundBorder(etchedBorder, emptyBorder);
+
+ // Create a date listener to be used for all calendars
+
+ MyDateListener listener = new MyDateListener();
+
+ // Display date and time using the default calendar and locale.
+ // Display today's date at the bottom.
+
+ JCalendar calendar1 =
+ new JCalendar(
+ JCalendar.DISPLAY_DATE | JCalendar.DISPLAY_TIME,
+ true);
+ calendar1.addDateListener(listener);
+ calendar1.setBorder(compoundBorder);
+
+ // Set fonts rather than using defaults
+
+ calendar1.setTitleFont(new Font("Serif", Font.BOLD|Font.ITALIC, 24));
+ calendar1.setDayOfWeekFont(new Font("SansSerif", Font.ITALIC, 12));
+ calendar1.setDayFont(new Font("SansSerif", Font.BOLD, 16));
+ calendar1.setTimeFont(new Font("DialogInput", Font.PLAIN, 10));
+ calendar1.setTodayFont(new Font("Dialog", Font.PLAIN, 14));
+
+ // Display date only
+
+ JCalendar calendar2 = new JCalendar(JCalendar.DISPLAY_DATE, false);
+ calendar2.addDateListener(listener);
+ calendar2.setBorder(compoundBorder);
+
+ // Display time only and set the time pattern to use as a duration
+ // from 00:00 to 23:59
+
+ JCalendar calendar3 =
+ new JCalendar(
+ Calendar.getInstance(),
+ Locale.getDefault(),
+ JCalendar.DISPLAY_TIME,
+ false,
+ "HH:mm");
+ calendar3.addDateListener(listener);
+ calendar3.setBorder(compoundBorder);
+
+ // Display a French calendar
+
+ JCalendar calendar4 =
+ new JCalendar(
+ Calendar.getInstance(Locale.FRENCH),
+ Locale.FRENCH,
+ JCalendar.DISPLAY_DATE | JCalendar.DISPLAY_TIME,
+ false);
+ calendar4.addDateListener(listener);
+ calendar4.setBorder(compoundBorder);
+
+ // Add all the calendars to the content pane
+
+ JPanel panel1 = new JPanel(new FlowLayout());
+ panel1.add(calendar1);
+ contentPane.add(panel1);
+
+ JPanel panel2 = new JPanel(new FlowLayout());
+ panel2.add(calendar2);
+ contentPane.add(panel2);
+
+ JPanel panel3 = new JPanel(new FlowLayout());
+ panel3.add(calendar3);
+ contentPane.add(panel3);
+
+ JPanel panel4 = new JPanel(new FlowLayout());
+ panel4.add(calendar4);
+ contentPane.add(panel4);
+
+ // Make the window visible
+
+ pack();
+ setVisible(true);
+}
+
+//**********************************************************************
+// Inner Classes
+//**********************************************************************
+
+private class MyDateListener
+ implements DateListener
+{
+
+public void
+dateChanged(
+ DateEvent e)
+{
+ Calendar c = e.getSelectedDate();
+ if (c != null) {
+ System.out.println(c.getTime());
+ }
+ else {
+ System.out.println("No time selected.");
+ }
+}
+
+}
+
+//**********************************************************************
+// End Inner Classes
+//**********************************************************************
+
+}
diff --git a/libs/FLib/JCalendar/doc/example/Example2.java b/libs/FLib/JCalendar/doc/example/Example2.java
new file mode 100644
index 0000000..0866447
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/example/Example2.java
@@ -0,0 +1,173 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package doc.example;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.util.Calendar;
+import java.util.Locale;
+import java.text.SimpleDateFormat;
+import org.freixas.jcalendar.*;
+
+/**
+ * This example shows various instances of the JCalendarCombo class.
+ * <hr>
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the Artistic License. You should have
+ * received a copy of the Artistic License along with this program. If
+ * not, a copy is available at
+ * <a href="http://opensource.org/licenses/artistic-license.php">
+ * opensource.org</a>.
+ *
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2004 Antonio Freixas
+// All Rights Reserved.
+
+class Example2
+ extends JFrame
+{
+
+//**********************************************************************
+// main
+//**********************************************************************
+
+public static void
+main(
+ String[] args)
+{
+ new Example2();
+}
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create various instances of a JCalendarCombo.
+ */
+
+public
+Example2()
+{
+ // Set up the frame
+
+ setTitle("Example2");
+ setDefaultCloseOperation(EXIT_ON_CLOSE);
+
+ Container contentPane = getContentPane();
+ contentPane.setLayout(new GridLayout(2, 2, 5, 5));
+
+ // Create a date listener to be used for all calendars
+
+ MyDateListener listener = new MyDateListener();
+
+ // Display date and time using the default calendar and locale.
+ // Display today's date at the bottom. Allow editing
+
+ JCalendarCombo calendar1 =
+ new JCalendarCombo(
+ JCalendarCombo.DISPLAY_DATE | JCalendarCombo.DISPLAY_TIME,
+ true);
+ calendar1.setEditable(true);
+ calendar1.addDateListener(listener);
+
+ // Set fonts rather than using defaults
+
+ calendar1.setFont(new Font("DialogInput", Font.PLAIN, 16));
+
+ calendar1.setTitleFont(new Font("Serif", Font.BOLD|Font.ITALIC, 24));
+ calendar1.setDayOfWeekFont(new Font("SansSerif", Font.ITALIC, 12));
+ calendar1.setDayFont(new Font("SansSerif", Font.BOLD, 16));
+ calendar1.setTimeFont(new Font("DialogInput", Font.PLAIN, 10));
+ calendar1.setTodayFont(new Font("Dialog", Font.PLAIN, 14));
+
+ // Display date only
+
+ JCalendarCombo calendar2 =
+ new JCalendarCombo(JCalendarCombo.DISPLAY_DATE, false);
+ calendar2.addDateListener(listener);
+
+ // Display time only and set the time pattern to use as a duration
+ // from 00:00 to 23:59
+
+ JCalendarCombo calendar3 =
+ new JCalendarCombo(
+ Calendar.getInstance(),
+ Locale.getDefault(),
+ JCalendarCombo.DISPLAY_TIME,
+ false,
+ "HH:mm:ss");
+ calendar3.setDateFormat(new SimpleDateFormat("HH:mm:ss"));
+ calendar3.addDateListener(listener);
+
+ // Display a French calendar
+
+ JCalendarCombo calendar4 =
+ new JCalendarCombo(
+ Calendar.getInstance(Locale.FRENCH),
+ Locale.FRENCH,
+ JCalendarCombo.DISPLAY_DATE | JCalendarCombo.DISPLAY_TIME,
+ false);
+ calendar4.addDateListener(listener);
+
+ // Add all the calendars to the content pane
+
+ JPanel panel1 = new JPanel(new BorderLayout());
+ panel1.add(calendar1, BorderLayout.NORTH);
+ contentPane.add(panel1);
+
+ JPanel panel2 = new JPanel(new BorderLayout());
+ panel2.add(calendar2, BorderLayout.NORTH);
+ contentPane.add(panel2);
+
+ JPanel panel3 = new JPanel(new BorderLayout());
+ panel3.add(calendar3, BorderLayout.NORTH);
+ contentPane.add(panel3);
+
+ JPanel panel4 = new JPanel(new BorderLayout());
+ panel4.add(calendar4, BorderLayout.NORTH);
+ contentPane.add(panel4);
+
+ // Make the window visible
+