Plug-in System for the Xylia Extensible XML Editor
Download
Report
Transcript Plug-in System for the Xylia Extensible XML Editor
Plug-in System for the Xylia
Extensible XML Editor
Student: Jonathan Milley
Supervisor: Dr. T. S. Norvell
Outline
Introduction
Background
Project Details
Results/Status of project
Future work
Introduction
Project Origination:
Stemmed from work by Dr. Norvell, and
Zhikai (Jack) Ding The SIMPLE System,
a system for Proving and Programming
Xylia a WYSIWYG XML editor library for
Java was started as the editor component of
SIMPLE
Since its inception there have been 4 work
terms completed on it.
Introduction
Motivation
Previous work on Xylia has focused on the
editing feature set
Now Xylia needs a mechanism for building
useful Systems
Eventual goal is to complete the SIMPLE
system that was the genesis of the project
Introduction
Objectives:
Implement a standard interface to the
Document
Implement a plug-in system for dynamic
addition/removal of features
Implement a reference editor with plug-in
capability
Background
XML (eXtensible Markup Language)
XML is a standard set of rules for creating
and defining mark up languages
Markup languages are used to represent
structured documents, HTML is a markup
language
XML is very strict on well-formedness and
validity
Background
The Java Programming Language
Created by Sun Microsystems Inc.
Cross platform, i.e. Source code is compiled
to byte code, which can be interpreted on
any system with a Java runtime
Syntax similar to C++, but more object
oriented
Many powerful libraries, and Third Party
software available
Background
SIMPLE
Integrated Development
Environment for Programs,
Proofs, and Proofs of Programs
Not just a WYSIWYG editor, but
also proof/program checker,
other tools to help developer
Tightly coupled Proof/Program
Assistant for immediate feedback
to user
Project Details
Two Major pieces for the Plug-in system
The Document Interface
Allows the plug-in to interact with the Document
Implements the Standard Document Object
Model interface
The plug-in mechanism
Allows the editor to load/unload plug-ins, as well
as interact with them.
Allows user to add/remove plug-ins from the
system.
Project Details
Why the DOM?
<p>
<i>
<b>abc</b>
<em>def</em>
</i>
<b>
<u>ghi</u>
</b>
</p>
Rendered HTML
Project Details
The same document
represented using
the DOM Interface is
much less cluttered,
and requires no
knowledge of the
internal editor
behavior to operate
on the document.
Project Details
Plug-in Mechanism
Allows developers to create feature sets,
with out needing to know the internals of the
editor
Allows application developers to customize
the base platform to create new applications
Allows easy adaptation of existing
components to work with Xylia
Project Details
Examples of possible Plug-ins
Spell Checker:
SIMPLE Proof Assistant
Periodically scan the text of a document, after
notification the document changes
Interact with the SIMPLE proof assistant, as a
component of the final SIMPLE system
Database Interface
Use Xylia to display/edit data from a Relational
Database
Project Details
Methodology
Standard Object Oriented programming
techniques: information hiding, subclassing,
etc.
Design Patterns such as Adapter, Bridge,
Factory, etc.
Testing Methodology involved mainly Unit
Testing using JUnit a Third Party Java tool
Results/Status
Project Status
Partial DOM implementation
Scaled back plug-in mechanism, one type of
plug-in (Task plug-ins, which work on the
document, and have User Interaction)
All aspects of the Xylia plug-in system
documented, including unfinished
unimplemented portions
Future Work
Probable that more students will
continue the project, either as a work
term or a Senior Design project
Xylia has been an ongoing project for
several years, there is still much room for
continuation and improvement
It is also hoped that Xylia will see usage
by members of the Faculty and the
student body
Thank You,
I would welcome any questions at
this time.