Interface Builders and Interface Description Languages

Similar documents
Organization of User Interface Software

CS 4300 Computer Graphics

Object-Oriented Programming

Developing Windows Applications with Microsoft Visual Studio 2010

Level 3 Computing Year 2 Lecturer: Phil Smith

Developing Windows Applications with Microsoft Visual Studio 2010

Road Map for Essential Studio 2010 Volume 1

Quick Start - WPF. Chapter 4. Table of Contents

CPSC Tutorial 5

Developing Windows Applications with Microsoft Visual Studio 2010 (MS 10262)

DE Developing Windows Applications with Microsoft Visual Studio 2010

Windows Presentation Foundation Programming Using C#

CHANNEL9 S WINDOWS PHONE 8.1 DEVELOPMENT FOR ABSOLUTE BEGINNERS

DEVELOPING WINDOWS APPLICATIONS WITH MICROSOFT VISUAL STUDIO 2010

Team Developer 6.1. Configure the color-coding in the Tools Preferences dialog under the Outline tab.

Low fidelity: omits details High fidelity: more like finished product. Breadth: % of features covered. Depth: degree of functionality

Widget Toolkits CS MVC

iphone App Basics iphone and ipod touch Development Fall 2009 Lecture 5

Qt Essentials - Fundamentals of Qt Module

CPSC Tutorial 5 WPF Applications

LECTURE 3 ADMINISTRATION SECTION -A

Original GUIs. IntroGUI 1

Copyright Soyatec. Licensed under the Eclipse Public License 1.0

Visit for more.

Introduction to the Visual Studio.NET Integrated Development Environment IDE. CSC 211 Intermediate Programming

The MVC Design Pattern

Mid Unit Review. Of the four learning outcomes for this unit, we have covered the first two. 1.1 LO1 2.1 LO2 LO2

Qt + Maemo development

Xcode and Swift CS 4720 Mobile Application Development

Leow Wee Kheng CS3249 User Interface Development. Windowing Systems CS3249

Acknowledgments...xvii. Introduction... Chapter 1: Getting Started Chapter 2: Build a Hi-Lo Guessing Game App!... 19

XAML - BUTTON. The Button class represents the most basic type of button control. The hierarchical inheritance of Button class is as follows

Microsoft Visual Studio 2010

Windows Presentation Foundation (WPF)

CS415 Human Computer Interaction

Tcl/Tk lecture. What is the Wish Interpreter? CIS 410/510 User Interface Programming

Fundamentals of XAML and Microsoft Expression Blend

stanford hci group / cs376 UI Software Tools Scott Klemmer 14 October research topics in human-computer interaction

Reference Services Division Presents. Microsoft Word 2

Nebraska - eforms. Tips and Tricks

X Review. Mac OS X Roots: NeXT. BWS Available for virtually every OS

WindowBuilder Graduation & Release Review

IAP C# Lecture 5 XAML and the Windows Presentation Foundation. Geza Kovacs

Course 2D_WPF: 2D-Computer Graphics with C# + WPF Chapter C1a: The Intro Project Written in XAML and C#

10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010

Review. Designing Interactive Systems II. Review. Base Window System. Apps UITK BWS GEL. 4-Layer Model Graphics and Event Library BWS GEL

CS415 Human Computer Interaction

SPARK. User Manual Ver ITLAQ Technologies

CSC 581: Mobile App Development Spring 2019

Dynamic Object-Oriented Programming with Smalltalk 1. Introduction

Software User's Guide

ITP 342 Mobile App Dev. Interface Builder in Xcode

CS-Studio Display Builder

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

Graphical User Interface (GUI)

User Interfaces for Web Sites and Mobile Devices. System and Networks

STYLES AND BEHAVIORS

Android App Development

Software Tools. Scott Klemmer Autumn 2009

Qt Essentials - Fundamentals of Qt Module

Creating Professional Swing UIs Using the NetBeans GUI Builder

Mobile Computing Professor Pushpedra Singh Indraprasth Institute of Information Technology Delhi Andriod Development Lecture 09

Advanced Programming C# Lecture 3. dr inż. Małgorzata Janik

Using OMNIS Studio. OMNIS Software

OpenGL and Qt Creator: a Gentle Introduction

Kick Start your Embedded Development with Qt

Getting started 7. Setting properties 23

ArcGIS for Developers: An Introduction. Moey Min Ken

where are we? ICS 105: Project in HCI ui toolkits what does the toolkit do? model-view-controller model-view-controller lectures

25. DECUS Symposium THE Application Development Environment for OpenVMS

<Insert Picture Here> JavaFX Overview April 2010

MFC One Step At A Time By: Brandon Fogerty

GUI Implementation Support

Labels and Envelopes in Word 2013

sharpcorner.com/uploadfile/37db1d/4958/default.aspx?articleid=cb0b291c-52ae-4b80-a95c- 438d76fa1145

Release Notes & Install Guide

CS3240 Human-Computer Interaction Lab Sheet Lab Session 3 Designer & Developer Collaboration

NE Fundamentals of XAML and Microsoft Expression Blend

Note: many examples in this section taken or adapted from Pro WPF 4.5 C#, Matthew MacDonald, apress, 2012, pp

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

Syllabus- Java + Android. Java Fundamentals

Qt Quick Tools. To Help You Code Faster & Better

You can link completely different files into one by adopting a file to one or more of your topics.

Comic Life. Creating Photo Comics. Classroom Course Manual

Eclipse CDT Tutorial. Eclipse CDT Homepage: Tutorial written by: James D Aniello

Tools to Develop New Linux Applications

NETBEANS PLATFORM. Satyajit Tripathi Member Technical Staff ISV-Engineering, Sun Microsystems

Developing Applications for ios

Xcode Setup. Setup. 1. Copy your files. 2. Install X Code

Human-Computer Interaction IS4300

The Eclipse Rich Client Platform

INTRODUCTION TO VISUAL BASIC 2010

Qt for Device Creation

WPF Viewer for Reporting Services 2008/2012 Getting Started

Windows Presentation Foundation

In the first class, you'll learn how to create a simple single-view app, following a 3-step process:

Microsoft Word 2007 on Windows

Event Dispatch. Interactor Tree Lightweight vs. Heavyweight Positional Dispatch Focus Dispatch. 2.4 Event Dispatch 1

Creating custom reports is for advanced users only. It is the sole responsibility of the user to debug any custom reports.

Road Map for Essential Studio 2011 Volume 4

Transcription:

Interface Builders and Interface Description Languages Interface Builders (IB) and Interface Description Languages (IDL) enable Drag and Drop construction of GUI's are part of man;y Visual Studio(2013) WPF / C# Designer interface 1

IB History 2 1979 to Steamer Hollan, Hutchins, Weitzman @ BBN, 1985 probably the first OO graphics system. 1981 Trillium D.A. Henderson @ Xerox PARC 1965 MenuLay B. Buxton @ U. Toronto 1984 "Resource Editor Apple, Macintosh place and edited widgets (UI objects), resources are properties of UI objects 1984 SOS Interface J. Hullot @ INRIA, Macintosh first modern interface builder 1988 Interface Builder J. Hullot, Next part of the Mac OS/X development tool set Apple developer IB tutorial

3 1990 X-Designer Motif X11 IB?? UIL Motif X11 User InterfaceLanguage part of Mrm 1991 WindowBuilder Cooper, Peters Eclipse, (initially for smalltalk) 2003 Eclipse / Java XWT and other XML (IDLs). 1997 GUI design tool Staněk Oracle's Netbeans IDE for Java (1999 acquired by Sun / Oracle) 1998 Glade GTK+ Interface Designer GtkBuilder XML for Glade (IDL) 2007 Qt Creator Digia in Qt cross platform GUI framework QML Qt Meta (or Modeling) Language (IDL) 2002 Designer Microsoft in Visual Studio IDE 2008 XAML XML based IDL

NextStep Objective C classes for widgets Inspectors class connections attributes Interface Builder Test Interface Unix (Mach kernel) Postscript display fonts updated and in Mac OSX Application building select windows, menu, control and text widgets from pallets draw wiring of events between outlets and inlets write behaviors for events and other necessary code make application 4

Pallets 5 window menu control text

connections 6 To connect widgets select source widget and control drag the mouse to the destination widget. The slider value is sent to the Scribble window. A value from the Scribble window is sent to the text field. Methods are defined to process values sent along connection paths.

IB components GUI development requires management of: code editor, compiler, debugger, versions geometry UI controls: place, size, drawing events event properties, handler, generating 7 IDEs (Integrated Development Environment) technology manages code for application development. Graphics editors (Paint, CAD,...) technology can provide drag and drop "designing" of UI Controls. Select from pallets of UI controls Copy, cut, paste UI controls Align, distribute UI controls Group, replicate UI controls Set attributes: title, name, colors, fonts, menmonics, layout rules

Code generation Code generation (4th generation programming APIs) technology can be used to generate "stubs" ("patterns", "templates") for methods that respond to events. 8 create method declaration and signature generate "first draft" method documentation facilitate editing method definition An interface builder is a tool, not a solution. Use of an interface builder is not design, it is construction. Productivity

uni or bi directional interface layout layout UI controls set attributes create event handlers Create IDL code that declares and constructs UI controls Create IDL code that sets values for attributes of UI controls Create code that associates an event with a UI control's event listener attribute and bind an event handler method to listener. Create code for the assoicated event handler 9 Developer builds application. Interface Builder generates IDL / XML for User Interface IDE compiles (IDL and code) and executes program Can the developer edit IB generated code and build again?

Beginner Beware! 10 Developer may have to separate their code from the IB's generated code to avoid code loss (IB blocks maybe regenerated every build, older IBs). Beginning users of IDEs with IBs must be wary of: IB code generation naming and style may not fit developers IDE provides interface to code code style might become less structured developers may loses "big picture" of source Does IB produce source code built with the use of composition and not support developer inheritance? Can only drag and drop what is provided. Subclassing is not as visual. Can developer's classes (custom controls) be added to pallet?

Visual coding 11 Visual programming languages (VPLs) also exist. Many for teaching introduction to programming. Alice Pauch CMU Greenfoot Kolling U of Kent Scratch Resnick MIT

Hello 585 WPF application 12 Getting started with WPF VS 2013 new project Visual C# Windows Desktop WPF Application

Open the toolbox 13 Open the toolbox of UI controls

Add a button 14 Drag a button onto the window. If your Toolbox is "auto-hide" it will disappear when the button is in the window.

Change the button's properties 15 Select the button in the MainWindow In the Property window select the following Categories Brush change Background color Layout play with size, alignment, margins Common change Content text, add a tooltip string Text change the font and size

add an Event handler 16 With the button selected in the MainWindow, set Property window to Event handlers For the Click event enter an event handler name. This will cause the view to switch to MainWindow.xaml

code for buttonpressed(...) 17 For the buttonpressed method add code to change the content of the button.

XAML code 18 <Window x:name="hello_585" x:class="hello585_wpf.mainwindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Hello 585" Height="350" Width="525" ShowInTaskbar="False"> <Grid> <Button Content="Click Me!" HorizontalAlignment="Center" Margin="0 VerticalAlignment="Center" Width="305" Height="191" FontFamily="Tahoma" FontSize="24" ToolTip="really I want to be clicked." Background="#FF2ACDBE" Click="buttonPressed"/> </Grid> </Window>

build, run 19 How would you change the application's window title to "Hello 585" Compile project Build Build Project or Rebuild Project Run application (will also build) Debug Start without debugging