SlideShare a Scribd company logo
1 of 44
MULTI USER WHITEBOARD
WEB APPLICATION
I AM,
• Andun S.L. Gunawardana
• Co- Founder, Sith Solutions (Pvt) Ltd Sri Lanka and emoJot USA
• Undergraduate of Computer Science and Engineering Department
University of Moratuwa, Sri Lanka
• GSoC 2013 Student – Apache OpenMeetings
• Contributor – Apache WicketStuff, Apache Synapse, Apache Airavata,
Apache Axis2
• Software Engineering Intern @ WSO2 - A GSoC Mentoring Organization
Contributor for WSO2 ESB – World’s fastest ESB, WSO2 Identity Server,
WSO2 Application Server, WSO2 Clarity Framework

• Premier interest in SOA, Middleware and Cloud
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHAT IS APACHE OPENMEETINGS

http://openmeetings.apache.org/
WHAT IS APACHE OPENMEETINGS
• Apche Openmeetings provides video conferencing, instant
messaging, white board, collaborative document editing and other
groupware tools using API functions of the Red5 Streaming Server
for Remoting and Streaming.

• OpenMeetings is initiated as a separate Google Code Project
(http://code.google.com/p/openmeetings/) and later it joined
Apache
WHAT IS APACHE OPENMEETINGS
WHAT IS APACHE OPENMEETINGS
• All the groupware features of Apache OpenMeetings are designed
inside a one major component called Room. Users can create
rooms with number of groupware tools and share them among
group of people. People who enter these rooms can use these
groupware tools in their collaborative work.
WHAT IS APACHE OPENMEETINGS
WHAT IS APACHE OPENMEETINGS
• Features
• Audio and Video Conferencing
• Meeting recording and Screen sharing
• File Explorer
• Moderating System
• Multi-Whiteboard and Chat
WHAT IS APACHE OPENMEETINGS
• Features
• User and room management
• Private message center
• Plan meetings with integrated calendar
• Polls and Votes
• Backup
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
• White board provides drawing, writing, Drag n' Drop, Resizing, Adding Images
(Drag n' Drop from File-Explorer), Adding Symbol(s)/Cliparts .

• Can add a wide range of document formats (PDF, DOC, ODT, PPT etc.)
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
• Save Content, Load from Saved Content
• Zooming, Navigating
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
• Multiple Users Simultaneously
• Synchronization of Content Manipulation

• Many Instances of Whiteboard
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
HOW THE WHITEBOARD IS BUILD USING GOOGLE
CLOSURE AND APACHE WICKET
• Whiteboard is a commonly used component in web application
development
• It is really useful if there is a generic whiteboard component which
is integrated to our development – A Reusable Component
• Considering that we have developed a generic whiteboard
component using Google Closure Library and Apache Wicket web
application development framework in my Google Summer of
Code Project
HOW THE WHITEBOARD IS BUILD USING GOOGLE
CLOSURE AND APACHE WICKET
• We used the JavaScript based whiteboard which is developed
by Andrey Bogdanov (https://github.com/bay73/whiteboard)
• It is build using Google Closure Tools. Google Closure Tools is a set
of tools to help developers build rich web applications with
JavaScript. It was developed by Google for use in their web
applications such as Gmail, Google Docs and Google Maps.
HOW THE WHITEBOARD IS BUILD USING GOOGLE
CLOSURE AND APACHE WICKET
• Prime target of my project was Apache OpeMeetings 3.1.0 release.
• Earlier versions of Apache OpeMeetings has been developed using
Openlaszlo Framework and Flash.

• 3.0.0 onwards, Apache OpeMeetings is completely developed
using HTML5, Apache Wicket
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHAT IS APACHE WICKET?
• Apache Wicket, commonly referred to as Wicket, is a lightweight
component-based web application framework for the Java
programming language
WHAT IS APACHE WICKET?
• XHTML part of a web page in Wicket,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"
xml:lang="en" lang="en">
<body>
<span wicket:id="message" id="message">Message goes here</span>
</body>
</html>
WHAT IS APACHE WICKET?
• Java part of the same web page in Wicket,
package org.wikipedia.wicket;

import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;

public class HelloWorld extends WebPage {
public HelloWorld() {
add(new Label("message", "Hello World!"));
}
}
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHY APACHE WICKET?
• Less technologies
There are just two technologies: Java and XHTML.

• Separation between layout and logic / JSP-free
In Wicket all the logic is in Java-code which makes it compile-save, unit
testable and debugable

• Refactoring capabilities / Keep the business logic up-to-date
WHY APACHE WICKET?
• Components
Every web application is developed as components. The logic for a
business aspect is encapsulated in a component or in some
components which can interact with each other. Components are
reusable. Thus saves development time and avoids duplicated code

• Pure Object-Orientation
• No session wasting and safe flows
In classic MVC applications everything was stored in the session. The
developer forget to cleanup the session and it got bigger and bigger.
Nobody knows what's in it. This can cause performance and security
leaks
WHY APACHE WICKET?
• Free and Open Sourced product which has a highly dynamic and
very big developer community
• Higher quality and stability
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
THE MULTI USER WHITEBOARD
• Hosted in WicketStuff repository. Which is the main repository for reusable
Wicket Components.

• https://github.com/wicketstuff/core/wiki/Whiteboard
• Initial version of the Whiteboard provides,
• Draw basic geometric shapes like point, lines, circles, rectangles, curves, arrows
• Insert pictures & background images
• Basic manipulations like zooming, moving, undo
• Save/Load content
THE MULTI USER WHITEBOARD
• Integrated via Maven
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-whiteboard</artifactId>

<version>6.11</version>
</dependency>
THE MULTI USER WHITEBOARD
• Can be added to web page with two lines,
XHTML,
<div wicket:id="whiteboardContainer"></div>

JAVA,
Whiteboard whiteboard = new Whiteboard("Unique Id for
Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard.
Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null",
"Location of the Background Images Folder. Relative to Context Root. Can be null");
add(whiteboard);
THE MULTI USER WHITEBOARD
• Can be added to web page with two lines,
XHTML,
<div wicket:id="whiteboardContainer"></div>

JAVA,
Whiteboard whiteboard = new Whiteboard("Unique Id for
Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard.
Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null",
"Location of the Background Images Folder. Relative to Context Root. Can be null");
add(whiteboard);
THE MULTI USER WHITEBOARD
• Whiteboard content is represented in JSON
{"background": {
"height": 326,
"width": 595.0481927710844,
"left": -297.5240963855422,
"type": "Background",
"url": "http://localhost:8080/Documents/gmaps.jpg",
"top": 163
}, "elements": [
{
"id": 5,
"p2": 4,
"color": "",
"p1": 3,
"trace": false,
"hidden": false,
"label": "",
"type": "PencilCircle“
},
}
THE MULTI USER WHITEBOARD
• Synchronization of Content, Save Content, Load Content
functionalities use the JSON representation
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
DEMO
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHAT IS NEXT ?
• Adding,

• Doc Sharing capability on Whiteboard
• Adding complex drawing functionalities
• Adding graph tools
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
USEFUL URLS
• https://github.com/wicketstuff/core/wiki/Whiteboard

• https://github.com/wicketstuff/core/tree/master/jdk-1.6parent/whiteboard-parent
• http://www.googlemelange.com/gsoc/proposal/review/google/gsoc2013/an
dunslg/5747559595245568
• https://github.com/wicketstuff/core
THANK YOU!

More Related Content

What's hot

Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09 Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09 Lunch Ann Arbor Marketing
 
Introduction to Drupal
Introduction to DrupalIntroduction to Drupal
Introduction to Drupalsdmaxey
 
What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8Suzanne Dergacheva
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHPhernanibf
 
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017Rob Reynolds
 
Running a Successful Open Source Project
Running a Successful Open Source ProjectRunning a Successful Open Source Project
Running a Successful Open Source ProjectRob Reynolds
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Acquia
 
What is WordPress Introduction to the CMS
What is WordPress Introduction to the CMSWhat is WordPress Introduction to the CMS
What is WordPress Introduction to the CMSthe-colab
 
WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)Shumpei Shiraishi
 
Modern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and PuppetModern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and PuppetRob Reynolds
 
Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Alexandre Marreiros
 
Microsoft Azure in der Praxis
Microsoft Azure in der PraxisMicrosoft Azure in der Praxis
Microsoft Azure in der PraxisYvette Teiken
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
Meet The Family (Philippines Remix)
Meet The Family (Philippines Remix)Meet The Family (Philippines Remix)
Meet The Family (Philippines Remix)Beau Lebens
 
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)Howard Greenberg
 
OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020Howard Greenberg
 
Beginners Guide to Drupal
Beginners Guide to DrupalBeginners Guide to Drupal
Beginners Guide to DrupalGerald Villorente
 
Boot strapandresponsiveintro
Boot strapandresponsiveintroBoot strapandresponsiveintro
Boot strapandresponsiveintroAlexandre Marreiros
 

What's hot (20)

Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09 Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09
 
Introduction to Drupal
Introduction to DrupalIntroduction to Drupal
Introduction to Drupal
 
What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHP
 
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
 
Drupal
DrupalDrupal
Drupal
 
Looking into HTML5 + CSS3
Looking into HTML5 + CSS3Looking into HTML5 + CSS3
Looking into HTML5 + CSS3
 
Running a Successful Open Source Project
Running a Successful Open Source ProjectRunning a Successful Open Source Project
Running a Successful Open Source Project
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
 
What is WordPress Introduction to the CMS
What is WordPress Introduction to the CMSWhat is WordPress Introduction to the CMS
What is WordPress Introduction to the CMS
 
WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)
 
Modern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and PuppetModern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and Puppet
 
Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1
 
Microsoft Azure in der Praxis
Microsoft Azure in der PraxisMicrosoft Azure in der Praxis
Microsoft Azure in der Praxis
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Meet The Family (Philippines Remix)
Meet The Family (Philippines Remix)Meet The Family (Philippines Remix)
Meet The Family (Philippines Remix)
 
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
 
OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020
 
Beginners Guide to Drupal
Beginners Guide to DrupalBeginners Guide to Drupal
Beginners Guide to Drupal
 
Boot strapandresponsiveintro
Boot strapandresponsiveintroBoot strapandresponsiveintro
Boot strapandresponsiveintro
 

Similar to Reusable Whiteboard Wicket Component for Apache Openmeetings

Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopwareSander Mangel
 
Open Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C WidgetsOpen Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C Widgetsscottw
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...AEGIS-ACCESSIBLE Projects
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1NAILBITER
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum SlidesAbhishek Gupta
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Commit University
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEVishal Mittal
 
CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011Nick Freear
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0ESUG
 
HTML5: the new frontier of the web
HTML5: the new frontier of the webHTML5: the new frontier of the web
HTML5: the new frontier of the webIvano Malavolta
 
Rave in Context @ ApacheCon 2011
Rave in Context @ ApacheCon 2011Rave in Context @ ApacheCon 2011
Rave in Context @ ApacheCon 2011Sander van der Waal
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source ContributionsNeev Technologies
 
Mihai tataran developing modern web applications
Mihai tataran   developing modern web applicationsMihai tataran   developing modern web applications
Mihai tataran developing modern web applicationsITCamp
 
HTML5 Trends + Cascade Server CMS by Uzo Okafor
HTML5 Trends + Cascade Server CMS by Uzo OkaforHTML5 Trends + Cascade Server CMS by Uzo Okafor
HTML5 Trends + Cascade Server CMS by Uzo Okaforhannonhill
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
 
Always on! ... or not?
Always on! ... or not?Always on! ... or not?
Always on! ... or not?Carsten Sandtner
 
WEB DEVELOPMENT.pptx
WEB DEVELOPMENT.pptxWEB DEVELOPMENT.pptx
WEB DEVELOPMENT.pptxRajnirani18
 

Similar to Reusable Whiteboard Wicket Component for Apache Openmeetings (20)

Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
 
Open Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C WidgetsOpen Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C Widgets
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta
 
Html5 phillycc
Html5 phillyccHtml5 phillycc
Html5 phillycc
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
 
CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0
 
HTML5: the new frontier of the web
HTML5: the new frontier of the webHTML5: the new frontier of the web
HTML5: the new frontier of the web
 
Os php-wiki1-pdf
Os php-wiki1-pdfOs php-wiki1-pdf
Os php-wiki1-pdf
 
Rave in Context @ ApacheCon 2011
Rave in Context @ ApacheCon 2011Rave in Context @ ApacheCon 2011
Rave in Context @ ApacheCon 2011
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
Mihai tataran developing modern web applications
Mihai tataran   developing modern web applicationsMihai tataran   developing modern web applications
Mihai tataran developing modern web applications
 
HTML5 Trends + Cascade Server CMS by Uzo Okafor
HTML5 Trends + Cascade Server CMS by Uzo OkaforHTML5 Trends + Cascade Server CMS by Uzo Okafor
HTML5 Trends + Cascade Server CMS by Uzo Okafor
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web Development
 
Always on! ... or not?
Always on! ... or not?Always on! ... or not?
Always on! ... or not?
 
WEB DEVELOPMENT.pptx
WEB DEVELOPMENT.pptxWEB DEVELOPMENT.pptx
WEB DEVELOPMENT.pptx
 

Recently uploaded

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Reusable Whiteboard Wicket Component for Apache Openmeetings

  • 2. I AM, • Andun S.L. Gunawardana • Co- Founder, Sith Solutions (Pvt) Ltd Sri Lanka and emoJot USA • Undergraduate of Computer Science and Engineering Department University of Moratuwa, Sri Lanka • GSoC 2013 Student – Apache OpenMeetings • Contributor – Apache WicketStuff, Apache Synapse, Apache Airavata, Apache Axis2 • Software Engineering Intern @ WSO2 - A GSoC Mentoring Organization Contributor for WSO2 ESB – World’s fastest ESB, WSO2 Identity Server, WSO2 Application Server, WSO2 Clarity Framework • Premier interest in SOA, Middleware and Cloud
  • 3. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 4. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 5. WHAT IS APACHE OPENMEETINGS http://openmeetings.apache.org/
  • 6. WHAT IS APACHE OPENMEETINGS • Apche Openmeetings provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools using API functions of the Red5 Streaming Server for Remoting and Streaming. • OpenMeetings is initiated as a separate Google Code Project (http://code.google.com/p/openmeetings/) and later it joined Apache
  • 7. WHAT IS APACHE OPENMEETINGS
  • 8. WHAT IS APACHE OPENMEETINGS • All the groupware features of Apache OpenMeetings are designed inside a one major component called Room. Users can create rooms with number of groupware tools and share them among group of people. People who enter these rooms can use these groupware tools in their collaborative work.
  • 9. WHAT IS APACHE OPENMEETINGS
  • 10. WHAT IS APACHE OPENMEETINGS • Features • Audio and Video Conferencing • Meeting recording and Screen sharing • File Explorer • Moderating System • Multi-Whiteboard and Chat
  • 11. WHAT IS APACHE OPENMEETINGS • Features • User and room management • Private message center • Plan meetings with integrated calendar • Polls and Votes • Backup
  • 12. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 13. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION? • White board provides drawing, writing, Drag n' Drop, Resizing, Adding Images (Drag n' Drop from File-Explorer), Adding Symbol(s)/Cliparts . • Can add a wide range of document formats (PDF, DOC, ODT, PPT etc.)
  • 14. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION? • Save Content, Load from Saved Content • Zooming, Navigating
  • 15. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION? • Multiple Users Simultaneously • Synchronization of Content Manipulation • Many Instances of Whiteboard
  • 16. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION?
  • 17. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION?
  • 18. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION?
  • 19. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 20. HOW THE WHITEBOARD IS BUILD USING GOOGLE CLOSURE AND APACHE WICKET • Whiteboard is a commonly used component in web application development • It is really useful if there is a generic whiteboard component which is integrated to our development – A Reusable Component • Considering that we have developed a generic whiteboard component using Google Closure Library and Apache Wicket web application development framework in my Google Summer of Code Project
  • 21. HOW THE WHITEBOARD IS BUILD USING GOOGLE CLOSURE AND APACHE WICKET • We used the JavaScript based whiteboard which is developed by Andrey Bogdanov (https://github.com/bay73/whiteboard) • It is build using Google Closure Tools. Google Closure Tools is a set of tools to help developers build rich web applications with JavaScript. It was developed by Google for use in their web applications such as Gmail, Google Docs and Google Maps.
  • 22. HOW THE WHITEBOARD IS BUILD USING GOOGLE CLOSURE AND APACHE WICKET • Prime target of my project was Apache OpeMeetings 3.1.0 release. • Earlier versions of Apache OpeMeetings has been developed using Openlaszlo Framework and Flash. • 3.0.0 onwards, Apache OpeMeetings is completely developed using HTML5, Apache Wicket
  • 23. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 24. WHAT IS APACHE WICKET? • Apache Wicket, commonly referred to as Wicket, is a lightweight component-based web application framework for the Java programming language
  • 25. WHAT IS APACHE WICKET? • XHTML part of a web page in Wicket, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" xml:lang="en" lang="en"> <body> <span wicket:id="message" id="message">Message goes here</span> </body> </html>
  • 26. WHAT IS APACHE WICKET? • Java part of the same web page in Wicket, package org.wikipedia.wicket; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; public class HelloWorld extends WebPage { public HelloWorld() { add(new Label("message", "Hello World!")); } }
  • 27. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 28. WHY APACHE WICKET? • Less technologies There are just two technologies: Java and XHTML. • Separation between layout and logic / JSP-free In Wicket all the logic is in Java-code which makes it compile-save, unit testable and debugable • Refactoring capabilities / Keep the business logic up-to-date
  • 29. WHY APACHE WICKET? • Components Every web application is developed as components. The logic for a business aspect is encapsulated in a component or in some components which can interact with each other. Components are reusable. Thus saves development time and avoids duplicated code • Pure Object-Orientation • No session wasting and safe flows In classic MVC applications everything was stored in the session. The developer forget to cleanup the session and it got bigger and bigger. Nobody knows what's in it. This can cause performance and security leaks
  • 30. WHY APACHE WICKET? • Free and Open Sourced product which has a highly dynamic and very big developer community • Higher quality and stability
  • 31. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 32. THE MULTI USER WHITEBOARD • Hosted in WicketStuff repository. Which is the main repository for reusable Wicket Components. • https://github.com/wicketstuff/core/wiki/Whiteboard • Initial version of the Whiteboard provides, • Draw basic geometric shapes like point, lines, circles, rectangles, curves, arrows • Insert pictures & background images • Basic manipulations like zooming, moving, undo • Save/Load content
  • 33. THE MULTI USER WHITEBOARD • Integrated via Maven <dependency> <groupId>org.wicketstuff</groupId> <artifactId>wicketstuff-whiteboard</artifactId> <version>6.11</version> </dependency>
  • 34. THE MULTI USER WHITEBOARD • Can be added to web page with two lines, XHTML, <div wicket:id="whiteboardContainer"></div> JAVA, Whiteboard whiteboard = new Whiteboard("Unique Id for Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard. Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null", "Location of the Background Images Folder. Relative to Context Root. Can be null"); add(whiteboard);
  • 35. THE MULTI USER WHITEBOARD • Can be added to web page with two lines, XHTML, <div wicket:id="whiteboardContainer"></div> JAVA, Whiteboard whiteboard = new Whiteboard("Unique Id for Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard. Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null", "Location of the Background Images Folder. Relative to Context Root. Can be null"); add(whiteboard);
  • 36. THE MULTI USER WHITEBOARD • Whiteboard content is represented in JSON {"background": { "height": 326, "width": 595.0481927710844, "left": -297.5240963855422, "type": "Background", "url": "http://localhost:8080/Documents/gmaps.jpg", "top": 163 }, "elements": [ { "id": 5, "p2": 4, "color": "", "p1": 3, "trace": false, "hidden": false, "label": "", "type": "PencilCircle“ }, }
  • 37. THE MULTI USER WHITEBOARD • Synchronization of Content, Save Content, Load Content functionalities use the JSON representation
  • 38. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 39. DEMO
  • 40. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 41. WHAT IS NEXT ? • Adding, • Doc Sharing capability on Whiteboard • Adding complex drawing functionalities • Adding graph tools
  • 42. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 43. USEFUL URLS • https://github.com/wicketstuff/core/wiki/Whiteboard • https://github.com/wicketstuff/core/tree/master/jdk-1.6parent/whiteboard-parent • http://www.googlemelange.com/gsoc/proposal/review/google/gsoc2013/an dunslg/5747559595245568 • https://github.com/wicketstuff/core