<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-->
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <meta name="Author" content="Malcolm Edgar"/>
    <meta name="description" lang="en" content="Apache Click Java web application framework"/>
    <meta name="keywords" lang="en" content="Apache Click, Click Framework, Java, JEE, J2EE, web application framework, open source"/>
    <title>Apache Click</title>
    <link rel="stylesheet" type="text/css" href="../help.css"/>
    <style type="text/css">
        .change {
            margin-bottom: 0.75em;
        }

    </style>
</head>
<body>

<h1>Click Javadoc</h1>

<p/>
Click is distributed as three separate libraries <em>click.jar</em>, <em>click-extras.jar</em> and <em>click-mock.jar</em>.
<p/>
The Javadoc API of these libraries is provided below:

<ul style="margin-bottom:3em;">
    <li class="change" style="padding-bottom:0.25em;">
        <a  target='topic' href='click-api/overview-summary.html' title=' Click Javadoc API'>Click API</a> 
        &nbsp; - &nbsp; <i>(click.jar)</i>
        <p> 
        Provides the Core API and consists of everything you need to build a Click web application. 
        </p>
    </li>
    <li class="change" style="padding-bottom:0.25em;">
        <a target='topic' href='click-api/org/apache/click/control/package-summary.html' title=' Controls Javadoc API'>Controls API</a>
        &nbsp; - &nbsp;  <i>(click.jar)</i>
        <p> 
        Provides the Core Controls, and provides a short description of each control and corresponding HTML element. 
        </p>
    </li>
    <li class="change" style="padding-bottom:0.25em;">
        <a  target='topic' href='extras-api/overview-summary.html' title=' Click Extras Javadoc API'>Extras API</a>
        &nbsp; - &nbsp;  <i>(click-extras.jar)</i>
        <p> 
        Provides components that are tailored to specific technologies, such as a Hibernate, Spring and Cayenne.
        Extras also include many Controls including IntegerField, DoubleField and DateField. You will also find Filters which 
        can improve your application performance.
        </p>
    </li style="padding-bottom:0.25em;">
        <li class="change">
        <a target='topic' href='mock-api/org/apache/click/package-summary.html' title=' Mock Javadoc API'>Mock API</a>
        &nbsp; - &nbsp;  <i>(click-mock.jar)</i>
        <p>
        Provides a library for testing Click Pages and Controls, independent of a Servlet container such as Tomcat or Jetty.
        </p>
    </li>
</ul>

You can find these libraries under the <em>/dist</em> folder in the Click distribution you downloaded.
<p/>
