`US 6,271,840
`
`6,271,840
`PATENT:
`INVENTORS: Finseth, James Lee
`Hermel, Jerry
`Pelz, Bryan F.
`
`TITLE:
`
`Graphical search engine visual index
`
`APPLICATION
`NO:
`FILED:
`ISSUED:
`
`US1998160633A
`
`24 SEP 1998
`07 AUG 2001
`
`COMPILED:
`
`12 JUN 2014
`
`Google Exhibit 1019
`Page 1
`
`
`
`cNi-
`
`U.S. UTILITY PATENT APPLICATION
`
`PATENT
`
`N.UMBER,
`6271840
`
`62?13413
`
`J DISK (CRF) tU FICIjE
`(Attached In pocket on right inside flap)
`
`PREPARED AND APPROVED FOR ISSUE
`
`ORIGINAL
`
`CLASS
`34Y=M
`INTERNATIONAL CLASSIFICATION
`
`SUBCLASS
`SN4
`
`ol
`
`F _
`
`3
`
`1114_
`
`ISSUING CLASSIFICATION
`CROSS REFERENCE(IS)
`SUBCLASS (ONE SUBCLASS PER BLOCK)
`__
`I
`I
`
`-
`
`____
`
`--
`
`CLASS
`-703.__
`3 L+
`
`L
`35 7
`
`___________
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`HContinued on Issue Slip Inside File Jacket
`
`Ei EMNLDRAWINGS
`Sheets Drwg.
`iiDISCLAIMER
`4e8
`
`,~j7
`
`(date)
`
`Ha) The term of this patent
`subsequent to ______
`has been disclaimed.
`H b) The ternm of this patent shall
`not extend beyond the expiration date
`of U.S Patent. No.
`
`Figs. Drwg.
`
`Print Fig.
`
`CLAIMS ALLOWED
`Print Claim for 0.G.
`Total Claims
`1
`A7NOTICE OF ALLOWANCE MAILED
`ftl(~.g.,' 03 -2-61
`(Date)
`mAssanEamnr)
`
`JOHN WAEGA
`ER
`9
`SUpERVISORY PAT$
`TEHOOYAmount
`
`-3-) /3-6)
`ISSUE FEE,4
`-- '-
`at P d
`Due
`
`_________________(Primary
`
`Examiner)
`
`(Date)
`
`-~months of
`C3 c) The terminal
`this patent have been disclaimed.'J
`
`(Legal instrumients Examiner)
`
`(Date)
`
`4)
`
`ISSUE BATCH NOMWE
`3
`
`WARNING:
`The Information disclosed herein mey be restricted. Unauthorized disclosure may be prohibIted by the United States Code Title 35, Sections 122, 181 and 368.
`Possession outside the U.S. Patent & Trademark Office is restricted to authorized employees and contractors only.
`Form PTO-43SA
`(Rev. t0/07)
`
`jSWr.,;,SE
`
`Formal DvlQS &__h, s sev.
`(FACE)
`
`Google Exhibit 1019
`Page 2
`
`
`
`6,271,840
`
`GRAPHICAL SEARCH ENGINE VISUAL INDEX
`
`Transaction History
`
`Date
`
`Transaction Description
`
`9/24/1998
`
`Information Disclosure Statement (IDS) Filed
`
`9/24/1998
`
`Information Disclosure Statement (IDS) Filed
`
`9/29/1998
`
`Initial Exam Team nn
`
`10/5/1998
`
`IFW Scan & PACR Auto Security Review
`
`10/13/1998 Application Dispatched from OIPE
`
`6/24/1999 Case Docketed to Examiner in GAU
`
`9/22/2000 Non-Final Rejection
`
`9/25/2000 Mail Non-Final Rejection
`
`10/6/2000 Case Docketed to Examiner in GAU
`
`10/12/2000 Mail Supplemental Non-Final Action
`
`10/12/2000 Supplemental Non-Final Action
`
`2/16/2001 Response after Non-Final Action
`
`2/16/2001 Request for Extension of Time - Granted
`
`3/5/2001 Date Forwarded to Examiner
`
`3/5/2001 Correspondence Address Change
`
`3/13/2001 Mail Notice of Allowance
`
`3/13/2001 Notice of Allowance Data Verification Completed
`
`3/29/2001 Workflow - File Sent to Contractor
`
`6/11/2001
`
`Issue Fee Payment Verified
`
`6/11/2001 Workflow - Drawings Finished
`
`6/11/2001 Workflow - Drawings Matched with File at Contractor
`
`6/11/2001 Workflow - Drawings Received at Contractor
`
`6/11/2001 Workflow - Drawings Sent to Contractor
`
`7/5/2001 Workflow - Complete WF Records for Drawings
`
`7/9/2001 Application Is Considered Ready for Issue
`
`7/19/2001
`
`Issue Notification Mailed
`
`8/7/2001 Recordation of Patent Grant Mailed
`
`8/7/2001 Patent Issue Date Used in PTA Calculation
`
`2/25/2009 Correspondence Address Change
`
`2/26/2009 Change in Power of Attorney (May Include Associate POA)
`
`
`Google Exhibit 1019
`Page 3
`
`
`
`INIIiALS
`
`_____
`
`OCT 0 a 98 2 6
`
`Date received
`(Incl. C. of M.)
`or
`Date Mailed
`
`PATENT APPLICAT0N
`
`1jc135
`
`.PTO~
`
`-I
`
`09160633
`
`CONTENTS
`Date received
`(Inci. C. of M.)
`or
`Date Mailed
`
`1. Application 7 A a ppes
`
`(77
`
`c ~FDral braWings L'-shti) Set.,
`
`III^f
`
`16. _
`
`17. _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`42.-_
`
`43.-_
`44.-_
`
`45.-_
`
`46.-_
`
`47.-_
`
`48 .
`
`49.-_
`
`52.-_
`
`53.-_
`
`54.-_
`
`56.-_
`
`56.-_
`
`57.-_
`
`18. _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`20. _
`
`21.
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`59.-_
`
`60.-_
`
`61.-_
`
`62.-_
`
`_
`
`_
`
`22.
`
`23. _
`
`24.
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_ _
`
`_
`
`63.-_
`
`64.-_
`
`_
`
`_
`
`25.
`
`26. _
`
`27. _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`S.
`
`65.-_
`66.
`67.
`68.
`69.
`
`70.
`
`71.
`
`28.
`
`_
`
`_
`
`29.
`
`30. _
`
`31. _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`32.
`
`33.
`
`34. _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`72.-
`73.
`
`74.
`
`35.
`
`36.
`
`37.
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`75.
`76.
`
`77.
`78.
`
`_
`
`_
`
`_
`
`38.
`
`39.
`
`40.
`
`41.
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_ _
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`_
`
`79.-_
`
`80.-_
`
`81.-_
`
`82.-_
`
`_
`
`_
`
`_
`
`(FAC
`
`)NT)
`
`Google Exhibit 1019
`Page 4
`
`
`
`oIVt;:
`=10a
`
`tdc3mmoll
`
`EXHIBIT 1
`
`Google Exhibit 1019
`Page 5
`
`
`
`EXHIBIT 1
`
`oIMtOMR
`
`s
`
`The following code comprises the files View.java, MapCanvas.java, MapLabel.java,
`Map.java, Region.java, and java-iinages.html and is a Java applet designed to trigger an
`image and associated image map change when the mouse pointer is moved over a hyperlink.
`The images can be moved or resized with the mouse. Basically, this applet embodies all of
`the output features described in Figures 5 and 6. A more detailed description of what this
`applet does can be found in the View.java and java imnages.html files. The accompanying
`screen dump from a browser indicates the results achieved.
`
`java-images.html
`0 < html >
`
`<!-This HTML source file contains the <applet> tag used to call the View. class Java
`applet, The applet parameters are:
`
`num_images
`irmagei
`stringi
`urli
`
`num_areasi
`map_coordij
`
`map_ urlij
`
`Number of images
`Name of image file i (i = 0, 1,2...)
`Label/click text for imagei
`URL to link to when user clicks label i or a non-active region
`(see below) of imagei
`Number of active rectangular area elements in imagei
`Coordinates of area element j 0 = 0, 1,2....) in image i; the first
`two values are for the upper-left corner (x,y); the second
`two values are for the lower-right corner; (0,0) is located
`at the upper-left corner of the image
`URL to link to when user clicks area element j in image i '- >
`
`25
`
`< head >
`< title > Java Changing Images Example < /title >
`"C/head >
`< body >
`"<p> < font size
`" + 1" > < b > Java Changing Images Example <l/b> C /font > < /p >
`< p > Move mouse pointer over links to view images: <l/p>
`30 <br>
`
`<applet code=View,class width=590 height=400 alt= "Java disabled or unsupported' >
`< param name = num-images value =" 3 ">
`
`< paramn
`< param
`
`name = imageO value = "imagel. gif" >
`name =stringO value = "Link # 1: imagel1" >
`
`Exhibit I
`
`Google Exhibit 1019
`Page 6
`
`
`
`< pararn
`< param
`< pararn
`< param
`< pararn
`< param.
`
`name = urlO value ="#linkl ">
`name = num areasO value= 1'2 ">
`name =map-coord00 value = "0,0,76,30"1>
`name=map urlOO value=" #link4 ">
`name =map coord0l value= "0,50,76,80" >
`name=mapurl0l value= V#link5"->
`
`5
`
`< pararn
`< param
`< pararn
`< paran
`< pararn
`< param
`< param
`< param
`< pararn
`< param,
`
`namne =imagel value = Image2.gif'>
`name =stringl1 value = "Link #2: image2 ">
`name =urll value= "#link2">
`name=num areas I value =" 3 ">
`name =map-coordlO value= "0,O, 15,80" >
`name = map_ uri 10 value = " #link6 ">
`name =map_coordll1 value= "23,0,30,80">
`name=mnapurlll value= V"linkT'">
`name =map_coordl2 value= "45,0,66,80" >
`name =mapyrll12 value = "#link8 ">
`
`< paranm name = image2 value = " image3. .gif ">
`< param name =string2 value = "Link #3: image3 ">
`< param name= ur12 value= "#link3">
`< param name = num_areas2 value= "0">
`< /applet >
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`<br> <br> <br> <br> Cbr> <br> <br> <br> <br> <br> <br> <br> <br> <b
`r> <br> <br> <br>
`<a name="link1"> </a> <font>Link 1 Works! </font>
`<br> <br>c<br>c<br> <br> <br> <br> <br> <br>
`r> <br> <br> <br>
`< a name = "link2 "> </a > < font >Link 2 Works!< /font >
`<br> <br> <br> <br> <br> <br> <br> <br> <br>
`r> <br> <br> <br>
`< a name ="1link3"11> </a > < font >Link 3 Works!<I/font >
`<br> <br> <br> <br> <br> <br> <br> <br> <br>
`r> <br> <br> <br>
`< a name = " link4 "> </a > .< font > Link 4 Works! <C/font >
`<br> <br> <br> <br> <br> <br> <br> <br> <br>
`r> <br> <br> <br>
`< a name = "link5 "> C /a > <font >Link 5 Works! <I/font >
`<br> <br> <br> <br> <br> <br> Cbr> <br> <br>
`r> <br> <br> <br>
`< a name="link6 "> </a > < font >Link 6 Works!C</font >
`<br> <br> <br> <br> <br> <br>; <br> <br> <br>
`r> <br> <br> <br>
`
`<br> <br> <br> <br> <b
`
`<br> <br> <br> <br> <b
`
`<br> <br> <bi> <br> Cb
`
`<br> <br> <br> <br> <b
`
`<br> <br> <br> <br> <b
`
`Cbr> <br> Cbr> <br> <b
`
`Exhibit I
`
`Google Exhibit 1019
`Page 7
`
`
`
`< a name = "link7 "> <C/a > < font >Link 7 Works!P</font >
`<br> <br> <br> <br> <br> <br> <br> <br> <Cbr> <br> <br> <br> <br> <b
`r> <br> <br> <br>
`< a name="link8'"> </a > < font >Link 8 Works! c /font >
`
`<p> <font size='"-1">Copyright ©D 1998 by J. Hermel and J.L. Finseth. All rights
`reserved. c /font > < /p >
`< /body >
`< /html >
`
`View.java
`
`*@(#)View.java
`
`1.1 98/08/25
`
`*Coprigt ©1998 by J. Hermel and J.L. Finseth. All rights reserved.
`
`import netscape. security. PrivilegeManager;
`import java. io. *;
`import j ava. applet.*
`import java. util. *;
`import java. net.*;
`import java. awt. *;
`import java. awt. event.*;
`
`*View -
`
`This Java applet is designed to trigger an image and associated image ma
`change when the mouse pointer is moved over a hypertext link. The imo
`map for each image describes the active regions in the image and
`indicates the location of the document to be retrieved when the defined
`area is clicked.
`If the user clicks the mouse button over a hypertext
`lint or one of the non-active regions of the image, the browser links to
`the URL associated with the hypertext link. If the user clicks the mouse
`button over one of the active areas of the image, the browser links to
`the URL associated with that area. The coordinates of the rectangular
`areas -- only rectangular regions are supported -- are expressed, in pairs
`of x,y coordinates which define the upper-right and lower-left hand
`
`*
`
`*
`
`Exhibit 1
`
`s
`
`10
`
`20
`
`30
`
`35
`
`Google Exhibit 1019
`Page 8
`
`
`
`* corners of the regions. If the mouse pointer is moved over a hypertext
`* link or image (both active and non-active regions) the associated URL is
`* displayed in the browser's status bar. Each image can be moved and/or
`* resized by dragging the mouse over the upper-right or upper-left hand
`* corners of the image, respectively.
`
`" The following files are needed to use this applet:
`" View. class, MapCanvas, class, MapLabel.class, Map.class, Region.class,
`" java-images.html
`*
`
`*@version 1. 1, 25 August 1998
`
`public class View extends Applet implements MouseListener{
`
`MapCanvas theCanvas;
`Vector mapLabels;
`Panel labelPanel;
`Panel mapPanel;
`AppletContext appContext;
`
`public void init()o
`try{(
`
`PrivilegeManager. enablePrivilege(" UniversalFileRead")
`showStatus( "UniversalFileRead enabled! ");
`
`catch(Exception e){
`showStatus(" File access denied');
`
`appContext = getAppletContextO;
`theCanvas= new MapCanvas(this);
`mapLabels = new Vectoro;
`int x, y, height, width;
`URL baseURL=null, regionURt=null, mapURL=null
`labelPanel = new Panel();
`labelPanel.setSize(100,300);
`labelPanel. setLayout(new GridLayout(0, 1,10,10));
`
`try{
`baseURL = getDocinnentBaseo;
`
`}c
`
`atch(Exception e){
`System. out.println(e. getMessageo);
`
`Exhibit I
`
`10
`
`15
`
`20
`
`25}
`
`30
`
`35
`
`40.
`
`Google Exhibit 1019
`Page 9
`
`
`
`for (int n= 0; n < (Integer. value0f(getParameter
`("num.images"))). intValueo; n+ +){
`
`5
`
`10
`
`try{
`mapURL= new URL(baseURL,getParameter("url" + n));
`System. out. println(mapURL);
`
`catch(MalformedURLException e){
`~Systemn.out. println(e. getMessageo);
`
`Image tempImage = Toolkit.getDefauItToolkito.
`getlmage(getParameter(" image" + n));
`System. out. println( "View. inito: templmage = "+tempImage
`+' paramter=
`'+ getParameter("image" +n));
`this. showStatus("View. inito: image=" + templmage);
`Map aMap= new Map(tempImage, mapURL);
`
`theCanvas .maps. addElement(aMap);-
`mapLabels .addElement(new MapLabel(getParameter
`("string" + n), this ));
`
`for (int m= 0; m < Integer. valueOf(
`getParameter('num_areas' "+n)) .intValueo)
`;m++){
`
`String mapCoord = getParanmeter
`("map_coord" + n + in);
`StringTokenizer st= new StringTokenizer
`(mapCoord, ", ");
`x =Integer. valueOf(st. nextTokeno). intValueo;
`y = Integer. value0f(st. nextTokeno). intValue (;
`width = Integer. valueOf(st. nextTokeno). intValueo)
`
`height =Integer. valueOf(st. nextTokeno) .intValueo)
`
`try {
`regionURt= new URL(baseURt,getParameter("map_url"
`
`catch(MalformedURLException e){
`System. out. println(e. getMessageo);
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40}
`
`Exhibit 1
`
`Google Exhibit 1019
`Page 10
`
`
`
`s
`
`I0
`
`15
`
`20
`
`25
`
`30
`
`35
`
`((Map)theCanvas. maps. elementAt(n)).
`myRegions. addElement(new Region(x ,y ,width,height, regionURL));
`
`mapPanel= new PaneIO;
`mapPanel. setSize(490,381);
`
`mapPanel. setLayout(null);
`mapPanel. add(theCanvas);
`
`this. setLayout(new BorderLayout(O0,O));
`this. add(labelPanel, "West");
`this. add(mapPanel, "East');
`this. doLayoauto;
`theCanvas. showFirsto;
`this. setVisible(irue);
`this.repainto;
`mapPanel .repainto;
`theCanvas. repainto;
`
`mapPanel. addMouseListener(this);
`
`void changeMap(MapLabel theLabel){
`int labeUndex = mapLabels. indexOf(theLabel);
`theCanvas .changeMap(labellndex);
`
`void goToDoc(MapLabel theLabel){
`int b = this. mapLabels. indexOf(theLabel);
`URL alURL = ((Map)this. theCanvas .maps. elementAt(b)) .myURL;
`System. out. printin("go to " + aUl.toStringf);
`this. appContext. showDocument(aURL);
`
`void goToDoc(URL aUlRL){
`System. out. prihtln(" go to " + aUl.toStringf)t
`this.appContext. showDocument(aURL);
`p u l c vi}o s C i k d M u e v n e
`public void mouseClicked(MouseEvent me) {
`void mouseRelesed(MouseEvent me){
`
`}
`
`40public
`
`40
`
`public.void mouseRneeaed(MouseEvent me){
`
`public void mouseExited(MouseEvent me) ()I
`
`Exhibit 1
`
`Google Exhibit 1019
`Page 11
`
`
`
`MapCanvas.java
`
`*@(#)MapCanvas.java
`
`1.1 98/08/25
`
`5
`
`*
`
`*Copyright © 1998 by J. Hermel and J.L. Finseth. All rights reserved.
`
`.10
`
`15
`
`20
`
`25
`
`30
`
`import j ava. util.;
`import java. awt.*
`import java.awt.event.*;-
`import java. net.*;
`
`*MapCanvas
`
`*@version 1.1, 25 August 1998
`
`public class MapCanvas extends Canvas implements MouseListener,
`MouseMotionListener{
`
`Vector maps;
`Map currentMap;
`View theView;
`Image currentImage;
`int iWidth = 10,illeight = 10;
`URL currentURL =null;
`boolean ishiRegion= false;
`int pressedX, pressedY, releasedX, releasedY;
`int deltaX,deltaY;
`int xPos,yPos;
`
`MapCanvas(View theView){
`maps = new Vectoro;
`this. the View = theView;
`this. setSize(200, 100);
`
`Exhibit 1
`
`Google Exhibit 1019
`Page 12
`
`
`
`5}
`
`0
`
`0
`
`0
`
`this. setLocation(0, 100);
`this. addMouseListener(this);
`this. addMouseMotionListener(this);
`this. setBackground(Color. lightGray);
`
`public void showFirstO{
`currentMap = (Map)maps .elementAt(0);
`cuffentImage = currentMap. myMap;
`System. out.println("MapCanvas. showFirsto: :currentImage=
`+ currentImage);
`iWidth = currentImage. getWidth(this);
`iHeight = currentImage. getHeight(this);
`this. setSize(iWidth,iHeight);
`
`5
`
`Dimension panelSize = this. theView .mapPanel.getSizeo;
`(panelSize. width - iWidth)/2;
`~xPos=
`yPos= (panelSize. height - iHeight)/2; // -10 places the image
`flin the same position as changeMap()
`System. out. println("MapCanvas. showFirsto: width =" + iWidth +
`"height=" +iHeight+ "xPos=" +xPos +" yPos=" +yPos);
`this. setLocation(xPos, yPos);
`repainto;
`
`public void paint(Graphics g){
`g .drawlmage(currentlmage,0,0,iWidth,
`
`iHeight, this);
`
`void changeMap(int theIndex){
`cuffentMap. resetRegionso;
`theView. showStatus(((Map)maps .elementAt(thelndex)) .myURZL
`AtoStringo);
`currentMap = (Map)maps .elementAt(theIndex);
`currentlmage = currentMap.myMap;
`iWidth = cuffentImage. getWidth(this);
`iHeight = cuffentImage. getHeight(this);
`this. setSize(cuffentlmage .getWidth(this) ,currentImage.
`getHleight(this));
`Dimension panelSize = this. theView. mapPanel. getSizeo;
`xPos= (panelSize. width - iWidth)/2;
`iHeight)/2;
`yPos= (panelSiie. height -
`System. out. println("MapCanvas. changeMapo: xPos=" + xPos +
`11yPos=" + yPos);
`this. setLocation(xPos,yPos);
`repa into;
`
`35
`
`40
`
`Exhibit I
`
`Google Exhibit 1019
`Page 13
`
`
`
`void resizeMap(int deltaX,int deltaY){
`float xFactor, yFactor;
`int oldX,oldY; U/starting location of canvas on panel
`Dimension canvasSize = this. getSizeo;
`xFactor= (float)((float)deltaX / (float)canvasSize. width + 1.00);
`yFactor= (float)((float)deltaY / (float)canvasSize. height + 1.00);
`iWidth= canvasSize. width + deltaX;
`iHeight= canvasSize. height'+ deltaY;
`oldX = this. getLocationo. x;
`oldY = this. getLocation() .y;
`this. setSize(canvasS ize. width + deltaX, canvasSize. .height +
`deltaY);
`this. setLocation(oldX- deltaX, oldY- deltaY);
`this. currentMap .rescaleRegions(xFactor,yFactor);
`System. out. println("'resizeMap: xFactor=" + xFactor +
`"yFactor=" +yFactor+"' iWidth=" +iWidth+" iHeight="
`+ iHeight);
`
`void moveMap(int deltaX, fit deltaY){
`int oldX,oldY;
`oldX = this. getLocationo. x;
`oldY = this. getLocation().y;
`this. setLocation(oldX - deltaX, oldY - deltaY);
`ubicvod musClckd(MusEvntme
`* public void mouseClicked(MouseEvent me){
`
`25
`
`if (this. getCursoro.equals(Cursor.getPredefmnedCursor(Cursor.
`DEFAULT-CURSOR)))
`theView. goToDoc(currentURL);
`
`else {
`
`pressedX = me. getXo;
`pressedY = me. getYo;
`this. repainto;
`
`public void mouseReleased(MouseEvent me){
`deltaX= pressedX - me.getXo;
`deltaY= pressedY - mne.getYo;
`System. out.println( "MapCanvas.mouseReleased: deltaX,deltaY="
`+ deltaX +","+deltaY);
`
`Exhibit 1
`
`5
`
`10
`
`15
`
`20
`
`30
`
`35}
`
`40
`
`Google Exhibit 1019
`Page 14
`
`
`
`System.out.prntln("MapCanvas.mouseReleased: x,y =+
`me.getX() + ", + me.getYo);
`if (this. getCursoro .equals(Cursor. getPredefinedCursor(Cursor.
`NW -RESIZE-CURSOR)))
`this. resizeMap(deltaX, deltaY);
`else if (this. getCursoro). equals(Cursor. getPredefinedCursor(Cursor.
`MOVE_CURSOR)))
`this. moveMap(deltaX, deltaY);
`repainto;
`
`public void mouseEntered(MouseEvent me) {
`
`public void mouseExited(MouseEvent me){}
`public void mouseMoved(MouseEvent me){
`isInRegion= false;
`if (!isInHotArea(me)){
`
`for (int a=O; a < currentMap.myRegions.sizeo; a+ +){
`Region theRegion = (Region)currentMap .myRegions.
`elementAt(a);
`if ((me.getX() > = thieRegion.scaledX) &&
`(me.getXo < = theRegion.scaledX + theRegion.
`scaledWidth)
`&& (me.getY() > =theRegion.scaledY)'&&
`(me.getYo <= theRegion.scaledY + theRegion.
`
`25
`
`scaledHeight)){
`
`the View. showStatus(theRegion.url.toStringQ);
`isInRegion = true;
`currentURL = theReg ion .url;
`
`if (lisInRegion){
`theView. showStatus(currentMap. myURL. toStringo);
`currentURt = currentMap .myURL;
`
`public void mouseDragged(MouseEvent me){
`
`Exhibit I
`
`Exhit I10145
`
`s
`
`10}
`
`15
`
`20
`
`30
`
`35
`
`40}
`
`Google Exhibit 1019
`Page 15
`
`
`
`boolean isInHotArea(MouseEvent me) (
`if (me.getX() > = 0 && me.getX() < = 7 && me.getY0 > = 0 &&
`me.getY0) < = 7) {
`this. setCursor(Cursor. getPredefinedCursor(Cursor.
`NW-RESIZE-CURSOR));
`System. out. println(" isInHotAreao: resize");
`return true;
`
`if (me.getX() < = iWidth && me.getX() > =iWidth-7 &&
`me.getY0 > = 0 && me.getY0 < = 7){
`this. setCursor(Cursor. getPredefinedCursor(Cursor.
`MOVE_CURSOR));
`System. out.println( "isInHotArea0: move");
`return true;
`
`this. setCursor(Cursor. getPredefinedCursor(Cursor.
`DEFAULT-CURSOR));
`return false;
`
`public Dimension getPreferredSizeo()
`return new Dimension(50,50);
`
`MapLabel.java
`
`30
`
`*@(#)MapLabel.java
`
`1.1 98/08/25
`
`*Copyright © 1998 by J. Hermel and J.L. Finseth. All rights reserved.
`
`35
`
`import
`import
`
`j ava. awt. event. *
`java.awt.*;
`
`Exhibit 1
`
`Exhit I11/46
`
`Google Exhibit 1019
`Page 16
`
`
`
`*MapLabel
`
`*@version 1. 1, 25 August 1998
`
`5
`
`public class MapLabel extends Label implements
`MouseMotionListener, MouseListener{
`
`View theView;
`
`MapLabel(String label, View theView){
`super(label);
`this.theView= theView;
`this, setBackground(Color. green);
`this. the View . labelPanel .add(this);
`this. addMouseListener(this);
`this. addMouseMotionListener(this);
`
`public void mouseClicked(MouseEvent me){
`System. out.println('MapLabel: mouseClickedo");
`theView.goToDoc(this);
`public void mousePressed(MouseEvent me) {
`public void mouseReleased(MouseEvent me) {
`
`public void mouseEntered(MouseEvent me){
`theView .changeMap(Nhs);
`
`} p
`
`ublic void mouseExited(MouseEvent me){}
`public void mouseMoved(MouseEvent me) {
`public void mouseDragged(MouseEvent me){
`
`t0
`
`20}
`
`25
`
`30
`
`}
`
`Map.java
`
`*@(#)Map.java
`
`1.1 98/08/25
`
`Exhibkt I
`
`Google Exhibit 1019
`Page 17
`
`
`
`*Copyright @ 1998 by J. Herme'l and J.L, Finseth, All rights reserved.
`
`5
`
`import java. util.*
`import java. net.*;
`import java. awt,*
`
`10
`
`15
`
`20
`
`30
`
`35
`
`*Map
`
`*
`*@version 1.1, 25 August 1998
`
`public class Map {
`
`Image myMap;
`URL myURL;
`Vector myRegions;
`
`Map(Image myMap, URL myURL){
`this.myURL= myURL;
`this.myMap= myMap;
`myRegions= new Vectoro0;
`miyMap.getHeight(null); // wakes up image so it is ready to be
`I/displayed when called
`
`25
`
`void resetRegionso,
`for (int a= 0; a < myRegions. sizeQ; a++){
`((Region)myRegions .elementAt(a)) .resetRegiono;
`
`void rescaleRegions(float xFactor, float yFactor){
`for (int a =0; a < myRegions. sizeo; a ++){
`((Region)myRegions.elementAt(a)) .rescale(xFactor,
`yFactor);
`
`}
`
`Exhibit I
`
`Exhit I13/48
`
`Google Exhibit 1019
`Page 18
`
`
`
`'Region.j ava
`
`*@(#)Region.java 1. 198/08/25
`
`5
`
`Copyright © 1998 by J. Hermel and J.L. Finseth. All rights reserved.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`import java. net.*;
`import java.ltang. Math;
`
`*Region
`
`*@version 1.1, 25 August 1998
`
`public class Region{
`int x,y,width,height, scaledX,scaledY,scaledWidth,scaledHeight;
`URL url;
`
`Region(int x, it y, int width, int height, URL url){
`this.x=x;
`this.y=y;
`this. width =width;
`this. height= height;
`this. url = url;
`resetRegiono;
`System. out. println("Regiono: x, y,width, height= "+x+y +
`width +height);
`
`void resetRegion()o
`scaledX = x;
`scaledY= y;
`scaledWidth= width;
`scaledHeight= height;
`
`void rescale(float OFactor, float yFactor){
`scaledWidth= Math. round((float)scaledWidth * xFactor);
`scaledHeight = Math. round(scaledHeight * yFactor);
`scaledX = Math. round(scaledX * xFactor);
`scaledY = Math. round(scaledY * yFactor);
`
`Exhibit I144
`
`14/49
`
`Google Exhibit 1019
`Page 19
`
`
`
`Java Changing images Examtple
`
`Move mouse pointer over links to view images:
`
`a Copyright 1998 by J. Hermel and J.L. Finseth. All rights reserved.
`
`Exhibit I
`
`Exhit I15150
`
`Google Exhibit 1019
`Page 20
`
`
`
`EXHIBIT 2
`EXHIBIT 2
`
`Google Exhibit 1019
`Page 21
`
`
`
`EXHIBIT 2
`The following is an example of JavaScript source code allowing a single
`graphic screen area to show a plurality of images. Each of the images is associated
`with a hyperlink. When the cursor passes over the hyperlink, the associated image
`replaces a default image (which may be blank). The accompanying screen dump from
`a browser indicates the results. achieved.
`In that screen dump, the cursor (not shown)
`is positioned over the "Do Not Cross" link. Below the screen dump is an alternative,
`and more generic, coding of thie code immediately below.
`
`<html >
`1. < head >
`< title > Changing Images Example < /title >
`<script language= "JavaScript" >
`<!--Hide
`//Preload images to cache to display them immediately.
`var imageOne = new Imageo)
`imageOne. src = "enter. gif"
`var imageTwo =new Imageo)
`imageTwo.src= "pass.gif"
`*
`* var imageThree =new Imageo0
`imageThree. src ="crossing. gif"
`/ *Tri.gger image change by assigning new source to image defined in HTML
`(i.e., images.gif). New and old images must be of the same size or
`Netscape will automatically re-scale new image -- not a problem in
`Internet Explorer. */
`function changer(filePrefix) {
`document. images[0].src=filePrefix+ ".gif"
`
`/End hiding-->
`< /script >
`< /head >
`< body link= "#213D89" vlink= "#AM1B2A" alink= V#FFOOOO" >
`<p> <font color= V#CCOOOO" size--" +1"
`face = "Verdana,Helvetica,Arial" > < b > Changing Images
`Example </b > < /font > <I/p>
`< p > Move cursor over links to view images: < /p >
`< table width= " 100% ">
`<ar>
`<td>
`* <br>
`Link #1: <a href =V"link" onMouseOver = "changer('enter')"
`onMouseOut= "changer('images') "> < b >Do Not Enter </b > </a > < br > < br >
`Link #2: <a href=V"#ink" onMouseOver= "changer('pass')"
`
`I/
`
`Exhibit 2
`
`5
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`Google Exhibit 1019
`Page 22
`
`
`
`ornMouseQut= "changer('images') "> < b > Do Not Pass <l/b> </a > < br > < br >
`Link #3: <a href= "#link" ornMouseOver= 'changer('crossing')"
`onMouseOut= "changer('images')"'> < b > No Crossing <l/b> <C/a> < br > < br >
`
`<td>
`< p align='"center" > < img src='"images. gif' alt = "Images" > < /p >
`
`<C/table >
`<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <b
`r> <br> <br> <br>
`<a name="link" > </a> <font>The Link Works! C/font> Cbr> <br>
`
`<p> <font size="-V">Copyright 0 1998 by J. Hermel and J.L. Finseth. All fights
`reserved. < /font > < /p >
`<I/body >
`C /html >
`
`5
`
`t0
`
`is
`
`Changing Images Example
`
`Move cursor aver links to view images:
`
`Link #1: Do Not Enter
`
`Link #2: Do Not Pass
`
`Link #3: No Crossing
`
`__
`
`~
`
`hj~i
`
`jgt.
`
`I'~
`
`~
`
`-
`
`Exhibit 2
`
`Google Exhibit 1019
`Page 23
`
`
`
`Alternative coding
`< html >
`
`<I!--This JavaScript/HTML source code is designed to trigger an image
`change when the mouse pointer is moved over a hyperlink. If the
`user clicks the mouse button over a hyperlink, the browser links
`to an associated bookmark anchor elsewhere in the document. -- >
`
`< head >
`< title > JavaScript Changing Images Example < /title >
`< script language= "JavaScript >
`<!--hide
`
`//Preload the images into the cache to display them immediately.
`var imageOne = new Imageo)
`imageOne. src = " image 1. gif"
`var imageTwo =new Imageo)
`imageTwo. src = " image2. gif"
`var imageThree =new Image()
`imageThree. src =" image3. gif"
`
`/ *Trjgger an image change by assigning a preloaded image to the
`default image source (i.e., imagAOgif). Note that in Netscape,
`the new and old images must be of the same size or the new image
`will be automatically re-scaled. This is not a problem in Internet
`Explorer. *
`function changer(filePrefix){
`document. images[O].srQ =filePrefix + ".gif"
`
`} f
`
`/end hiding-- >
`< /script >
`C /head >
`
`< body >
`+ 1 "> < b > JavaScript Changing Images Example < /b > C /font > < /p >
`< p> < font size
`<p > Move mouse pointer over links to view images: C /p >
`
`< table width=100O% ">
`
`Exh,ibit 2
`
`s
`
`10
`
`15
`
`20
`
`25
`
`30
`
`Google Exhibit 1019
`Page 24
`
`
`
`5
`
`is
`
`20
`
`25
`
`< tr >
`<td> <br>
`Link #1: < a href ="Vlinkl"
`onMouseOver= "changer('imagel') "> < b> imagel <I[b> </a > <br > <br >
`Link #2: <a href ="#hink2"
`onMouseOver = "changer('imageT)'"> < b> image2 <l/b> </a > <br > < br >
`Link #3: < a href ="#link3 "
`onMouseOver= "changer('image3') "> < b> image3 < /b > </a > < br > <br >
`
`</td>
`10 <td>
`< p align = "center" > < img src = "imnageO.gif" alt = "Images" > < /p >
`
`< /table >
`
`<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
`r> <br><br> <br>
`<a name="linkl" > </a> <font>Linkl Works!h</font>
`<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
`r> <br> <br> <br>
`< a name = "link2 ". > </a > < font >Link:2 Works! < /font >
`<br> <br> <br> <br> <br> <br> <br> < Br> <br> <br> <br>
`r> <br> <br> <br>
`< a name = "link3 "> </a > < font >Link:3 Works!< /font > <br > <br >
`
`<br> <br> <b
`
`<br> <br> <b
`
`<br> <br> <b
`
`< p> < font size= "- 1 "> Copyright 0 1998 by J. Hermel and J.L. Finseth. All rights
`reserved,<I/font > < /p >
`"</body >
`"</html>
`
`(D Copyright 1998 by J. Hermel and J.L. Finseth. All rights reserved.
`
`Exhibit 2
`
`Google Exhibit 1019
`Page 25
`
`
`
`EXHIBIT 3
`EXHIBIT 3
`
`Google Exhibit 1019
`Page 26
`
`
`
`EXHIBIT 3
`The following is an example of JavaScript source code allowing a single
`browser graphic screen area to show two distinct frames. The upper frame shows a
`series of links. The lower frame shows the web page when the cursor is positioned
`over the link. As indicated below, upper frame 1 and lower frame 2 provide the
`content of the frames used in the controlling code below. The accompanying screen
`dump from a browser indicates the results achieved.
`
`Controlling Code JavaScript
`< html >
`
`<!--This JavaScript/HTML source code uses frames to display a new page.
`Moving the mouse pointer over a hyperlink changes the contents of a
`frame in the browser window, loading the document referred to by that
`link.
`
`Copyright 0 1998 by J. Hermel and J. L. Finseth. All rights reserved.-->
`
`< head >
`< title > JavaScript Frames Example < /title >
`"</head >
`< frameset rows = "50 %,50 %" >
`<frame src="framel.htm1" name= 'framel" scrolling= "yes">
`<frame src="frame2.htrnP name ="frame:2" scrolling= "yes">
`"</frameset >
`"C/html >
`
`s
`
`10
`
`is
`
`20
`
`Frame 1 JavaScript
`< html >
`
`25
`
`<!-- framel.html--
`
`< head >
`<tidle> JavaScript Frames
`"C/head >
`< body >
`<p> <font size="+P">
`
`30
`
`Exhibit 3
`
`Example -- Frame 1 </title>
`
`< b > JavaScript Frames Example < /b > C /font > < /p >
`
`Google Exhibit 1019
`Page 27
`
`
`
`< p> Move mouse pointer over links to view pages in bottom frame: < /p > < br >
`Link #1: <a href = "http:I//www. yahoo. com/l"
`onMouseOver = "Parent. frame2. window. location ='http: //www. yahoo,.com/ "' > <b >
`Yahool</b> </a> <br> <br>
`5 Link #2: <a href = "http: //www. altavista. digital. com/"
`onMouseOver = "Parent. frame2. window. location ='http: //www. altavista. digital. comn/"
`> <b>AltaVista</b> </a> <br> <br>
`Link #3: <a href= "http://www.lycos.com/l"
`oniMouseOver= "Parent.frame2. window.location= 'http://www.lycos.com/"''> <b >L
`ycos</b> </a> <br> <br>
`Link #4: <a href= "http://www.infoseek.com/"
`onMouseOver= "Parent. frame2. window. location ='http://www.infoseek.com/"' > <b
`>Infoseek</b> </a> <br> <br>
`Link #5: <a href = "htt: //www. excite. com/"
`onMouseOver= "Parent.frame2.window.location= 'http://www.excite.com/"' > <b >
`Excite</b> </a> <br> <br> <br> <br>
`< p> < font size = "-I" > Copyright 0 1998 by J. Hermel and J. L. Finseth. All rights
`reserved. < /font > < /p >
`"</body >
`< /html >
`
`Framne2 JavaScript
`< html >
`
`<!-frame2. htmIl-- >
`<!--Copyright 0 1998 by J. Hermel and J. L. Finseth. All rights reserved.-->
`
`< head >
`< title > JavaScript Frames Example -- Frame 2 </title >
`"</head >
`"</html >
`
`10
`
`15
`
`20
`
`25
`
`Exhibit 3
`
`Google Exhibit 1019
`Page 28
`
`
`
`O a d ci p i
`
`le E pe r N es ao
`
`FQ a K
`
`-
`
`tWUUIDI/ETSCAECommunicator/PRogram/tmpiIae hl!UIIitMI1W dA
`
`JavaScript Frames Example
`
`Move mouse pointer over links to view pages in bottom frame:
`
`Link #1: Yahoo)
`
`Link #2: AltaVista
`
`Whmt.z N4w ChgckEil
`Yahoo) Pagler
`stock quote alerts
`
`u
`Pemsonzfiz4
`ijoP r1Yahool Mail
`a.,t
`'rsj&
`free email account
`-I
`
`Pla frefnayfooeDn
`
`cmeefr$0ki
`
`hsmnhsfits
`
`tc
`
`ak
`
`© Copyright 1998 by J. Hermel and J.L. Finseth. All rights reserved.
`
`Exhibt 3
`
`Google Exhibit 1019
`Page 29
`
`
`
`EXHIBIT 4
`EXHIBIT 4
`
`Google Exhibit 1019
`Page 30
`
`
`
`EXHIBIT 4
`The following is an example of JavaScript source code that generates new
`browser windows when the cursor is positioned over a link. The web page
`corresponding to the link is then retrieved into that window. When the mouse is
`positioned over a second link, a new browser window is opened with the link's web
`page. When the mouse is positioned over a link already accessed, no action is taken
`to prevent duplicate windows of the same web page. The accompanying screen dump
`from a browser indicates the results achieved.
`
`< html >
`
`<!--This JavaScript/HTML source code is designed to open a new browser
`window when the mouse pointer is moved over a hyperlink. The new
`window displays the Web page referred to by the link. If the user
`clicks the mouse button over a hyperlink, the associated URL is
`loaded.-->
`
`< head >
`< title > Ja