Section 17.1 - Introduction To Graphical User Interfaces .

2y ago
7 Views
2 Downloads
1,011.10 KB
27 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Tripp Mcmullen
Transcription

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMChapter 17 - JavaFXSection 17.1 - Introduction to graphical user interfaces withJavaFXJavaFX is a set of packages and APIs for developing programs with graphical user interfaces, 3Dgraphics, etc. A graphical user interface, or GUI, enables the user to interface with a program usinggraphical components, such as windows, buttons, text boxes, etc., as opposed to text-based interfaceslike the command line. The following program calculates a yearly salary based on an hourly wage andutilizes JavaFX GUI components to display the program's MP167Spring2016/chapter/17/printPage 1 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMFigure 17.1.1: Displaying a yearly salary using a extField;public class SalaryGuiFx extends Application {@Overridepublic void start(Stage applicationStage) {int hourlyWage 0;int yearlySalary 0;Scene scene null;// Scene contains all contentPane pane null;// Positions components within sceneTextField outputField null;// Displays output salarypane new Pane();scene new Scene(pane);// Create an empty pane// Create a scene containing the pane// Calculate yearly salaryhourlyWage 20;yearlySalary hourlyWage * 40 * 50;// Create text field and display program output using the text fieldoutputField new TextField();outputField.setText("An hourly wage of " hourlyWage "/hr " "yields " yearlySalary "/yr.");outputField.setEditable(false);// Prevent user from editing ldren().add(outputField); // Add text field to paneapplicationStage.setScene(scene);// Set window's sceneapplicationStage.setTitle("Salary"); // Set window's titleapplicationStage.show();// Display windowreturn;}public static void main(String [] args) {launch(args); // Launch applicationreturn;}}Screenshot:A JavaFX GUI uses four classes/objects, namely Application, Stage, Scene, and Pane, to display graphicalcomponents. The following outlines one approach to create a JavaFX GUI, using the SalaryGuiFx class asthe example application.1. Extend and launch the application: An Application is a JavaFX class that provides 7Spring2016/chapter/17/printPage 2 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMbasic functionality for a JavaFX program and is available via the import statementjavafx.application.Application;. The SalaryGuiFx class is derived from theApplication class by appending extends Application after SalaryGuiFx in the classdefinition, as in class SalaryGuiFx extends Application. The SalaryGuiFx classinherits the functionality of the Application class, so that SalaryGuiFx can display a GUI.The concept of class inheritance is explained in more detail elsewhere.The main() method calls the launch() method using the statement launch(args);. Thelaunch() method creates a SalaryGuiFx object and calls the SalaryGuiFx object's start()method.2. Override the start() method: A JavaFX Application starts by executing the start() method,which must be overridden in the derived Application class. The start() method takes aStage parameter, has a return type of void, as inpublic void start(Stage applicationStage) {.}, and is preceded by theannotation @Override. A Stage is a JavaFX top-level container that contains all contentwithin a window and is available via the import statementimport javafx.stage.Stage;.3. Create a pane and scene: A Scene is a JavaFX component that contains all graphicalcomponents that are displayed together and is available via the import statementimport javafx.scene.Scene;. An application can have multiple scenes, but onlyone scene may be visible at a time. A Pane is a JavaFX component that controls thelayout, i.e., position and size, of graphical components and is available via the importstatement import javafx.scene.layout.Pane;. The statementpane new Pane(); creates an empty Pane object. The statementscene new Scene(pane); creates a new Scene containing the pane object.4. Create and add graphical components to a pane: A TextField is a JavaFX GUIcomponent that enables a programmer to display a line of text and is available via theimport statement import javafx.scene.control.TextField;. The statementoutputField new TextField(); creates a TextField object. A TextField'ssetText() method specifies the text that will be displayed. Ex:outputField.setText("An hourly . ");. By default, a TextField allows usersto modify the text for the purposes of input (discussed elsewhere). A program can useTextField's setEditable() method with an argument of false to prevent users from editingthe text, as in outputField.setEditable(false);. A TextField's width can be setusing the setPrefColumnCount() method. Ex:outputField.setPrefColumnCount(22) sets the width to 22 columns.Graphical components are added to a scene by adding the components to the scene'spane. A pane can contain numerous graphical components, which are called children. Thestatement pane.getChildren().add(outputField); adds a TextField objectnamed outputField to the pane's list of nCMP167Spring2016/chapter/17/printPage 3 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AM5. Set and display scene: Stage's setScene() method sets the scene that will be displayed,as in applicationStage.setScene(scene);. The setTitle() method specifies thetext that will be displayed as the application's title. Ex:applicationStage.setTitle("Salary"); displays "Salary" in the application'stitle bar. Stage's show() method makes the stage visible, which displays the application'swindow to the user.Ex: applicationStage.show(); displays the application'swindow with the title "Salary" and text "An hourly wage of 20/hr yields 40000/yr."P#ParticipationActivity17.1.1: Using JavaFX GUI components.QuestionYour answerWrite a statement that sets thetext of a TextField object1 nameField to "Mary".Given a Stage object namedappStage, write a statement that2 sets the stage's title to"Employees".Given a Pane object appPaneand a TextField object nameField,3 write a statement that addsnameField to the pane.appPane.getChildren().;Given a Stage object namedappStage, write a statement that4 makes the stage visible.Exploring further:JavaFX overview, tutorials, and references from Oracle's Java DocumentationJavaFX Application class from Oracle's Java ehmanCMP167Spring2016/chapter/17/printPage 4 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMJavaFX Stage class from Oracle's Java DocumentationJavaFX Scene class from Oracle's Java DocumentationJavaFX Pane class from Oracle's Java DocumentationJavaFX TextField class from Oracle's Java DocumentationSection 17.2 - Positioning GUI components using a GridPaneA GridPane is a JavaFX Pane component that positions graphical components in a two-dimensional grid.The following program demonstrates the use of a GridPane to position graphical components in a GUI thatdisplays an hourly wage and the associated yearly salary.Figure 17.2.1: Using a GridPane to arrange graphical ld;javafx.scene.layout.GridPane;public class SalaryLabelGuiFx extends Application {@Overridepublic void start(Stage applicationStage) {int hourlyWage 0;int yearlySalary 0;Scene scene null;// Scene contains all contentGridPane gridPane null;// Positions components within sceneLabel wageLabel null;// Label for hourly salaryLabel salaryLabel null;// Label for yearly salaryTextField salField null; // Displays yearly salaryTextField wageField null; // Displays hourly wageInsets gridPadding null;gridPane new GridPane();// Create an empty panescene new Scene(gridPane); // Create scene containing the grid pane// Calculate yearly salaryhourlyWage 20;yearlySalary hourlyWage * 40 * 50;// Set hourly and yearly salarywageLabel new Label("Hourly wage:");salaryLabel new Label("Yearly salary:");// Create wage and salary text fieldswageField new e 5 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMsalField new tring(yearlySalary));gridPane.add(wageLabel, 0, 0);gridPane.add(wageField, 1, 0);gridPane.add(salaryLabel, 0, 1);gridPane.add(salField, 1, 1);////////AddAddAddAddwage label to location (0, 0)wage text field to location (1, 0)salary label to location (0, 1)salary text field to location (1, 1)gridPadding new Insets(10, 10, 10, 10); // Padding values for top, right, bottom, and leftgridPane.setPadding(gridPadding);// Set padding around gridgridPane.setHgap(10);// Spacing between columnsgridPane.setVgap(10);// Spacing between rowsapplicationStage.setScene(scene);// Set window's sceneapplicationStage.setTitle("Salary"); // Set window's titleapplicationStage.show();// Display windowreturn;}public static void main(String [] args) {launch(args); // Launch applicationreturn;}}Screenshot:A Label is a JavaFX component that displays non-editable text and is available via the import statementimport javafx.scene.control.Label;. Labels are typically for describing, or labeling, other GUIcomponents. For example, the SalaryLabelGuiFx program uses two Labels, wageLabel and salaryLabel, todescribe the contents of the wage and salary text fields, respectively.The statement wageLabel new Label("Hourly wage:"); creates a Label object with the string"Hourly wage:" as the Label's displayed text. A program can also use Label's setText() method to set thelabel's text. Ex: wageLabel.setText("Hourly CMP167Spring2016/chapter/17/printPage 6 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in JavaPParticipationActivity1/30/16, 11:05 AM17.2.1: Using a JavaFX Label component.#Question1Write a statement to create a new Label object callednameLabel with the text "Name:".2Given the Label creation statementLabel passwordLabel new Label();, write astatement that sets passwordLabel's text to "Password:".Your answerA GridPane allows programmers to set the location of graphical components within a two-dimensional grid.Each location of the grid is indexed using one number for the column and another number for the row. Thetop-left location of the grid has column and row indices of (0, 0). The indices of other locations arespecified relative to the top-left location, with increasing column indices going right and increasing rowindices going 167Spring2016/chapter/17/printPage 7 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in JavaPParticipationActivity1/30/16, 11:05 AM17.2.2: Specifying layouts for GUI components.StartgridPane new GridPane();scene new Scene(gridPane);92Hourly wage:wageLabel object93Yearly salary:salLabel objectwageLabel new Label("Hourly wage:");salLabel new Label("Yearly salary:");9420wageField object9540000salField objectwageField new rlyWage));salField new ntHourly wage:---------gridPane.add(wageLabel, 0, 0);gridPane.add(wageField, 1, 0);gridPane.add(salLabel, 0, 1);gridPane.add(salField, 1, 1);20------------------Yearly salary:40000(1,0)(1,1)Page 8 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in JavaPParticipationActivity1/30/16, 11:05 AM17.2.3: Adding components to a GridPane.Given the following code that creates a GridPane and several graphical components:GridPane gridPane new GridPane();Scene scene new Scene(gridPane);Label cityLabel new Label("City:");TextField cityField new TextField();Label stateLabel new Label("State:");TextField stateField new TextField();#Question1Write a statement that adds cityLabel to the top-leftlocation of the gridPane.2Write a statement that adds cityField to the grid locationjust right of cityLabel.3Write a statement that adds stateLabel to the gridlocation just below cityLabel.4Write a statement that adds stateField to the grid locationcorresponding to column 1 and row 1.Your answerA GridPane's setPadding() method specifies the spacing, or padding, between the outer edges of the gridand the window. The statement gridPadding new Insets(10, 10, 10, 10); first creates anInsets object with the four arguments for the top, right, bottom, and left padding, respectively, in pixels.Then, the statement gridPane.setPadding(gridPadding); applies the padding to the gridPane.Insets is available via the import statement import javafx.geometry.Insets;.A GridPane's setHgap() and setVgap() methods specify the padding between columns (horizontal gap) androws (vertical gap) respectively. Ex: gridPane.setHgap(10); sets the padding between columns to nCMP167Spring2016/chapter/17/printPage 9 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in JavaPParticipationActivity1/30/16, 11:05 AM17.2.4: Applying padding to GridPane.Given a GridPane Object named gridPane:# QuestionYour answerWrite a statement that creates an Insetsobject named gridPadding such that thesubsequent statementgridPane.setPadding(gridPadding);1 applies a padding of 15 pixels above andbelow the grid and a padding of 5 pixels tothe left and right of the grid.Insets gridPadding new Insets(Write a statement that sets the grid's2 horizontal gap to 3 pixels.Write a statement that sets the grid's vertical3 gap to 8 pixels.Exploring further:JavaFX overview, tutorials, and references from Oracle's Java DocumentationJavaFX GridPane class from Oracle's Java DocumentationJavaFX Label class from Oracle's Java DocumentationJavaFX Insets class from Oracle's Java DocumentationSection 17.3 - Input and event handlersA Button is a JavaFX GUI component that represents a labeled button that a user can press to interactwith a program. A JavaFX GUI component that supports user input generates an action event to P167Spring2016/chapter/17/printPage 10 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMthe program when a user interacts with the component, such as when pressing a button. An eventhandler defines how the program should respond to action events. The following GUI uses a text field toenable the user to enter an hourly wage as an input for the calculation of a yearly salary, which is triggeredby a button press.Figure 17.3.1: Using a Button to trigger a yearly salary tType;public class SalaryCalcButtonGuiFxprivate Label wageLabel;//private Label salLabel;//private TextField salField; //private TextField wageField; //private Button calcButton;//extends Application {Label for hourly salaryLabel for yearly salaryDisplays hourly salaryDisplays yearly salaryTriggers salary calculation@Overridepublic void start(Stage applicationStage) {Scene scene null;// Scene contains all contentGridPane gridPane null;// Positions components within scenegridPane new GridPane();// Create an empty panescene new Scene(gridPane); // Create scene containing the grid pane// Set hourly and yearly salarywageLabel new Label("Hourly wage:");salLabel new Label("Yearly salary:");wageField new ield new ld.setEditable(false);// Create a "Calculate" buttoncalcButton new Button("Calculate");gridPane.setPadding(new Insets(10, 10, 10, 10)); // Padding around gridgridPane.setHgap(10);// Spacing between columnsgridPane.setVgap(10);// Spacing between rowsgridPane.add(wageLabel, 0, 0);gridPane.add(wageField, 1, 0);gridPane.add(salLabel, 0, 1);gridPane.add(salField, 1, 1);gridPane.add(calcButton, 0, intwage label to location (0, 0)wage text field to location (1, 0)salary label to location (0, 1)salary text field to location (1, 1)calculate button to location (0, 2)Page 11 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMgridPane.add(calcButton, 0, 2); // Add calculate button to location (0, 2)// Set an event handler to handle button pressescalcButton.setOnAction(new EventHandler ActionEvent () {/* Method is automatically called when an eventoccurs (e.g, button is pressed) */@Overridepublic void handle(ActionEvent event) {String userInput "";int hourlyWage 0;int yearlySalary 0;// Get user's wage input and calculate yearly salaryuserInput wageField.getText();hourlyWage Integer.parseInt(userInput);yearlySalary hourlyWage * 40 * 50;// Display calculated / Set window's sceneapplicationStage.setTitle("Salary"); // Set window's titleapplicationStage.show();// Display windowreturn;}public static void main(String [] args) {launch(args); // Launch applicationreturn;}}Screenshot:The GUI enables user input by making the text displayed by the TextField wageField editable. Ex:wageField.setEditable(true); allows the user to enter an hourly wage value. TextField's getText()method returns the TextField's text, allowing the program to get the user's input.The user triggers the yearly salary calculation by pressing the button labeled "Calculate". The followingoutlines the approach used in the SalaryCalcButtonGuiFx class to create a JavaFX GUI that handles buttonpresses.1. Create and add a button: The nCMP167Spring2016/chapter/17/printPage 12 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMcalcButton new Button("Calculate"); creates a Button object with the string"Calculate" as the Button's label. The program then adds the Button to the GridPane, asin gridPane.add(calcButton, 0, 2);.The Button class is available via the importstatement import javafx.scene.control.Button;.2. Set and define an event handler: An ActionEvent is an object that notifies the program ofthe occurrence of a component-related event, such as a user pressing a button, and isavailable via the import statement import javafx.event.ActionEvent;. AnEventHandler is an object that defines how a program should respond to specific events,such as an ActionEvent, and is available via the import statementimport javafx.event.EventHandler;. Ex: The EventHandler defined forcalcButton in SalaryCalcButtonGuiFx calculates and displays a yearly salary whenever theuser presses the button.A program specifies a Button's EventHandler by calling Button's setOnAction() methodwith an EventHandler object as an argument. SalaryCalcButtonGuiFx defines anEventHandler using an advanced concept known as an anonymous class, whichcombines both class declaration and instantiation for conciseness. The following codecan be used as a template to create and set a Button's EventHandler.Figure 17.3.2: Template for creating and setting a JavaFX Button's EventHandler.// Set an event handler to handle button pressesbuttonObject.setOnAction(new EventHandler ActionEvent () {/* Method is automatically called when an eventoccurs (e.g., button is pressed) */@Overridepublic void handle(ActionEvent event) {// Write event handling instructions herereturn;}});The highlighted lines can be modified to create a custom EventHandler for any Button as follows:1. Specifying an EventHandler for a different Button is done by replacing buttonObject withthe name of another Button object. Ex: otherButton.setOnAction(.);.2. The instructions for responding to ActionEvents are written inside EventHandler's handle()method. The EventHandler can access the EventHandler's enclosing class' fields andmethods. Ex: calcButton's EventHandler in the SalaryCalcButtonGuiFx program canaccess the class' field wageField to get the hourly wage. However, an EventHandlercannot access local variables or objects declared in the enclosing method, such as localvariables in the start() MP167Spring2016/chapter/17/printPage 13 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in JavaPParticipationActivity1/30/16, 11:05 AM17.3.1: User input with TextField and Button.Complete the code to achieve the stated goal.# QuestionYour answerCreate aButton called1 goButton withthe label "Go!".Button goButton Make theTextFieldvoltageField2 editable by theuser.voltageField.Set anEventHandlerfor a ButtoncalledstartButton.;;(new EventHandler ActionEvent () {/* Method is automatically called when an eventoccurs (e.g, button is pressed) */@Overridepublic void handle(ActionEvent event) {// .3return;}});Get user inputfrom aneditableTextFielddateField and4 assign the textto a StringdateStr on(new EventHandler ActionEvent () {@Overridepublic void handle(ActionEvent event) {String dateStr "";dateStr hmanCMP167Spring2016/chapter/17/printPage 14 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMPrograms that get user input commonly check the input's value to ensure the input's validity. If the input isinvalid, meaning the input is improperly formatted or falls outside the expected range, the program shouldreport an alert to the user. The SalaryCalcButtonGuiFx program allows the user to enter any value, positiveor negative, in the TextField wageField. Because a negative wage is not valid, the following programimproves upon the SalaryCalcButtonGuiFx program by displaying an alert message if the user enters anegative wage.Figure 17.3.3: Displaying an Alert for invalid wage ;public class SalaryCalcButtonErrorAlertGuiFx extends Application {private Label wageLabel;// Label for hourly salaryprivate Label salLabel;// Label for yearly salaryprivate TextField salField; // Displays hourly salaryprivate TextField wageField; // Displays yearly salaryprivate Button calcButton;// Triggers salary calculation@Overridepublic void start(Stage applicationStage) {Scene scene null;// Scene contains all contentGridPane gridPane null;// Positions components within scenegridPane new GridPane();// Create an empty panescene new Scene(gridPane); // Create scene containing the grid pane// Set hourly and yearly salarywageLabel new Label("Hourly wage:");salLabel new Label("Yearly salary:");wageField new ield new ld.setEditable(false);// Create a "Calculate" buttoncalcButton new Button("Calculate");gridPane.setPadding(new Insets(10, 10, 10, 10)); // Padding around gridgridPane.setHgap(10);// Spacing between columnsgridPane.setVgap(10);// Spacing between rowsgridPane.add(wageLabel, 0, 0);gridPane.add(wageField, 1, 0);// Add wage label to location (0, 0)// Add wage text field to location (1, Spring2016/chapter/17/printPage 15 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMgridPane.add(salLabel, 0, 1);// Add salary label to location (0, 1)gridPane.add(salField, 1, 1);// Add salary text field to location (1, 1)gridPane.add(calcButton, 0, 2); // Add calculate button to location (0, 2)// Set an event handler to handle button pressescalcButton.setOnAction(new EventHandler ActionEvent () {/* Method is automatically called when an eventoccurs (e.g, button is pressed) */@Overridepublic void handle(ActionEvent event) {String userInput "";int hourlyWage 0;int yearlySalary 0;// Get user's wage input and calculate yearly salaryuserInput wageField.getText();hourlyWage Integer.parseInt(userInput);yearlySalary hourlyWage * 40 * 50;if (hourlyWage 0) {// Display calculated ry));}else {// Display an alert dialogAlert alert new Alert(AlertType.ERROR,"Enter a positive hourly wage onStage.setScene(scene);// Set window's sceneapplicationStage.setTitle("Salary"); // Set window's titleapplicationStage.show();// Display windowreturn;}public static void main(String [] args) {launch(args); // Launch /printPage 16 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMAn Alert is a separate JavaFX window, also known as a dialog or pop-up window, that displays a messageto the user. Ex:Alert alert new Alert(AlertType.ERROR, "Enter a positive hourly wage value.");creates an Alert object that displays an error message with the text "Enter a positive hourly wage value.".The first argument specifies the Alert's type. Ex: AlertType.ERROR specifies that the Alert windowshould indicate an error.Alert's showAndWait() method makes the Alert visible to the user and waits for the user's response. Theprogram resumes execution after the user presses the Alert's "OK" button, which closes the Alert window.An Alert object can display a variety of Alert types, of which some common types are summarized below:Table 17.3.1: Summary of common Alert types.TypeDescriptionAlertType.NONEAlertType.NONE fromConfigures the Alert to display a basicOracle's Javamessage.DocumentationAlertType.ERRORConfigures the Alert to display anerror or failure with an option toconfirm.Configures the Alert to seekconfirmation from the user. TheAlertType.CONFIRMATION displayed message is typically aquestion with the option to confirm orcancel.DocumentationAlertType.ERROR fromOracle's JavaDocumentationAlertType.CONFIRMATIONfrom Oracle's JavaDocumentationAlertType.INFORMATIONConfigures the Alert to display aninformative message with the optionto confirm.AlertType.INFORMATIONfrom Oracle's JavaDocumentationAlertType.WARNINGConfigures the Alert to display amessage that looks like a warningwith an option to confirm.AlertType.WARNING fromOracle's ok/LehmanCMP167Spring2016/chapter/17/printPage 17 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in JavaPParticipationActivity1/30/16, 11:05 AM17.3.2: Common Alert types.Match the Alert object with the corresponding Alert window.(c)(b)(d)(e)(a)Drag and drop above item Alert alert new Alert(AlertType.CONFIRMATION,"Do you want to continue?");Alert alert new Alert(AlertType.INFORMATION,"This is a JavaFX GUI.");Alert alert new Alert(AlertType.WARNING,"Use at your own risk!");Alert alert new Alert(AlertType.ERROR,"Something went wrong!");Alert alert new Alert(AlertType.NONE,"Hello.");ResetExploring CMP167Spring2016/chapter/17/printPage 18 of 27

Lehman College City University of New York CMP 167 Spring 2016: Programming in Java1/30/16, 11:05 AMJavaFX overview, tutorials, and references from Oracle's Java DocumentationJavaFX Button class from Oracle's Java DocumentationJavaFX EventHandler class from Oracle's Java DocumentationJavaFX ActionEvent class from Oracle's Java DocumentationJavaFX Alert class from Oracle's Java DocumentationSection 17.4 - Basic graphics with JavaFXJavaFX provides a set of objects for graphical applications. A graphical application is a program thatdisplays drawings and other graphical objects. Graphical applications display their contents inside aCanvas object that is added to the JavaFX application.Creating a class for a JavaFX application involves advanced topics, including defining a class andinheritance, which are discussed elsewhere. For now, the below class can be used as a template to createa JavaFX application to draw 2D nCMP167Spring2016/chapter

A JavaFX GUI uses four classes/objects, namely Application, Stage, Scene, and Pane, to display graphical components. The following outlines one approach to create a JavaFX GUI, using the SalaryGuiFx class as the example application. 1. Extend and launch the application: An Applica

Related Documents:

work/products (Beading, Candles, Carving, Food Products, Soap, Weaving, etc.) ⃝I understand that if my work contains Indigenous visual representation that it is a reflection of the Indigenous culture of my native region. ⃝To the best of my knowledge, my work/products fall within Craft Council standards and expectations with respect to

uate the quality of grain damaged by rodents with respect to nutritional value, infection by moulds and aflatoxin contamination. 2 Materials and methods 2.1 Study area The study was conducted in Mwarakaya ward (03 49.17́'S; 039 41.498′E) located in Kilifi-south sub-county, in the low landtropical(LLT)zoneofKenya.Thisstudy site wasselect-

To the Reader: Why Use This Book? vii Section 1 About the Systems Archetypes 1 Section 2 Fixes That Fail 7 Section 3 Shifting the Burden 25 Section 4 Limits to Success 43 Section 5 Drifting Goals 61 Section 6 Growth and Underinvestment 73 Section 7 Success to the Successful 87 Section 8 Escalation 99 Section 9 Tragedy of the Commons 111 Section 10 Using Archetypal Structures 127

table of contents cover 1 table of contents 2 section 1 – contact information 3 section 2 – facilities 4 section 2.1 – front of house / seating chart 4 section 2.2 – backstage facilities 5 section 3 – stage information 6 section 3.1 – stage 6 section 3.2 – fly system 8 section 3.3 – lineset schedule 8 section 4 – lighting 9 section 4.1 – lighting plot 10

THE SEDDAS USER GUIDE . Index. Section 1: Overview Section 2: Search for User Section 3: Create User ID Section 4: Reassign Institution Section 5: Advanced Search Section 6: Update User Section 7: Disable User ID. Section 8: Reactivate User ID Section 9: Reset Password and Unlock Account Section 10: Entitlements-Overview

section 711 -- steel structures section 712 -- timber structures section 713 -- temporary bridges and approaches section 714 -- concrete culverts and retaining walls section 715 -- pipe culverts, and storm and sanitary sewers section 716 -- jacked pipe section 717 -- structural plate pipe, pipe -arches, and arches section 718 -- underdrains

Section DA: Dampers and Louvers Section SA: Ductwork Section HA: Housings Section RA: Refrigeration Equipment Section CA: Conditioning Equipment Section FA: Moisture Separators Section FB: Medium Efficiency Filters Section FC: HEPA Filters Section FD: Type II Adsorber Cells Section FE: Type III Adsorbers 11

PROPERTY AND CASUALTY INSURANCE GUARANTY ASSOCIATION MODEL ACT . Table of Contents. Section 1. Title . Section 2. Purpose . Section 3. Scope . Section 4. Construction . Section 5. Definitions . Section 6. Creation of the Association . Section 7. Board of Directors . Section 8. Powers and Duties of the Association . Section 9. Plan of Operation .