Cracking the Cocoa Nut: User Interface Programming at Runtime James Eagan, Michel Beaudouin-Lafon, Wendy E
Total Page:16
File Type:pdf, Size:1020Kb
Load more
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, -
View of XML Technology
AN APPLICATION OF EXTENSlBLE MARKUP LANGUAGE FOR INTEGRATION OF KNOWLEDGE-BASED SYSTEM WITH JAVA APPLICATIONS A Thesis Presented to The Faculty of the Fritz J. and Dolores H. Russ College of Engineering and Technology Ohio University In Partial Fulfillment of the Requirement for the Degree Master of Science BY Sachin Jain November, 2002 ACKNOWLEDGEMENTS It is a pleasure to thank the many people who made this thesis possible. My sincere gratitude to my thesis advisor, Dr. DuSan Sormaz, who helped and guided me towards implementing the ideas presented in this thesis. His dedication to research and his effort in the development of my thesis was an inspiration throughout this work. The thesis would not be successful without other members of my committee, Dr. David Koonce and Dr. Constantinos Vassiliadis. Special thanks to them for their substantial help and suggestions during the development of this thesis. I would like also to thank Dr. Dale Masel for his class on guidelines for how to write thesis. Thanlts to my fellow colleagues and members of the lMPlanner Group, Sridharan Thiruppalli, Jaikumar Arumugam and Prashant Borse for their excellent cooperation and suggestions. A lot of infom~ation~1sef~11 to the work was found via the World Wide Web; 1 thank those who made their material available on the Web and those who kindly responded back to my questions over the news-groups. Finally, it has been pleasure to pursue graduate studies at IMSE department at Ohio University, an unique place that has provided me with great exposures to intricacies underlying development, prograrn~ningand integration of different industrial systems; thus making this thesis posslbie. -
Programming Java for OS X
Programming Java for OS X hat’s so different about Java on a Mac? Pure Java applica- tions run on any operating system that supports Java. W Popular Java tools run on OS X. From the developer’s point of view, Java is Java, no matter where it runs. Users do not agree. To an OS X user, pure Java applications that ignore the feel and features of OS X are less desirable, meaning the customers will take their money elsewhere. Fewer sales translates into unhappy managers and all the awkwardness that follows. In this book, I show how to build GUIs that feel and behave like OS X users expect them to behave. I explain development tools and libraries found on the Mac. I explore bundling of Java applications for deployment on OS X. I also discuss interfacing Java with other languages commonly used on the Mac. This chapter is about the background and basics of Java develop- ment on OS X. I explain the history of Java development. I show you around Apple’s developer Web site. Finally, I go over the IDEs commonly used for Java development on the Mac. In This Chapter Reviewing Apple Java History Exploring the history of Apple embraced Java technologies long before the first version of Java on Apple computers OS X graced a blue and white Mac tower. Refugees from the old Installing developer tan Macs of the 1990s may vaguely remember using what was tools on OS X called the MRJ when their PC counterparts were busy using JVMs. Looking at the MRJ stands for Mac OS Runtime for Java. -
XAMPP-Chapter
The following is a sample chapter from the upcoming Understanding MySQL and MariaDB, coming in 2020 from Andrew Comeau and Comeau Software Solutions. If you enjoy this preview, please check back at ComeauSoftware.com for more details and updates on anticipated release dates. https://www.comeausoftware.com/understanding-mysql-and-mariadb/ All material, Copyright 2019 – Andrew Comeau 3 Installing MariaDB with XAMPP Using MariaDB as part of a suite of web development tools In This Lesson … • Understand the purpose of an Apache - MySQL - PHP (AMP) software stack • Recognize the variations in AMP stack packages available for download • Install an AMP stack for use in developing databases and hosting web applications What is an AMP Stack? As powerful as MySQL is, it's rarely used on its own. Most developers will want additional tools such as programming languages and interface tools to escape the tedium of working on the command line all the time. This is one of the reasons that MySQL is often used in combination with other tools that will enable the design of user-friendly sites. This means either creating or downloading a ready-made AMP stack. AMP usually stands for "Apache-MySQL-PHP" although the P might also stand for Perl or Python. In general, it simply refers to one or more programming languages that are included with the software stack. An AMP stack is called a stack because each tool within it addresses a different aspect of database and web development and helps support the others. • Apache is a web server - software that can respond to requests for pages and other content within a website. -
WIMP Interfaces for Emerging Display Environments
Graz University of Technology Institute for Computer Graphics and Vision Dissertation WIMP Interfaces for Emerging Display Environments Manuela Waldner Graz, Austria, June 2011 Thesis supervisor Prof. Dr. Dieter Schmalstieg Referee Prof. Dr. Andreas Butz To Martin Abstract With the availability of affordable large-scale monitors and powerful projector hardware, an increasing variety of display configurations can be found in our everyday environments, such as office spaces and meeting rooms. These emerging display environments combine conventional monitors and projected displays of different size, resolution, and orientation into a common interaction space. However, the commonly used WIMP (windows, icons, menus, and pointers) user interface metaphor is still based on a single pointer operating multiple overlapping windows on a single, rectangular screen. This simple concept cannot easily capture the complexity of heterogeneous display settings. As a result, the user cannot facilitate the full potential of emerging display environments using these interfaces. The focus of this thesis is to push the boundaries of conventional WIMP interfaces to enhance information management in emerging display environments. Existing and functional interfaces are extended to incorporate knowledge from two layers: the physical environment and the content of the individual windows. The thesis first addresses the tech- nical infrastructure to construct spatially aware multi-display environments and irregular displays. Based on this infrastructure, novel WIMP interaction and information presenta- tion techniques are demonstrated, exploiting the system's knowledge of the environment and the window content. These techniques cover two areas: spatially-aware cross-display navigation techniques for efficient information access on remote displays and window man- agement techniques incorporating knowledge of display form factors and window content to support information discovery, manipulation, and sharing. -
GUI Object Level Architectures Recap
GUI Object Level Architectures Recap • Lots of Input Devices – Basic input devices (keyboard, mouse, buttons, valuators) – Exotic input devices (3D Input, Gloves, Crosspads) – Research input devices (Peephole display, speech, touch) Recap • Handling input – Predefine all kinds of devices (too rigid, didn’t work too well) – Instead, organize everything as event or sampled devices – Handle everything in software as events Mouse Events Software Keyboard Software Today • Object-level architectures – Design patterns for GUIs – Model-View-Controller – Pluggable Look and Feel – Undo / Redo Internal Organization of Widgets • GUI widgets organized Model-View-Controller (MVC) – Basic idea: split widget into three separate objects – Each handles different aspect of widget Model-View-Controller • Model handles core functionality and data • Micro-level (internal to widget) – Scrollbar state – Checkbox state – What cell in table is currently highlighted • Macro-level (application) – Table data – Content in a document – Image in paint program Model-View-Controller • Model provides: – methods to edit data, which Controller can call – methods to access state, which View and Controller can request • Model has registry of dependent Views to notify on data changes • In Swing, listeners stored here Model-View-Controller • Model examples: – text editor: model is text string – slider: model is an integer – spreadsheet: collection of values related by functional constraints Model-View-Controller • View handles how the widget appears – Handles display of information -
Design Patterns and Frameworks for Developing WIMP User Interfaces
Design Patterns and Frameworks for Developing WIMP+ User Interfaces Vom Fachbereich Informatik der Technischen Universität Darmstadt genehmigte Dissertation zur Erlangung des akademischen Grades der Doktor-Ingenieurin (Dr.-Ing.) vorgelegt von Yongmei Wu, M.Sc. geboren in Guizhou, China Referenten der Arbeit: Prof. Dr.-Ing. Hans-Jürgen Hoffmann Prof. Robert J.K. Jacob, Ph.D. Tag des Einreichens: 09.10.2001 Tag der mündlichen Prüfung: 11.12.2001 D17 Darmstädter Dissertation 2001 Abstract Abstract This work investigates the models and tools for support of developing a kind of future user interfaces, which are partially built upon the WIMP (Windows, Icons, Menus, and Pointing device: the mouse) interaction techniques and devices; and able to observe and leverage at least one controlled process under the supervision of their user(s). In this thesis, they are called WIMP+ user interfaces. There are a large variety of applications dealt with WIMP+ user interfaces, e.g., robot control, telecommunication, car driver assistant systems, distributed multi-user database systems, automation rail systems, etc. At first, it studies the evolution of user interfaces, deduces the innovative functions of future user interfaces, and defines WIMP+ user interfaces. Then, it investigates high level models for user interface realization. Since the most promising user-centered design methodology is a new emerging model, it is still short of modeling methodology and rules to support the concrete development process. Therefore, in this work, a universal modeling methodology, which picks up the design pattern application, is researched and used to structure different low level user interface models. And a framework, named Hot-UCDP, for aiding the development process, is proposed. -
Jquery: Animations
jQuery: Animations ATLS 3020 - Digital Media 2 Week 9 - Day 2 jQuery Overview ● All HTML must be valid! ● Define elements in HTML ● Styling and presentation in CSS ● Add interactivity with javascript/jQuery jQuery Overview All jQuery must go inside of $(document).ready(function(){}) HTML <head> // meta, title, css <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"> </script> <script> $(document).ready(function() { // your javascript and jQuery code goes here }); </script> </head> jQuery Overview You can only add jQuery variables with jQuery methods and javascript variables with javascript methods Javscript We have a function that changes function change_color() { the color of an element: // changes the color of something } We can use ONE of the two options. We cannot combine document.getElementById() with the click method. And we cannot combine $(selector) with the onclick method. Javscript jQuery var button; $("#button").click(change_color); button = document.getElementById("button"); button.onclick(change_color); Some jQuery animations jQuery Makes a hidden element fade into view $("#banner").fadeIn(); jQuery Hides an element by fading it out $("#banner").fadeOut(); jQuery Makes a visible element side out of view $("#banner").slideUp(); jQuery $("#banner").slideDown(); Makes a hidden element slide into view jQuery Alternates between hiding and showing the $("#banner").toggle(); “banner” id jQuery Alternates between hiding and showing the $("#banner").slideToggle(); “banner” id, while sliding in and out jQuery and CSS We can also edit CSS directly with jQuery: $(selector).css("property", "value"); jQuery $("#banner").css("font-size", "100px"); Changes the font-size of the banner element jQuery $("#banner").css("color", "#00f"); Changes the font color of the banner element Or change multiple properties at once: $(selector).css({ "attribute", "value", jQuery "attribute", "value" }); $("#banner").css({ "font-size", "100px", "color", "#00f" }); Exercise (pairs) 1. -
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 . -
Design and Implementation of Post-WIMP Interactive Spaces with the ZOIL Paradigm
Design and Implementation of Post-WIMP Interactive Spaces with the ZOIL Paradigm Dissertation zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) vorgelegt von Hans-Christian Jetter an der Universität Konstanz Mathematisch-Naturwissenschaftliche Sektion Fachbereich Informatik und Informationswissenschaft Tag der mündlichen Prüfung: 22. März 2013 1. Referent: Prof. Dr. Harald Reiterer (Universität Konstanz) 2. Referent: Prof. Dr. Andreas Butz (LMU München) Prüfungsvorsitzender: Prof. Dr. Daniel Keim (Universität Konstanz) Konstanz, Dezember 2013 Design and Implementation of Post-WIMP Interactive Spaces with the ZOIL Paradigm Dissertation submitted for the degree of Doctor of Natural Sciences (Dr. rer. nat.) Presented by Hans-Christian Jetter at the University of Konstanz Faculty of Sciences Department of Computer and Information Science Date of the oral examination: March 22nd, 2013 1st Supervisor: Prof. Dr. Harald Reiterer (University of Konstanz) 2nd Supervisor: Prof. Dr. Andreas Butz (University of Munich, LMU) Chief Examiner: Prof. Dr. Daniel Keim (University of Konstanz) Konstanz, December 2013 i Zusammenfassung Post-WIMP (post-“Windows, Icons, Menu, Pointer”) interaktive Räume sind physische Umgebungen oder Räume für die kollaborative Arbeit, die mit Technologien des Ubiquitous Computing angereichert sind. Ihr Zweck ist es, eine computer-unterstützte Kollaboration mehrerer Benutzer zu ermöglichen, die auf einer nahtlosen Benutzung mehrerer Geräte und Bildschirme mittels „natürlicher“ post-WIMP Interaktion basiert. Diese Dissertation beantwortet die Forschungsfrage, wie Gestalter und Entwickler solcher Umgebungen dabei unterstützt werden können, gebrauchstaugliche interaktive Räume für mehrere Benutzer mit mehreren Geräten zu erschaffen, die eine kollaborative Wissensarbeit ermöglichen. Zu diesem Zweck werden zunächst Konzepte wie post-WIMP Interaktion, interaktive Räume und Wissensarbeit definiert. Die Arbeit formuliert dann das neue technologische Paradigma ZOIL (Zoomable Object-Oriented Information Landscape). -
Comparison of Dynamic Web Content Processing Language Performance Under a LAMP Architecture
Jafar, Anderson, and Abdullat Fri, Nov 7, 4:00 - 4:30, Pueblo C Comparison of Dynamic Web Content Processing Language Performance Under a LAMP Architecture Musa Jafar [email protected] Russell Anderson [email protected] Amjad Abdullat [email protected] CIS Department, West Texas A&M University Canyon, TX 79018 Abstract LAMP is an open source, web-based application solution stack. It is comprised of (1) an oper- ating system platform running Linux, (2) an Apache web server, (3) a MySQL database man- agement system, and (4) a Dynamic Web Content Processor (tightly coupled with Apache) that is a combination of one or more of Perl, Python and PHP scripting languages paired with their corresponding MySQL Database Interface Module. In this paper, we compare various performance measures of Perl, Python and PHP separately without a database interface and in conjunction with their MySQL Database Interface Modules within a LAMP framework. We per- formed our tests under two separate Linux, Apache and Dynamic Web Content environments: an SE Linux environment and a Redhat Enterprise Linux environment. A single MySQL data- base management system that resided on a separate Redhat Linux box served both environ- ments. We used a hardware appliance framework for our test configuration, generation and data gathering. An appliance framework is repeatable and easily configurable. It allows a performance engineer to focus effort on the design, configuration and monitoring of tests, and the analysis of test results. In all cases, whether database connectivity was involved or not, PHP outperformed Perl and Python. We also present the implementation of a mechanism to handle the propagation of database engine status-codes to the web-client, this is important when automatic client-based testing is performed, because the HTTP server is incapable of automatically propagating third-tier applications status-codes to the HTTP client. -
Swingstates: Adding State Machines to Java and the Swing Toolkit Caroline Appert, Michel Beaudouin-Lafon
SwingStates: Adding state machines to Java and the Swing toolkit Caroline Appert, Michel Beaudouin-Lafon To cite this version: Caroline Appert, Michel Beaudouin-Lafon. SwingStates: Adding state machines to Java and the Swing toolkit. Software: Practice and Experience, Wiley, 2008, 38 (11), pp.1149-1182. 10.1002/spe.867. inria-00538334 HAL Id: inria-00538334 https://hal.inria.fr/inria-00538334 Submitted on 25 Nov 2010 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. SwingStates: Adding state machines to Java and the Swing toolkit C. Appert∗ and M. Beaudouin-Lafon LRI (Universit´eParis-Sud & CNRS), INRIA, bˆat 490, 91405 Orsay, France. SUMMARY This article describes SwingStates, a Java toolkit designed to facilitate the development of graphical user interfaces and bring advanced interaction techniques to the Java platform. SwingStates is based on the use of finite-state machines specified directly in Java to describe the behavior of interactive systems. State machines can be used to redefine the behavior of existing Swing widgets or, in combination with a new canvas widget that features a rich graphical model, to create brand new widgets. SwingStates also supports arbitrary input devices to implement novel interaction techniques based, for example, on bi-manual or pressure-sensitive input.