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.