This document provides an overview and agenda for a seminar on the Apache Wicket framework. Some key points:
- Wicket is an open source, component-based Java web framework that aims to make web app development simple and enjoyable.
- The seminar agenda covers Wicket concepts, features, demos of a sample app and custom component, and Q&A.
- Wicket aims to improve on other frameworks like JSF by having a flatter learning curve, avoiding XML, and making components easy to create and reuse.
- Wicket uses standard HTML templates linked to Java code through identifiers rather than custom tags.
This presentation takes a pragmatic approach to comparing JavaFX and HTML5, using an application written in JavaFX versus the same functionality written in HTML5 to illustrate the pros and cons of each.
One of the key features of JavaFX 2.0 is having full-fledged embedded browser. This enables JavaFX apps to embed web contents, and also to work together with HTML5 apps.
This session focuses on JavaFX's web component, WebEngine, and show how JavaFX can work together with web technologies (HTML/CSS/JavaScript) by using demos and sample codes.
(Session JS1-13 / Apr 4th, JavaOne Tokyo 2012)
Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...Atlassian
Peer Code Review: In a Nutshell
Development is inherently collaborative. So why aren't you doing code review? This session discusses the importance of collaboration around your source code, the impact code review can have on development teams, and offers guidance on how to get started.
Atlassian Speaker: Matt Quail
Customer Speaker: Patrick Coleman of Dash
Key Takeaways:
* Peer code review explained
* Benefits and approaches to effective code review
The Tantric Team: Getting Your Automated Build Groove On
Want to take your build automation to the next level? This session explains the process of setting up an automated software development infrastructure using the Atlassian tools, focusing on continuous integration. This session outlines key steps involved in automating a typical Java project using Ant, Bamboo, FishEye, Clover, JIRA and a large cast of other supporting tools.
Customer Speaker: Rik Tamm-Daniels
Key Takeaways:
* Continuous integration how-to
* Integrating multiple Atlassian tools, along with other development infrastructure
This presentation takes a pragmatic approach to comparing JavaFX and HTML5, using an application written in JavaFX versus the same functionality written in HTML5 to illustrate the pros and cons of each.
One of the key features of JavaFX 2.0 is having full-fledged embedded browser. This enables JavaFX apps to embed web contents, and also to work together with HTML5 apps.
This session focuses on JavaFX's web component, WebEngine, and show how JavaFX can work together with web technologies (HTML/CSS/JavaScript) by using demos and sample codes.
(Session JS1-13 / Apr 4th, JavaOne Tokyo 2012)
Peer Code Review: In a Nutshell and The Tantric Team: Getting Your Automated ...Atlassian
Peer Code Review: In a Nutshell
Development is inherently collaborative. So why aren't you doing code review? This session discusses the importance of collaboration around your source code, the impact code review can have on development teams, and offers guidance on how to get started.
Atlassian Speaker: Matt Quail
Customer Speaker: Patrick Coleman of Dash
Key Takeaways:
* Peer code review explained
* Benefits and approaches to effective code review
The Tantric Team: Getting Your Automated Build Groove On
Want to take your build automation to the next level? This session explains the process of setting up an automated software development infrastructure using the Atlassian tools, focusing on continuous integration. This session outlines key steps involved in automating a typical Java project using Ant, Bamboo, FishEye, Clover, JIRA and a large cast of other supporting tools.
Customer Speaker: Rik Tamm-Daniels
Key Takeaways:
* Continuous integration how-to
* Integrating multiple Atlassian tools, along with other development infrastructure
Making the HTML5 Video element interactiveCharles Hudson
From Streaming Media West Conference
Huntington Beach, CA
November 2013
C202: HOW TO: Making the HTML5 Video Element Interactive
The HTML5 Video element has now become widely used by browsers and supported in a broad set of websites for streaming video content. With some JavaScript and CSS, we can leverage the HTML video element to create highly interactive experiences for the viewer in both traditional and mobile browsing environments. This hands-on session explores the integration of events with the video timeline, creating positioned hotspots with links and dynamic content, and capturing user input. In addition, the session examines supporting mobile platform browsers along with future opportunities with the HTML5 video tag. Get sample code, ideas, and best practices for making the HTML5 video element an engaging interactive experience for your viewers.
Speaker: Chuck Hudson, Co-Author, HTML5 Developer's Cookbook
Presentation about the features of JavaFX. See how to use video, different deployment types, JavaScript integration, annimations and more. Demo's not included.
Construindo aplicações com HTML5, WebSockets, e Java EE 7Bruno Borges
A família de tecnologias HTML5 avançou e foi bem longe, comparado com tecnologias rich client e possibilitou clientes Web com cada vez mais capacidade de execução nos navegadores de hoje. Em particular, WebSockets trazem novas oportunidades para a comunicação eficiente peer-to-peer, fornecendo a base para uma nova geração de aplicações web interativas e "ao vivo". Esta sessão examina os esforços com JSR 356 para apoiar WebSocket no modelo de programação Java, a partir de sua integração ao nível de base nos recipientes Java Servlet e Java EE para um novo, API fácil de usar e conjunto de ferramentas que faz parte do padrão plataforma Java.
The Tantric Team: Getting Your Automated Build Groove OnAtlassian
Want to take your build automation to the next level? This session explains the process of setting up an automated software development infrastructure using the Atlassian tools, focusing on continuous integration. This session outlines key steps involved in automating a typical Java project using Ant, Bamboo, FishEye, Clover, JIRA and a large cast of other supporting tools.
Customer Speaker: Rik Tam-Daniels
Key Takeaways:
Continuous integration how-to
Integrating multiple Atlassian tools, along with other development infrastructure
High-Octane Dev Teams: Three Things You Can Do To Improve Code QualityAtlassian
Bugs suck. But we know they are inevitable. Finding bugs fast and dealing with them early results in higher quality code. This session explores the practical approaches to improving code quality with automated testing, continuous integration and effective code review.
Atlassian Speaker: Brendan Humphreys
Customer Speaker: Rik Tamm-Daniels of Attivio
Key Takeaways:
* Overviews of key concepts and how to get started
* Walk-throughs and configuration tips for Clover, Bamboo and Crucible
* Stories from the trenches
Slides from my talk discussing my experience rebuilding a video player I previously developed in Flash. I gave this talk on March 18th, at the Brisbane Web Design Meetup.
Making the HTML5 Video element interactiveCharles Hudson
From Streaming Media West Conference
Huntington Beach, CA
November 2013
C202: HOW TO: Making the HTML5 Video Element Interactive
The HTML5 Video element has now become widely used by browsers and supported in a broad set of websites for streaming video content. With some JavaScript and CSS, we can leverage the HTML video element to create highly interactive experiences for the viewer in both traditional and mobile browsing environments. This hands-on session explores the integration of events with the video timeline, creating positioned hotspots with links and dynamic content, and capturing user input. In addition, the session examines supporting mobile platform browsers along with future opportunities with the HTML5 video tag. Get sample code, ideas, and best practices for making the HTML5 video element an engaging interactive experience for your viewers.
Speaker: Chuck Hudson, Co-Author, HTML5 Developer's Cookbook
Presentation about the features of JavaFX. See how to use video, different deployment types, JavaScript integration, annimations and more. Demo's not included.
Construindo aplicações com HTML5, WebSockets, e Java EE 7Bruno Borges
A família de tecnologias HTML5 avançou e foi bem longe, comparado com tecnologias rich client e possibilitou clientes Web com cada vez mais capacidade de execução nos navegadores de hoje. Em particular, WebSockets trazem novas oportunidades para a comunicação eficiente peer-to-peer, fornecendo a base para uma nova geração de aplicações web interativas e "ao vivo". Esta sessão examina os esforços com JSR 356 para apoiar WebSocket no modelo de programação Java, a partir de sua integração ao nível de base nos recipientes Java Servlet e Java EE para um novo, API fácil de usar e conjunto de ferramentas que faz parte do padrão plataforma Java.
The Tantric Team: Getting Your Automated Build Groove OnAtlassian
Want to take your build automation to the next level? This session explains the process of setting up an automated software development infrastructure using the Atlassian tools, focusing on continuous integration. This session outlines key steps involved in automating a typical Java project using Ant, Bamboo, FishEye, Clover, JIRA and a large cast of other supporting tools.
Customer Speaker: Rik Tam-Daniels
Key Takeaways:
Continuous integration how-to
Integrating multiple Atlassian tools, along with other development infrastructure
High-Octane Dev Teams: Three Things You Can Do To Improve Code QualityAtlassian
Bugs suck. But we know they are inevitable. Finding bugs fast and dealing with them early results in higher quality code. This session explores the practical approaches to improving code quality with automated testing, continuous integration and effective code review.
Atlassian Speaker: Brendan Humphreys
Customer Speaker: Rik Tamm-Daniels of Attivio
Key Takeaways:
* Overviews of key concepts and how to get started
* Walk-throughs and configuration tips for Clover, Bamboo and Crucible
* Stories from the trenches
Slides from my talk discussing my experience rebuilding a video player I previously developed in Flash. I gave this talk on March 18th, at the Brisbane Web Design Meetup.
Agile Java Testing With Open Source FrameworksViraf Karai
This is a presentation on leveraging open-source, agile test frameworks to do unit, load/perf, integration and performance testing on Java enterprise applications.
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Max Andersen
This session discusses the promise of interoperability in the Java EE 7 platform and what has been done—even now, at its time of release—to maintain this. The session shows how a Java EE 7 application can be easily built using NetBeans and JBoss development tools. This application can then be deployed on JBoss, GlassFish, and Oracle WebLogic, showing the promise of interoperability. The state of Java EE 7 compliance for different application servers is discussed and demonstrated.
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
This session provides an overview of Java EE 6 and GlassFish v3. Using multiple simple-to-understand samples it explains the value propositionprovided by Java EE 6.
Google AppEngine (GAE/J) - Introduction and Overview from a Java GuyMax Völkel
You know Java, but what is AppEngine? In this session Max will walk you from a brief introduction of Servlets to an overview of the Google AppEngine. We learn about the basics such as the data store – which is quite different from SQL -, application versions, back-ends, scheduler, instances and logging. Services such as mail, url fetch, task queue are also explained. Since we use GAE/J since 2010 in Calpano we also talk about costs and experience in practice.
Similar to Wicket Deliver Your Webapp On Time (20)
Understanding User Needs and Satisfying ThemAggregage
https://www.productmanagementtoday.com/frs/26903918/understanding-user-needs-and-satisfying-them
We know we want to create products which our customers find to be valuable. Whether we label it as customer-centric or product-led depends on how long we've been doing product management. There are three challenges we face when doing this. The obvious challenge is figuring out what our users need; the non-obvious challenges are in creating a shared understanding of those needs and in sensing if what we're doing is meeting those needs.
In this webinar, we won't focus on the research methods for discovering user-needs. We will focus on synthesis of the needs we discover, communication and alignment tools, and how we operationalize addressing those needs.
Industry expert Scott Sehlhorst will:
• Introduce a taxonomy for user goals with real world examples
• Present the Onion Diagram, a tool for contextualizing task-level goals
• Illustrate how customer journey maps capture activity-level and task-level goals
• Demonstrate the best approach to selection and prioritization of user-goals to address
• Highlight the crucial benchmarks, observable changes, in ensuring fulfillment of customer needs
buy old yahoo accounts buy yahoo accountsSusan Laney
As a business owner, I understand the importance of having a strong online presence and leveraging various digital platforms to reach and engage with your target audience. One often overlooked yet highly valuable asset in this regard is the humble Yahoo account. While many may perceive Yahoo as a relic of the past, the truth is that these accounts still hold immense potential for businesses of all sizes.
Building Your Employer Brand with Social MediaLuanWise
Presented at The Global HR Summit, 6th June 2024
In this keynote, Luan Wise will provide invaluable insights to elevate your employer brand on social media platforms including LinkedIn, Facebook, Instagram, X (formerly Twitter) and TikTok. You'll learn how compelling content can authentically showcase your company culture, values, and employee experiences to support your talent acquisition and retention objectives. Additionally, you'll understand the power of employee advocacy to amplify reach and engagement – helping to position your organization as an employer of choice in today's competitive talent landscape.
Recruiting in the Digital Age: A Social Media MasterclassLuanWise
In this masterclass, presented at the Global HR Summit on 5th June 2024, Luan Wise explored the essential features of social media platforms that support talent acquisition, including LinkedIn, Facebook, Instagram, X (formerly Twitter) and TikTok.
Personal Brand Statement:
As an Army veteran dedicated to lifelong learning, I bring a disciplined, strategic mindset to my pursuits. I am constantly expanding my knowledge to innovate and lead effectively. My journey is driven by a commitment to excellence, and to make a meaningful impact in the world.
Structural Design Process: Step-by-Step Guide for BuildingsChandresh Chudasama
The structural design process is explained: Follow our step-by-step guide to understand building design intricacies and ensure structural integrity. Learn how to build wonderful buildings with the help of our detailed information. Learn how to create structures with durability and reliability and also gain insights on ways of managing structures.
LA HUG - Video Testimonials with Chynna Morgan - June 2024Lital Barkan
Have you ever heard that user-generated content or video testimonials can take your brand to the next level? We will explore how you can effectively use video testimonials to leverage and boost your sales, content strategy, and increase your CRM data.🤯
We will dig deeper into:
1. How to capture video testimonials that convert from your audience 🎥
2. How to leverage your testimonials to boost your sales 💲
3. How you can capture more CRM data to understand your audience better through video testimonials. 📊
Best practices for project execution and deliveryCLIVE MINCHIN
A select set of project management best practices to keep your project on-track, on-cost and aligned to scope. Many firms have don't have the necessary skills, diligence, methods and oversight of their projects; this leads to slippage, higher costs and longer timeframes. Often firms have a history of projects that simply failed to move the needle. These best practices will help your firm avoid these pitfalls but they require fortitude to apply.
Implicitly or explicitly all competing businesses employ a strategy to select a mix
of marketing resources. Formulating such competitive strategies fundamentally
involves recognizing relationships between elements of the marketing mix (e.g.,
price and product quality), as well as assessing competitive and market conditions
(i.e., industry structure in the language of economics).
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...my Pandit
Dive into the steadfast world of the Taurus Zodiac Sign. Discover the grounded, stable, and logical nature of Taurus individuals, and explore their key personality traits, important dates, and horoscope insights. Learn how the determination and patience of the Taurus sign make them the rock-steady achievers and anchors of the zodiac.
Digital Transformation and IT Strategy Toolkit and TemplatesAurelien Domont, MBA
This Digital Transformation and IT Strategy Toolkit was created by ex-McKinsey, Deloitte and BCG Management Consultants, after more than 5,000 hours of work. It is considered the world's best & most comprehensive Digital Transformation and IT Strategy Toolkit. It includes all the Frameworks, Best Practices & Templates required to successfully undertake the Digital Transformation of your organization and define a robust IT Strategy.
Editable Toolkit to help you reuse our content: 700 Powerpoint slides | 35 Excel sheets | 84 minutes of Video training
This PowerPoint presentation is only a small preview of our Toolkits. For more details, visit www.domontconsulting.com
Discover the innovative and creative projects that highlight my journey throu...dylandmeas
Discover the innovative and creative projects that highlight my journey through Full Sail University. Below, you’ll find a collection of my work showcasing my skills and expertise in digital marketing, event planning, and media production.
An introduction to the cryptocurrency investment platform Binance Savings.Any kyc Account
Learn how to use Binance Savings to expand your bitcoin holdings. Discover how to maximize your earnings on one of the most reliable cryptocurrency exchange platforms, as well as how to earn interest on your cryptocurrency holdings and the various savings choices available.
An introduction to the cryptocurrency investment platform Binance Savings.
Wicket Deliver Your Webapp On Time
1.
2. Apache Wicket
Deliver your web
application on time
Yoav Hakman
Development Manager
& Consultant, AlphaCSP
2
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
3. Agenda
Overview
The Wicket Way (Concepts)
Features
Demo
A wicket application
A custom component
Q & A
3
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
4. From Roi’s JSF presentation:
JSF 1.2 (JSR 252):
Shortcomings
Development
Customizing components is complicated
Exceptions are not descriptive
No support for annotations
Deployment
Unnecessary deployment step
Not JEE compliant (packaging, DI)
Components
Missing components
Limited component functionality (DataGrid)
Security
No security model (managed beans, resources)
Ajax
4
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
5. Overview
• Component based Java web framework
• rich component suite
• Open source (Apache 2 Licensed)
• Wicket makes developing webapps simple and
enjoyable again
Flat learning curve
•
No XML configuration files
•
Very easy to create and reuse components!
•
Pure Object Oriented!
•
5
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
6. A little bit of history
1.2
0.9 1.0 1.1 1.3
10/2004 10/2005 07/2007
06/2005 05/2006 11/2007
6
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
7. Good Documentation
Wicket wiki:
http://cwiki.apache.org/WICKET/
Wicket Examples (Live Demo + sources):
http://www.wicketstuff.org/wicket13/
7
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
8. From Roi’s JSF presentation:
JSF 2.0 (JSR 314):
Purpose
Max. development productivity (IDE)
Min. maintenance complexity
Integrate with other web tech.
More responsive UI (Ajax)
Requirements
Ease of development
New Features & Fixes
Performance & Scalability
Technology Adoption
8
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
9. Agenda
Overview
The Wicket Way (Concepts)
Features
Demo
A wicket application
A custom component
Q & A
9
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
10. Wicket Templates
• HTML Templates contains
• static presentation code (markup)
• wicket:id attribute placeholder for wicket
components
• Forces the developer to keep “clean templates”
• The html designer has no knowledge regarding
the business domain objects
• vs jsf backing bean
10
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
12. Wicket Templates
• Most existing frameworks require special
HTML code.
• fully compliant with the XHTML standard,
so you can use:
• Macromedia Dreamweaver
• Microsoft Front Page
• Any other HTML editor
12
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
14. Linking Java and HTML
public class HelloWorld extends WebPage {
public HelloWorld() {
add(new Label(quot;messagequot;, quot;Hello World!quot;));
}
}
Identifier Model
<html>
<body>
<span wicket:id=quot;messagequot; id=quot;messagequot;>to be replaced</span>
</body>
</html>
14
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
15. Linking Java and HTML
HTML and Java files resides in the same
classpath package
15
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
16. Object Oriented
• Object Oriented
• Great for Java developers
• Everything is done in Java
• Swing like programming …
Form form = new Form(quot;customerformquot;,
new CompoundPropertyModel(new Customer()));
TextField zipCodeComponent = new TextField(quot;zipquot;);
zipCodeComponent.add(new ZipCodeValidator());
form.add(zipCodeComponent);
16
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
17.
18. Application Class
public class DemoApplication extends WebApplication {
@Override public Class getHomePage() {
return HomePage.class;
}
@Override protected void init() {
getMarkupSettings().setCompressWhitespace(false);
}
• Settings
Application Settings
–
Debug Settings
–
Exception Settings
–
Markup Settings
–
Page Settings
–
RequestCycle Settings
–
Security Settings
–
Session Settings
–
18
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
19. Application Class
• The only xml configuration is the web.xml configuration!
<filter>
<filtername>DemoApplication</filtername>
<filterclass>org.apache.wicket.protocol.http.WicketFilter</filter
<initparam>
<paramname>applicationClassName</paramname>
<paramvalue>com.alphacsp.DemoApplication</paramvalue>
</initparam>
<initparam>
<paramname>configuration</paramname>
<paramvalue>development</paramvalue>
<! <paramvalue>deployment</paramvalue> >
</initparam>
</filter>
19
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
20. From Roi’s JSF presentation:
JSF 1.2 (JSR 252):
Shortcomings
Development
Customizing components is complicated
Exceptions are not descriptive
No support for annotations
Deployment
Unnecessary deployment step
Not JEE compliant (packaging, DI)
Components
Missing components
Limited component functionality (DataGrid)
Security
No security model (managed beans, resources)
20
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
21. Customizing Components
• Object Oriented Basics – how to extend:
• By Inheritance
• By Delegation
public class PasswordTextField extends TextField {
public PasswordTextField(String id) {
super(id);
}
/**
* Processes the component tag
*/
protected final void onComponentTag(final ComponentTag tag) {
super.onComponentTag(tag);
tag.put(quot;valuequot;, quot;quot;);
}
}
21
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
23. Customizing Components
• Object Oriented Basics – how to extend:
• By Inheritance
• By Delegation
23
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
24. Customizing Components
public class SimpleAttributeModifier extends AbstractBehavior {
/**
* Called any time a component that has this behavior registered is
* rendering the component tag.
*/
public void onComponentTag(final Component component,
final ComponentTag tag)
{
if (isEnabled(component))
{
tag.getAttributes().put(attribute, value);
}
}
24
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
25. Customizing Components
SimpleAttributeModifer
TextField myText = new TextField(quot;myTextquot;, new Model(quot;fooquot;));
myText.add(new SimpleAttributeModifier(quot;classquot;, quot;greenquot;));
With the following markup:
<input type=quot;textquot; wicket:id=quot;myTextquot;/>
Would be rendered as:
<input type=”text” wicket:id=”myText” name=”myText” class=”green”
value=”foo”/>
25
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
26. Customizing Components
item.add(new AbstractBehavior() {
/**
* Called any time a component that has this behavior registered is
* rendering the component tag.
*/
public void onComponentTag(Component component, ComponentTag tag) {
String css = (((Item) component).getIndex() % 2 == 0) ? quot;evenquot;:quot;oddquot;;
tag.put(quot;classquot;, css);
}
});
Output:
<tr class=“odd”>…</tr>
<tr class=“even”>…</tr>
26
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
27. Customizing Components
• Behaviors are used for:
• Modifying attributes
• Adding Java Script events
• Adding Ajax Events
TextField field = new TextField(quot;textfieldquot;, inputModel);
add(field);
field.add(new AjaxFormComponentUpdatingBehavior(quot;onblurquot;) {
protected void onUpdate(AjaxRequestTarget target) {
// do something here
}
});
27
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
28. Agenda
Overview
The Wicket Way (Concepts)
Features
Demo
A wicket application
A custom component
Q & A
28
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
29. From Roi’s JSF presentation:
JSF 1.2 (JSR 252):
Shortcomings
Development
Customizing components is complicated
Exceptions are not descriptive
No support for annotations
Deployment
Unnecessary deployment step
Not JEE compliant (packaging, DI)
Components
Missing components
Limited component functionality (DataGrid)
Security
No security model (managed beans, resources)
29
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
30. Editable table
30
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
31. Table
31
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
32. Editable Tree Table
32
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
33. DatePicker
33
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
34. Captcha
34
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
35. Modal Window
35
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
36. File Upload
36
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
37. Tabbed Panel
<span wicket:id=quot;tabsquot;
class=quot;tabpanelquot;>[tabbed panel]</span>
List<ITab> tabs = new ArrayList<ITab>();
tabs.add(new AbstractTab(new Model(quot;first tabquot;)) {
public Panel getPanel(String panelId) {
return new TabPanel1(panelId);
}
});
tabs.add(new AbstractTab(new Model(quot;second tabquot;)) {
public Panel getPanel(String panelId) {
return new TabPanel2(panelId);
}
});
tabs.add(new AbstractTab(new Model(quot;third tabquot;)) {
public Panel getPanel(String panelId) {
return new TabPanel3(panelId);
}
});
37
add(new TabbedPanel(quot;tabsquot;, tabs));
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
39. Models
• Holds the values of the components
• Mediate between the view and domain
layer
public interface IModel {
Object getObject();
void setObject(Object object);
}
39
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
40. Models
public class HelloWorld extends WebPage {
public HelloWorld() {
add(new Label(quot;messagequot;, quot;Hello World!quot;));
}
}
public class HelloWorld extends WebPage {
public HelloWorld() {
add(new Label(quot;messagequot;, new Model(quot;Hello World!quot;));
}
}
The data is constant
40
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
41. Models
public class HelloWorld extends WebPage {
public HelloWorld() {
add(new TextField(quot;namequot;, new Model(person.getName()));
}
}
• Immutable, not dynamic
• Can produce null pointer exceptions!
person.getAddress().getCity()
41
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
42. Models
personForm.add(new TextField(quot;personNamequot;, new IModel() {
public Object getObject() {
return person.getName();
}
public void setObject(Serializable serializable) {
person.setName((String) serializable);
}
}));
• Dynamic
• Inconvenient!
42
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
43. Models
new TextField(quot;personNamequot;, new PropertyModel(person, quot;namequot;));
• The expression language is more compact
than the analogous Java code
• Simpler than to subclass a Model
• No null pointer exceptions
– “person.address.city”
43
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
44. Models
Model Description
Model Wraps a serializable object
PropertyModel Uses a property expression to
dynamically access a property in
your domain objects
CompoundPropertyModel Uses component identidiers as
property expressions
LoadableDetachableModel Used for large data sets
ResourceModel Used for retrieving messages from
resource bundles
StringResourceModel Adds property expressions and
MessageFormat substitutions
44
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
45. From Roi’s JSF presentation:
JSF 1.2 (JSR 252):
Shortcomings
Development
Customizing components is complicated
Exceptions are not descriptive
No support for annotations
Deployment
Unnecessary deployment step
Not JEE compliant (packaging, DI)
Components
Missing components
Limited component functionality (DataGrid)
Security
No security model (managed beans, resources)
45
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
47. More Features
• Ajax Debug Window
– Shows the ajax request and response
– Shows exceptions
• Integration with other frameworks
Spring
•
Juice
•
Seam 2.0
•
Acegi Security
•
• Nice and Secure URL’s
47
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
48. Sessions
• Strongly Typed Sessions
public class MySession extends WebSession {
private String myAttribute;
private ShoppingCart cart;
private UserDetails userDetails;
public MySession(WebApplication application) {
super(application);
}
// ... getters and setters
}
48
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
50. Agenda
Overview
The Wicket Way (Concepts)
Features
Demo
A wicket application
A custom component
Q & A
50
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar
51. Q&A
51
Copyright AlphaCSP Israel 2007 The JavaEdge Seminar