New GUI for the PRISM Model Checker

Total Page:16

File Type:pdf, Size:1020Kb

New GUI for the PRISM Model Checker MASARYK UNIVERSITY FACULTY}w¡¢£¤¥¦§¨ OF I !"#$%&'()+,-./012345<yA|NFORMATICS New GUI for the PRISM model checker DIPLOMA THESIS Bc. Milan Malota Brno, Spring 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 excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. In Brno, May 25, 2015 Bc. Milan Malota Advisor: RNDr. Vojtechˇ Rehˇ ak,´ Ph.D. ii Acknowledgement I would like to thank my advisor Vojtechˇ Rehˇ ak´ for valuable advice, com- ments, support and patience during the writing of this thesis. I also want to express my gratitude to my family and my girlfriend for their support during studies. iii Abstract PRISM is a probabilistic model checker and is used in many different ap- plication domains and is well known among scientists dealing with formal modeling and analysis of systems that exhibit random or probabilistic be- havior. PRISM’s GUI was developed in the beginning of the PRISM life cycle and technologies made great progress so it can seem obsolete. That is why the request for a new GUI was pronounced. One of the platforms suitable for integrating an application and preferred by the original development team is the Eclipse platform. In the scope of this thesis we analyze available Eclipse platforms and notable graphical user interface frameworks. On the basis of the analysis new graphical user interface is discussed and prepared. iv Keywords PRISM, Eclipse RCP, Eclipse e4, AWT, Swing, SWT, JFace v Contents 1 Introduction ...............................3 1.1 Motivation .............................3 2 Preliminaries ..............................4 2.1 PRISM model checker ......................4 2.1.1 The PRISM language . .4 2.1.2 Properties . .5 2.1.3 Experiments . .6 2.1.4 Simulations . .6 2.2 The PRISM’s graphical user interface (GUI) ..........6 2.3 The model editor .........................7 2.4 The properties editor .......................8 2.5 The simulator environment and log ..............8 2.6 GUI conclusion ..........................9 3 The Eclipse Rich Client Platform ................... 10 3.1 Eclipse ............................... 10 3.2 The Eclipse RCP .......................... 10 3.2.1 The OSGi framework . 11 3.2.2 The SWT framework . 12 3.2.3 JFace . 12 3.2.4 Other Eclipse APIs . 12 3.3 The Eclipse 3.x platform ..................... 12 3.4 The Eclipse e4 platform ...................... 13 3.5 Eclipse Public License ...................... 13 3.6 The Eclipse RCP conclusion ................... 13 4 Implementation of the PRISM Eclipse plugin ........... 15 4.1 The Eclipse RCP platform selection ............... 15 4.1.1 The framework . 15 4.1.2 Dependency injection . 16 4.1.3 The dynamic application model . 16 4.1.4 GUI independence . 16 4.2 The user interface framework selection ............. 16 4.2.1 Abstract Window Toolkit (AWT) . 17 1 4.2.2 The Swing framework . 17 4.2.3 The Standard Widget Toolkit (SWT) . 17 4.2.4 JFace and SWT . 18 4.2.5 The user interface frameworks conclusion . 18 4.3 Eclipse e4 RCP development ................... 19 4.3.1 IDE and installation of e4 tools . 19 4.3.2 New project creation . 19 4.3.3 Application model . 20 4.3.4 Annotations . 21 4.3.5 GUI elements implementation . 22 4.3.6 Cascading style sheets (CSS) . 24 4.3.7 Exporting and platform independency . 25 4.4 The Eclipse PRISM plugin conclusion ............. 25 5 Conclusion ................................ 27 6 Content of the CD ........................... 28 2 Chapter 1 Introduction In a life cycle of a computer program we can find in the first position an idea for a program. In some cases the idea is pretty clear and there are no doubts, on the other hand in some cases the idea is slightly blurred. A difference is often in a motivation. Developers often does not know if their application is capable of addressing a potential user and if time invested in developing brings rewards or not. 1.1 Motivation The main goal of this thesis is to create a new graphical user interface (GUI) for an existing application called PRISM. PRISM is a probabilistic model checker and is used in many different application domains and is well known among scientists dealing with formal modeling and analysis of systems that exhibit random or probabilistic behavior [18]. The detailed information about PRISM is provided in the Section 2.1. PRISM is implemented as a standalone application, so a question why is a new GUI needed can come to the surface. The answer to the question is simple. The GUI was developed in the beginning of the PRISM life cycle and technologies made great progress so it can seem obsolete. One of the platforms suitable for integrating an application and pre- ferred by the original development team is the Eclipse platform. The Eclipse platform defines a set of frameworks and common services that allow devel- opers to create a rich client platform (RCP), we deal with RCP in Chapter 3 in detail. In Chapter 4 we describe notable Eclipse platforms and graphical user interface frameworks. We compare their advantages and disadvantages and on the basis of the comparison we select the most suitable Eclipse platform and GUI framework in which a new GUI for the PRISM model checker should be implemented. 3 Chapter 2 Preliminaries In this chapter we provide basic information about the PRISM language and the PRISM model checker. 2.1 PRISM model checker PRISM is a probabilistic model checker. The latest version (4.2.1) provides support for formal modelling and analysis of systems that exhibit random or probabilistic behavior [18]. PRISM is used to analyse a wide range of case studies in many different application domains, including randomised distributed algorithms, communication, network and multimedia protocols, security, biology, planning and synthesis, game theory, performance and reliability, power management and CTMC benchmarks [29]. For more about case studies see [1]. 2.1.1 The PRISM language In order to understand PRISM works we have to introduce the PRISM lan- guage, a simple, state-based language. This is used for all types of model that PRISM supports: discrete-time Markov chains (DTMCs), continuous-time Markov chains (CTMCs), Markov decision processes (MDPs) and probabilis- tic automata (PAs), probabilistic timed automata (PTAs). [18] Every PRISM model comprises a set of modules which represent different components of the system being modelled. For representation of the state of each module a set of variables is introduced. In Figure 2.1 we can see an example of the PRISM modelling language. The example shows a simple case study based on a single cell in a wireless communication network. In order to specify additional measures of interest of modelled systems rewards can be utilized. The way of rewards specification is in our example in Figure 2.1. Rewards typically represent the rate at which a reward is accu- mulated, rewards usually represent an instantaneous measure of interest, at a 4 2. PRELIMINARIES // single cell in wireless communication network // gxn/dxp 5/3/01 ctmc const i n t N; // N − number of channels const double lambda1=49; // arrival rate of new calls const double lambda2=21; // arrival rate of hand−o f f c a l l s const double mu=1; // departure rate of calls module c e l l n : [0..N]; // number of calls in the cell // arrival of new call [ ] ( n<N∗ 0 . 8 ) −> lambda1 : (n’=n+1); // arrival of hand of call [ ] ( n<N) −> lambda2 : (n’=n+1); // completion of call or mobile departs cell [ ] ( n>0) −> n∗mu : ( n’=n−1); endmodule // number calls in the cell rewards ” c a l l s ” true : n ; endrewards Figure 2.1: A case study based on a single cell in a wireless communication network [32] particular time, in our case, number of calls in the cell. For more information about the semantic of the PRISM modelling language, see the manual [30]. 2.1.2 Properties We have discussed basic information about the PRISM modelling language, when we have a model, we have to specify one or more properties. Properties are based on temporal logic, which offers a flexible and unambiguous means of describing a wide range of properties. In order to specify properties of DTMCc, MDPs or PTAs PCTL is used; CSL is an extension of PCTL for CTMCs; LTL and PCTL* can be used to specify properties of DTMCs and MDPs (or untimed properties of CTMCs) [31]. 5 2. PRELIMINARIES const double T; // time bound // the maximum probability that a hand off call can be // dropped within t time units (assuming a guarded channel is free) P=?[ true U<=T ( n=N) fn<Ngfmaxg ] // the expected number of calls at time T Rf” c a l l s ”g=? [ I=T ] // the probability that in the long run any call can be dropped S=? [ n<N∗0.8 ] // the expected number calls in the cell in the long run Rf” c a l l s ”g=? [ S ] Figure 2.2: A definition of properties [32] In Figure 2.2 we offer an example of the properties specification. The purpose of each property can be understood from comments labelling the example. Model and properties specifications together create platform for modelling most systems. 2.1.3 Experiments In some cases of system analysis it is more telling to generate and plot a range of studied values. Then, in the scope of the PRISM model checker we speak of experiments. Experiments are ways of automating model checking. The best usability is reached when we study trends in quantitative results. The results of experiments can be visualized via integrated graph plotting tool.
Recommended publications
  • Swing: Components for Graphical User Interfaces
    Swing: Components for Graphical User Interfaces Computer Science and Engineering College of Engineering The Ohio State University Lecture 22 GUI Computer Science and Engineering The Ohio State University GUI: A Hierarchy of Nested Widgets Computer Science and Engineering The Ohio State University Visual (Containment) Hierarchy Computer Science and Engineering The Ohio State University Top-level widgets: outermost window (a container) Frame, applet, dialog Intermediate widgets: allow nesting (a container) General purpose Panel, scroll pane, tabbed pane, tool bar Special purpose Layered pane Atomic widgets: nothing nested inside Basic controls Button, list, slider, text field Uneditable information displays Label, progress bar, tool tip Interactive displays of highly formatted information Color chooser, file chooser, tree For a visual (“look & feel”) of widgets see: http://java.sun.com/docs/books/tutorial/uiswing/components Vocabulary: Widgets usually referred to as “GUI components” or simply “components” History Computer Science and Engineering The Ohio State University Java 1.0: AWT (Abstract Window Toolkit) Platform-dependent implementations of widgets Java 1.2: Swing Most widgets written entirely in Java More portable Main Swing package: javax.swing Defines various GUI widgets Extensions of classes in AWT Many class names start with “J” Includes 16 nested subpackages javax.swing.event, javax.swing.table, javax.swing.text… Basic GUI widgets include JFrame, JDialog JPanel, JScrollPane, JTabbedPane,
    [Show full text]
  • Adult Coloring Journal : Health & Wellness (Pet Illustrations, Pastel Floral)
    ADULT COLORING JOURNAL : HEALTH & WELLNESS (PET ILLUSTRATIONS, PASTEL FLORAL) Author: Courtney Wegner Number of Pages: 162 pages Published Date: 20 May 2016 Publisher: Adult Coloring Journal Press Publication Country: United States Language: English ISBN: 9781357676728 DOWNLOAD: ADULT COLORING JOURNAL : HEALTH & WELLNESS (PET ILLUSTRATIONS, PASTEL FLORAL) Adult Coloring Journal : Health & Wellness (Pet Illustrations, Pastel Floral) PDF Book For instructors, this is a great book if they don t have their own class notes one can teach straight from the book. The Art and Science of Photovoltaics series was developed to fill this education gap. " Human being is inseparable from animality. One of the core underpinnings of Eclipse is SWT, the Standard Widget Toolkit. This book was published as a special issue of Development in Practice. Visit a dinosaur dig site or a famous dinosaur track site-- and even make your own cast of fossilized tracks. This ground breaking work should be of special interest to life science professionals working in the areas of knowledge management, data mining, and visualization. ABOUT THE SERIES: The Very Short Introductions series from Oxford University Press contains hundreds of titles in almost every subject area. Built around a comprehensive directory of professional qualifying bodies each professional area is described in depth and its qualifications identified and explained. Another force behind successful habit change is belief in the ability to change the habit. Each play introduces students to a specific world culture by looking at holidays celebrated in that culture. You'll discover fresh and re-energized lessons, completely updated research, and vibrant vignettes from new colleagues and old friends who have as much passion for their subjects as you do.
    [Show full text]
  • UML Ou Merise)
    Présenté par : M. Bouderbala Promotion : 3ème Année LMD Informatique / Semestre N°5 Etablissement : Centre Universitaire de Relizane Année Universitaire : 2020/2021 Elaboré par M.Bouderbala / CUR 1 Elaboré par M.Bouderbala / CUR 2 Croquis, maquette et prototype et après …? Elaboré par M.Bouderbala / CUR 3 système interactif vs. système algorithmique Système algorithmique (fermé) : lit des entrées, calcule, produit un résultat il y a un état final Système interactif (ouvert) : évènements provenant de l’extérieur boucle infinie, non déterministe Elaboré par M.Bouderbala / CUR 4 Problème Nous avons appris à programmer des algorithmes (la partie “calcul”) La plupart des langages de programmation (C, C++, Java, Lisp, Scheme, Ada, Pascal, Fortran, Cobol, ...) sont conçus pour écrire des algorithmes, pas des systèmes interactifs Elaboré par M.Bouderbala / CUR 5 Les Bibliothèques graphique Un widget toolkit ( Boite d'outil de composant d'interface graphique) est une bibliothèque logicielle destinée à concevoir des interfaces graphiques. Fonctionnalités pour faciliter la programmation d’applications graphiques interactives (et gérer les entrées) Windows : MFC (Microsoft Foundation Class), Windows Forms (NET Framework) Mac OS X : Cocoa Unix/Linux : Motif Multiplateforme : Java AWT/Swing, QT, GTK Elaboré par M.Bouderbala / CUR 6 Bibliothèque graphique Une Bibliothèque graphique est une bibliothèque logicielle spécialisée dans les fonctions graphiques. Elle permet d'ajouter des fonctions graphiques à un programme. Ces fonctions sont classables en trois types qui sont apparus dans cet ordre chronologique et de complexité croissante : 1. Les bibliothèques de tracé d'éléments 2D 2. Les bibliothèques d'interface utilisateur 3. Les bibliothèques 3D Elaboré par M.Bouderbala / CUR 7 Les bibliothèques de tracé d'éléments 2D Ces bibliothèques sont également dites bas niveau.
    [Show full text]
  • Visualization Program Development Using Java
    JAERI-Data/Code 2002-003 Japan Atomic Energy Research Institute - (x 319-1195 ^J^*g|55lfi5*-/SWB*J|f^^W^3fFti)) T?1fi^C «k This report is issued irregularly. Inquiries about availability of the reports should be addressed to Research Information Division, Department of Intellectual Resources, Japan Atomic Energy Research Institute, Tokai-mura, Naka-gun, Ibaraki-ken T 319-1195, Japan. © Japan Atomic Energy Research Institute, 2002 JAERI- Data/Code 2002-003 Java \Z w-mm n ( 2002 %. 1 ^ 31 B Java *ffitt, -f >*- —tf—T -7x-x (GUI) •fi3.t>*> Java ff , Java #t : T619-0215 ^^^ 8-1 JAERI-Data/Code 2002-003 Visualization Program Development Using Java Akira SASAKI, Keiko SUTO and Hisashi YOKOTA* Advanced Photon Research Center Kansai Research Establishment Japan Atomic Energy Research Institute Kizu-cho, Souraku-gun, Kyoto-fu ( Received January 31, 2002 ) Method of visualization programs using Java for the PC with the graphical user interface (GUI) is discussed, and applied to the visualization and analysis of ID and 2D data from experiments and numerical simulations. Based on an investigation of programming techniques such as drawing graphics and event driven program, example codes are provided in which GUI is implemented using the Abstract Window Toolkit (AWT). The marked advantage of Java comes from the inclusion of library routines for graphics and networking as its language specification, which enables ordinary scientific programmers to make interactive visualization a part of their simulation codes. Moreover, the Java programs are machine independent at the source level. Object oriented programming (OOP) methods used in Java programming will be useful for developing large scientific codes which includes number of modules with better maintenance ability.
    [Show full text]
  • Customizing Eclipse RCP Applications Techniques to Use with SWT and Jface
    Customizing Eclipse RCP applications Techniques to use with SWT and JFace Skill Level: Intermediate Scott Delap ([email protected]) Desktop/Enterprise Java Consultant Annas Andy Maleh ([email protected]) Consultant 27 Feb 2007 Most developers think that an Eclipse Rich Client Platform (RCP) application must look similar in nature to the Eclipse integrated development environment (IDE). This isn't the case, however. This tutorial will explain a number of simple techniques you can use with the Standard Widget Toolkit (SWT) and JFace to create applications that have much more personality than the Eclipse IDE. Section 1. Before you start About this tutorial This tutorial will explain a number of UI elements that can be changed in Eclipse RCP, JFace, and SWT. Along the way, you will learn about basic changes you can make, such as fonts and colors. You will also learn advanced techniques, including how to create custom wizards and section headers. Using these in conjunction should provide you the ability to go from a typical-looking Eclipse RCP application to a distinctive but visually appealing one. Prerequisites Customizing Eclipse RCP applications © Copyright IBM Corporation 1994, 2008. All rights reserved. Page 1 of 40 developerWorks® ibm.com/developerWorks You should have a basic familiarity with SWT, JFace, and Eclipse RCP. System requirements To run the examples, you need a computer capable of adequately running Eclipse V3.2 and 50 MB of free disk space. Section 2. Heavyweight and lightweight widgets Before diving into techniques that can be used to modify SWT, JFace, and Eclipse RCP in general, it's important to cover the fundamental characteristics of SWT and how they apply to the appearance of the widget set.
    [Show full text]
  • IBMが注力するオープンソース・プロジェクト ― Eclipseとdojo Toolkit ―
    解 説 2 IBMが注力するオープンソース・プロジェクト ― EclipseとDojo Toolkit ― 昨今のソフトウェア 開 発における重 要な要 素である Article 2 オープンソース・ソフトウェア。中でも、IBM が注力す Open Source Projects that IBM Invests in るオープンソース・プロジェクトとして、Eclipse と Dojo - Eclipse and Dojo Toolkit - Toolkit があります。Eclipse は、JavaTM ベースの統合 Open source software is an important factor in software 開発環境としての地位を確立し、さらにリッチ・クライア development today. Among many open source projects, IBM ントのプラットフォームとして 、 また、 サ ー バー・ サイドの is investing in the Eclipse and the Dojo Toolkit. The Eclipse is プラグイン技術として利用範囲を広げています。 一方、 dominant in the Java IDE area and continues to evolve as well as a rich client platform and a server-side plug-in Dojo Toolkit は、Web ブラウザー上で動作するリッチ・ technology, while the Dojo Toolkit is an emerging open インターネット・アプリケーションの開発に欠かせない、 source project that provides JavaScript libraries for developing rich internet applications. This article introduces 高機能 JavaScriptTM ライブラリーとして、製品での利 the latest activities and features on both open source 用が進んでいる注目株のオープンソース・プロジェクトで projects. す。本稿では、この二つのオープンソース・プロジェクト の動向をご紹介します。 ❶ ますます重要になるオープンソース ア開発へとそのターゲット・エリアを広 げ ています 。さらには、 開発環境としてだけではなく、 例 えばリッチ・クライアントの Linux®をはじめとしたオープンソースの潮流は、ソフト 基盤としての活用や、サーバー環境での活用もすでに始 ウェア開発の現場で注目され始めた黎明期から、質・種 まって いるの で す ( 図1)。 類ともに飛躍的な進歩を遂げています。オープンソースの 利用は、システム開発期間の短縮やコミュニティーによる Java開発環境から 統合開発環境、 Eclipse3.4 品質向上といったコスト削 減 のメリットに 加 えて 、 特 定 の ベ デスクトップ・プラットフォームへ Eclipse3.3 ンダーの技術に対する依存を避け、将来にわたる柔軟な Eclipse3.2 Web開発 システム構築のための重要な選択肢となっています。 Eclipse3.1 本稿では、そのようなオ ープンソース・プロジェクトの 中 組み込みデバイス開発 Eclipse3.0 から、IBM が注力する「Eclipse」と「Dojo Toolkit」 リッチ・クライアント Eclipse2.0
    [Show full text]
  • Flextest Installation Guide
    FlexTest Installation Guide Audience: Administrators profi.com AG Page 1/18 Copyright 2011-2014 profi.com AG. All rights reserved. Certain names of program products and company names used in this document might be registered trademarks or trademarks owned by other entities. Microsoft and Windows are registered trademarks of Microsoft Corporation. DotNetBar is a registered trademark of DevComponents LLC. All other trademarks or registered trademarks are property of their respective owners. profi.com AG Stresemannplatz 3 01309 Dresden phone: +49 351 44 00 80 fax: +49 351 44 00 818 eMail: [email protected] Internet: www.proficom.de Corporate structure Supervisory board chairman: Dipl.-Kfm. Friedrich Geise CEO: Dipl.-Ing. Heiko Worm Jurisdiction: Dresden Corporate ID Number: HRB 23 438 Tax Number: DE 218776955 Page 2/18 Contents 1 Introduction ............................................................................................................................ 4 2 Delivery Content ..................................................................................................................... 5 2.1 FlexTest Microsoft .Net Assemblies .................................................................................. 5 2.2 FlexTest license file ........................................................................................................... 5 2.3 FlexTest registry file .......................................................................................................... 6 2.4 Help .................................................................................................................................
    [Show full text]
  • Abstract Window Toolkit Overview
    In this chapter: • Components • Peers 1 • Layouts • Containers • And the Rest • Summary Abstract Window Toolkit Overview For years, programmers have had to go through the hassles of porting software from BSD-based UNIX to System V Release 4–based UNIX, from OpenWindows to Motif, from PC to UNIX to Macintosh (or some combination thereof), and between various other alternatives, too numerous to mention. Getting an applica- tion to work was only part of the problem; you also had to port it to all the plat- forms you supported, which often took more time than the development effort itself. In the UNIX world, standards like POSIX and X made it easier to move appli- cations between different UNIX platforms. But they only solved part of the prob- lem and didn’t provide any help with the PC world. Portability became even more important as the Internet grew. The goal was clear: wouldn’t it be great if you could just move applications between different operating environments without worr yingabout the software breaking because of a different operating system, win- dowing environment, or internal data representation? In the spring of 1995, Sun Microsystems announced Java, which claimed to solve this dilemma. What started out as a dancing penguin (or Star Trek communicator) named Duke on remote controls for interactive television has become a new paradigm for programming on the Internet. With Java, you can create a program on one platform and deliver the compilation output (byte-codes/class files) to ever yother supported environment without recompiling or worrying about the local windowing environment, word size, or byte order.
    [Show full text]
  • Eclipse (Software) 1 Eclipse (Software)
    Eclipse (software) 1 Eclipse (software) Eclipse Screenshot of Eclipse 3.6 Developer(s) Free and open source software community Stable release 3.6.2 Helios / 25 February 2011 Preview release 3.7M6 / 10 March 2011 Development status Active Written in Java Operating system Cross-platform: Linux, Mac OS X, Solaris, Windows Platform Java SE, Standard Widget Toolkit Available in Multilingual Type Software development License Eclipse Public License Website [1] Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, Ruby (including Ruby on Rails framework), Scala, Clojure, and Scheme. The IDE is often called Eclipse ADT for Ada, Eclipse CDT for C/C++, Eclipse JDT for Java, and Eclipse PDT for PHP. The initial codebase originated from VisualAge.[2] In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT). Users can extend its abilities by installing plug-ins written for the Eclipse software framework, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Released under the terms of the Eclipse Public License, Eclipse is free and open source software. It was one of the first IDEs to run under GNU Classpath and it runs without issues under IcedTea. Eclipse (software) 2 Architecture Eclipse employs plug-ins in order to provide all of its functionality on top of (and including) the runtime system, in contrast to some other applications where functionality is typically hard coded.
    [Show full text]
  • Web Development Frameworks Ruby on Rails VS Google Web Toolkit
    Bachelor thesis Web Development Frameworks Ruby on Rails VS Google Web Toolkit Author: Carlos Gallardo Adrián Extremera Supervisor: Welf Löwe Semester: Spring 2011 Course code: 2DV00E SE-391 82 Kalmar / SE-351 95 Växjö Tel +46 (0)772-28 80 00 [email protected] Lnu.se/dfm Abstract Web programming is getting more and more important every day and as a consequence, many new tools are created in order to help developers design and construct applications quicker, easier and better structured. Apart from different IDEs and Technologies, nowadays Web Frameworks are gaining popularity amongst users since they offer a large range of methods, classes, etc. that allow programmers to create and maintain solid Web systems. This research focuses on two different Web Frameworks: Ruby on Rails and Google Web Toolkit and within this document we will examine some of the most important differences between them during a Web development. Keywords web frameworks, Ruby, Rails, Model-View-Controller, web programming, Java, Google Web Toolkit, web development, code lines i List of Figures Figure 2.1. mraible - History of Web Frameworks....................................................4 Figure 2.2. Java BluePrints - MVC Pattern..............................................................6 Figure 2.3. Libros Web - MVC Architecture.............................................................7 Figure 2.4. Ruby on Rails - Logo.............................................................................8 Figure 2.5. Windaroo Consulting Inc - Ruby on Rails Structure.............................10
    [Show full text]
  • Download the Index
    Dewsbury.book Page 555 Wednesday, October 31, 2007 11:03 AM Index Symbols addHistoryListener method, Hyperlink wid- get, 46 $wnd object, JSNI, 216 addItem method, MenuBar widget, 68–69 & (ampersand), in GET and POST parameters, addLoadListener method, Image widget, 44 112–113 addMessage method, ChatWindowView class, { } (curly braces), JSON, 123 444–445 ? (question mark), GET requests, 112 addSearchResult method JUnit test case, 175 SearchResultsView class, 329 A addSearchView method, MultiSearchView class, 327 Abstract Factory pattern, 258–259 addStyleName method, connecting GWT widgets Abstract methods, 332 to CSS, 201 Abstract Window Toolkit (AWT), Java, 31 addToken method, handling back button, 199 AbstractImagePrototype object, 245 addTreeListener method, Tree widget, 67 Abstraction, DAOs and, 486 Adobe Flash and Flex, 6–7 AbstractMessengerService Aggregator pattern Comet, 474 defined, 34 Jetty Continuations, 477 Multi-Search application and, 319–321 action attribute, HTML form tag, 507 sample application, 35 Action-based web applications Aggregators, 320 overview of, 116 Ajax (Asynchronous JavaScript and XML) PHP scripts for building, 523 alternatives to, 6–8 ActionObjectDAO class, 527–530 application development and, 14–16 Actions, server integration with, 507–508 building web applications and, 479 ActionScript, 6 emergence of, 3–5 ActiveX, 7 Google Gears for storage, 306–309 Add Import command Same Origin policy and, 335 creating classes in Eclipse, 152 success and limitations of, 5–6 writing Java code using Eclipse Java editor,
    [Show full text]
  • The Abstract Window Toolkit (AWT), from Java
    Components Containers and Layout Menus Dialog Windows Event Handling The Abstract Window Toolkit (AWT), from Java : Abstract Window Toolkit Interface to the GUI Interface to platform's components: Layout: Placing GUI event keyboard, window system Buttons, text components handling mouse, … (Win, Mac, …) fields, … Uses operating system components Don't use these! . Looks like a native application . One must sometimes be aware of differences between operating systems… . Small set of components . , … – no table, no color chooser, … The Java Foundation Classes, from Java : Java Foundation Classes (JFC) Java : AWT, Swing More advanced Abstract Window Toolkit graphics classes Components based on pure Java "Painting on the screen" . Won't always look "native”, . The basis of Swing but works identically on all platforms components – and your own . Replaces AWT components, adds more . Discussed next lecture . We still use many other parts of AWT Components: JTable, JButton, … extending JComponent Containers: JFrame – a top level window; JPanel – a part of a window, grouping some components together Layout Managers: Decide how to place components inside containers Swing: Can replace the look and feel dynamically . Nimbus (current Java standard) . Metal (earlier Java standard) . Windows classic Running example: A very simple word processor Ordinary window in Swing: JFrame . A top-level container: Not contained in anything else ▪ AWT Base class for all Swing components Common implementation details Has two states, on/off Radio buttons: Only one per Standard button active at a time Checkbox, on / off Editing styled text: Abstract base class, HTML, RTF, common functionality custom formats A single line of text Multi-line text area Special formatting for Passwords are not shown dates, currency, … as they are entered .
    [Show full text]