Skip to content

Latest commit

 

History

History
149 lines (120 loc) · 5.87 KB

README.md

File metadata and controls

149 lines (120 loc) · 5.87 KB

FoxyDocs : A FOXopen documentation Editor

A simple developer tool for adding, editing and exporting documentation for one or more Fox Modules.

WARNING: The actual version is not yet ready to be used.

http://foxopen.net/

Demonstration Video

https://www.youtube.com/watch?v=J8tuOmkc5YA

Getting Started with Eclipse

This section describes how to setup the project using Eclipse.

You should be able to use an alternative IDE, such as NetBean. You however will need some libraries from Eclipse.

Install Eclipse

Download Eclipse from http://www.eclipse.org/downloads/

Install WindowBuilder

This project has been build with JFace/SWT using WindowBuilder. You'll also need a couple of libraries from this plugin.

Install it using the Eclipse Wizard Help -> Install New Software.... You'll find the URL to add here : http://www.eclipse.org/windowbuilder/download.php

Import the project

  1. Get the code from Github
  2. In Eclipse, create a new SWT/Jface Java Project (from File -> New -> Other)
  3. Set the project location to the local copy of the code

Add Databinding libraries

FoxyDocs a library called Databinding included in Eclipse. Add it to the Build Path following these steps :

  1. Open the project's Properties
  2. Go to the tab Libraries within Java Build Path
  3. Click on Add External JARs
  4. Browse to the Eclipse install directory (such ash /opt/eclipse or C:\Program Files\eclipse)
  5. Open the plugins folder
  6. Add every jars containing databinding

In the future, the relevant JARs will be added in the lib directory so we won't depend on an Eclipse installation.

Usage

  1. Open a folder containing Fox Module (Ctrl + O)
  2. Browse to each module to add proper documentation for each entry.
  • Green Tick : entry completed
  • Red Dash : partial entry
  • Red Cross : missing entry
  1. If the file is locked (grey icon), unlock it with SVN or Preforce.
  2. Save the files (Ctrl + S)
  3. Export the directory to HTML (Ctrl + H) or the currently open module to PDF (Ctrl + P)

Known issues

  • The Pretty Print function does not align with the XMLSpy one
  • Adding or removing folders or files within the opened folder may behave improperly
  • The user can select multiple text fields at the same time
  • Comments within a documentation node are not accessible
  • There is no CSS nor image in the PDF export
  • It is not possible to export an entire directory as PDF
  • After saving a file, the currently opened entry is not highlighted anymore
  • You can close an unsaved tab without any warning

Development Notes

Static assets

The static assets such as XSL and images are stored in lib/assets.jar with the following structure:

\_ img      
  \_ actions
    \_ ...			All actions images (save, open, etc..)
  \_ icons
    \_ ... 			All other useful icons
\_ xsl
  \_ bg.png 		Background image for the HTML report
  \_ index.html 	Frame set for the HTML report
  \_ listing.xsl 	XSL for the list of modules
  \_ logo.png 		FOXopen logo
  \_ module.xsl 	XSL for extracting the documentation out of a FOX module
  \_ style.css 		Cascading style sheet for index.html
  \_ summary.html 	Module specification container
  \_ xhtml2fo.xsl 	XSL to convert a XHTML document to FOP for PDF export

Those assets can be loaded directly from the similar structure in lib or from assets.jar.

Databinding source files

All sources in src/org/eclipse/wb are automaticly imported by Eclipse when adding databinding libraries. Those files are not to be modified.

Source structure

Structure inside src/net/foxopen/foxydocs:

foxydocs
\_ FoxyDocs.java 				Main class; starts the GUI
\_ model
  \_ ... 						Model files for databinding
\_ utils
  \_ Export.java 				Generates the HTML or PDF report
  \_ Loader.java 				Load all FOX modules from a folder
  \_ Logger.java 				Log a message into the terminal
  \_ ResourceManager.java 		Handle static ressources (please see the static assets section
  \_ WatchDog.java 				Watch for files to be modified into a folder (similar to Clobber
  \_ WatchDogEventHandler.java 	Handle the events raised by the watch dog
\_ view
  \_ .. 						GUI elements

Credits

Development team

  • Pierre-Dominique Putallaz
  • Mike Leonard

XSL for export

  • William Friesen

Libraries

Copyright

Copyright (c) 2013, Fivium Ltd. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, 
  this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, 
  this list of conditions and the following disclaimer in the documentation 
  and/or other materials provided with the distribution.
* Neither the name of Fivium Ltd nor the
  names of its contributors may be used to endorse or promote products
  derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.