InterimReport Originalx - GoogleCode

minceillusionInternet and Web Development

Jul 30, 2012 (5 years and 5 months ago)

360 views

Page |
I



Interim Report Submission Form


Name of candidate:

Thushara Sanjeewa Ramasinghe


Registration no.:
MIT/2008/049




Index no.:

08550499


Project title:

Swan I
mage Presenter

……………………………………




…………………………………

Signature of candidate






Date

Comments of supervisor:

…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
………………………………………………
…………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
………………………………………
…………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………
………
…………………………………………………………………………………………………
………..

........................................






.......................................

Signature of supervisor







Date




Dr. Anuja Dharmarathne

Name of supervisor:

Page |
II



Abstract


Sometimes we want to do a
presentation using images with adding effects. So users
can use some software’s available in the industry to do presentations with images. However,
there is no facility to add enough effects. On the other way, we want to do more than one
presentation using

a different set of images but with the same effects. So we should create
one by one all of these presentations. As well as when we are going to do a presentation the
computer will be locked. So we have to wait until unlock the computer.


In this project,
I hope to create different type of presentation templates using JavaFX.
There should be an editor then users can customize their presentations by selecting the
suitable template, sounds, etc.As well as users can select a directory which has images. After
t
hat users can save their presentation, and then they can use it for different images by
changing the images by changing the images in the directory. This editor should be a plug
-
gable editor. Then the different modules will be added as different plugging.



As next step Linux operating system should be minimalist to run JavaFX and thumb
file should create to run automatically the presentation on the operating system.

















Table
of Contents


Interim Report Submission Form

................................
................................
................................
............

I

Abstract

................................
................................
................................
................................
...................

II

Chapter 1: Introduct
ion

................................
................................
................................
...........................

1

1.1

Problem

................................
................................
................................
................................
.........

1

1.2

Objective and Scope of the project

................................
................................
...............................

1

Chapter 2: Background

................................
................................
................................
...........................

2

2.1 Requirements

................................
................................
................................
................................

2

2.1.1Functio
nal Requirements

................................
................................
................................
........

2

2.1.2 Non
-
functional Requirements

................................
................................
................................

2

2.2 Literature review

................................
................................
................................
...........................

2

2.2.1 JavaFX

................................
................................
................................
................................
...

2

2.2.2 JavaFX TV SDK

................................
................................
................................
....................

3

2.2.3 JavaFX Templates
................................
................................
................................
..................

3

2.2.4
JAXB (Java Architecture for XML Binding)

................................
................................
........

3

2.2.5

OSGI (Open Source Gateway Initiative) Framework

................................
............................

4

2.2.6

Swan Editor

................................
................................
................................
............................

6

2.2.7 Linux operating system minimalist

................................
................................
........................

6

Chapter 3: Design of solution

................................
................................
................................
.................

7

3.1 Swan editor

................................
................................
................................
................................
...

7

3.2 JavaFX Template

................................
................................
................................
.........................

9

Chapter 4: Progress to date and Project plan

................................
................................
........................

10

References
................................
................................
................................
................................
.............

12



Page |
1



Chapter 1:
Introduction

1.1

Problem


The problem is there is no facility to do nice image presentations. There are some
software’s can use for this but their features are not enough. On the other way if someone
wants to do a presentation with same effects in different places by using differen
t images. So
he/she wants to create one by one spending lot of time.



The other problem can’t do a presentation without having key board or mouse in the
computer.

1.2

Objective and Scope of the project


Swan Image Presenter project is a software tool to pres
ent the images in a very
witching way. To develop this use the latest Java technology called JavaFX. JavaFX is
released on around 2009 April by Sun Micro Systems. In the last year, it became very power
full. Best example for its power is after one year it
is appearing very witching one with
JavaFX TV SDK (Released in 2010 April with JavaFX 1.3) and Adobe illustrator and
photoshop supported plug
-
ins (This supports to convert Adobe illustrator or Photoshop file to
fx file). So in the swan project, it uses thi
s technology to create the presentation. Under this
project several different templates create by using JavaFX.


Using the Swan Image Presentation editor, users can create their presentation by
selecting a suitable template, and changing properties of the

template. As well as users can
create new templates by using JavaFX and th
o
se templates can be added to the editor. Editor
has plugged
-
in support so the editor will create as modules. So in later anyone can add new
features to the editor also.


As well as

Linux operating system minimalist to run the JavaFX presentation and
creates a thumbnail file to run the presentation on the operating system. So this presentation
can be run in Digital Picture Frames also. So users can run the presentation on the Digital

Picture Frames by adding this operating system, thumb file and the presentation to the pen
drive, CD, etc.


In the next chapter, the background of the project will describe in details. Under the
background details about JavaFX technology and JavaFX TV tec
hnology
has

discuss
ed
.

As
well as about the Swan editor, the OSGI framework and JAXB also discussed under this
chapter.


Under the third chapter
design of the project has discussed. As well as the new project
plan has discussed in forth chapter.









Page |
2



Chapter 2:
Background

2.1

Requirements

2.1.1
Functional Requirements

o

When running presentation it should navigate to load images from the
selected folder.

o

There should have a facility to set the order of the images.

o

Editor should have a facility to select a

template.

o

Editor should have a facility to change the properties of the template such
as speed, sounds, etc.

o

There should have a facility to add new templates to the editor.

o

There should have a facility to run the JavaFX presentation through the
editor.

o

E
ditor should have a facility to install the new plug
-
ins.

o

There is a minimalist Linux operating system to run the presentation.
Presentation should run automatically when the user runs the insert, the
presentation and the operating system added pen drive,
CD, or DVD.


2.1.2
Non
-
functional Requirements

o

To run the editor Java run time environment 1.6 or greater versions and
JavaFX 1.3 or greater version with JavaFX TV SDK should have installed
to the computer.

o

Operating system should be Windows XP or greater/

Linux 8.04 or
greater.


2.2
Literature review

2.2.1
JavaFX



JavaFX is the latest technology released by sun micro systems. JavaFX is a
rich client platform for building cross
-
device applications and content. It designed to enable
easy creation and
deployment of rich internet applications (RIAs) with impressive media and
content, the JavaFX platform ensures that RIAs look and behave consistently across diverse
form factors and devices.


JavaFX builds on Java technology. To build JavaFX apps developer
s use a statically
typed, declarative language called JavaFX Script; Java code can be integrated into JavaFX
programs. JavaFX is compiled to Java bytecode, so JavaFX applications run on any desktop
and browser that runs the Java Runtime Environment (JRE) a
nd on top of mobile phones
running Java ME.


Page |
3




Figure
2.1


2.2.2 JavaFX TV SDK



JavaFX 1.3 provides support for the development of TV applications and a
new TV emulator. Support for JavaFX TV is based on the common profile. Most applications
for the
desktop can also be ported to the TV environment.

[Ref. WWW 0
1
]

2.2.3

JavaFX Templates




So anyone can present the images in a witching way using JavaFX technology.
In this project, my effort is giving facility to the users to present their images in a
witching
and efficient way without having any JavaFX or Java knowledge. In the project hope to
introduce few templates with having JavaFX files to present images in a witching way. As
well as these images will be loaded from the directory. In the template
have XML file to load
some properties such as a path to the directory, speed of the presentation (In which speed
images changed), order of the images and other properties depending on the template. When
running the fx file the XML file reads using the JAXB

and loads properties to the java object.
Then the fx file runs getting the details from this object. We can do it because of JavaFX
supports for normal Java also. Because of it runs on a Java virtual machine.




I have used Netbeans 6.9 editor to develop
JavaFX templates. It is easy to
work with Netbeans editor to develop JavaFX applications. As well as we can use an Eclipse
3.5 editor also
.

I
f we install the JavaFX development plug
-
in to it. However, Netbeans is
more supported for the JavaFX 1.3 version (
Released in April 2010) also. But, Eclipse is still
not supported.


2.2.4

JAXB (
J
ava
A
rchitecture for
X
ML
B
inding
)



XML documents can access through different ways. It is done through parsers
that conform to the Simple API for XML (SAX) or Document Object Model (DOM). SAX
Page |
4



and DOM parsers are provided by Java API for XML Processing (JAXP). To parse an XML
document a SAX
or DOM parser can invoke through JAXP API.

In the SAX approach, the parser starts at the beginning of the document and passes each
piece of the document to the application in the sequence it finds it. Nothing is saved in
memory. The application can take a
ction on the data as it gets it from the parser, but it can't
do any in
-
memory manipulation of the data. For example, it can't update the data in memory
and return the updated data to the XML file.

In the DOM approach, the parser creates a tree of objects that represents the content and
organization of data in the document. In this case, the tree exists in memory. The application
can then navigate through the tree to access the data it needs, and if
appropriate, manipulate
it.

JAXB is an API to access easily XML documents. Using JAXB can convert XML documents
to Java object model according to the structure of XML. Object model creation from the
XML file is called unmarshal. As well as Java object can

write to the XML file using the
JAXB. This is called marshal.

[Ref

WWW 02]




Figure 2.2


2.2.5

OSGI

(
O
pen
S
ource
G
ateway
I
nitiative)

Framework




OSGI is a dynamic module system for Java. OSGI provides a component
based environment for developers and offers
standardized ways to manage the software life
cycle. It provides a very mature component system that actually works in a surprising number
of environments. A component system that is actually used to build highly complex
applications like IDEs (Eclipse), a
pplication servers (GlassFish, IBM Websphere,
Oracle/BEA Weblogic, Jonas, JBoss), application frameworks (Spring, Guice), industrial
automation, residential gateways, phones, and so much more.


There are lots of benefits provided by OSGI technology. They a
re,

1.

Reduced
complexity

2.

Reusability

3.

Easy deployment

Page |
5



4.

Dynamic updates

5.

Adaptive

6.

Transparency

7.

Versioning

8.

Simple

9.

Small

10.

Fast

11.

Lazy

12.

Secure

13.

Humble

14.

Nun intrusive

15.

Runs everywhere

16.

Widely used

17.

Supported by key companies
. [Ref WWW 04]


In the below described the
layered OSGI architecture.

[Ref WWW 03]



Figure 2.3



The following list contains a short definition of the terms:



Bundles
-

Bundles are the OSG
I

components made by the
developers.



Services
-

The services layer connects bundles in a dynamic
way by offer
ing a publish
-
find
-
bind model for plain old Java
objects.



Life
-
Cycle
-

The API to install, start,
stops
, update, and
uninstall bundles.



Modules
-

The layer that defines how a bundle can import and
export code.



Security
-

The layer that handles the security

aspects.

Page |
6





Execution Environment
-

Defines what methods and classes are
available in a specific platform.

2.2.6

Swan Editor



Swan editor is developed by using the OSGI framework. So we can develop it
by module by module. Because then it is easy to add new featur
es in the future. I have
decided, firstly, to develop the editor by using SWING Java. However, after studying about
OSGI framework decided to use SWT. Because of the OSGI supports for SWT. To develop
the editor use Eclipse equinox (one of the OSGI platform
). When develop the editor Eclipse
will use as IDE. Netbeans also can use for this. However, eclipse is more supported for OSGI
framework.


2.2.7
Linux operating system minimalist

Linux operating system can be minimalist by removing some of its parts such
as UI components, server side things, etc. So it is possible to minimalist it to less than 1oo
Mb with the capability of run the presentation.



















Page |
7



Chapter
3
:
Design of solution

3
.1
Swan editor


Swan editor has several modules. As well as
these are several projects

(one project
per module). Those Modules are,

1.

Swan Core

This is the main module. Common things included in this project such
as interfaces, etc and plug
-
ins adding facility.

2.

Swan Core UI

This project includes the main editor UI
related things such as dialogs,
menus, Help, etc. This will depend on the Swan Core.

3.

Swan Runtime

This project included the run time related things. The things included
in this project are the facility to add JavaFx templates, Facility to run
presentation,

etc. This will depend on Swan Core UI.

4.

Swan properties

This project includes the UI support to property changes and supports
for load these properties when runs the editor. This will depend on Swan
Core UI.

5.

Swan Sound

This project includes the facility to

add sounds to the presentations.
This will depend on the Swan properties, Swan Runtime

Swan editor’s some UI interfaces are shown below.





Page |
8











Page |
9



3
.2
JavaFX Template


When we talk about template it has an fx file which has talent to display the
images
with effects. As well as the template has a XML called template.xml. The template XML file
has details about supported properties, etc.

























Page |
10



Chapter 4:
Progress to date and Project plan


I have studied about the JavaFX and create one fx file which can display images. As
well as read about the OSGI framework.


There are some changes with comparing project plane. First one is I have proposed to
create editor using Swing Java and there is no

support for plug
-
ins. After reading about the
OSGI framework I have decided to
create the editor with plug
-
in support and use SWT Java
to create editor. Because of SWT is more supported for OSGI framework. Another change is
decided to use JavaFX TV SDK al
so. It released in April 2010.


My time plan was not a realistic one. Because it gets lot of time to study about
JavaFX technology.


I think time allocated to the project is not reasonable. It will be difficult to finish the
project at time. But I think i
t is not
an

impossible target.


I have allocated enough time to write dissertation also.


In the bellow, the Gantt chart
(Figure

4.1)

will describe the project plan for next tasks.









Page |
11




Figure
4.1


Page |
12



References


[WWW 0
1
]
http://javafx.com

[
08/05/
2010]

[WWW 02]
http://java.sun.com/developer/technicalArticles/WebServices/jaxb/

[
09/05/2010
]

[WWW 03]
http://www.osgi.org/About/WhatIsOSGi

[
09/05/2010
]

[WWW 04]
http://www.osgi.org/About/WhyOSGi

[
09/05/2010
]

[WWW 05
]

http://java.sun.com/javafx/1.3/docs/api/

[
15/05/2010
]

[WWW 06
]

http://en.wikipedia.org/wiki/JavaFX

[
15/05/2010
]

[WWW 07
]

http://www.osgi.org/Main/HomePage

[
09/05/2010
]