The document discusses dynamically generating Wicket components from XML content. It describes an approach where Wicket markup is generated from the XML and parsed to add the appropriate Wicket form components. This allows creating interactive components on-the-fly without code changes for new content types defined in XML. The previous approach of using an intermediate XForms format caused issues. The new approach aims to use generic Wicket components and have content fully integrated within Wicket.
This is an overview how to build an OSGI EJB3 Server I gave at OSGIExpertsDay at JAX09.
The Server is build using:
Eclipse Equinox as OSGI Framework
Eclipse Riena for Remote OSGI Services
EasyBeans as OSGI EJB3 Container
Hibernate as JPA Provider
Clients are Rich Clients (Eclipse RCP)
The project is model-driven using UML (MagicDraw), EMF (Eclipse Modeling) and oAW (openArchitectureWare).
more info:
http://ekkes-corner.org (blog english)
http://ekkes-ecke.org (blog german)
http://ekkes-corner-tv.org (Video PodCasts)
You want to watch the slides with included screencasts ? here's the movie:
http://www.vimeo.com/ekkescorner/videos
SemSearch09 workshop at WWW2009, April 21th 2009- http://km.aifb.uni-karlsruhe.de/ws/semsearch09/ - Paper available at: http://km.aifb.uni-karlsruhe.de/ws/semsearch09/semse2009_25.pdf
Search Engines and Flash: Secrets, Tricks, and Black Magicguestb1f3a
Adobe Flash is a binary format and has not always been accessible to search engine spiders (small bits of code that algorithmically determine a page’s content for rankings in search engines). SEO experts have developed several key workarounds and new technical developments have made new functionality available to search engines and developers alike.
Duane Nickull, an Adobe Technical Evangelist, will showcase some advanced tips and tricks to give you the edge over the competition as well as share some secrets. Attendees will learn how to increase initial page rankings as well as monitor and increase dynamic page ranks.
This is 2 hour presentations on Glassfish
with 4 different demonstrations was compiled for Sogeti. It is based on the public work from Alexis MP and WebCast from John Clingan
The talk is introduction to OSGi specification and its implementations. It summarizes corner stones of OSGi (bundles, services, components) and describes a technical background of OSGi implementations on a simple example.
How Wiley Uses Word to Invite Authors, Engage Editors, Improve Production, an...toc
Panelists will address the practical application of XML production methods including evaluating your list, how and when to chunk and tag, and working with authors and editors. (Frank Grazioli, John Wiley & Sons)
In the second Surf Code Camp lab, you'll write a little user profile dashlet. This one is slightly more complex than the hello world dashlet because it makes remote calls to the Repository tier.
Full solution source code is at http://ecmarchitect.com/images/green-energy-code-camp.zip
If you’ve been working on the web for any amount of time, you’ve likely heard (or even used) the term “progressive enhancement” before. As you probably know, it is the gold standard of how to approach web design. But what is progressive enhancement really? What does it mean? How does it work? And how does it fit into our workflow in a time of rapidly evolving languages and browsers? In this session, Aaron Gustafson will answer all of these questions and provide concrete takeaways that will help you improve your web design skills and your mastery of progressive enhancement in ExpressionEngine.
Prototyping Adobe AIR Applications with Fireworks CS4Juan Sanchez
This presentation gives an overview of prototyping AIR applications using Fireworks CS4. You can get the source for the prototyped application here: http://scalenine.com/blog/2008/12/01/adobe-max-presentation-and-source/
This presentation gives an overview about WSO2's technology platform as of Q2 2009. It gives an update about the ESB, the Web Services Application Server, Business Process Server as well as the re-branded Governance Registry and Identity Server.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
This is an overview how to build an OSGI EJB3 Server I gave at OSGIExpertsDay at JAX09.
The Server is build using:
Eclipse Equinox as OSGI Framework
Eclipse Riena for Remote OSGI Services
EasyBeans as OSGI EJB3 Container
Hibernate as JPA Provider
Clients are Rich Clients (Eclipse RCP)
The project is model-driven using UML (MagicDraw), EMF (Eclipse Modeling) and oAW (openArchitectureWare).
more info:
http://ekkes-corner.org (blog english)
http://ekkes-ecke.org (blog german)
http://ekkes-corner-tv.org (Video PodCasts)
You want to watch the slides with included screencasts ? here's the movie:
http://www.vimeo.com/ekkescorner/videos
SemSearch09 workshop at WWW2009, April 21th 2009- http://km.aifb.uni-karlsruhe.de/ws/semsearch09/ - Paper available at: http://km.aifb.uni-karlsruhe.de/ws/semsearch09/semse2009_25.pdf
Search Engines and Flash: Secrets, Tricks, and Black Magicguestb1f3a
Adobe Flash is a binary format and has not always been accessible to search engine spiders (small bits of code that algorithmically determine a page’s content for rankings in search engines). SEO experts have developed several key workarounds and new technical developments have made new functionality available to search engines and developers alike.
Duane Nickull, an Adobe Technical Evangelist, will showcase some advanced tips and tricks to give you the edge over the competition as well as share some secrets. Attendees will learn how to increase initial page rankings as well as monitor and increase dynamic page ranks.
This is 2 hour presentations on Glassfish
with 4 different demonstrations was compiled for Sogeti. It is based on the public work from Alexis MP and WebCast from John Clingan
The talk is introduction to OSGi specification and its implementations. It summarizes corner stones of OSGi (bundles, services, components) and describes a technical background of OSGi implementations on a simple example.
How Wiley Uses Word to Invite Authors, Engage Editors, Improve Production, an...toc
Panelists will address the practical application of XML production methods including evaluating your list, how and when to chunk and tag, and working with authors and editors. (Frank Grazioli, John Wiley & Sons)
In the second Surf Code Camp lab, you'll write a little user profile dashlet. This one is slightly more complex than the hello world dashlet because it makes remote calls to the Repository tier.
Full solution source code is at http://ecmarchitect.com/images/green-energy-code-camp.zip
If you’ve been working on the web for any amount of time, you’ve likely heard (or even used) the term “progressive enhancement” before. As you probably know, it is the gold standard of how to approach web design. But what is progressive enhancement really? What does it mean? How does it work? And how does it fit into our workflow in a time of rapidly evolving languages and browsers? In this session, Aaron Gustafson will answer all of these questions and provide concrete takeaways that will help you improve your web design skills and your mastery of progressive enhancement in ExpressionEngine.
Prototyping Adobe AIR Applications with Fireworks CS4Juan Sanchez
This presentation gives an overview of prototyping AIR applications using Fireworks CS4. You can get the source for the prototyped application here: http://scalenine.com/blog/2008/12/01/adobe-max-presentation-and-source/
This presentation gives an overview about WSO2's technology platform as of Q2 2009. It gives an update about the ESB, the Web Services Application Server, Business Process Server as well as the re-branded Governance Registry and Identity Server.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
1. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Dynamic Markup and
onthefly Components
binding XML content to Wicket Components
Wouter Huijnink
Func. Internet Integration
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
2. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Structure of this talk
Introduction
The problem by example
Our preWicket approach
Requirements
Approach
Todo
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
3. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Func. Internet Integration
Web Applications on Open Source java
component stack:
Wicket – Spring – Hibernate – CXF (XFire)
Using Wicket for 2.5 years now
component framework > OO
clean separation of markup and code
accessibility (Ajax fallback)
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
4. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Triggers
Request for proposal: generic editing page for
XSDdefined XML blobs
New project: application for online examination
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
5. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Common Denominators
No POJO representation of domain (XML)
dynamic page structure (content dependent)
Wicket components picked at runtime
Requirement: Wicket application in full control
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
7. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Dynamic Forms
Content repository: objects + metadata
Metadata defined in XSD, stored as XML
Requirement: multi profile support
Requirement: no refactoring required when new
profile is added by administrator
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
9. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
XML defined User Interactions
customer: publisher
educational content
all content is strictly formalized (XML)
Educational Standards applied where possible
IMS Question Type Interaction (QTI) for
survey / exam style content
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
14. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Trivial Test Element
Response processing
An exact match is required of the candidate
response and the correct response
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
15. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Trivial Test Element
Scoring
The default score is 0, a correct response gives
you a score of 1
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
16. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
QTI Representation
<assessmentItem identifier=quot;choicequot; title=quot;Web Frameworkquot;>
<responseDeclaration identifier=quot;Rquot;>
<correctResponse>
<value>C</value>
</correctResponse>
</responseDeclaration>
<itemBody>
<p>What is your preferred Java web development framework?</p>
<choiceInteraction responseIdentifier=quot;Rquot; maxChoices=quot;1quot;>
<simpleChoice identifier=quot;Aquot;>Struts</simpleChoice>
<simpleChoice identifier=quot;Bquot;>Tapestry</simpleChoice>
<simpleChoice identifier=quot;Cquot;>Wicket</simpleChoice>
</choiceInteraction>
</itemBody>
</assessmentItem>
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
17. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
As XHTML
<form id=quot;questionFormquot; action=quot;/questionHandlerquot; method=quot;POSTquot;>
<p>What is your preferred Java web development framework?</p>
<p>
<input name=quot;fwquot; type=quot;radioquot; value=quot;Aquot;>Struts</input> <br />
<input name=quot;fwquot; type=quot;radioquot; value=quot;Bquot;>Tapestry</input> <br />
<input name=quot;fwquot; type=quot;radioquot; value=quot;Cquot;>Wicket</input> <br />
</p>
<p>
<input type=quot;submitquot; value=quot;Am I right or am I right?quot; />
</p>
</form>
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
24. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Previous Approach Issues
Chiba hacks required
XForms rather complex
Control hell: both Chiba and Wicket process
user actions and data
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
25. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
What do we want now?
To be able to create onthefly, dynamic,
interactive components, using generic Wicket
components
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
26. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
What do we want now?
often updated, dynamic content
containing standardized XML
Object Oriented approach
generic components
properly integrated in Wicket
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
27. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Our Approach
generate Wicket markup from content and
return this as the Component's markup
parse the dynamically created markup
for each markup element add the appropriate
FormComponent (CheckBox, TextField,
DropDownChoice, ...)
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
28. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Step 1 AutoComponentPanel
asks for its associated markup
loops over tags, if ComponentTag: call internal,
overrideable method
getMarkupComponent(ComponentTag tag, MarkupStream stream)
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
29. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Step 1 AutoComponentPanel
Default implementation: check for the usual
suspects, e.g.
if (quot;inputquot;.equals(tag.getName()) &&
quot;submitquot;.equals(tag.getAttr..(quot;typequot;, ..))) {
return new Button(tag.getId(), ..);
}
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
30. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Step 1 AutoComponentPanel
The wicket:id of the added components are
treated as property expressions that are bound to
this component's model.
<input type=quot;textquot; wicket:id=quot;namequot;/>
binds the generated TextField to the model
object's name property.
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
31. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Step 2 AssessmentItemPanel
model: AssessmentItem (generic POJO)
supplies its own markup by transforming the
contents of its itemBody
QTI > XSLT > XHTML with wicket tags
extends AutoComponentPanel > generated
wicket tags will automatically be bound to
FormComponents
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
32. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Step 2 AssessmentItemPanel
getMarkupResourceStream snippet:
Source source = new StreamSource(
new StringReader(assessmentItem.getXml()
));
StringWriter result = new StringWriter();
...
transformer.transform(source,
new StreamResult(result));
return new StringResourceStream(
result.toString());
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
33. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
QTI revisited
<assessmentItem identifier=quot;choicequot; title=quot;Web Frameworkquot;>
<responseDeclaration identifier=quot;Rquot;>
<correctResponse>
<value>C</value>
</correctResponse>
</responseDeclaration>
<itemBody>
<p>What is your preferred Java web development framework?</p>
<choiceInteraction responseIdentifier=quot;Rquot; maxChoices=quot;1quot;>
<simpleChoice identifier=quot;Aquot;>Struts</simpleChoice>
<simpleChoice identifier=quot;Bquot;>Tapestry</simpleChoice>
<simpleChoice identifier=quot;Cquot;>Wicket</simpleChoice>
</choiceInteraction>
</itemBody>
</assessmentItem>
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
34. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Generated markup
<wicket:panel>
<div class=quot;qtiItemquot;>
<p>What is your preferred Java web development framework?</p>
<div class=quot;blockInteraction choiceInteractionquot;>
<span class=quot;promptquot;/>
<div wicket:id=quot;iSession.responseVars.R.cResponsequot;>
<label><input value=quot;Aquot; type=quot;radioquot;/>Struts</label>
<label><input value=quot;Bquot; type=quot;radioquot;/>Tapestry</label>
<label><input value=quot;Cquot; type=quot;radioquot;/>Wicket</label>
</div>
</div>
<div class=quot;clrquot;/>
</div>
</wicket:panel>
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
35. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Binding
The wicket:id=quot;iSession.responseVars.R.cResponse”
markup element is bound to a nested property of
the AssessmentItem
(which has an ItemSession, which has a
Map<String, ResponseVariable>, and a
ResponseVariable has a cResponse)
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
36. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Result
All QTI content can be rendered, previously
entered responses are displayed
when the user POSTs his response, the
response is bound automatically to the
AssessmentItem domain object
the Form's onSubmit() doesn't need to do
any processing, but just persists the
AssessmentItem's response part.
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
37. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
To Do
add support for complex QTI interactionTypes
refactor:
extract code from current project
make truly generic
document properly
create small demo app
release
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
38. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Want to know more?
Check our sponsor desk for live examples
Wouter Huijnink
wouter@func.nl
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
40. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Shameless plug: Webical
Open Source web based iCalendar client
Wicket,
Fully accessible
Ajax addons
plugin architecture
http://www.webical.org/
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png
41. file:///../intern/Standaarden/Logo/groene%20onderbalk.png
Q & A (wouter@func.nl)
Why didn't you ... ?
Wouldn't it have been much nicer if you ... ?
I can't believe you actually ... !
I want to work with you guys! Can I sign up right
here, right now?
November 30th, 2007
file:///../intern/Standaarden/Logo/groene%20onderbalk.png