throbber
a2, United States Patent
`US 6,342,907 B1
`(10) Patent No.:
`Jan. 29, 2002
`(45) Date of Patent:
`Petty et al.
`
`US006342907B1
`
`(54)
`
`(75)
`
`SPECIFICATION LANGUAGE FOR
`DEFINING USER INTERFACE PANELS
`THAT ARE PLATFORM-INDEPENDENT
`
`Inventors: Douglas Robert Petty, Rochester, MN
`(US); Scott Anthony Sylvester,
`Endicott, NY (US)
`
`(73)
`
`Assignee:
`
`International Business Machines
`Corporation, Armonk, NY (US)
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`US.C. 154(b) by 0 days.
`
`(21)
`
`Appl. No.: 09/174,709
`
`(22)
`
`Filed:
`
`Oct. 19, 1998
`
`61)
`
`(52)
`
`(58)
`
`(56)
`
`Unt, C07 oieeeeccceecscesseseeseeseeseereeseeseeseesees G06F 3/00
`
`US. Che cece 345/762; 345/708; 345/760;
`345/798
`
`Field of Search ............0..cc cece 345/326, 333,
`345/334, 335, 336, 338, 339, 340, 342,
`700, 705, 708, 744, 746-747, 760, 762,
`781, 788, 798-801, 764-765; 709/203,
`300, 302, 303, 310, 315, 328
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`Eo
`Eo
`Eo
`Eo
`Eo
`Eo
`
`5,179,657 A
`5,347,627 A
`5,347,629 A
`5,923,885 A
`6,005,568 A
`6,054,983 A
`
`1/1993
`9/1994
`9/1994
`7/1999
`12/1999
`4/2000
`
`
`
`OTHER PUBLICATIONS
`
`Nigam et al., “Platform Independent Tool for Designing
`Quality Graphical UserInterfaces,” BIWIT °97, Proceedings
`of the Third Basque International Workshop on Information
`Technology, pp. 54-61.*
`Khare et al., “XML: A Door to Automated Web Applica-
`tions”, IEEE Internet Computing, vol. 1, issue 4, pp. 78-87,
`Jul—Aug. 1997.*
`Baker, “Using Server Side XML to Create Individualized
`Web Pages”, Professional Communication Conference,
`1998, vol. 2, pp. 317-319.*
`Rein, “XML—Enabled Tools [New Products]”, IEEE Internet
`Computing, vol. 2, issue 3, pp. 16-19, May-Jun. 1998.*
`* cited by examiner
`Primary Examiner—Crescelle N. dela Torre
`(74) Attorney, Agent, or Firm—Martin & Associates, LLC;
`Derek P. Martin
`
`(57)
`
`ABSTRACT
`
`A specification language allows a user to define platform-
`independent user interface panels without detailed knowl-
`edge of complex computer programming languages. The
`specification language is referred to herein as a Panel
`Definition Markup Language (PDML), which defines tags
`that are used in similar fashion to those defined in Hypertext
`Markup Language (HTML), that allow a user to specify the
`exact
`location of components displayed in the panel. A
`graphical editor allows the creation and modification of
`platform-independent user interface panels without pro-
`gramming directly in the specification language. A conver-
`sion tool may be used to convert platform-specific user
`interface panels to corresponding platform-independent user
`interface panels. A help generator tool also facilitates the
`generation of context-sensitive help for a user interface
`panel.
`
`33 Claims, 22 Drawing Sheets
`
`Microfiche Appendix Included
`(1 Microfiche, 43 Pages)
`
`Dykstal et al. oo... 345/762
`Hoffmannet al.
`........... 345/762
`Barrett et al.
`........
`... 345/762
`Johnsonet al.
`.........
`cee TA7/11
`Simonoff et al.
`............ 345/744
`Simonoff et al.
`........... 345/738
`
`
`
`110
`
`Processor
`
`
`
`
`100
`
`120
`
`
`Main Memory
`
`
`
`
`
`
`
`
`
`
`
`
`PDMLPanel N
`
`Resource Bundle
`
`+ Panel Conversion Tool
`|’ Help Generator Tool
`
`
`
`
`
`DASD
`
`150
`140
`130
`
`Network I/F
`Mass StorageiF
`Display UF
`
`
`
`
`
`170
`
`
`J
`
`
`
` Display
`
`
`175
`
`
`
`
`175
`
`1
`
`SAMSUNG 1013
`
`SAMSUNG 1013
`
`1
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Processor
`
`US 6,342,907 B1
`
`100
`
`Sheet 1 of 22
`
`Help Generator Tool
`
`2
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 2 of 22
`
`US 6,342,907 B1
`
`126
`
`/ Java Class Library 200|210
`
`590
`
`330
`
`DAO
`
`EQ
`
`260
`
`270
`
`280
`
`PanelManager
`
`PropertySheetManager
`
`WizardManager
`
`SplitPaneManager
`
`DeckPaneManager
`
`TabbedPaneManager
`
`LookAndFeelManager
`
`Java Foundation Classes
`
`FIG. 2
`
`3
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 3 of 22
`
`US 6,342,907 B1
`
`O0€801)“SL
`
`joued
`
`pepoddnsj,uaeBurmoyjo}ay
`
`
`pajqeusoqJaAeupjnoyspue
`
`@poNnpepuedxg[-]
`
`
`aponpasdeyjog[]—JEP
`
`Buss}Aouspusdeq
`
`@poNpepuedxy[=]
`9-€aiqesiqC)
`
`9-¢ajqeuyC)
`aigesiqyeiqeuz
`2evAowey[_|leagesiqC)
`weap
`iyJon
`€OldseetiiiileqsselBoldJ}
`
`Ja|pueyWojysnoymuOyN,‘1
`
`
`
`S]U9UOdLUODpayoddnsjose]-sebeuey
`
`BalyKelCLjaqe|AreulplO‘|
`
`
`xOa}S"]€jo¢uopng‘9gC)
`
`4S]PL€JO|uopNg‘pyC)
`
`Sud}€JoZuoyng“¢C)
`
`‘[2qe]SIY}Ul}XO}4}Jo[|eBas
`
`},UeBdNOAJ}“Jeqe;SUIRINYY°Z
`xogOqwod“6 l-[ [-PIOYXSL“LLia]sd:(a|qeypeun)
`
`
`
`
`
`‘(a|qeyipe)xogOqWOD‘OL
`
`BuoimBulyjyewossi3194}
`uoyngeuojepuRls“2C)
`
`xoqyoey9“g[|
`
`xoqdnoid“¢
`
`
`
`JSPIIS“OL
`
`4
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 4 of 22
`
`US 6,342,907 B1
`
`Windows Resource. Script
`
`IDD_SUPPORTED_COMPONENTSDIALOG DISCARDABLE 0, 0, 400, 300
`STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
`CAPTION "Panel Manager - Test of Supported Components"
`FONT 8, "MS SansSerif"
`BEGIN
`DEFPUSHBUTTON "OK" IDOK,109,279,50,14
`PUSHBUTTON~"Cancel" IDCANCEL,175,279,50,14
`PUSHBUTTON~"Help", IDHELP,241,279,50,14
`LTEXT
`"1. Ordinary label", IDC_LABEL,7,7,124,8
`LTEXT
`"2. Multiline label.
`If you can't see all of the text in this label, there is
`something wrong.”, IDC_MULTILINE,7,25,124,17
`GROUPBOX "3. Group box. ",IDC_GROUPBOX,7,51,124,73
`CONTROL
`"4. Button 1 of 3",IDC_RADIO1,"Button",
`BS_AUTORADIOBUTTON | WS_TABSTOP, 17,66,58,10
`CONTROL
`"5. Button 2 of 3",IDC_RADIO2,"Button",
`BS_AUTORADIOBUTTON | WS_TABSTOP, 17,85,58,10
`CONTROL_"6. Button 3 of 3",IDC_RADIO3,"Button",
`BSAUTORADIOBUTTON | WS_TABSTOP,17,104,58, 10
`CONTROL
`"7. Standalone button",IDC_STANDALONE, "Button",
`BS_AUTORADIOBUTTON | WS_GROUP |WS_TABSTOP,7,136,124,10
`CONTROL
`"8. Check box", IDC_CHECKBOX,"Button",BS_-AUTOCHECKBOxX|
`WS_TABSTOP,7,158,124,10
`LTEXT
`"9. Combo box (uneditable):",IDC_COMBOLABEL1,7,179,124,8
`COMBOBOX IDC_COMBONOEDIT,7,191,124,25,CBS_DROPDOWNLIST|
`CBS_SORT | WS_VSCROLL | WS_TABSTOP
`LTEXT
`"10. Combobox (editable):",|IDC_COMBOLABEL2,7,213,124,8
`COMBOBOX IDC_COMBOEDIT,7,224,124,16,CBS_DROPDOWN| CBS_SORT|
`WS_VSCROLL | WS_TABSTOP
`LTEXT
`"41. Text field:",IDC_TEXTFIELD1,7,242,124,8
`EDITTEXT
`IDC_TEXTFIELD,7,254,124,14,ESAUTOHSCROLL
`LTEXT
`"12. Text area:", IDC_TEXTAREALABEL, 145,7,107,8
`EDITTEXT
`IDC_TEXTAREA,145,19,114,26,ESMULTILINE |
`ESAUTOHSCROLL
`PUSHBUTTON
`"13. Button with custom handler",
`IDC_CUSTOMBUTTON, 145,54,114,14
`LTEXT
`"14. List:",IDC_LISTLABEL, 145,77,107,8
`LISTBOX
`IDC_LIST,145,88,114,30,LBS_SORT | LBS_NOINTEGRALHEIGHT
`| WS_VSCROLL | WS_TABSTOP
`
`FIG. 4A
`
`Prior Art
`
`5
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 5 of 22
`
`US 6,342,907 B1
`
`Windows ResourceScript (continued)
`
`"45. Table:",IDC_TABLELABEL, 145,129, 107,8
`LTEXT
` "List2",IDC_TABLE,"SysListView32",LVS_REPORT | WS_BORDER
`CONTROL
`| WS_TABSTOP, 145, 142,114,51
`CONTROL
`"Slider1", IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH|
`WS_TABSTOP, 145,219,114,19
`LTEXT
`"16. Slider:", IDC_STATIC, 145,206, 107,8
`LTEXT
`"17. Progress bar:",IDC_PROGRESSLABEL, 145,241,107,8
`CONTROL
`"Progress1",IDC_PROGRESS1,"msctls_progress32",WS_BORDER,
`145,254,114,11
`LTEXT
`"18. Tree:" IDC_TREELABEL,270,7,101,8
`CONTROL
`"Tree1",IDC_TREE,"SysTreeView32",TVS_HASBUTTONS |
`TVS_HASLINES| TVS_LINESATROOT | WS_BORDER | WS_TABSTOP,
`270,19,113,51
`GROUPBOX "Dependencytesting: ",IDC_DEPENDENCYBOX,270,79,113,189
`CONTROL
`"Disable all", IDC_DISABLEALL,"Button",
`BS_AUTORADIOBUTTON | WS_TABSTOP,277,91,51,10
`CONTROL
`"Disable 3-6",IDC_DISABLE36,"Button”,
`BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,287,131,48,10
`CONTROL
`"Enable 3-6",IDC_ENABLE36,"Button”,BS_-AUTORADIOBUTTON
`| WS_GROUP | WS_TABSTOP,287,144,48,10
`GROUPBOX
`“Enable/Disable",IDC_DISABLEGROUP,276,120,73,38
`PUSHBUTTON "Selectlist item to enable”, IDC_LISTENABLE,276, 168,97, 14,
`WS_DISABLED
`PUSHBUTTON
`"Select table item to enable", IDC_TABLEENABLE,276,187,
`97, 14, WS_DISABLED
`COMBOBOX
`IDC_COMBODISABLE,276,211,97,15,CBS_DROPDOWNLIST|
`CBS_SORT | WS_VSCROLL| WS_TABSTOP
`CONTROL
`“Remove all",|DC_REMOVEALL1,"Button",BS_AUTOCHECKBOX
`| WS_TABSTOP,277,105,51,10
`LTEXT
`"The following aren't supported and should never be enabled:",
`IDC_UNSUPPORTEDLABEL,276,227,97,16
`LTEXT
`"Unsupported:",IDC_UNSUPPORTEDTEXT,279,250,42,8,
`WS_DISABLED
`EDITTEXT
`IDC_UNSUPPORTEDFIELD,328,247,47,14,ES_AUTOHSCROLL |
`WS_DISABLED
`
`END
`
`FIG. 4BiOPrior Art
`
`6
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 6 of 22
`
`US 6,342,907 B1
`
`Output
`
`Print device:
`
`Output queue:
`
`Library:
`
`Use printer assigned to workstation iw
`
`Use queueassigned to workstation
`
`Library list
`
`Message severity level:
`
`Message queue:
`
`Use user name
`
`Library:
`
`Library list
`
`Message delivery:
`
`Use printer assigned to workstation
`
`
`
`FIG. 5 PriorArt
`
`700
`
`ad
`
`720
`
`730
`
`710
`
`
`
`
`
`
`Define PDML in XML
`
`Generate Panels as PDML Files
`
`Process PDML Files to Display Panels
`
`7
`
`

`

`Jan. 29, 2002
`
`Sheet 7 of 22
`
`US 6,342,907 B1
`
`U.S. Patent wd9Old
`
`
`
`
`WA}S|}oUpIONBNZUOHesUa}eqsip‘UspUaMIEASHue|YDSSLe/|A“abuejyosouemogebsny
`
`
`}S1JoupIOaBNZUO}e}sUa}eEq‘WoyUlIayoMGg JEp‘UBPUSMUAJExNNIG
`
`
`UBUeUJEZ}NUA|g|:;ebuUe|YOSeLeMUa}YOUYORN USPUBMIDA uabayouyoeuegJezjnueg|:-BunpywueqnuajyouyoeN
`9}S!I|SHSYJONIg-4SUzONIG
`
`a}si|syayjouqig‘yeujonqig
`
`
`
`
`LOL.‘jayBeMUs]YOUYOeN
`
`aqeBsny
`
`8
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 8 of 22
`
`US 6,342,907 B1
`
`<|=mSSSasssssressssSSSSeer ee = === === —>
`<!-- XML DocumentType Definition for the Panel Definition Markup Language -->
`<|.-SpSsencscstssss SaressSeS
`se======= >
`
`<!-- Declare the child elements that contain only data -->
`
`#IMPLIED
`#IMPLIED>
`
`#IMPLIED
`#IMPLIED>
`
`#IMPLIED
`#IMPLIED>
`
`#IMPLIED
`#IMPLIED>
`
`<!ELEMENT BASESCREENSIZE
`(#PCDATA)>
`<!ELEMENT LOCATION
`(#PCDATA)>
`<!ELEMENT SIZE
`(#PCDATA)>
`<IELEMENT DATACLASS(#PCDATA)>
`<IELEMENT ATTRIBUTE
`(#PCDATA)>
`<!ELEMENT ICON
`(#PCDATA)>
`(#PCDATA)>
`<IELEMENT ACTIVATE
`(#PCDATA)>
`</ELEMENT FORMAT
`<IELEMENT SHORT
`EMPTY>
`<!ATTLIST SHORT
`minvalue
`CDATA
`maxvalue
`CDATA
`<!ELEMENT INTEGER EMPTY>
`<IATTLIST
`INTEGER
`minvalue
`CDATA
`maxvalue
`CDATA
`<!ELEMENT LONG EMPTY>
`<IATTLIST
`LONG
`CDATA
`minvalue
`CDATA
`maxvalue
`<!ELEMENT FLOAT EMPTY>
`<IATTLIST
`FLOAT
`minvalue
`CDATA
`maxvalue
`CDATA
`<!ELEMENT STRING EMPTY>
`<IATTLIST STRING
`minlength
`CDATA
`maxlength
`CDATA
`<!ELEMENT ACTION
`<!ELEMENT DOUBLECLICK
`<IELEMENT TITLE
`<IELEMENT STYLE
`<IELEMENT DEFAULTWIDTH
`<!ELEMENT MINVALUE
`<!ELEMENT MAXVALUE
`<IELEMENT MAJORTICKS
`<!ELEMENT MINORTICKS
`<{ELEMENT ADJUST
`<!ELEMENT ENABLE
`<!ELEMENT DISABLE
`<!ELEMENT REFRESH
`<IELEMENT SHOW
`
`#IMPLIED
`#IMPLIED>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`
`FIG. 8A
`
`9
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 9 of 22
`
`US 6,342,907 B1
`
`XML Document Type Definition (continued)
`
`<!ELEMENT HIDE
`<!ELEMENT DISPLAY
`<!ELEMENT STEP
`<!ELEMENT PAGE
`<IATTLIST
`PAGE
`resource
`name
`
`CDATA
`CDATA
`CDATA
`
`stepindex
`<!ELEMENT PANE
`<IATTLIST
`PANE
`CDATA
`resource
`CDATA
`name
`CDATA
`type
`<!ELEMENT MANAGERCLASS
`<!ELEMENT FLYOVER
`<!ELEMENT HELPALIAS
`
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`EMPTY>
`
`#REQUIRED
`#REQUIRED
`#IMPLIED>
`EMPTY>
`
`#REQUIRED
`#REQUIRED
`#REQUIRED>
`(#PCDATA)>
`(#PCDATA)>
`(#PCDATA)>
`
`Oda
`
`SSS > S SS SSS SSS SSS SSS SSS SS SSS SSS 225>2=== -->
`
`<!-- Declare the child elements that are contained by other child elements -->
`
`<!ELEMENT SELECTED
`
`<!ELEMENT DESELECTED
`
`<IELEMENTCHOICE
`
`<IATTLIST CHOICE
`name
`CDATA
`<IELEMENT ITEM
`
`ITEM
`
`<IATTLIST
`CDATA
`name
`<IELEMENT COLUMN
`
`(ENABLE|DISABLE|REFRESH|SHOW/]HIDE|
`DISPLAY)+>
`(ENABLE|DISABLE|REFRESH|SHOW]HIDE|
`DISPLAY)+>
`(TITLE, (ENABLE|DISABLE|REFRESH|SHOW|
`HIDE|DISPLAY)*)>
`
`#REQUIRED>
`(TITLE,(ENABLE|DISABLE|REFRESH|SHOW|
`HIDE|DISPLAY)*)>
`
`#REQUIRED>
`(TITLE, DEFAULTWIDTH? (DATACLASS,
`ATTRIBUTE)?,1TEM*)>
`
`<IATTLIST COLUMN
`primary
`CDATA
`"no"
`"no">
`editable
`CDATA
`(TITLE,ICON?, (ENABLE|DISABLE|REFRESH|SHOW|
`</ELEMENT NODE
`HIDE|DISPLAY)*,NODE*)>
`
`<IATTLIST NODE
`name
`
`<!ELEMENT ROOT
`
`<IATTLIST ROOT
`name
`
`#REQUIRED>
`CDATA
`(TITLE, ICON? ,(ENABLE|DISABLE|REFRESH|SHOW|
`HIDE|DISPLAY)*,NODE*)>
`
`CDATA
`
`#REQUIRED>
`
`FIG. 8B
`
`10
`
`10
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 10 of 22
`
`US 6,342,907 B1
`
`XML Document Type Definition (continued)
`
`<!-- Declare the Ul components --> _.
`
`(TITLE, LOCATION, SIZE,FLYOVER?,HELPALIAS?)>
`
`<!ELEMENT LABEL
`<!ATTLIST
`LABEL
`#REQUIRED
`name
`CDATA
`"no">
`disabled
`CDATA
`<IELEMENT IMAGE
`(TITLE, LOCATION, SIZE?, FLYOVER?)>
`<IATTLIST
`IMAGE
`#REQUIRED=
`name CDATA
`<IELEMENT CUSTOM (LOCATION, SIZE,MANAGERCLASS)>
`<IATTLIST CUSTOM
`name CDATA
`<IELEMENT BUTTON
`
`#REQUIRED>
`(TITLE, LOCATION, SIZE,STYLE?,ACTION?, FLYOVER?,
`HELPALIAS?)>
`
`<!IATTLIST BUTTON
`#REQUIRED
`name
`CDATA
`"no">
`disabled
`CDATA
`<!ELEMENT GROUPBOX(TITLE,LOCATION,SIZE,HELPALIAS?)>
`<IATTLIST GROUPBOX
`#REQUIRED>
`name CDATA
`<!ELEMENT RADIOBUTTON~(TITLE,LOCATION,SIZE,(DATACLASS,
`ATTRIBUTE)?,SELECTED?,DESELECTED?,
`FLYOVER? HELPALIAS?)>
`
`<!ATTLIST RADIOBUTTON
`#REQUIRED
`name
`CDATA
`"no">
`disabled
`CDATA
`<IELEMENT CHECKBOX (TITLE,LOCATION,SIZE,(DATACLASS, ATTRIBUTE)?,
`SELECTED? DESELECTED?,FLYOVER?,HELPALIAS?)>
`
`<!ATTLIST CHECKBOX
`name
`CDATA
`disabled
`CDATA
`<IELEMENT BUTTONGROUP
`
`#REQUIRED
`"no">
`((DATACLASS,ATTRIBUTE)?,(RADIOBUTTON|
`CHECKBOX)+)>
`
`<!IATTLIST BUTTONGROUP
`#REQUIRED
`name
`CDATA
`"no">
`disabled
`CDATA
`<!ELEMENT COMBOBOX (TITLE?,LOCATION, SIZE,(DATACLASS,
`ATTRIBUTE)?,CHOICE* (SHORT?|INTEGER?|LONG?|
`FLOAT?|STRING?|FORMAT?), FLYOVER?,
`HELP ALIAS?)>
`
`<!ATTLIST COMBOBOX
`name
`CDATA
`editable
`CDATA
`disabled
`CDATA
`
`#REQUIRED
`"no"
`"no">
`
`FIG. 8C
`
`11
`
`11
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 11 of 22
`
`US 6,342,907 B1
`
`XML Document Type Definition (continued)
`
`<!ELEMENT TEXTFIELD (TITLE?,LOCATION,SIZE,(DATACLASS,ATTRIBUTE)?,
`(SHORT?|INTEGER?/LONG?|FLOAT?|STRING?|
`FORMAT?),FLYOVER?,HELPALIAS?)>
`
`<IATTLIST TEXTFIELD
`#REQUIRED
`name
`CDATA
`masked
`CDATA
`“no"
`disabled
`CDATA
`"no'">
`<!ELEMENT TEXTAREA (TITLE?,LOCATION,SIZE,(DATACLASS,ATTRIBUTE)?,
`(SHORT? |INTEGER?|LONG?|FLOAT?|STRING?|
`FORMAT?),-FLYOVER?, HELPALIAS?)>
`
`<!ATTLIST TEXTAREA
`#REQUIRED
`name
`CDATA
`"no">
`disabled
`CDATA
`<IELEMENT SLIDER
`(LOCATION, SIZE,(DATACLASS,ATTRIBUTE)?,
`MINVALUE,MAXVALUE (MAJORTICKS,MINORTICKS)?
`ADJUST? , FLYOVER?,HELPALIAS?)>
`
`<IATTLIST SLIDER
`#REQUIRED
`name
`CDATA
`"horizontal"
`orientation
`CDATA
`"no">
`disabled
`CDATA
`<IELEMENT PROGRESSBAR (LOCATION,SIZE,MINVALUE,MAXVALUE,
`FLYOVER?,HELPALIAS?)>
`
`<IATTLIST PROGRESSBAR
`name CDATA
`#REQUIRED>
`<!ELEMENT LIST (LOCATION,SIZE,(DATACLASS,ATTRIBUTE)?, ITEM",
`SELECTED?,DESELECTED?,DOUBLECLICK?, FLYOVER?,
`HELPALIAS?)>
`
`<!ATTLIST LIST
`#REQUIRED
`CDATA
`name
`"single"
`CDATA
`selection
`"no">
`CDATA
`disabled
`<!ELEMENT TABLE
`(LOCATION, SIZE,COLUMN+,SELECTED?,
`DESELECTED?,DOUBLECLICK?,FLYOVER?,
`HELPALIAS?)>
`
`<IATTLIST TABLE
`#REQUIRED
`name
`CDATA
`"single"
`selection
`CDATA
`"no">
`disabled
`CDATA
`<!ELEMENT TREE (LOCATION,SIZE,(DATACLASS,ATTRIBUTE)?,ROOT?,
`DOUBLECL ICK?, FLYOVER?,HELPALIAS?)=>
`
`<IATTLIST TREE
`#REQUIRED
`CDATA
`name
`"no">
`CDATA
`disabled
`<a aaa -—>
`
`12
`
`12
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 12 of 22
`
`US 6,342,907 B1
`
`XML DocumentType Definition (continued)
`
`<!-- Declare PANEL -->
`<!ELEMENT PANEL
`
`(TITLE,SIZE, ICON?,ACTIVATE?, (LABEL|IMAGE|
`CUSTOM|BUTTON|GROUPBOX|RADIOBUTTON|
`BUTTONGROUP|CHECKBOX|COMBOBOX|TEXTFIELD
`|TEXTAREA|SLIDER|PROGRESSBAR|LIST|TABLE|
`TREE|SPLITPANE|DECKPANE| TABBEDPANE)*)>
`
`<IATTLIST PANEL
`name CDATA~- #REQUIRED>
`
`<!-- Declare PROPERTYSHEET-->
`<IELEMENT PROPERTYSHEET(TITLE?,ICON?,PAGE+)>
`<IATTLIST
`PROPERTYSHEET
`name CDATA
`#REQUIRED>
`
`<!-- Declare WIZARD -->
`<JELEMENT WIZARD
`<IATTLIST WIZARD
`name CDATA
`
`(ICON?, STEP*,PAGE+)>
`
`#REQUIRED>
`
`<!-- Declare SPLITPANE -->
`<IELEMENT SPLITPANE (TITLE?, LOCATION?,SIZE?,PANE+)>
`<IATTLIST SPLITPANE
`name
`CDATA
`orientation
`CDATA
`
`#REQUIRED
`"horizontal">
`
`<!-- Declare DECKPANE -->
`<!ELEMENT DECKPANE (TITLE?,LOCATION?,SIZE?,PANE+)>
`<IATTLIST DECKPANE
`name CDATA
`
`#REQUIRED>
`
`<l-- Declare TABBEDPANE -->
`<IELEMENT TABBEDPANE
`(TITLE?, LOCATION?,SIZE?,PANE+)>
`<IATTLIST TABBEDPANE
`
`
`name CDATA—#REQUIRED FIG. 8E
`placement
`CDATA
`“top">
`
`<!-- Declare PDML -->
`<!ELEMENT PDML ((PANEL|PROPERTYSHEET|WIZARD|SPLITPANE|DECKPANE
`|TABBEDPANE)*)>
`
`PDML
`<SIATTLIST
`version
`source
`basescreensize
`
`CDATA
`CDATA
`CDATA
`
`#REQUIRED
`#REQUIRED
`#IMPLIED>
`
`ee -—>
`
`13
`
`13
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 13 of 22
`
`US 6,342,907 B1
`
`PDML GRAPHICAL COMPONENTS
`
`
`
`PANEL
`LABEL
`IMAGE
`CUSTOM
`BUTTON
`GROUPBOX
`RADIOBUTTON
`CHECKBOX
`BUTTONGROUP
`COMBOBOX
`TEXTFIELD
`TEXTAREA
`SLIDER
`PROGRESSBAR
`LIST
`TABLE
`TREE
`SPLITPANE
`DECKPANE
`TABBEDPANE
`
`FIG. 9
`
`14
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 14 of 22
`
`US 6,342,907 B1
`
`wojsn9
`
`sJajpuey
`
`OLOL
`
`uowwoy
`
`sJa|pueH
`
`
`
`(eneraind)
`
`OSOL
`
`ejequowwos
`
`sJoyewso4
`
`
`
`(eaeraind)
`
`peAeldsigq
`
`joued
`
`JeBueuoxy
`
`
`
`(eneraind)
`
`eeOvOL
`
`eyequowwoy
`qWdd OLOL
`eoJnosey
`
`a}pungg0/n0S
`
`Ozpsvebeuey)ewjuny
`vZ0l———9uedyids-
`
`GcOL———S8ued499q-
`
`€cOL———SPJPZINA-
`
`
`9cOl—Ssouedpeqqe|-
`
`2c20||e94PueYOO)?-—
`
`
`
`
`ZZO|—-Ss}eeysApedold-
`
`0zOL————}noAeq-
`
`LcOL————S|eued-
`
`0801
`
`
`
`Sodepa}u]Jasyf
`
`
`
`(s)ueagejeq
`
`(ddyener)
`
`ObSls|Swaa>
`
`
`
`eneraind
`
`
`
`JesiedTWX
`
`15
`
`15
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 15 of 22
`
`US 6,342,907 B1
`
`payoddnsj},uaseBulmojjoyau
`
`
`paiqeusaqJaaeupinouspue
`
`
`
` SPONpasdeyjog[+]|\feo]
`
`@pONpepuedxy[-]
`
`Buse}Asuepusdeg
`9-€a1qesIqC)
`
`9-€aiqeugC)
`
`aqesiq/eiqeus
`reeaoway[|WeaIgesiq©)
`Lb-6aiqeuy
`
`83d]
`
`
` JegssalBold“/1‘PlayIXOL“|/I-(a1GeyIpe)
`
`xogOQUIOD‘O}
`
`
`
`
`
`ealy1xel‘ZLjaqe|AreuIplQ"|
`
`
`
`
`
`}UedNOAH“}aqe]SUIIHINWY°Z
`
`
`
`
`OOLLSpoONpepuedxy[=]
`jeaued
`“QL jeoues
`
`
`Ja|puUeYLUOJSNDYYMUOING‘¢}qou
`
`
`
`sjuauodwo’)peyoddnsjojsa_|-Jabeuey
`
`‘
`
`
`
`J2qe|SIY}UlJXO}OU}JO|/eSas
`
`ISI“PL€JO}uoyng“yC)
`
`xoqdnolg°
`
`€JoZuoying‘gC)
`
`€Jo€uoying‘9C)
`
`
`
`BuowmBulyyeuossiaay}
`
`
`
`uoyng7aiqel“SLazO
`
`xoqyo5y9*g[|
`
`
`
`:(a|qQey|peauN)xogOQUIOD6
`
`16
`
`16
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 16 of 22
`
`US 6,342,907 B1
`
`PDML PanelDefinition
`
`1210 <PDML version="1.0" source="WINDOWS"basescreensize="1 280x1024">
`
` 1220 <PANEL name="IDD_SUPPORTED_COMPONENTS">
`
`1230
`<TITLE>IDD_SUPPORTED_COMPONENTS</TITLE>
`
`1240
`<SIZE>400,300</SIZE>
`<BUTTON name="IDOK">
`<TITLE>IDOK</TITLE>
`<LOCATION>109,279</LOCATION>
`<SIZE>50,14</SIZE>
`<STYLE>DEFAULT</STYLE>
`</BUTTON>
`<BUTTON name="IDCANCEL'">
`<TITLE>IDCANCEL</TITLE>
`<LOCATION>175,279</LOCATION>
`<SIZE>50,14</SIZE>
`</BUTTON>
`<BUTTON name="IDHELP">
`<TITLE>IDHELP</TITLE>
`<LOCATION>241,279</LOCATION>
`<SIZE>50,14</SIZE>
`</BUTTON>
`<LABEL name="IDC_LABEL">
`<TITLE>IDC_LABEL</TITLE>
`<LOCATION>7,7</LOCATION>
`<SIZE>124 8</SIZE>
`</LABEL>
`<LABEL name="IDC_MULTILINE">
`<TITLE>IDC_MULTILINE</TITLE>
`<LOCATION?>7 ,25</LOCATION>
`<SIZE>124,17</SIZE>
`</LABEL>
`<GROUPBOX name="IDC_GROUPBOX">
`<TITLE>IDC_GROUPBOX</TITLE>
`<LOCATION>7 ,51</LOCATION>
`<SIZE>124,73</SIZE>
`</GROUPBOX>
`
`<RADIOBUTTON name="IDC_RADIO1"> F | G » 1 2A
`
`<TITLE>IDC_RADIO1</TITLE>
`<LOCATION>17,66</LOCATION>
`<SIZE>58,10</SIZE>
`</RADIOBUTTON>
`<RADIOBUTTON name="IDC_RADIO2">
`<TITLE>IDC_RADIO2</TITLE>
`<LOCATION>17,85</LOCATION>
`<SIZE>58,10</SIZE>
`</RADIOBUTTON>
`
`17
`
`17
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 17 of 22
`
`US 6,342,907 B1
`
`PDML PanelDefinition (continued)
`
`<RADIOBUTTON name="IDC_RADIO3">
`<TITLE>IDC_RADIO3</TITLE>
`<LOCATION>17,104</LOCATION>
`<SIZE>58,10</SIZE>
`</RADIOBUTTON>
`<BUTTONGROUP name="IDC_STANDALONE_group">
`<RADIOBUTTON name="IDC_STANDALONE">
`<TITLE>IDC_STANDALONE</TITLE>
`<LOCATION>7,136</LOCATION>
`<SIZE>124,10</SIZE>
`</RADIOBUTTON>
`</BUTTONGROUP>
`<CHECKBOX name="IDC_CHECKBOX">
`<TITLE>IDC_CHECKBOX</TITLE>
`<LOCATION>7,158</LOCATION>
`<SIZE>124,10</SIZE>
`</CHECKBOX>
`<LABEL name="IDC_COMBOLABEL1">
`<TITLE>IDC_COMBOLABEL1</TITLE>
`<LOCATION>7,179</LOCATION>
`<SIZE>124,8</SIZE>
`</LABEL>
`<COMBOBOX name="IDC_COMBONOEDIT"editable="no">
`<LOCATION>7,191</LOCATION>
`<SIZE>124,12</SIZE>
`</COMBOBOX>
`<LABEL name="IDC_COMBOLABEL2">
`<TITLE>IDC_COMBOLABEL2</TITLE>
`<LOCATION>7,213</LOCATION>
`<SIZE>124,8</SIZE>
`</LABEL>
`<COMBOBOX name="IDC_COMBOEDIT"editable="yes">
`<LOCATION>7 ,224</LOCATION>
`<SIZE>124,12</SIZE>
`
`SLABELnamew"IDC_TEXTFIELD1">
`
`F | G . 1 2 B
`
`<TITLE>IDC_TEXTFIELD1</TITLE>
`<LOCATION?>7 ,242</LOCATION>
`<SIZE>124,8</SIZE>
`</LABEL>
`<TEXTFIELD name="IDC_TEXTFIELD" masked="no">
`<LOCATION>7,254</LOCATION>
`<SIZE>124,14</SIZE>
`</TEXTFIELD>
`<LABEL name="IDC_TEXTAREALABEL">
`<TITLE>IDC_TEXTAREALABEL</TITLE>
`<LOCATION>145,7</LOCATION>
`<SIZE>107,8</SIZE>
`</LABEL>
`
`18
`
`18
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 18 of 22
`
`US 6,342,907 B1
`
`PDMLPanelDefinition (continued)
`
`<TEXTAREA name="IDC_TEXTAREA">
`<LOCATION>145, 19</LOCATION>
`<SIZE>114,26</SIZE>
`</TEXTAREA>
`<BUTTON name="IDC_CUSTOMBUTTON">
`<TITLE>IDC_CUSTOMBUTTON</TITLE>
`<LOCATION>145,54</LOCATION>
`<SIZE>114,14</SIZE>
`</BUTTON>
`<LABEL name="IDC_LISTLABEL">
`<TITLE>IDC_LISTLABEL</TITLE>
`<LOCATION>145,77</LOCATION>
`<SIZE>107,8</SIZE>
`</LABEL>
`<LIST name="IDC_LIST" selection="single">
`<LOCATION>145,88</LOCATION>
`<SIZE>114,30</SIZE>
`</LIST>
`<LABEL name="IDC_TABLELABEL">
`<TITLE>IDC_TABLELABEL</TITLE>
`<LOCATION>145,129</LOCATION>
`<SIZE>107,8</SIZE>
`</LABEL>
`<TABLE name="IDC_TABLE"selection="multiinterval">
`<LOCATION> 145, 142</LOCATION>
`<SIZE>114,51</SIZE>
`<COLUMN primary="yes" editable="no">
`<TITLE>IDC_TABLE@COLUMN_1</TITLE>
`</COLUMN>
`</TABLE>
`<SLIDER name="IDC_SLIDER1"orientation="horizontal">
`<LOCATION>145,219</LOCATION>
`<SIZE>114,19</SIZE>
`<MINVALUE>0</MINVALUE>
`
`FIG. 12C
`
`.
`
`<MAXVALUE>10</MAXVALUE>
`</SLIDER>
`<LABEL name="IDC_STATIC">
`<TITLE>IDC_STATIC</TITLE>
`<LOCATION>145,206</LOCATION>
`<SIZE>107,8</SIZE>
`</LABEL>
`<LABEL name="IDC_PROGRESSLABEL">
`<TITLE>IDC_PROGRESSLABEL</TITLE>
`<LOCATION>145,241</LOCATION>
`<SIZE>107,8</SIZE>
`</LABEL>
`
`19
`
`19
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 19 of 22
`
`US 6,342,907 B1
`
`PDML PanelDefinition (continued)
`
`<PROGRESSBAR name="IDC_PROGRESS1">
`<LOCATION>145,254</LOCATION>
`<SIZE>114,11</SIZE>
`<MINVALUE>0</MINVALUE>
`<MAXVALUE>10</MAXVALUE>
`</PROGRESSBAR>
`<LABEL name="IDC_TREELABEL">
`<TITLE>IDC_TREELABEL</TITLE>
`<LOCATION>270,7</LOCATION>
`<SIZE>101,8</SIZE>
`</LABEL>
`<TREE name="IDC_TREE">
`<LOCATION>270, 19</LOCATION>
`<SIZE>113,51</SIZE>
`</TREE>
`<GROUPBOX name="IDC_DEPENDENCYBOX">
`<TITLE>IDC_DEPENDENCYBOX</TITLE>
`<LOCATION>270,79</LOCATION>
`<SIZE>113,189</SIZE>
`</GROUPBOX>
`<CHECKBOX name="IDC_DISABLEALL">
`<TITLE>IDC_DISABLEALL</TITLE>
`<LOCATION>277,91</LOCATION>
`<SIZE>51,10</SIZE>
`</CHECKBOX>
`<BUTTONGROUP name="IDC_DISABLE36_group">
`<RADIOBUTTON name="IDC_DISABLE36">
`<TITLE>IDC_DISABLE36</TITLE>
`<LOCATION>287,131</LOCATION>
`<SIZE>48,10</SIZE>
`</RADIOBUTTON>
`</BUTTONGROUP>
`<BUTTONGROUP name="IDC_ENABLE36_group">
`<RADIOBUTTON name="IDC_ENABLE36">
`<TITLE>IDC_ENABLE36</TITLE>
`<LOCATION>287,144</LOCATION>
`<SIZE>48,10</SIZE>
`</RADIOBUTTON>
`</BUTTONGROUP>
`<GROUPBOX name="IDC_DISABLEGROUP">
`<TITLE>IDC_DISABLEGROUP</TITLE>
`<LOCATION>276,120</LOCATION>
`
`FIG. 12D
`
`<IGROUPBOXS
`
`<BUTTON name="IDC_LISTENABLE">
`<TITLE>IDC_LISTENABLE</TITLE>
`<LOCATION>276, 168</LOCATION>
`<SIZE>97,14</SIZE>
`</BUTTON>
`
`20
`
`20
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 20 of 22
`
`US 6,342,907 B1
`
`PDML Panel Definition (continued)
`
`<BUTTON name="IDC_TABLEENABLE">
`<TITLE>IDC_TABLEENABLE</TITLE>
`<LOCATION>276, 187</LOCATION>
`<SIZE>97,14</SIZE>
`</BUTTON>
`<COMBOBOX name="IDC_COMBODISABLE"editable="no">
`<LOCATION>276,211</LOCATION>
`<SIZE>97 ,12</SIZE>
`</COMBOBOX>
`<CHECKBOX name="IDC_REMOVEALL1">
`<TITLE>IDC_REMOVEALL1</TITLE>
`<LOCATION>277 ,105</LOCATION>
`<SIZE>51 ,10</SIZE>
`</CHECKBOX>
`<LABEL name="IDC_UNSUPPORTEDLABEL">
`<TITLE>IDC_UNSUPPORTEDLABEL</TITLE>
`<LOCATION>276 ,227</LOCATION>
`<SIZE>97 ,16</SIZE>
`</LABEL>
`<LABEL name="IDC_UNSUPPORTEDTEXT">
`<TITLE>IDC_UNSUPPORTEDTEXT</TITLE>
`<LOCATION>279,250</LOCATION>
`<SIZE>42 8</SIZE>
`</LABEL>
`<TEXTFIELD name="IDC_UNSUPPORTEDFIELD" masked="no">
`<LOCATION>328 247</LOCATION>
`<SIZE>47,14</SIZE>
`</TEXTFIELD>
`
`Panes
`</PDML>
`
`FIG. 12E
`
`1320
`
`
`1300
`
`
`1310
`PDML File
`
`
`
`
`Windows
`Panel
`
`1330
`Conversion
`
`
`Resource Script
`Tool
`
`Bundle
`
`FIG. 13
`
`
`
`
`Resource
`
`21
`
`21
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 21 of 22
`
`US 6,342,907 B1
`
`Panel Manager- Test of Supported Components
`Insert the overview help here. Content within these <helpcontent> tags will be
`preserved
`Fields
`12. Text Area
`
`18. Tree
`
`3. Group Box
`
`6: Button 3 of 3
`
`13. Button with custom handler
`
`4. Button 1 of 3
`
`14. List
`
`Dependencytesting
`5. Button 2 of 3
`
`Disable all
`
`FIG. 14
`
`22
`
`22
`
`

`

`U.S. Patent
`
`Jan. 29, 2002
`
`Sheet 22 of 22
`
`US 6,342,907 B1
`
`
`
`[wapTories] [Back] [} [cony_]
`
`12. Text Area
`
`Insert help for 12. Text area here. Content within these <helpcontent> tags
`will be preserved.
`
`18. Tree
`
`tags will be preserved.
`
`Insert help for 18. Tree here. Content within these <helpcontent> tags
`will be preserved.
`
`3. Group Box
`
`Insert help for 3. Group box here. Content within these <helpcontent> tags
`will be preserved.
`
`13. Button with custom handler
`
`Insert help for 13. Button with custom handler here. Content within these
`<helpcontent> tags will be preserved.
`
`4. Button 1 of 3
`
`Insert help for 4. Button 1 of 3 here. Content within these <helpcontent>
`
`FIG. 15
`
`23
`
`23
`
`

`

`US 6,342,907 B1
`
`1
`SPECIFICATION LANGUAGE FOR
`DEFINING USER INTERFACE PANELS
`THAT ARE PLATFORM-INDEPENDENT
`
`REFERENCE TO MICROFICHE APPENDIX
`
`A single microfiche appendix that contains a total of 43
`frames is included with this patent application.
`
`BACKGROUND OF THE INVENTION
`
`1. Technical Field
`
`This invention generally relates to computer system dis-
`plays and more specifically relates to a mechanism and
`methodfor defining and displaying user interface panels that
`are platform-independent.
`2. Background Art
`The development of the EDVAC computer system of
`1948 is often cited as the beginning of the computer era.
`Since that
`time, computer systems have evolved into
`extremely sophisticated devices that may be found in many
`different settings. Computer systems typically include a
`combination of hardware (e.g., semiconductors, circuit
`boards, etc.) and software (e.g., computer programs). As
`advances in semiconductor processing and computer archi-
`tecture push the performance of the computer hardware
`higher, more sophisticated computer software has evolved to
`take advantage of the higher performance of the hardware,
`resulting in computer systems today that are much more
`powerful than just a few years ago.
`Early computer systems used command-based operating
`systems and software applications. These command-based
`systems provided a user interface that required the user to
`memorize a relatively large number of commandsinorder to
`perform meaningful work. The user interfaces for these
`command-driven computer programs required a relatively
`high level of skill to operate, and were not considered to be
`“user-friendly.” With the introduction of the IBM personal
`computer (PC), computers became more widely available,
`both in the workplace and in homes, and the computer
`industry soon recognized the need to provide more user-
`friendly interfaces to computer programs. As a result, many
`different operating systems were introduced that provided a
`graphical user interface (GUI),
`including IBM’s OS/2,
`Microsoft Windows, and the Apple McIntosh. Software
`applications with graphical user interfaces soon followed,
`and the vast majority of computer programs running on
`personal computers today provides a user-friendly graphical
`user interface.
`
`Most graphical user interfaces provide many common
`features. The basic display area in a graphical user interface
`is known as a window orpanel. For the discussion in this
`patent application, wereferto a basic display area as a panel,
`recognizing that other terms are knownintheart to describe
`display areas. A single panel mayfill the entire display, or
`the display can be split into a numberof different panels. A
`panel may include a number of different “components”,
`which are different areas that display text, drop-down lists,
`text entry fields, etc. A pointing device such as a trackball or
`a mouseis generally used to select various commands and
`options on a panel by clicking on the appropriate fields or
`buttons within the panel. In addition, a keyboard is com-
`monly used to enter text information into a panel.
`Various methods have been developed for generating
`panels. For example, an editor provided with Microsoft
`Visual C++ provides a graphical tool that allows a program-
`merto define a panel that may be displayed using Microsoft
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`Windows by selecting and dropping desired components
`onto the panel. When the programmeris finished, the panel
`is defined as a Windowsresource script (.rc file). Resource
`script 1s a special programming language that allows a user
`to define the appearance and function of a panel. Of course,
`when a programmer uses a graphical tool to generate a
`panel, the tool translates the components the programmer
`sees on the panel
`into a corresponding resource script
`without the programmer directly writing code in resource
`script format. An example of a panel defined in Windows
`resource script is shown in FIG. 3, with the corresponding
`resource script shown in FIGS. 4A and 4B.
`While generating panels using Visual C++ is relatively
`straightforward, the resulting panels in resource script for-
`mat can only be displayed on a Microsoft Windowsplat-
`form. Today,
`there is a great push to provide software
`applications that are “platform-independent”, which means
`that a software application may run on computer systems
`that have different operating systems, such as OS/2,
`Windows, AIX, AS/400, etc. The Java programming lan-
`guage developed by Sun Microsystems provides a program-
`ming language for platform-independent software applica-
`tions.
`
`The Java programming language currently has some
`graphical tools for generating panels in Java, such as Syman-
`tec Visual Cafe. These graphical tools generate Java code,
`and define sizes and positions of user interface components
`in absolute pixel coordinates. However,
`the preferred
`method of generating user interface panels in Java uses
`Java-defined classes known as layout managers. Java allows
`a programmerto select an appropriate layout manager class
`depending on the type of panel that the programmer wants
`to display and then add appropriate componentsto the panel.
`The layout managerwill then work out how the components
`are displayed in the panel.
`It
`is often necessary to use
`different layout managers for different sections of a panel,
`imposing upon the programmerthe burden and complexity
`of dealing with multiple layout managers.
`Typically,
`the functional components are distinguished
`from mere text or other display information that is simply
`displayed to a user. The text or other display information is
`typically stored in a resource bundle separate from the Java
`functional components. Thus, a panel with English text will
`have a corresponding English resource bundle, while the
`same panel could be displayed in German using a German
`resource bundle instead of the English resource bundle. An
`example of a user interface panel that was generated in Java
`and that uses an English resource bundle is shown in FIG.
`5.
`
`In Java, the programmerhas no direct control of location
`of components within the panel. The logic behind the layout
`managersis to allow an applicationto be ported to a different
`language quickly and easily. Thus,if the text on a button is
`twice as long in Germanthan it is in English, the layout
`managerhasthe intelligence to stretch the button to accom-
`modate the longer German label (stored in the German
`resource bundle) on the button. The panel of FIG. 6 is a
`German version of the panel of FIG. 5. However, defining
`user interface panels in Java has significant drawbacks. The
`programmerhas no precise control over the appearance of
`components on a panel, but must instead rely on a Java
`layout manager to determine the size and position of com-
`ponents on the panel. In addition, using the layout managers
`in Java to generate a user interface panel requires that the
`programmeris skilled in the Java programming language.
`Thus,
`the generation and modification of user interface
`panels must be performed by a skilled Java programmer.
`24
`
`24
`
`

`

`US 6,342,907 B1
`
`3
`This is in stark contrast to the Windows environment, where
`a person can design a platform-specific user interface panel
`using a graphical editor, having no specialized programming
`knowledge. Even using the graphical editors for Java panels,
`such as Symantec Visual Cafe, the result is Java code that
`defines sizes and positions of user interface components in
`absolute pixel coordinates, and that bypass the Java layout
`managers. This makes it difficult to port the panels to a
`different
`language, because translators must create new
`versions of the generated Java code for each language, and
`the application is obliged to provide run-time code that
`figures out which version of the panel should be invoked
`based on the language/country settings currently in effect.
`Without a mechanism that gives the programmerprecise
`control over the location of components on a platform-
`independent panel without requiring specialized program-
`ming skills,
`the generation of platform-independent user
`interface panels will continue to be an impedimentto the
`generation of platform-independent software.
`
`DISCLOSURE OF INVENTION
`
`According to the preferred embodiments, a specification
`langua

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket