Metawidget User Guide and Reference Documentation

Total Page:16

File Type:pdf, Size:1020Kb

Metawidget User Guide and Reference Documentation Metawidget User Guide and Reference Documentation Version 4.2 Richard Kennard Table of Contents Preface ....................................................................................................................................................... xi Supported Technologies ............................................................................................................................... xii 1. Introduction to Metawidget ......................................................................................................................... 1 1.1. Part 1 (Java version) - The First Metawidget Application ....................................................................... 1 1.1.1. The Object .......................................................................................................................... 1 1.1.2. The Interface ....................................................................................................................... 1 1.1.3. The Output ......................................................................................................................... 2 1.1.4. Ordering The Properties ........................................................................................................ 4 1.1.5. Inspectors ........................................................................................................................... 5 1.1.6. Combining Multiple Inspection Results .................................................................................... 7 1.1.7. Controlling The Layout ......................................................................................................... 8 1.1.8. Controlling Widget Creation ................................................................................................. 11 1.1.9. Configuring Metawidget Externally ....................................................................................... 15 1.2. Part 1 (JavaScript version) - The First Metawidget Application ............................................................. 16 1.2.1. The Object ........................................................................................................................ 16 1.2.2. The Interface ..................................................................................................................... 17 1.2.3. The Output ........................................................................................................................ 17 1.2.4. Inspectors .......................................................................................................................... 18 1.2.5. Combining Multiple Inspection Results .................................................................................. 19 1.2.6. Controlling The Layout ....................................................................................................... 19 1.2.7. Controlling Widget Creation ................................................................................................. 22 1.3. Part 2 - The Address Book Application ............................................................................................ 24 1.3.1. Desktop Address Book ........................................................................................................ 24 Read-Only Mode ................................................................................................................ 26 Binding ............................................................................................................................. 27 Localization ....................................................................................................................... 28 1.3.2. Web Address Book ............................................................................................................. 28 Mixing Metawidgets ............................................................................................................ 31 Expression Based Lookups ................................................................................................... 32 Alternate Widget Libraries (JSF 1.x) ...................................................................................... 32 Alternate Widget Libraries (JSF 2.x) ...................................................................................... 35 1.3.3. Mobile Address Book ......................................................................................................... 36 1.3.4. Conclusion ........................................................................................................................ 40 1.4. Part 3 - Other Examples ................................................................................................................ 40 1.4.1. Swing Applet Address Book Example .................................................................................... 40 1.4.2. Seam Example ................................................................................................................... 41 1.4.3. Groovy Example ................................................................................................................ 42 1.4.4. jBPM Example .................................................................................................................. 43 1.4.5. ICEfaces Example .............................................................................................................. 44 1.4.6. Java EE 6 Example ............................................................................................................ 45 1.4.7. Swing AppFramework Example ............................................................................................ 45 1.4.8. Scala Example ................................................................................................................... 46 1.4.9. GWT Client Side Example ................................................................................................... 48 1.4.10. GWT Hosted Mode Examples ............................................................................................. 49 1.4.11. Static Metawidget Example ................................................................................................ 51 2. Architecture ............................................................................................................................................ 52 Metawidget ii Metawidget User Guide and Reference Documentation 2.1. Metawidgets ................................................................................................................................. 53 2.1.1. Interface ........................................................................................................................... 53 2.1.2. Customizing Look and Feel .................................................................................................. 54 2.1.3. Overriding Widget Creation ................................................................................................. 54 2.1.4. Implementing Your Own Metawidget .................................................................................... 55 2.2. Inspectors .................................................................................................................................... 55 2.2.1. Interface ........................................................................................................................... 55 2.2.2. Usage ............................................................................................................................... 56 2.2.3. CompositeInspector ............................................................................................................. 56 2.2.4. Defaults ............................................................................................................................ 57 2.2.5. Immutability ...................................................................................................................... 59 2.2.6. inspection-result ................................................................................................................. 60 2.2.7. Implementing Your Own Inspector (Java) ............................................................................... 60 2.3. Inspection Result Processors ........................................................................................................... 64 2.3.1. Interface ........................................................................................................................... 64 2.3.2. Usage ............................................................................................................................... 65 2.3.3. Defaults ............................................................................................................................ 66 2.3.4. Immutability ...................................................................................................................... 67 2.3.5. Implementing Your Own InspectionResultProcessor ................................................................. 67 2.4. WidgetBuilders ............................................................................................................................. 70 2.4.1. Interface ........................................................................................................................... 70 2.4.2. Usage ..............................................................................................................................
Recommended publications
  • Web Application Development Using TCL/Apache Rivet and Javascript Anne-Leslie Dean, Senior Software Developer, Flightaware Prese
    Web Application Development Using TCL/Apache Rivet and JavaScript Anne-Leslie Dean, Senior Software Developer, FlightAware Presented: 25th Annual TCL/Tk Conference, Oct 15-19, 2018 Introduction Modern Web applications rival native applications in user experience. This is accomplished by manipulating the Web document dynamically in the client browser environment. There are a many choices of scripting (language) environments a developer may choose to use on the web server: PHP, Python, Ruby, TCL etc. But on the client side, the JavaScript environment is the standard for programmatic control of the Web application. Apache Rivet provides a server environment to build Web applications using TCL. This case study will demonstrate the application of fundamental software design principles such as separation of concerns, abstraction, and encapsulation in a TCL/Apache Rivet environment with integrated JavaScript. The basic structure of the Rivet script will distinguish content management from presentation and will visibly identify a clear interface between the TCL/Apache Rivet and the JavaScript environments. Each step of the case study will conclude with an analysis of the software development principles being applied. Case Study Step 1: Framing Out The Rivet Script The distinguishing architectural feature of modern Web applications boils down to a simple model: a document template rendered against an abstracted data model. The code concerned with managing the abstracted data model is commonly referred to as content management. The code concerned with describing the document template is commonly referred to as presentation. The basic structure of an Apache Rivet script should always reinforce this Web application architectural distinction. This can be accomplished by applying the software principle of separation of concerns with respect to content management and presentation.
    [Show full text]
  • THE FUTURE of SCREENS from James Stanton a Little Bit About Me
    THE FUTURE OF SCREENS From james stanton A little bit about me. Hi I am James (Mckenzie) Stanton Thinker / Designer / Engineer / Director / Executive / Artist / Human / Practitioner / Gardner / Builder / and much more... Born in Essex, United Kingdom and survived a few hair raising moments and learnt digital from the ground up. Ok enough of the pleasantries I have been working in the design field since 1999 from the Falmouth School of Art and onwards to the RCA, and many companies. Ok. less about me and more about what I have seen… Today we are going to cover - SCREENS CONCEPTS - DIGITAL TRANSFORMATION - WHY ASSETS LIBRARIES - CODE LIBRARIES - COST EFFECTIVE SOLUTION FOR IMPLEMENTATION I know, I know, I know. That's all good and well, but what does this all mean to a company like mine? We are about to see a massive change in consumer behavior so let's get ready. DIGITAL TRANSFORMATION AS A USP Getting this correct will change your company forever. DIGITAL TRANSFORMATION USP-01 Digital transformation (DT) – the use of technology to radically improve performance or reach of enterprises – is becoming a hot topic for companies across the globe. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-02 Companies face common pressures from customers, employees and competitors to begin or speed up their digital transformation. However they are transforming at different paces with different results. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-03 Successful digital transformation comes not from implementing new technologies but from transforming your organisation to take advantage of the possibilities that new technologies provide.
    [Show full text]
  • Modern Web Application Frameworks
    MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Û¡¢£¤¥¦§¨ª«¬­Æ°±²³´µ·¸¹º»¼½¾¿Ý Modern Web Application Frameworks MASTER’S THESIS Bc. Jan Pater Brno, autumn 2015 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or ex- cerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Bc. Jan Pater Advisor: doc. RNDr. Petr Sojka, Ph.D. i Abstract The aim of this paper was the analysis of major web application frameworks and the design and implementation of applications for website content ma- nagement of Laboratory of Multimedia Electronic Applications and Film festival organized by Faculty of Informatics. The paper introduces readers into web application development problematic and focuses on characte- ristics and specifics of ten selected modern web application frameworks, which were described and compared on the basis of relevant criteria. Practi- cal part of the paper includes the selection of a suitable framework for im- plementation of both applications and describes their design, development process and deployment within the laboratory. ii Keywords Web application, Framework, PHP,Java, Ruby, Python, Laravel, Nette, Phal- con, Rails, Padrino, Django, Flask, Grails, Vaadin, Play, LEMMA, Film fes- tival iii Acknowledgement I would like to show my gratitude to my supervisor doc. RNDr. Petr So- jka, Ph.D. for his advice and comments on this thesis as well as to RNDr. Lukáš Hejtmánek, Ph.D. for his assistance with application deployment and server setup. Many thanks also go to OndˇrejTom for his valuable help and advice during application development.
    [Show full text]
  • Alfresco ACSCE-5X Exam
    Alfresco ACSCE-5X Exam Volume: 60 Questions Question: 1 What is the class.org.alfresco.model.ContentModel used for? A. Transforming document content into a different format. B. Validating the content of the document follows a certain template. C. Referencing out of the box content model types in your code. D. Trigger automatic metadata extraction from the content. E. Moving content in the repository between folders. Answer: C Question: 2 When would you consider developing your custom server code in Java in place of JavaScript? (Choose three.) A. When a web script needs to be executed inside a transaction. B. When I need to execute part of my code as system user. C. When developing a custom scheduled process. D. When developing a content rule. E. When developing a behavior/policy. Answer: B,C,D Question: 3 Which file is required in order for an AMP file to be valid? A. module.properties B. service-context.xml Leading the way in IT testing and certification tools, www.examkiller.net Alfresco ACSCE-5X Exam C. file-mapping.properties D. web.xml Answer: A Question: 4 An Alfresco Webscript is called via a POST request to the URL /example/mycontent/item1, relative to the Alfresco Content Services REST API base URL. Based on RESTful principles and standards, what will be the result of this call? A. The existing resource ‘item1’ is updated. B. The existing resource ‘item1’ is updated. C. The content of the resource ‘item1’ is returned to the user. D. A new resource ‘item1’ is added. Answer: D Question: 5 How can we modify what data is shown in each row of the Alfresco Share document library, using the supported extension points? A.
    [Show full text]
  • Tripwire Ip360 9.0 License Agreements
    TRIPWIRE® IP360 TRIPWIRE IP360 9.0 LICENSE AGREEMENTS FOUNDATIONAL CONTROLS FOR SECURITY, COMPLIANCE & IT OPERATIONS © 2001-2018 Tripwire, Inc. All rights reserved. Tripwire is a registered trademark of Tripwire, Inc. Other brand or product names may be trademarks or registered trademarks of their respective companies or organizations. Contents of this document are subject to change without notice. Both this document and the software described in it are licensed subject to Tripwire’s End User License Agreement located at https://www.tripwire.com/terms, unless a valid license agreement has been signed by your organization and an authorized representative of Tripwire. This document contains Tripwire confidential information and may be used or copied only in accordance with the terms of such license. This product may be protected by one or more patents. For further information, please visit: https://www.tripwire.com/company/patents. Tripwire software may contain or be delivered with third-party software components. The license agreements and notices for the third-party components are available at: https://www.tripwire.com/terms. Tripwire, Inc. One Main Place 101 SW Main St., Suite 1500 Portland, OR 97204 US Toll-free: 1.800.TRIPWIRE main: 1.503.276.7500 fax: 1.503.223.0182 https://www.tripwire.com [email protected] TW 1190-04 Contents License Agreements 4 Academic Free License ("AFL") 5 Apache License V2.0 (ASL 2.0) 9 BSD 20 Boost 28 CDDLv1.1 29 EPLv1 30 FreeType License 31 GNU General Public License V2 34 GNU General Public License V3 45 IBM 57 ISC 62 JasPer 63 Lesser General Public License V2 65 LibTiff 76 MIT 77 MPLv1.1 83 MPLv2 92 OpenLDAP 98 OpenSSL 99 PostgreSQL 102 Public Domain 104 Python 108 TCL 110 Vim 111 wxWidgets 113 Zlib 114 Contact Information 115 Tripwire IP360 9.0 License Agreements 3 Contents License Agreements This document contains licensing information relating to Tripwire's use of free and open-source software with or within the Tripwire IP360 product (collectively, "FOSS").
    [Show full text]
  • Cross-Domain Embedding for Vaadin Applications
    Cross-Domain Embedding for Vaadin Applications Janne Lautamäki and Tommi Mikkonen Department of Software Systems, Tampere University of Technology, Korkeakoulunkatu 1, FI-33720 Tampere, Finland {janne.lautamaki,tommi.mikkonen}@tut.fi Abstract. Although the design goals of the browser were originally not at running applications or at displaying a number of small widgets on a single web page, today many web pages considerably benefit from being able to host small embedded applications as components. While the web is full such applications, they cannot be easily reused because of the same origin policy restrictions that were introduced to protect web content from potentially malicious use. In this paper, we describe a generic design for cross domain embedding of web applications in a fashion that enables loading of applications from different domains as well as communication between the client and server. As the proof- of-concept implementation environment, we use web development framework Vaadin, a Google Web Toolkit based system that uses Java for application development. Keywords: Vaadin, JSONP, cross-domain applications. 1 Introduction Web applications – systems that resemble desktop applications in their behavior but are run inside the browser – are becoming increasingly common. The current trend is that web pages have dynamic components side by side with the traditional web content, such as static text and images. These dynamic components can be small widgets that for instance display current weather information or stock exchange data, or even full-fledged web applications that offer a service related to the theme of the web page where they are located [1]. Creating dynamic web pages is much more complex than building plain old web pages.
    [Show full text]
  • Technology MX4 Technology MX4, Based in Canada, Is a Company That Works in the Field of Optimization Technologies for Complex Problems
    Technology MX4 Technology MX4, based in Canada, is a company that works in the field of optimization technologies for complex problems. About MX4 Technology MX4 is specialized in the development of web applications for K12 schools, which also includes providing training and user support. ZK x MX4 ZK is used in our main product called Trapeze School for the automatic creation of school timetables. The SAAS application targets K12 schools and can handle multiple school configuration and constraints. This tool is offered in 2 languages (French and English) and is being used by more than 150 schools across Quebec. “Simplicity (AJAX) and rapid The team is composed of 5 engineers; 1 for the User interface using development.” ZK and the others are working on the backend micro-services and AI engine. We started the project in 2011 and we have an ongoing delivery process to offer new features every 6 months. We use the following technologies in the project: ZK, Hibernate, Tomcat, Rest, Kafka, ActiveMQ and PostgreSQL. Why ZK We evaluated developing our web application in JSP and we built a small, but complete application that includes our principal needs using 3 different frameworks: OpenXava, Vaadin and ZK. ZK was the easiest and fastest one. ZK was the easiest to use in the sense that it hides and handles the AJAX part, so you don’t have to worry about passing information between the server and the client. As a result it saves the developing ZK – THE SIMPLEST WAY TO MAKE WEB APPLICATIONS RICH 2 CASE STUDY time a lot so we decide to go with ZK.
    [Show full text]
  • The Dzone Guide to Volume Ii
    THE D ZONE GUIDE TO MODERN JAVA VOLUME II BROUGHT TO YOU IN PARTNERSHIP WITH DZONE.COM/GUIDES DZONE’S 2016 GUIDE TO MODERN JAVA Dear Reader, TABLE OF CONTENTS 3 EXECUTIVE SUMMARY Why isn’t Java dead after more than two decades? A few guesses: Java is (still) uniquely portable, readable to 4 KEY RESEARCH FINDINGS fresh eyes, constantly improving its automatic memory management, provides good full-stack support for high- 10 THE JAVA 8 API DESIGN PRINCIPLES load web services, and enjoys a diverse and enthusiastic BY PER MINBORG community, mature toolchain, and vigorous dependency 13 PROJECT JIGSAW IS COMING ecosystem. BY NICOLAI PARLOG Java is growing with us, and we’re growing with Java. Java 18 REACTIVE MICROSERVICES: DRIVING APPLICATION 8 just expanded our programming paradigm horizons (add MODERNIZATION EFFORTS Church and Curry to Kay and Gosling) and we’re still learning BY MARKUS EISELE how to mix functional and object-oriented code. Early next 21 CHECKLIST: 7 HABITS OF SUPER PRODUCTIVE JAVA DEVELOPERS year Java 9 will add a wealth of bigger-picture upgrades. 22 THE ELEMENTS OF MODERN JAVA STYLE But Java remains vibrant for many more reasons than the BY MICHAEL TOFINETTI robustness of the language and the comprehensiveness of the platform. JVM languages keep multiplying (Kotlin went 28 12 FACTORS AND BEYOND IN JAVA GA this year!), Android keeps increasing market share, and BY PIETER HUMPHREY AND MARK HECKLER demand for Java developers (measuring by both new job 31 DIVING DEEPER INTO JAVA DEVELOPMENT posting frequency and average salary) remains high. The key to the modernization of Java is not a laundry-list of JSRs, but 34 INFOGRAPHIC: JAVA'S IMPACT ON THE MODERN WORLD rather the energy of the Java developer community at large.
    [Show full text]
  • Programming Technologies for the Development of Web-Based Platform for Digital Psychological Tools
    (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 9, No. 8, 2018 Programming Technologies for the Development of Web-Based Platform for Digital Psychological Tools Evgeny Nikulchev1, Dmitry Ilin2 Pavel Kolyasnikov3 Ilya Zakharov5, Sergey Malykh6 4 MIREA – Russian Technological Vladimir Belov Psychological Institute of Russian University & Russian Academy Russian Academy Science Academy of Education Science, Moscow, Russia Moscow, Russia Moscow, Russia Abstract—The choice of the tools and programming In addition, large accumulated data sets can become the technologies for information systems creation is relevant. For basis for machine learning mechanisms and other approaches every projected system, it is necessary to define a number of using artificial intelligence. Accumulation of data from criteria for development environment, used libraries and population studies into a single system can allow a technologies. The paper describes the choice of technological breakthrough in the development of systems for automated solutions using the example of the developed web-based platform intellectual analysis of behavior data. of the Russian Academy of Education. This platform is used to provide information support for the activities of psychologists in The issue of selecting methodological tools for online and their research (including population and longitudinal offline research includes several items. researches). There are following system features: large scale and significant amount of developing time that needs implementation First, any selection presupposes the existence of generally and ensuring the guaranteed computing reliability of a wide well-defined criteria, on the basis of which a decision can be range of digital tools used in psychological research; ensuring made to include or not to include techniques in the final functioning in different environments when conducting mass toolkit.
    [Show full text]
  • Vaadin Custom Training
    STORY AND PHILOSOPHY Software is eating the world and what most of us see of it is the user interface. The user interface has become the key component of how the users experience the business behind it. Competition is lost or won due to user experience. Simplicity is king and the users get frustrated by anything ugly, slow or not working on the device they happen to use at the time. We at Vaadin fight for simplicity and invite everyone to join this fight. Together we want to build a user interface that puts a smile on the user’s face. Vaadin is the technology that empowers developers to build the best web-apps for business purposes. Our priority over everything else is developer productivity because we believe that by simplifying the developer experience and saving the developer’s time, they are best able to focus on building great user interfaces. Our brand is what we want everyone to think about us. When everyone - both us and the people around us - have a consistent understanding of what Vaadin is and what we Custom Training stand for, it enables that image to spread and amplify. This book defines what we want that image to be. It defines what the Vaadin brand is. I hope that You are as excited and proud of living and breathing the Vaadin brand as PRESENTER I am. You are the one who is shaping what everyone thinks about Vaadin - using this brand as a tool and a guideline every day. Sami Kaksonen Let’s fight for simplicity for both the users and the developers! [email protected] Joonas Lehtinen Founder & CEO Vaadin INTRODUCTION 5 TABLE
    [Show full text]
  • Eddie Corrigall NOTE Last Updated on 2015-12-17
    Eddie Corrigall NOTE Last updated on 2015-12-17 CONTACT 1-226-606-2477 Yonge and Eglinton, Toronto, ON [email protected] @ LinkedIn, @ GitHub SUMARY I graduated from the University of Waterloo in 2014 with Honours Bachelor of Computer Science (BCS). I’ve learned a lot about the Ad Tech Industry this year while working at Eyereturn Marketing Inc. I used Apache Hadoop to operate on and house a lot of data and aggregate the important info into SQL servers for applications. Now I’m looking to be part of a team, have a well defined role, and ownership over a product or service. My long-term goal is to focus on more traditional software development that will include a release cycle and teamwork. What I’ve worked on in the past • Mining big data using Apache Hadoop and Apache PigLatin Data analytics using Python Pandas, NumPy, SciKit Learn • Real-time analytic software using C# Windows Presentation Foundation (WPF) • Crowd sourcing application using Amazon Web Services (AWS) Mechanical Turk (mTurk) • Custom implementation of I2C bus and LPC bus in C for an Embedded security platform • Web portal written in SQL, PHP, JavaScript for team knowledge tracking application Side Projects I have many side projects, some of which are farther along than others. These projects get me involved in technologies to strengthen my abilities and satisfy my ambition for knowledge. If you check out my GitHub account, there are plenty of working examples of my development abilities, so I encourage you to explore! What I’m looking to do next My internships at the University of Waterloo allowed me to pursue development opportunities within 1 many unique industries.
    [Show full text]
  • Java Server Face
    Java Server Face From the specification 2.0 JSF sources ● JSF specification 2.0 ● JSF sun tutorials EE6 ● Core Java server face (http://horstmann.com/corejsf/) ● http://jsftutorials.net/ ● JSF Lectures from Pascal URSO (Mcf Nancy) ● JSF Lectures from François Charoy (Mcf Nancy) ● Intro à JSF : [email protected] ● JSF and ICEFaces (?? anonymous) My Source ?? Overview and motivations ● JavaServer Faces (JSF) is a user interface (UI) framework for Java web applications. It is designed to significantly ease the burden of writing and maintaining applications that run on a Java application server and render their UIs back to a target client. JSF provides ease-of-use in the following ways: ● Makes it easy to construct a UI from a set of reusable UI components ● Simplifies migration of application data to and from the UI ● Helps manage UI state across server requests ● Provides a simple model for wiring client-generated events to server-side application code ● Allows custom UI components to be easily built and re-used Solving pratical problems of the web ● Managing UI component state across request ● Supporting encapsulation of the differences in markup across different browsers and clients ● Supporting form processing (multi-page, more than one per page, and so on) ● Providing a strongly typed event model that allows the application to write server- side handlers (independent of HTTP) for client generated events ● Validating request data and providing appropriate error reporting ● Enabling type conversion when migrating markup values (Strings) to and from application data objects (which are often not Strings) ● Handling error and exceptions, and reporting errors in human-readable form back to the application user ● Handling page-to-page navigation in response to UI events and model interactions.
    [Show full text]