230 likes | 321 Views
Implementing Interface Gadgets SiteSearch User Group Workshop 3/23/1999. Implementing Interface Gadgets-Workshop Agenda. 1) The purpose of gadgets and how they are utilized in the interface 2) Configuring a gadget for use with the interface and styles 3) Gadget design guidelines
E N D
Implementing InterfaceGadgetsSiteSearch User Group Workshop3/23/1999 OCLC SiteSearch User Group Meeting
Implementing Interface Gadgets-Workshop Agenda 1) The purpose of gadgets and how they are utilized in the interface 2) Configuring a gadget for use with the interface and styles 3) Gadget design guidelines 4) Review of existing gadgets and how they were designed (code level analysis) 5) Creating a new gadget (code-based workshop) OCLC SiteSearch User Group Meeting
The Purpose of Gadgets • Interface building Java classes invoked from the html. • Context sensitive and profile specific. • Used in conjunction with other page preparation classes to build the web based interface that end users see. HTML Java Java OCLC SiteSearch User Group Meeting
What are Gadgets?Demonstrated in the Interface Gadgets used on the Database Selection Screen QuickSearchTopics TopicList DatabaseList OCLC SiteSearch User Group Meeting
What are Gadgets?Demonstrated in the Interface Gadgets used on the Results Screen JumpBar ResultsRecord BookMarkBrief OCLC SiteSearch User Group Meeting
What are Gadgets?Dynamic Nature • Context Sensitive Solution • Based on parameters or current system values (e.g. authos, results) • Customizable external to the html • Allows the HTML be more flexible and act more as an interface framework OCLC SiteSearch User Group Meeting
Invoking Gadgets in the Interface • Entities in the html pages • Invokes and populates • record formatting • style and display information OCLC SiteSearch User Group Meeting
Gadget Entities • &StyleTable.[section].gadget; • calls gadgets that use current system values to build the html for the interface. • see each style’s file in JaSSIServer.ini [InterfaceStyles] section for gadget class • &FmtDisplay.[section].gadgets; • calls gadgets that invoke formatting classes associated with fmtclass for the current database. • see each style’s file in JaSSIServer.ini [InterfaceDisplayGadgets] section for gadget class. OCLC SiteSearch User Group Meeting
Gadget Configuration • Defined in: • Interface style definition files (e.g. ini/interface/defaultStyle.ini) • Interface display definition files(e.g. ini/interface/DisplayGadgets.ini) • ini/JaSSIServer.ini [InterfaceStyles] [InterfaceDisplayGadgets] OCLC SiteSearch User Group Meeting
Configuration Syntax • Style and Format Configuration Files [section name] gadget = fully qualified class (e.g. ORG.oclc.org.SearchTabbar) parameters = values needed by gadget OCLC SiteSearch User Group Meeting
ExerciseModifying an existing gadgets parameters • Using the default style • modify the topics available in the QuickSearch box on the dblist.html page • change the index list displayed when the Browse tab is selected on the Search screen OCLC SiteSearch User Group Meeting
Designing a Gadget Guidelines • Where will it be used (context)? • What do you want to do with it (requirements)? • Is there an existing gadget that models the functionality? • What system areas do you need access to (classify)? • What parameters will the gadget need? • Are you doing too much for one gadget (keep it simple)? • What areas can be abstracted to style information to allow the gadget to be more generic? OCLC SiteSearch User Group Meeting
Designing a Gadget Advice from Others 1. Keep it quick and dirty, initially. Mock up as flat html, then write initial gadget code to concatenate strings in the gadget class that just build the block of html. 2. Identify repetitive blocks/activities and try to use looping for tasks. 3. Make it context sensitive using styles (fonts, colors, messages, graphics, etc.). What advice do you have for others in working with gadgets? OCLC SiteSearch User Group Meeting
Foundational classes for gadgets ORG.oclc.gadgets.GadgetAndStyleLoader • InitClass that reads all the JaSSI configuration files containing definitions for interface styles and gadgets used to build HTML strings for display in HTML pages • see JaSSIServer.ini[InitClasses] OCLC SiteSearch User Group Meeting
Foundational classes for gadgets ORG.oclc.jassi.GadgetBuilder • Interface class defining methods that must be implemented by all classes designed to build gadgets. buildit(RequestManager rMngr, String name) Executes the GadgetBuilder interface and passes input parameters for the RequestManager object and the section name String that defines the gadget. Like main() in C programming-point of execution. toString()Returns the String representation of the gadget. OCLC SiteSearch User Group Meeting
ExerciseInstalling a existing gadget • Add an index display on the search.html to show radio buttons using the existing IndexRadio class. Hint: • Check the html and style to determine where changes need to be made. • You will need to define a new entry in the style using an existing gadget and reference it on the html page. OCLC SiteSearch User Group Meeting
Classifying Gadgets • Classified into four functional areas: • Formatting Record Data • works with raw data from VERBS (e.g. bookmarks) • Dynamic Search (from Database config) • building database specific search pages (e.g. indexes) • Navigational Aids • help you traverse ‘objects’ (e.g. resultsets, dblist) • Informational Aids (dynamic status) • feedback messages (e.g. Database name, ILL Confirm) OCLC SiteSearch User Group Meeting
Classifying Gadgets • Gadget will probably need access to and work with the following: • ORG.oclc.jassi.UserStateObject • ORG.oclc.jassi.RequestManager • ORG.oclc.jassi.StyleTable • ORG.oclc.jassi.DataPairs • see Dump.java as an example OCLC SiteSearch User Group Meeting
Classifying Gadgets • Some gadgets require access to certain pieces of information depending on the purpose/job of the gadget. • For example, you would need to work with different access points to format records from a database vs. confirming ILL Access information. OCLC SiteSearch User Group Meeting
Classifying Gadgets • Some other classes/packages you might work with would include: • ORG.oclc.webz.ZDb • ORG.oclc.webz.ZUserData • Classes in ORG.oclc.log • Classes in ORG.oclc.obi.util • Classes in ORG.oclc.ber OCLC SiteSearch User Group Meeting
ExerciseModifying an existing gadget and installing a new gadget into the interface • Change the search page tab bar to display three options • Basic (instead of three indexes) • Advanced • Browse (when available) OCLC SiteSearch User Group Meeting
Advanced Gadget Topics • Installing new gadgets that require new init class wrappers. • Case examples • What are you interested in doing in the interface? • Will it work as a gadget? • How? OCLC SiteSearch User Group Meeting
Implementing Interface Gadgets Questions Review OCLC SiteSearch User Group Meeting