source: jclic/trunk/fuentes/HACKING.txt @ 3474

Last change on this file since 3474 was 3466, checked in by Juanma, 3 years ago

Updated to 3.2.1

File size: 7.3 KB
1JClic: Authoring and playing system for educational activities
4This file contains information about the internal structure of JClic and
5the organization of the source code.
7For compilation instructions, see INSTALL.txt
13The source code of JClic is organized into the following directories:
15* src
16  Contains the source code of the JClic modules. It is organized in several
17  sub-directories:
18  - activities            JClic activities
19  - author                Code specific of the JClic author module
20  - core                  Main classes of JClic
21  - extra                 No Java code here: only miscellaneous resources
22  - interface             Main interfaces and constants
23  - jclicApplet           Code for the JClic applet
24  - jclicPlayer           Code for the JClic player module
25  - player                Code used by JClic player and JClic author
26  - qt61                  QuickTime 6.1 functions, used only in Mac OS X
27  - report/reportServer   The stand-alone JClic reports server
28  - report/webApp         The J2EE application release of the reports server
29  - report/reportServlets Code common to both versions of the reports server
30  - shapers               The cell shape editor of JClic author
31  - utilities             Miscellaneous utilities
33* extensions
34  Contains the code of several libraries and external tools needed to
35  run JClic:
36  - dbconn      Implementation of three types of JDBC connections, used
37                by JClic reports: single, pooled and JNDI-defined.
38  - soundspi    Classes used to play audio compressed in MP3 and OGG formats.
39                Code from four external projects are used:
40                ** JLayer (
41                ** JOrbis (
42                ** MP3SPI (
43                ** Tritonus (
44  - xml         Classes used to write, read and parse XML files:
45                ** JDom ( without XPath features.
46                ** CustomJDom - Special XML outputter
47  - img         Libraries for graphics processing
48                ** image4j (
49  - json        The JSON-java library
50                ** json (
52* lib
53  External libraries needed to compile JClic:
54  - jmf-api     Java Media Framework API empty implementation, to be used only at compile time.
55                (
56  - qtjava-api  QuickTime for Java empty implementation, to be used only at compile time.           
57                ( 
58  - servlet-api Needed to compile the J2EE version of JClic reports. Empty implementation, to be
59                used only at compile time. (
61* deploy
62  Contains the "applicaton.xml" file, used in the J2EE web application of
63  JClic reports
65* dist
66  This is the directory where the JAR files obtained as result of the build
67  process are stored. It contains also some scripts, icons and JNLP (Java
68  Network Launching Protocol) files.
70* instal
71  This directory contains a script that generates the Windows installer of
72  JClic using the Nullsoft Scriptable Install System
73  ( It contains also an Ant script that launches
74  NSIS and creates a ZIP with all the files needed to run JClic in any
75  Java-enabled system.
77* i18n
78  Contains utilities used to translate JClic into different languages.
79  JClic uses Launchpad ( as a translation platform.
81* keystore
82  This folder contains a key store with a test certificate, that can be used
83  to sign the JAR files for test purposes. Please use your own certificate
84  if you plan to distribute your own versions of the program.
86* xml
87  XML Schema (XSD) and Document Type Definitions (DTD) corresponding to the
88  documents used by JClic to store skins and projects.   
92Edit instructions:
94JClic was made using NetBeans, currently version 8.0
95You can download this IDE from:
99Build the extensions by launching "ant" from the "extensions" directory.
100This will also make a copy of the generated JAR files into the "lib" directory:
102> cd extensions
103> ant
105Launch NetBeans and open the project located in the "nbeans" folder.
107The three last source folders, marked with an asterisk, contain fake (empty) skeletons
108of "Java Media Framework", "QuickTime for Java" and the Servlet API. This is because
109JMF and QuickTime are non-free software, and the servlet API is available only with
110the full package of J2EE (not really needed for JClic).
112To test the real behavior of JMF and QTJava you must obtain valid implementations
113of the files "jmf.jar" and "" (see the URLs indicated above) and replace
114its 'skeleton' source folder with a reference to a valid file in the "Libraries" folder
115of the netBeans project.
117To test the WebApp, you must replace the 'servlet-api/src' folder with a reference to a
118fully implemented J2EE library (available in the stock of Netbeans libraries)
120The main JClic classes are organized into the following Java packages:
122/                           Main classes (JClicApplet, JClicPlayer,
123                            JClicInstaller, JClicAuthor and ReportServer)
124/edu/xtec/jclic             Main JClic core classes and interfaces
125/edu/xtec/jclic/activities  The JClic activities. Each group of similar
126                            activities has its own package: associations,
127                            memory, panels, puzzles, text and textGrid
128/edu/xtec/jclic/automation  The classes that provide automatic contents to
129                            activities. One package is included here: "arith",
130                            for automatic mental arithmetics.
131/edu/xtec/jclic/bags        Classes dealing with collections of objects like
132                            activities, media, and sequence elements.
133/edu/xtec/jclic/boxes       Graphic and multimedia elements: cells, counters,
134                            grids, buttons...
135/edu/xtec/jclic/clic3       Classes used to import Clic 3.0 activities
136/edu/xtec/jclic/edit        Base for "editors", special classes used to
137                            modify complex objects.
138/edu/xtec/jclic/fileSystem  Filesystems are objects used to read and write to
139                            files under different protocols and formats.
140/edu/xtec/jclic/media       Classes that deal with sound, video...
141/edu/xtec/jclic/misc        Miscellaneous utilities specific to JClic
142/edu/xtec/jclic/project     Components of the JClic project structure
143/edu/xtec/jclic/report      Activity results reporting system
144/edu/xtec/jclic/shapers     Classes that deal with cell and grid shapes
145/edu/xtec/jclic/skins       Support to JClic visual aspects
146/edu/xtec/jclic/beans       Visual controls used in JClic Author.
147/edu/xtec/resources         Different sub-packages containing messages, icons,
148                            graphics, sounds, etc.
149/edu/xtec/util              Utility classes not specific to JClic                           
Note: See TracBrowser for help on using the repository browser.