SlideShare a Scribd company logo
Implementation of GUI Framework 
Part3 : Introduction of GUI Components using 
JavaScript 
Masahiro Okubo @ HDE
Table of Contents 
Part1 : Overview of the GUI framework 
Part2 : How to use Bootstrap 
Part3 : Introduction of GUI Components using JavaScript (Today’s session) 
Part4 : Communitation with the server using Ajax and JSON 
Part5 : How to convert a POJO (Plain Old Java Object) JSON 
Part6 : Web application architecture on the server side 
I am glad to see you again to everyone. 
Today, I would like to tell about GUI Components of our 
products.
GUI Framework Architecture 
Client Side Server Side 
Application program 
Custom JavaScript Library (GUI Components) 
jQuery 
Custom CSS 
Bootstrap 
Modern Web Browsers (Ex. IE9,Firedox,Chome) 
RDB 
Data Access Framework 
Service Framework 
JSONIC Apache Click 
Apache Tomcat 
There are a lot of JavaScript based UI framerowk but I made it by 
myself.
Look back 
■Separation of control and screen design 
I want to do to free the screen layout. 
I want to use the excellent CSS such as BootStrap. 
■Simple and unified interface 
I think if you have developed in JavaScript with leave to the 
skill of the programmer, be disastrous to happen. Need some 
framework. 
■Ease of data handling 
Retrive a value from form, check, and post to server , 
processed, and stored in the DB… too cumbersome !
Flow of processing 
Form Table Control Model 
Server 
Side 
submit 
attach 
nofity (onSubmit) 
get & check 
insert 
insert (JSON-RPC) 
result 
result 
display result 
notify 
find 
find 
result 
display data
Write HTML of Form 
<form id="ac-form"> 
<input type="hidden" name="status" value="0"> 
<input type="hidden" name="lastLoginDate" value=""> 
<div class="form-group"> 
<label>$messages.user.dialog.account</label> 
<div class="col-sm-6"> 
<input type="text" name="account"> 
</div> 
</div> 
<div class="form-group"> 
<label>$messages.user.dialog.username</label> 
<div class="col-sm-6"> 
<input type="text" name="username"> 
</div> 
</div> 
<div class="form-group"> 
<label>$messages.user.dialog.password</label> 
<div class="col-sm-6"> 
<input type="password" name="password" autocomplete="off" disabled> 
</div> 
</div> 
<div class="form-group"> 
<label>$messages.user.dialog.confPassword</label> 
<div class="col-sm-6"> 
<input type="password" name="confPassword" autocomplete="off" disabled> 
</div> 
</div> 
</form>
Write JavaScript 
persimmon.app.Account = function(id, prop) { 
this.init_(id, prop); 
}; 
persimmon.app.Account.prototype = { 
init_ : function(id, prop) { 
this.model_ = persimmon.lib.DataSource.getInstance(“Account”); 
this.form_ = persimmon.lib.component.Form(“ac-form”, null); 
this.submit_ = $(document).find(“ac-submit”); // using jQuery 
this.submit_.on(‘click’, this, this.insertData); 
}, 
insertData : function(event) { 
var my = event.data; 
var account = my.form.get(); 
if (my.confirmPassword(account)) { 
my.model.insert(account); 
} else { 
// display error message. 
} 
} 
}; 
var account = { 
status : 0, 
lastLoginDate : “”, 
account : “okubo”, 
username : “Masahiro 
Okubo”, 
password : “mypassword”, 
confPassword : 
“mypassword” 
};
Write HTML of Table 
<table id="ac-table"> 
<thead> 
<tr> 
<th data-name="account" data-link="id">$messages.user.table.list.account</th> 
<th data-name="name">$messages.user.table.list.name</th> 
<th data-name="lastLoginDate">$messages.user.table.list.lastLoginDate</th> 
</tr> 
</thead> 
<tbody> 
</tbody> 
</table>
Write JavaScript 
persimmon.app.Account = function(id, prop) { 
this.init_(id, prop); 
}; 
persimmon.app.Account.prototype = { 
init_ : function(id, prop) { 
this.model_ = persimmon.lib.DataSource.getInstance(“Account”); 
this.form_ = persimmon.lib.component.Form(“ac-form”, null); 
this.submit_ = $(document).find(“ac-submit”); // using jQuery 
this.submit_.on(‘click’, this, this.insertData); 
this.table_ = persimmon.lib.Table(“ac-table”, 
{ 
source : this.model, 
order : [ { name : “account”, ascending : true } ], 
rows : 10 
}); 
this.table_.refresh(); // display data 
}, 
insertData : function(event) { 
var my = event.data; 
var account = my.form.get(); 
if (my.confirmPassword(account)) { 
my.model.insert(account); 
} else { 
// display error message. 
} 
} 
};
Next 
Part1 : Overview of the GUI framework 
Part2 : How to use Bootstrap (Today’s session) 
Part3 : Introduction of GUI Components using JavaScript 
Part4 : Communitation with the server using Ajax and JSON 
Part5 : How to convert a POJO (Plain Old Java Object) JSON 
Part6 : Web application architecture on the server side 
Thank you for your attention. 
I would like to describe the server communication using Ajax 
and JSON next time.
Ad

More Related Content

What's hot (20)

Google Polymer Introduction
Google Polymer IntroductionGoogle Polymer Introduction
Google Polymer Introduction
David Price
 
Harness jQuery Templates and Data Link
Harness jQuery Templates and Data LinkHarness jQuery Templates and Data Link
Harness jQuery Templates and Data Link
BorisMoore
 
Introduction to Browser Internals
Introduction to Browser InternalsIntroduction to Browser Internals
Introduction to Browser Internals
Siva Arunachalam
 
BBUI
BBUIBBUI
BBUI
Anoop Nayak
 
Levent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & PolymerLevent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & Polymer
Erik Isaksen
 
Nuxt.JS Introdruction
Nuxt.JS IntrodructionNuxt.JS Introdruction
Nuxt.JS Introdruction
David Ličen
 
Real World Web components
Real World Web componentsReal World Web components
Real World Web components
Jarrod Overson
 
Os mobile
Os mobileOs mobile
Os mobile
jimlindforpope
 
Os mobile
Os mobileOs mobile
Os mobile
jimlindforpope
 
Polymer and web component
Polymer and web componentPolymer and web component
Polymer and web component
Imam Raza
 
Effective TDD - Less is more
Effective TDD - Less is moreEffective TDD - Less is more
Effective TDD - Less is more
Ben Lau
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
Fu Cheng
 
Nuxt Talk
Nuxt TalkNuxt Talk
Nuxt Talk
Sébastien Chopin
 
Magehack_Autogrid presentation
Magehack_Autogrid presentationMagehack_Autogrid presentation
Magehack_Autogrid presentation
Szabolcs (Sam) Ban
 
How browser work
How browser workHow browser work
How browser work
Manish Trivedi
 
Zk doc1
Zk doc1Zk doc1
Zk doc1
Rupalli Das
 
Javascript ui for rest services
Javascript ui for rest servicesJavascript ui for rest services
Javascript ui for rest services
Ioan Eugen Stan
 
Jasmine 2.0
Jasmine 2.0Jasmine 2.0
Jasmine 2.0
Giorgio Natili
 
How to build a web application with Polymer
How to build a web application with PolymerHow to build a web application with Polymer
How to build a web application with Polymer
Sami Suo-Heikki
 
Cloud browser testing with Gradle and Geb
Cloud browser testing with Gradle and GebCloud browser testing with Gradle and Geb
Cloud browser testing with Gradle and Geb
David Carr
 
Google Polymer Introduction
Google Polymer IntroductionGoogle Polymer Introduction
Google Polymer Introduction
David Price
 
Harness jQuery Templates and Data Link
Harness jQuery Templates and Data LinkHarness jQuery Templates and Data Link
Harness jQuery Templates and Data Link
BorisMoore
 
Introduction to Browser Internals
Introduction to Browser InternalsIntroduction to Browser Internals
Introduction to Browser Internals
Siva Arunachalam
 
Levent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & PolymerLevent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & Polymer
Erik Isaksen
 
Nuxt.JS Introdruction
Nuxt.JS IntrodructionNuxt.JS Introdruction
Nuxt.JS Introdruction
David Ličen
 
Real World Web components
Real World Web componentsReal World Web components
Real World Web components
Jarrod Overson
 
Polymer and web component
Polymer and web componentPolymer and web component
Polymer and web component
Imam Raza
 
Effective TDD - Less is more
Effective TDD - Less is moreEffective TDD - Less is more
Effective TDD - Less is more
Ben Lau
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
Fu Cheng
 
Magehack_Autogrid presentation
Magehack_Autogrid presentationMagehack_Autogrid presentation
Magehack_Autogrid presentation
Szabolcs (Sam) Ban
 
Javascript ui for rest services
Javascript ui for rest servicesJavascript ui for rest services
Javascript ui for rest services
Ioan Eugen Stan
 
How to build a web application with Polymer
How to build a web application with PolymerHow to build a web application with Polymer
How to build a web application with Polymer
Sami Suo-Heikki
 
Cloud browser testing with Gradle and Geb
Cloud browser testing with Gradle and GebCloud browser testing with Gradle and Geb
Cloud browser testing with Gradle and Geb
David Carr
 

Viewers also liked (20)

Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Introducing chrome apps (ogura)
Introducing chrome apps (ogura)
Kazuhiro Ogura
 
Introduction to bioinformatics
Introduction to bioinformaticsIntroduction to bioinformatics
Introduction to bioinformatics
philmaweb
 
DockerCon 14
DockerCon 14DockerCon 14
DockerCon 14
Yusaku OGAWA
 
Studying Abroad in Cebu
Studying Abroad in CebuStudying Abroad in Cebu
Studying Abroad in Cebu
etgjsv
 
First impressions of Go
First impressions of GoFirst impressions of Go
First impressions of Go
Yusaku OGAWA
 
Jun.27 fukutomi
Jun.27 fukutomiJun.27 fukutomi
Jun.27 fukutomi
iyo16
 
Ui testing with splinter - Fri, 30 May 2014
Ui testing with splinter - Fri, 30 May 2014Ui testing with splinter - Fri, 30 May 2014
Ui testing with splinter - Fri, 30 May 2014
Taizo Ito
 
A brief introduction to CentOS 7
A brief introduction to CentOS 7A brief introduction to CentOS 7
A brief introduction to CentOS 7
Taizo Ito
 
How to study english
How to study englishHow to study english
How to study english
masahiroookubo
 
Hello pivotal tracker
Hello pivotal trackerHello pivotal tracker
Hello pivotal tracker
sharu1204
 
Do not rm_log_files
Do not rm_log_filesDo not rm_log_files
Do not rm_log_files
Masato Bito
 
Implement server push in flask framework
Implement server push in flask frameworkImplement server push in flask framework
Implement server push in flask framework
Chi-Chia Huang
 
Introduction to systemd
Introduction to systemdIntroduction to systemd
Introduction to systemd
Yusaku OGAWA
 
Garbled text in email
Garbled text in emailGarbled text in email
Garbled text in email
tas-hiro
 
AWS Cost Visualizer
AWS Cost VisualizerAWS Cost Visualizer
AWS Cost Visualizer
Institut Teknologi Bandung
 
I18n of java script
I18n of java scriptI18n of java script
I18n of java script
Junichi Shinohara
 
The language barrier.
The language barrier.The language barrier.
The language barrier.
pumpkin_brownies
 
Authentication
AuthenticationAuthentication
Authentication
Takehiko Kodama
 
Self Created Load Balancer for MTA on AWS
Self Created Load Balancer for MTA on AWSSelf Created Load Balancer for MTA on AWS
Self Created Load Balancer for MTA on AWS
sharu1204
 
Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Introducing chrome apps (ogura)
Introducing chrome apps (ogura)
Kazuhiro Ogura
 
Introduction to bioinformatics
Introduction to bioinformaticsIntroduction to bioinformatics
Introduction to bioinformatics
philmaweb
 
Studying Abroad in Cebu
Studying Abroad in CebuStudying Abroad in Cebu
Studying Abroad in Cebu
etgjsv
 
First impressions of Go
First impressions of GoFirst impressions of Go
First impressions of Go
Yusaku OGAWA
 
Jun.27 fukutomi
Jun.27 fukutomiJun.27 fukutomi
Jun.27 fukutomi
iyo16
 
Ui testing with splinter - Fri, 30 May 2014
Ui testing with splinter - Fri, 30 May 2014Ui testing with splinter - Fri, 30 May 2014
Ui testing with splinter - Fri, 30 May 2014
Taizo Ito
 
A brief introduction to CentOS 7
A brief introduction to CentOS 7A brief introduction to CentOS 7
A brief introduction to CentOS 7
Taizo Ito
 
Hello pivotal tracker
Hello pivotal trackerHello pivotal tracker
Hello pivotal tracker
sharu1204
 
Do not rm_log_files
Do not rm_log_filesDo not rm_log_files
Do not rm_log_files
Masato Bito
 
Implement server push in flask framework
Implement server push in flask frameworkImplement server push in flask framework
Implement server push in flask framework
Chi-Chia Huang
 
Introduction to systemd
Introduction to systemdIntroduction to systemd
Introduction to systemd
Yusaku OGAWA
 
Garbled text in email
Garbled text in emailGarbled text in email
Garbled text in email
tas-hiro
 
Self Created Load Balancer for MTA on AWS
Self Created Load Balancer for MTA on AWSSelf Created Load Balancer for MTA on AWS
Self Created Load Balancer for MTA on AWS
sharu1204
 
Ad

Similar to Implementation of GUI Framework part3 (20)

前端概述
前端概述前端概述
前端概述
Ethan Zhang
 
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface
 
Java script
Java scriptJava script
Java script
Fajar Baskoro
 
PPT
PPTPPT
PPT
webhostingguy
 
GHC Participant Training
GHC Participant TrainingGHC Participant Training
GHC Participant Training
AidIQ
 
Java script
Java scriptJava script
Java script
Soham Sengupta
 
Practical PHP by example Jan Leth-Kjaer
Practical PHP by example   Jan Leth-KjaerPractical PHP by example   Jan Leth-Kjaer
Practical PHP by example Jan Leth-Kjaer
COMMON Europe
 
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFaces
Ankara JUG
 
HTML5 New and Improved
HTML5   New and ImprovedHTML5   New and Improved
HTML5 New and Improved
Timothy Fisher
 
ASP.Net, move data to and from a SQL Server Database
ASP.Net, move data to and from a SQL Server DatabaseASP.Net, move data to and from a SQL Server Database
ASP.Net, move data to and from a SQL Server Database
Christopher Singleton
 
Rails GUI Development with Ext JS
Rails GUI Development with Ext JSRails GUI Development with Ext JS
Rails GUI Development with Ext JS
Martin Rehfeld
 
ASP.NET Overview - Alvin Lau
ASP.NET Overview - Alvin LauASP.NET Overview - Alvin Lau
ASP.NET Overview - Alvin Lau
Spiffy
 
Introduction to Html5
Introduction to Html5Introduction to Html5
Introduction to Html5
www.netgains.org
 
JS-05-Handlebars.ppt
JS-05-Handlebars.pptJS-05-Handlebars.ppt
JS-05-Handlebars.ppt
fakeaccount225095
 
J Query Public
J Query PublicJ Query Public
J Query Public
pradeepsilamkoti
 
Wt unit 2 ppts client sied technology
Wt unit 2 ppts client sied technologyWt unit 2 ppts client sied technology
Wt unit 2 ppts client sied technology
PUNE VIDYARTHI GRIHA'S COLLEGE OF ENGINEERING, NASHIK
 
Wt unit 2 ppts client side technology
Wt unit 2 ppts client side technologyWt unit 2 ppts client side technology
Wt unit 2 ppts client side technology
PUNE VIDYARTHI GRIHA'S COLLEGE OF ENGINEERING, NASHIK
 
Internet and Web Technology (CLASS-8) [jQuery and JSON] | NIC/NIELIT Web Tech...
Internet and Web Technology (CLASS-8) [jQuery and JSON] | NIC/NIELIT Web Tech...Internet and Web Technology (CLASS-8) [jQuery and JSON] | NIC/NIELIT Web Tech...
Internet and Web Technology (CLASS-8) [jQuery and JSON] | NIC/NIELIT Web Tech...
Ayes Chinmay
 
Angular js
Angular jsAngular js
Angular js
prasaddammalapati
 
Boston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on RailsBoston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on Rails
John Brunswick
 
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface
 
GHC Participant Training
GHC Participant TrainingGHC Participant Training
GHC Participant Training
AidIQ
 
Practical PHP by example Jan Leth-Kjaer
Practical PHP by example   Jan Leth-KjaerPractical PHP by example   Jan Leth-Kjaer
Practical PHP by example Jan Leth-Kjaer
COMMON Europe
 
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFaces
Ankara JUG
 
HTML5 New and Improved
HTML5   New and ImprovedHTML5   New and Improved
HTML5 New and Improved
Timothy Fisher
 
ASP.Net, move data to and from a SQL Server Database
ASP.Net, move data to and from a SQL Server DatabaseASP.Net, move data to and from a SQL Server Database
ASP.Net, move data to and from a SQL Server Database
Christopher Singleton
 
Rails GUI Development with Ext JS
Rails GUI Development with Ext JSRails GUI Development with Ext JS
Rails GUI Development with Ext JS
Martin Rehfeld
 
ASP.NET Overview - Alvin Lau
ASP.NET Overview - Alvin LauASP.NET Overview - Alvin Lau
ASP.NET Overview - Alvin Lau
Spiffy
 
Internet and Web Technology (CLASS-8) [jQuery and JSON] | NIC/NIELIT Web Tech...
Internet and Web Technology (CLASS-8) [jQuery and JSON] | NIC/NIELIT Web Tech...Internet and Web Technology (CLASS-8) [jQuery and JSON] | NIC/NIELIT Web Tech...
Internet and Web Technology (CLASS-8) [jQuery and JSON] | NIC/NIELIT Web Tech...
Ayes Chinmay
 
Boston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on RailsBoston Computing Review - Ruby on Rails
Boston Computing Review - Ruby on Rails
John Brunswick
 
Ad

Recently uploaded (20)

Download 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-ActivatedDownload 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-Activated
Web Designer
 
Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
How to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber PluginHow to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber Plugin
eGrabber
 
Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
Beyond the code. Complexity - 2025.05 - SwiftCraft
Beyond the code. Complexity - 2025.05 - SwiftCraftBeyond the code. Complexity - 2025.05 - SwiftCraft
Beyond the code. Complexity - 2025.05 - SwiftCraft
Dmitrii Ivanov
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Exchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv SoftwareExchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv Software
Shoviv Software
 
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World ExamplesMastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
jamescantor38
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
OnePlan Solutions
 
Unit Two - Java Architecture and OOPS
Unit Two  -   Java Architecture and OOPSUnit Two  -   Java Architecture and OOPS
Unit Two - Java Architecture and OOPS
Nabin Dhakal
 
Solar-wind hybrid engery a system sustainable power
Solar-wind  hybrid engery a system sustainable powerSolar-wind  hybrid engery a system sustainable power
Solar-wind hybrid engery a system sustainable power
bhoomigowda12345
 
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb ClarkDeploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Peter Caitens
 
NYC ACE 08-May-2025-Combined Presentation.pdf
NYC ACE 08-May-2025-Combined Presentation.pdfNYC ACE 08-May-2025-Combined Presentation.pdf
NYC ACE 08-May-2025-Combined Presentation.pdf
AUGNYC
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?
HireME
 
Autodesk Inventor Crack (2025) Latest
Autodesk Inventor    Crack (2025) LatestAutodesk Inventor    Crack (2025) Latest
Autodesk Inventor Crack (2025) Latest
Google
 
Digital Twins Software Service in Belfast
Digital Twins Software Service in BelfastDigital Twins Software Service in Belfast
Digital Twins Software Service in Belfast
julia smits
 
Download 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-ActivatedDownload 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-Activated
Web Designer
 
Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
How to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber PluginHow to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber Plugin
eGrabber
 
Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
Beyond the code. Complexity - 2025.05 - SwiftCraft
Beyond the code. Complexity - 2025.05 - SwiftCraftBeyond the code. Complexity - 2025.05 - SwiftCraft
Beyond the code. Complexity - 2025.05 - SwiftCraft
Dmitrii Ivanov
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Exchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv SoftwareExchange Migration Tool- Shoviv Software
Exchange Migration Tool- Shoviv Software
Shoviv Software
 
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World ExamplesMastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
jamescantor38
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
OnePlan Solutions
 
Unit Two - Java Architecture and OOPS
Unit Two  -   Java Architecture and OOPSUnit Two  -   Java Architecture and OOPS
Unit Two - Java Architecture and OOPS
Nabin Dhakal
 
Solar-wind hybrid engery a system sustainable power
Solar-wind  hybrid engery a system sustainable powerSolar-wind  hybrid engery a system sustainable power
Solar-wind hybrid engery a system sustainable power
bhoomigowda12345
 
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb ClarkDeploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Deploying & Testing Agentforce - End-to-end with Copado - Ewenb Clark
Peter Caitens
 
NYC ACE 08-May-2025-Combined Presentation.pdf
NYC ACE 08-May-2025-Combined Presentation.pdfNYC ACE 08-May-2025-Combined Presentation.pdf
NYC ACE 08-May-2025-Combined Presentation.pdf
AUGNYC
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?
HireME
 
Autodesk Inventor Crack (2025) Latest
Autodesk Inventor    Crack (2025) LatestAutodesk Inventor    Crack (2025) Latest
Autodesk Inventor Crack (2025) Latest
Google
 
Digital Twins Software Service in Belfast
Digital Twins Software Service in BelfastDigital Twins Software Service in Belfast
Digital Twins Software Service in Belfast
julia smits
 

Implementation of GUI Framework part3

  • 1. Implementation of GUI Framework Part3 : Introduction of GUI Components using JavaScript Masahiro Okubo @ HDE
  • 2. Table of Contents Part1 : Overview of the GUI framework Part2 : How to use Bootstrap Part3 : Introduction of GUI Components using JavaScript (Today’s session) Part4 : Communitation with the server using Ajax and JSON Part5 : How to convert a POJO (Plain Old Java Object) JSON Part6 : Web application architecture on the server side I am glad to see you again to everyone. Today, I would like to tell about GUI Components of our products.
  • 3. GUI Framework Architecture Client Side Server Side Application program Custom JavaScript Library (GUI Components) jQuery Custom CSS Bootstrap Modern Web Browsers (Ex. IE9,Firedox,Chome) RDB Data Access Framework Service Framework JSONIC Apache Click Apache Tomcat There are a lot of JavaScript based UI framerowk but I made it by myself.
  • 4. Look back ■Separation of control and screen design I want to do to free the screen layout. I want to use the excellent CSS such as BootStrap. ■Simple and unified interface I think if you have developed in JavaScript with leave to the skill of the programmer, be disastrous to happen. Need some framework. ■Ease of data handling Retrive a value from form, check, and post to server , processed, and stored in the DB… too cumbersome !
  • 5. Flow of processing Form Table Control Model Server Side submit attach nofity (onSubmit) get & check insert insert (JSON-RPC) result result display result notify find find result display data
  • 6. Write HTML of Form <form id="ac-form"> <input type="hidden" name="status" value="0"> <input type="hidden" name="lastLoginDate" value=""> <div class="form-group"> <label>$messages.user.dialog.account</label> <div class="col-sm-6"> <input type="text" name="account"> </div> </div> <div class="form-group"> <label>$messages.user.dialog.username</label> <div class="col-sm-6"> <input type="text" name="username"> </div> </div> <div class="form-group"> <label>$messages.user.dialog.password</label> <div class="col-sm-6"> <input type="password" name="password" autocomplete="off" disabled> </div> </div> <div class="form-group"> <label>$messages.user.dialog.confPassword</label> <div class="col-sm-6"> <input type="password" name="confPassword" autocomplete="off" disabled> </div> </div> </form>
  • 7. Write JavaScript persimmon.app.Account = function(id, prop) { this.init_(id, prop); }; persimmon.app.Account.prototype = { init_ : function(id, prop) { this.model_ = persimmon.lib.DataSource.getInstance(“Account”); this.form_ = persimmon.lib.component.Form(“ac-form”, null); this.submit_ = $(document).find(“ac-submit”); // using jQuery this.submit_.on(‘click’, this, this.insertData); }, insertData : function(event) { var my = event.data; var account = my.form.get(); if (my.confirmPassword(account)) { my.model.insert(account); } else { // display error message. } } }; var account = { status : 0, lastLoginDate : “”, account : “okubo”, username : “Masahiro Okubo”, password : “mypassword”, confPassword : “mypassword” };
  • 8. Write HTML of Table <table id="ac-table"> <thead> <tr> <th data-name="account" data-link="id">$messages.user.table.list.account</th> <th data-name="name">$messages.user.table.list.name</th> <th data-name="lastLoginDate">$messages.user.table.list.lastLoginDate</th> </tr> </thead> <tbody> </tbody> </table>
  • 9. Write JavaScript persimmon.app.Account = function(id, prop) { this.init_(id, prop); }; persimmon.app.Account.prototype = { init_ : function(id, prop) { this.model_ = persimmon.lib.DataSource.getInstance(“Account”); this.form_ = persimmon.lib.component.Form(“ac-form”, null); this.submit_ = $(document).find(“ac-submit”); // using jQuery this.submit_.on(‘click’, this, this.insertData); this.table_ = persimmon.lib.Table(“ac-table”, { source : this.model, order : [ { name : “account”, ascending : true } ], rows : 10 }); this.table_.refresh(); // display data }, insertData : function(event) { var my = event.data; var account = my.form.get(); if (my.confirmPassword(account)) { my.model.insert(account); } else { // display error message. } } };
  • 10. Next Part1 : Overview of the GUI framework Part2 : How to use Bootstrap (Today’s session) Part3 : Introduction of GUI Components using JavaScript Part4 : Communitation with the server using Ajax and JSON Part5 : How to convert a POJO (Plain Old Java Object) JSON Part6 : Web application architecture on the server side Thank you for your attention. I would like to describe the server communication using Ajax and JSON next time.
  翻译: