WO1998004983A1 - Hierarchical structure editor for web sites - Google Patents
Hierarchical structure editor for web sites Download PDFInfo
- Publication number
- WO1998004983A1 WO1998004983A1 PCT/US1997/012820 US9712820W WO9804983A1 WO 1998004983 A1 WO1998004983 A1 WO 1998004983A1 US 9712820 W US9712820 W US 9712820W WO 9804983 A1 WO9804983 A1 WO 9804983A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- page
- new
- site
- user
- int
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9558—Details of hyperlinks; Management of linked annotations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
Definitions
- This application relates to the World Wide Web and, in particular, to a method and apparatus for managing elements of a World Wide Web site having multiple pages.
- the Web is built around a network of "server” computers, which exchange requests and data with each other using the hypertext transfer protocol ("http").
- http hypertext transfer protocol
- HTML Hypertext Markup Language
- HTML language that extend the HTML language, including forms and tables.
- a user views a Web page using one of a number of commercially available "browser" programs.
- the browser submits an appropriate http request to establish a communications link with a Web server of the network.
- a typical http request references a Web page by its unique Uniform Resource Locator ("URL").
- URL Uniform Resource Locator
- a URL identifies the Web server hosting that Web page, so that an http request for access to the Web page can be routed to the
- Web pages can also be linked graphically to each other.
- the HTML to describe a Web page is often created by hand by a human
- a Web "site” consists of a "homepage” and several other related pages. Each page has corresponding HTML that describes the appearance and function of the page.
- the HTML for the homepage usually contains links to one or more of the other pages and the other pages often contain respective links back to the homepage.
- the browser requests and displays the linked-to
- the prior art by using a "top-down" approach to designing a Web page.
- the user can use a "drag and drop” interface to move icons representing Web pages into a desired hierarchy of pages for the site.
- the hierarchy can, but does not necessarily represent links between the pages of the site.
- the user drags and drops display elements to define the hierarchy of the site and to define the layout of each page in the site.
- the present invention automatically generates a layout for each page. This layout contains display
- a preferred embodiment also automatically
- the publish function automatically generates HTML for each page of the site in accordance with the display elements of each page.
- the publish function generates an HTML table for each page.
- the invention is a method of allowing a user to define a World Wide Web site having a plurality of pages with a hierarchical organization comprising the steps, performed by a data processing system, of:
- the layout data structure having a link in accordance with the position of the new page in the site hierarchy.
- the invention is a method of allowing a user to
- the hierarchy of the page icons reflects the hierarchal organization of the pages; receiving an indication that the user has dragged one of the page icons in the site hierarchy from an old position to a new position; displaying, in accordance with the new position, an indicator on a second page icon
- Fig. 1 is a block diagram of a computer system in accordance with a preferred embodiment of the present invention.
- Fig. 2 is a block diagram showing input and output to structure editor
- Fig. 3 shows a first display on a display device generated in accordance with the embodiment of Fig. 1 , where the display shows all pages of a Web
- Fig. 4 shows a second display on a display device generated in accordance with the embodiment of Fig. 1 , where the site has multiple pages added and one page has been moved from its original position.
- Fig. 5(a) show an example of an internal representation of page objects corresponding to the pages of Fig. 3 before the page is moved.
- Fig. 5(b) show an example of an internal representation of objects corresponding to the page objects of Fig. 4 after the page is moved.
- Fig. 6 shows an alternate display for the objects of Fig. 5(b).
- Fig. 7 shows a format of a page object corresponding to a page in the
- Fig. 8 is a flow chart showing initialization steps performed by the structure editor software.
- Fig. 9 is a flow chart showing steps performed by the structure editor
- Fig. 1 0 is a flow chart showing steps performed by the structure editor software when the user selects a node.
- Fig. 1 1 is a flow chart showing steps performed by the structure editor software when the user moves a node.
- Fig. 1 2 is a flow chart showing steps performed by the structure editor software when the user changes the profile of a page.
- Fig. 1 3 is a flow chart showing steps performed by the structure editor
- Fig. 1 4(a) is a flow chart showing steps performed by the structure editor software when the user changes a view of the site.
- Fig. 1 4(b) shows an example of a View tab.
- Fig. 1 5(a) is a flow chart showing steps performed by the is a flow chart showing steps performed by the structure editor software when the user changes a view of the site.
- Fig. 1 5(b) shows a collapsed node.
- Fig. 1 6 is a flow chart showing steps performed by the structure editor
- Fig. 1 7 shows an example of adding a child page to the site.
- Fig. 1 8 shows an example of adding a sibling page to the site.
- Fig. 1 9 shows an example of a stacked data page in the site view.
- Fig. 20 shows an example of a horizontal display of pages of a site.
- Fig. 21 shows an example of a vertical display of pages of a site.
- Fig. 22 shows an example of an initial page layout before the user has
- Fig. 23 is a flow chart showing steps performed by the structure editor
- Fig. 24 is an example showing an internal representation stored in a
- Fig. 25 is an example of a draw object for a page banner.
- Figs. 26(a) and 26(b) are examples of a draw object for a navigator
- Fig. 27 is an example of a draw object for a text navigator button.
- Fig. 28 shows an example of a display used to allow the user to publish
- Fig. 29 shows an example of a display used to allow the user to specify
- Fig. 30 is a flow chart showing steps performed by the structure editor software to publish all the pages of a site.
- Fig. 31 is a flow chart showing steps performed by the structure editor software to publish a single page.
- Fig. 32 is a flow chart showing steps performed by the structure editor
- Fig. 33 is a flow chart showing steps performed by the structure editor software to generate initial HTML for a page.
- Fig. 34 is a flow chart showing further steps performed by the
- structure editor software to generate an HTML table for layout elements of a page, such as a header, body, and footer.
- Fig. 35 is a flow chart showing steps performed by the structure editor
- Fig. 36 is an example of steps performed by the structure editor to generate final HTML for a site.
- Fig. 37 is an example of first steps involved in determining an HTML
- Fig. 38 is an example of second steps involved in determining an HTML table size.
- Fig. 39 is an example of a matrix generated by the steps of Figs. 37
- Fig. 40 is a block diagram of how the matrix of Fig. 39 is used to generate an HTML table, which a browser uses to display a portion of a page.
- Fig. 41 shows an example of a Style display.
- Fig. 42 shows an example of an Assets Display.
- Fig. 43 shows an example of a plurality of link dialog boxes, showing a structural link, an internal link, and an external link.
- Fig. 44 is a flow chart showing identification of structural links for a page. DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
- Fig. 1 is a block diagram of a computer system 1 00 in accordance with a preferred embodiment of the present invention.
- Computer system 100
- Computer 1 00 also includes an input device 1 61 , such as a floppy
- CD ROM compact disc drive or CD ROM reader, that reads computer instructions and data stored on computer readable medium 1 62, such as a floppy disk or a CD ROM.
- Computer instructions are the instructions of e.g., structure editor software 1 20.
- Memory 104 includes structure editor software 1 20, page objects, layout objects, and draw objects 1 30, HTML 1 40, and image files 1 40, etc., as described in further detail below.
- memory 104 also contains additional information, such as application programs, operating
- computer system 100 can also include
- Fig. 2 is a block diagram showing input and output to structure editor software 1 20 of Fig. 1 .
- Structure editor 1 20 includes a portion 202 that creates and manages a hierarchy of pages and a portion 204 that publishes the pages of the site. The user uses a drag and drop interface to define the
- Pages in the site can include new text and images or
- publish portion 204 preexisting text and images.
- the user initiates publish portion 204 by clicking on a "publish" button as described below.
- Publish portion 204 generates a
- Each page includes one or more
- Fig. 3 shows a "site view" displayed on display device 1 60.
- the display of Fig. 3 is displayed by processor 102
- Fig. 3 is also displayed when the user selects Site button 302.
- Fig. 3 shows that the software automatically creates a node representing a "Home" page and displays an icon 350 corresponding to the home page node.
- the display of Fig. 3 includes a plurality of buttons: a "Site” button 302, a "Page” button 304, a “Style” button 306, an "Assets” button 308, and
- the display also includes a "Preview” button 31 2, a
- buttons 302-31 4 are discussed below in turn.
- the Goto and Last buttons 31 6, 31 8 transfer control to a most recent display or a user-selected previous
- the display of Fig. 3 further includes a "Structure View" toggle 320
- toggle 320 a display having a format of Figs. 3 and 4 are displayed.
- Outline View toggle 322 a display having a format of Fig. 6 are displayed.
- the user can drag and drop page icons in either the Structure view
- the display of Fig. 3 further includes a "Tools” window 324.
- Tools window 324 includes a “cursor” tool, and “zoom in” and “zoom out” tools, as
- windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are known in the art. Depending on the implementation used, windows are
- the display of Fig. 3 further includes a "Properties” window 326.
- Properties window 326 includes three tabs: a "View” tab 328, a "Site” tab 330, and a “Page” tab 332. Properties window currently shows page
- Properties window 326 includes
- a "Name” area 334 a "Page Type” area 336, a "Publish/Don't Publish” area 338, a "Color” area 340, a “Status” area 342, and a “Comments” area 344.
- the user can "select” a page icon, such as page icon 350, in a manner known to person of ordinary skill in the art. When a page icon is selected, the
- values shown in Properties window 326 are values for the selected page.
- Properties window 326 is "Home.”
- the page type is "normal.” ("Stacked pages” are discussed below). The user has indicated that the page should be published during the Publish function. (The user also can indicate that the page
- Fig. 4 shows a second display on a display device generated in accordance with the embodiment of Fig. 1 , where the user has added multiple pages to the site and one page has been moved from its original position.
- the site hierarchy uses a
- Each branch of the tree represents a “logical” (or “structural")
- links between the pages may also represent links between the pages, but do not necessarily represent such links. Moreover, links between pages may exist that do not represent
- Fig. 4 shows a display after the user has selected page icon "Files” 466 and dragged page icon 466 on top of page icon 474.
- page icon 466 is highlighted when it is selected.
- a page icon When a page icon is dragged, it is represented by a dotted outline of a page icon (not shown).
- Fig. 4 when the user drags a first icon on top of a second icon, the first icon is displayed with an arrow indicating where the
- FIG. 1 7 shows another example of moving a
- FIG. 1 8 shows an example of moving a page icon so that it becomes a sibling page icon. If, in Fig. 4, page icon 466 was moved to the left side of icon 474 instead of to the bottom, an arrow would appear on the left side of icon 474, indicating where the page
- page icon 466 will connect to page icon 474 if it is dropped. Thus, in Fig. 4, if the user drops page icon 466 on top of page icon 474 (and slightly to the left, not shown), page icon 466 will be displayed as "sibling" of page icon 474 (and removed from its previous display location).
- Fig. 5(a) show an example of an internal representation of page objects corresponding to the page icons of Fig. 4 before page icon 466 is moved. Page objects and page icons are also called "nodes.”
- the page objects of Fig. 5(a) form a tree data structure in memory 1 04.
- Page object 502 is a child of a
- each node has zero or one "first children.”
- children of the node are indicated as "next siblings" of the first child.
- Fig. 5(b) show the internal representation of page objects corresponding
- Page object 502
- page icon 466 has been moved to be a child of "Poles" page icon 474.
- Fig. 7 shows a format of a page object 700.
- Each page object of Figs. 5(a) and 5(b) has this format.
- Fig. 7 shows only the information in the object, not the size or type of the information.
- Page object 700 includes an object number, an object type, an object name (e.g., "Products"), a collection number (currently unused), a number of a parent node/page, a next sibling number, a first child number, a pointer to a list of draw objects in a current layout of the
- FIG. 8 is a flow chart showing initialization steps performed by structure
- Step 802 opens the initial window of Fig.
- Step 804 sets default values for the site in memory 104. These default
- Step 806 creates and displays a page object for the homepage (root node) of
- the created page object has a format shown in Fig. 7
- Step 808 stores default initial values in the root page
- the default name is "Home”.
- the default class is node.
- the default layout includes a banner having the default name
- the stacked flag defaults to "false.”
- the expanded flag and the publish flag default to "true.”
- the color of the page icon defaults to a predetermined page icon color. Alternately, the each level of page icon
- Fig. 9 is a flow chart showing steps performed by structure editor software 1 20 to create a new page in the site. The steps of Fig. 9 are
- step 906 creates a page object in memory for the new page. If the
- step 910 the new node is made a next sibling of the existing child node. Otherwise, in step 910
- a new page is always
- draw objects are automatically created for that page. These draw objects represent links in the page layout to other nodes in the site. Currently links are created in the header and the footer of the new page to the homepage, to the
- Links can also be generated for (future) children of the new page.
- the described embodiment automatically creates "structural links. " A draw object is created for each link.
- a structural link represents a link to a node having a
- a page can contain a structural link to a sibling page.
- the actual identity of the sibling page is not determined when the draw object for the link is created.
- the identity of the link is created when the page containing the link is displayed,
- Fig. 43 shows an example of a plurality of dialog boxes for different types of links.
- Fig. 1 0 is a flow chart showing steps performed by structure editor
- step 1002 the software 1 20 when the user selects a page icon/node (step 1002).
- processor 102 displays the selected page icon in a predetermined color, or by drawing a line around the selected page icon, or by displaying some similar indication of selection.
- Processor 1 02 also sets a value in memory 104 indicating the current selected node.
- Fig. 1 1 is a flow chart showing steps performed by structure editor
- step 1 104 the page icon for the homepage cannot be moved.
- step 1 1 06 if the selected node is close to the side of another node then, in step 1 108, the node is highlighted and an arrow is displayed on the corresponding side of that node. In step 1 1 10, if the selected node is close to the bottom of another
- step 1 1 1 2 the node is highlighted and an arrow is displayed on
- step 1 1 14 if the selected node has been dropped, if the dropped
- node is not near another node (either side or bottom), then no action is taken.
- Step 1 1 20 removes the selected node (and all its children) from its
- Step 1 1 22 adds the selected page icon/node (and all its children) to its new display position.
- Step 1 1 24 changes one or more page objects in memory so that the page is correctly linked into its new position in
- step 1 1 26 the draw objects of the selected page are altered so that when the selected page is displayed by a browser, the selected page contains links to its new parents, siblings, and/or
- Fig. 1 2 is a flow chart showing steps performed by structure editor
- values in the profile window are the current values from the selected page icon/node. If the user enters a page name in step 1 206 then, in step 1 208, the name is stored in a corresponding page object having the format of Fig. 7. In
- step 1 21 2 the new name is displayed in the page icon on the display.
- the name is changed in any existing draw objects for the selected page (i.e., banners, etc.). Moreover, if other pages link to the selected page, then the name is also changed in any other draw objects of those pages.
- step 1 21 2 If the page contains "smart links. " the identity of the linked-to page is not determined until the page is displayed, previewed, or published. If the user selects "publish” or “don't publish” in step 1 21 2 then, in step 1 214, the value of the publish flag is changed accordingly and, in step 1 21 6, a dot indicating "publish” is displayed in the page icon. If the user
- step 1 224 If the user selects "done” or "not done” in step 1 224 then, in step 2 224 then, in step
- the done flag in the corresponding page object is changed accordingly and a checkmark indicating "done" is displayed in the page icon. If the user
- step 1 228 has entered comments in step 1 228 then, in step 1 230, the comments in the
- Fig. 1 3 is a flow chart showing steps performed by structure editor
- the user can change the style and name for the site and save the creation and edit dates.
- Fig. 14(a) is a flow chart showing steps performed by structure editor software 1 20 when the user clicks on a View tab of a Site property window.
- Fig. 14(b) shows
- FIG. 20 shows a horizontal view of the site hierarchy.
- Fig. 21 shows a vertical view of the site hierarchy.
- Fig. 1 5(a) is a flow chart showing steps performed by structure editor
- FIG. 1 5(b) shows an example of a collapsed node. When a node is collapsed, its collapsed flag is set to "true.”
- Fig. 1 6 is a flow chart showing steps performed by structure editor
- Fig. 1 9 shows an example of adding stacked data pages to the site hierarchy.
- a page is a stacked page, it is displayed as overlapping pages
- Fig. 22 shows an example of an initial page layout before the user has edited it. Fig. 22 is displayed after the user indicates that he wants to edit a
- the display of Fig. 22 is generated by a "page editor".
- the described embodiment of the present invention automatically creates draw objects in memory for each page of the
- the automatically created draw objects reflect links between pages of the
- Fig. 22 creates a page having three parts: a header
- Header 2202 automatically contains a banner 2210 and a plurality of navigator buttons 221 2.
- the banner contains the name of the
- Navigator buttons 221 2 include buttons for home page 250 ("Home button 221 4), the Welcome page 252 ("Welcome” button 221 6), and the “Private” page (“Private” button 221 6).
- Navigator buttons 221 2 preferably include an image, such as the 3D button
- This image may be predefined or defined by the user through use of a pop-up window.
- the navigator buttons 221 2 automatically include buttons corresponding to the home page, to the first hierarchical level below the homepage, and to the parent page.
- Alternate implementations of the present invention automatically display navigator buttons for one or more of the home page, the parent page, sibling pages, the first level, children pages, and any other appropriate pages.
- the user chooses which buttons corresponding to the home page, to the first hierarchical level below the homepage, and to the parent page.
- Alternate implementations of the present invention automatically display navigator buttons for one or more of the home page, the parent page, sibling pages, the first level, children pages, and any other appropriate pages.
- the user chooses which
- Footer 2206 automatically contains a plurality of text buttons 2230.
- buttons preferably correspond to the navigator buttons 221 2.
- text buttons 2230 include buttons for home page 250 ("Home text
- buttons 221 2 and 2230 are discussed in detail below.
- Fig. 22 also shows a "Properties” window 2250 in which a "View” tab is selected.
- Properties window 2250 includes three tabs: a "View” tab 2252, a "Page” tab 2254, and a “Layout” tab 2256.
- Properties window 2250 includes a "Measurement Unit” area 2260, a "Element border” area 2262, “Grid Width” and “Grid Height” areas” 2264, 2266, a “Show Grid” flag 2265, font size areas 2268, 2272, a "Color” area
- the values of Properties window 326 are properties for the displayed page.
- the grid is
- the page uses the colors described in the colors area 2272.
- splitters 2280, 2282 are displayed.
- the "Snap to Grid” property is turned off. It will be understood by persons of ordinary skill in the art that structure editor software 1 20 stores values corresponding to this Property window and each
- Fig. 24 is an example showing an internal memory representation of draw objects automatically generated by structure editor software 1 20.
- the draw objects are generated when a page layout is modified.
- the representation includes a list of objects (a layout object), representing the header, body, and footer of the page of Fig. 22.
- the list of draw objects includes a banner draw object 2402 (corresponding to banner 2210), a
- navigator buttons draw object 2404 (corresponding to navigator buttons 221 2)
- text buttons draw object 2406 (corresponding to text buttons
- all draw objects of the header 2202 are stored together in a layout object and a pointer points to the beginning of this list.
- all objects of the footer 2206 are stored together in a layout
- the object and a pointer points to the beginning of this list.
- the user has not entered any elements into the body 2204 and a pointer to body elements points to a null list.
- Fig. 25 is an example of a draw object for a page banner. It includes a
- Fig. 26(a) includes a node
- Fig. 26(a) includes a smart link to another node, which is specified by relationship, and an image. The identity of the link is determined when the page is displayed,
- Fig. 27 is an example of a draw object for a text object. It includes a node number to which it will link when displayed by a browser, a name of the linked to page, and a string displayed in the text
- each draw object contains its type, its X
- Fig. 23 is a flow chart showing steps performed by structure editor software 1 20 to display the page layout of Fig. 22 during execution of the page editor. In step 2302, the page editor determines whether this is the first
- step 2304 the
- the page layout will include the automatically generated banner, navigator buttons, and text buttons, unless the user has previously deleted
- step 2306 the editor displays the default page layout in accordance with the draw objects for the page.
- the page layout will include the automatically generated banner, navigator buttons, and text
- Step 2308 allow the user to modify the page layout using drag and
- the user exits the page editor by, e.g., clicking on Site button 302, Style button 206, Assets button 308, or publish button 310. After the user has edited a page, he can still move the page around in the site hierarchy by using the structure editor.
- the user needs to be able to generate HTML for all pages of the site.
- Fig. 28 shows an example of a display used to allow the user to publish the pages of a site.
- Fig. 28 shows a screen displayed when the user clicks on
- Fig. 28 Once the display of Fig. 28 is displayed, the user can either "stage” or “publish” his site. Generally, staging is performed first and publishing is performed once the site is debugged. Staging and publishing are substantially the same, differing in when they are performed during the site development process. The user can also set configuration parameters to control the publishing or staging process. Clicking
- Window 2902 allows the user to indicate
- certain attributes of the HTML to be generated for the site e.g., text only, black and white (grey scale), or low-resolution.
- Fig. 30 is a flow chart showing steps performed by structure editor
- steps of Fig. 30 are performed by processor 1 02 executing instructions in structure editor software 1 20.
- steps 3002 through 301 0 form a loop repeated for each page in the site, i.e., for each page object stored in the
- the tree of page objects is traversed in
- step 3004 For each page object, in step 3004, if the stacked flag of the current page object indicates that the current page is a stacked page, then
- processor 102 creates HTML for a plurality of pages. If the current page object
- processor 1 02 builds HTML for a "normal" page. In either case, the HTML for the page is then written to a storage medium of the system.
- each page object has a
- each list of draw objects describing the elements of the page for the header, body and footer of the page, and that processor 102 generates HTML in accordance with the draw objects.
- each list of draw objects describing the elements of the page for the header, body and footer of the page, and that processor 102 generates HTML in accordance with the draw objects.
- the draw objects of a page may also represent other, additional links added by the user that are not a part of the site hierarchy.
- the user can use the page editor to remove some of the automatically generated draw objects links if he so desires. Unless the user
- the generated HTML for each page will contain links to the home, parents, siblings, and/or children pages for each
- Fig. 31 is a flow chart showing steps performed by the structure editor software to publish a normal page.
- Fig. 32 is a flow chart showing steps performed by the structure editor software to publish a stacked page. The steps of Figs. 31 and 32 are similar, except that the steps of Fig. 32 generates multiple HTML pages for the stacked page. Step 31 10 creates initial HTML for
- Steps 31 04-3108 create HTML tables for each of the header, body, and
- Step 31 10 creates final HTML for the end of the page as shown in Fig. 36.
- the preferred embodiment generates
- Fig. 32 shows the creation of a plurality of HTML pages for a stacked page.
- Each HTML contains, for example, data for one record of a database associated with the stacked page.
- Each of the plurality of HTML pages has a
- Each page of the plurality of pages has the same format, but different data.
- Step 3314 of Fig. 33 shows that the HTML for a page includes a tag specifying the colors that a browser will use to display regular, visited, and active links.
- Other embodiments specify other HTML tags that specify other attributes common to the page.
- Fig. 34 is a flow chart showing steps to build an HTML table.
- an HTML table is generated for the header, body, and footer of each page.
- Steps 3402-3408 generate a matrix in memory 104 as discussed below in connection with Figs. 37-40.
- Step 3410 create the HTML
- Step 3502 writes a table tag including a border of zero width and cellpadding and cellspacing of
- Step 3504 generates a table header including column and width
- Steps 3506-351 8 go through each row and column of the matrix to generate a plurality of cells in the HTML table. Some of the cells in the HTML table can be several columns wide and/or several rows
- Step 3520 generates an end of table tag.
- Fig. 37 is an example of first steps involved in determining an HTML table size for a layout element of a header, body, or footer.
- the example the
- layout element has four display elements. Each display element corresponds to
- each draw object has an X
- Each draw object also has a Y position (a start row) and a length.
- Each draw object also has a Y position (a start row) and a length.
- a first column edge is the X start position and a second column edge is the X start position plus the length.
- a first row edge is the Y start position and a second row edge is the Y start position plus the height.
- edges and columns edges for a current page yielding data 3702 and 3704.
- Fig. 37 is an example of second steps involved in determining an HTML table size for a layout element. Once the column and row edges of the draw
- edges are sorted, duplicate edges are removed from
- the sorted list yielding unique row edges and unique column edges (steps 3404 and 3406 of Fig. 34).
- the unique rows edges and column edges are then counted.
- the objects have six column edges and seven row edges.
- Fig. 39 is an example of a matrix 3802 generated in accordance with the edges and draw objects.
- Matrix 3902 has a number of rows equal to the number of row edges plus one.
- the matrix has a number of columns equal to
- the matrix has seven columns and eight rows.
- Each element 3904 of the matrix has a pointer field and an occupied flag.
- column 3 points to object number 4 and is marked as occupied.
- Fig. 40 is a block diagram of how the matrix 3902 is used to generate an HTML table.
- the HTML table is used by a browser to display a portion of a page on display device 1 60 (such as a header, body, or a footer, (an alternate
- embodiment of the present invention creates a single table for each page of the site).
- Each element of the matrix is used to generate a cell in an HTML table (although some cells occupy more than one row or more than one column) .
- the matrix element in row 1 , column 1 causes an empty table cell to
- Each row in the HTML table has a height in pixels that is equal to the height for that matrix row.
- Each cell in the HTML table has a width that
- Fig. 41 shows an example of a Style display.
- the display of Fig. 41 is shown when the user selects Style button 306.
- the Style button display allows the user to select an overall default appearance of all pages in the site.
- the user can override the style for a given page by defining a different style for
- the values shown in Fig. 41 are stored in locations of memory 104.
- the automatic generation of banners, navigation buttons, and text buttons is performed in accordance with user-specified style values.
- Fig. 42 shows an example of an Assets Display.
- the Assets display shows the files, links, and objects in the data processing system.
- the assets shown in Fig. 42 are the draw objects for the "Products" page of
- Fig. 43 shows an example of a plurality of link dialog boxes, showing a
- Fig. 44 is a flow chart showing identification of structural links for a page.
- the links preferably are identified when the page is displayed, previewed or published. Internal and external links are "absolute" links. Structural links
- the node-that-is-linked-to is identified by looking at the page hierarchy specified by the page layout tree. After the node is identified, the processor finds the URL, name, etc of the node and generates the display or HTML for the
- the described embodiment of the present invention allows a user to define a hierarchy of pages for a Web Site.
- Each site that reflects the user-defined site hierarchy.
- Each page has an associated plurality of draw objects that define the display elements of the page.
- HTML code for each page.
- each page will have an automatically created banner and automatically created links to other pages of the site.
- the links can be structural links (smart links), internal links, or external links.
- pages of the site conform to a user-specified style.
- CDrawPicture (const CRect& position) ; -CDrawPicture() ; virtual void Serialize(CArchive anyway) ?
- T_TEXT 0, // Dummy token just use to communicate that its a text token
- T_UNDERLINEON // underline T JNDERLINEOFF, T_STRIKEOUTON, // strikeout T_STRIKE0UTOFF,
- T_DUMMY1 // Raw html code. Used to insert HTML code directly into the token stream
- T_FACE // Font face stored as T_FACE ⁇ name>
- T__SIZE // Size of font; stored as T_SIZE [size]
- T_COLOR // Change to COLORREF color; stored as T_COLOR ⁇ COLORREF> T_COL0R
- T_HEADING // Heading marker
- T_PARAFMT // Formatting belonging to T_PARAGRAPH - stored as T_PARAFMT ⁇ ParaFormat> T_PARAFMT
- T_SYMBOL // Stores a symbol ⁇ T_SYMBOL> symbol value (int) ⁇ T_SYMBOL> T__HTMLTAG, // A HTML tag stored
- T_PARAGRAPH // New paragraph T_SOFTNEWLINE, // Soft end of line - autowrap symbol
- T_LINKNAME // Link name stored as T_LINKNAME ⁇ display text T_LINKNAME2
- T_LIN URL // Link URL stored as T_LINKURL ⁇ url>
- BOOL bColorOverride 1; // Is the color currently overridden short iSize : 7; // b
- BOOL bltalic 1;
- TALIGN_LEFT 0X01 ⁇ define TALIGN_CENTER 0x02 ⁇ define TALIGN_RIGHT 0x04 struct FindReplaceData ( int ilndex;
- BOOL getlndex // is index valid, if not then pos is valid - calc index in UpdateCaret // index into m_text; // if index set - status if its OK
- FontAttrib fa // FontAttrib for the start of the line after all heading and aling have been applied int iStyleldx; // Index of the style used int fFlags; // Flags for the line
- MAX_FONT_LENGTH 256 Max size for a font face name
- BOOL bSelectAnchor // Are we currently selecting using achor point static CStringArray *m_FontFaceArray; // Font face list private: int ⁇ a_needsWrap;
- CFont m_CFont //Active font, setup during calls to gettextsegment int m_iWrapIdxl; int m_iWrapIdx2 ; int m_maxT ⁇ xt; ///maximum allocated text int insertlndex; int m_haveCaretAndHeight; int m iCaretWidth;
- LinelnfoStruct * m_lineInfo // display lines int m_nLines; // used lines in above int m maxLine ⁇ ; // max no lines int m_hMarg; int m_vMarg; static CTextStyle *m_pTextProp; //property sheet belonging to object static BOOL bReturnFirstPara; //return a ⁇ P> at start of data
- BOOL bRecordUndo // wheater to record or not in : :Insert and : :Delete CaretStruct m__caret[2]; //cursor/block location, if postions are the same, no marking
- ExtFontAttrib m_FontSet // Settings set while gettextsegment traverses text ExtFontAttrib m_01dFontSet; // Compare copy for SelectFont int m_TrueHeight; //true height of text, different than size when m_Locked is TRUE private: static COLORREF m_TextColor; static COLORREF m TextLinkColor; protected:
- BOOL SetJavaEven ( int iJavaEventld) ; // External access methods COLORREF G ⁇ tBackColor( void) ; void SetBackColor( COLORREF c) ; BOOL GetTransparent( void) ; void SetTransparent( BOOL t) ; BOOL GetLockedSize( void) ; void SetLockedSize( BOOL Is) ; BOOL I ⁇ StyleU ⁇ ed( CString *psStyleName) ; void ResizeToOneLine( CLayoutView *pView, int ilndex « 0) ; void ResizeObject( CLayoutView *pView, int ix, int iY) ; void GetWordCounts( int *pLine, int *pPara, int *pWord, int *pChars) ;
- BOOL SelectFont ExtFontAttrib* fs, CDC *pDC) ; void AsciiSelectAll( void); void MouseSelectWord(CLayoutView* pView, UINT nFlags, const CPoint* point) ; void MouseSelectParagraph(CLayoutView* pView, UINT nFlags, const CPoint* point) ; void UpdateCarets( CLayoutView *pView) ; BOOL IsEmptyO ; char extChar(int* istart) ; char PrevChar(int* istart) ;
- BOOL DeleteSelection( void) int ExtractAsciiToBuffer( char *pText, int ilndexl, int ilndex2, int iLen) ; public: void Delete( int index, int count) ; private:
- BOOL SkipJunk ( int* index, BOOL bForward) ; void UpdateCaret(char token, int iC, int nL, int istart, int nChars, CPoint gpos, CDC *pDC) ; void UpdateselectRegion( CLayoutView* pView) ; void RemoveSelectRegion( CLayoutView* pView) ; void FreeSelectRegion( void) ; void lnvertSelectRegion( CDC *pDC) ;
Abstract
A method and apparatus for a structure editor implementing a 'top-down' approach to designing a Web page. The user uses a 'drag and drop' interface to add, delete, and move display elements to define the hierarchy of the site and to define the layout of each page in the site. The present invention automatically generates a layout for each page. This layout contains display elements that represent the links between pages of the site. The present invention automatically adds, removes, and deletes the appropriate links between the pages of the site as the user moves display elements. After the user has defined the hierarchy of the site and the layout of each page in the site, the user 'publishes' the site. The publish function automatically generates HTML for each page of the site in accordance with the display elements of each page, yielding true WYSIWYG pages for the site.
Description
HIERARCHICAL STRUCTURE EDITOR FOR WEB SITES
FIELD OF THE INVENTION
This application relates to the World Wide Web and, in particular, to a method and apparatus for managing elements of a World Wide Web site having multiple pages.
BACKGROUND OF THE INVENTION
The past several years have seen an explosive growth of the World Wide Web ("the Web"). The Web is built around a network of "server" computers, which exchange requests and data with each other using the hypertext transfer protocol ("http"). A human designer designs the layout of a
Web page, which is then specified using HTML ("Hypertext Markup Language") . Several versions of HTML are currently in existence. Examples include HTML versions 2.0 and 3.0, as specified by the WWW Consortium of
MIT. Netscape Communications Corp. has specified additional HTML features
that extend the HTML language, including forms and tables.
A user views a Web page using one of a number of commercially available "browser" programs. The browser submits an appropriate http request to establish a communications link with a Web server of the network.
A typical http request references a Web page by its unique Uniform Resource Locator ("URL"). A URL identifies the Web server hosting that Web page, so that an http request for access to the Web page can be routed to the
appropriate Web server for handling. Web pages can also be linked graphically to each other.
The HTML to describe a Web page is often created by hand by a human
being. If the design of the page changes, the corresponding HTML must be rewritten, which is an exacting process. Although several conventional HTML editors exist, these editors only allow the user to specify certain elements of a
page and still require the user to enter HTML code. Conventional HTML editors
allow the user to specify the page content and general layout, but do not provide the user with "What You See Is What You Get" (WYSIWYG) capability. Thus, the pages generated by conventional HTML editors look different when
viewed by different browsers.
A Web "site" consists of a "homepage" and several other related pages. Each page has corresponding HTML that describes the appearance and function of the page. For example, the HTML for the homepage usually contains links to one or more of the other pages and the other pages often contain respective links back to the homepage. When the user clicks on a link of the displayed homepage, the browser requests and displays the linked-to
page. Each link must be designed and coded into the HTML for the page.
Thus, for example, when a human designer decides to remove a link between the homepage and another page, the HTML for the homepage must be changed to reflect the removed link. This process is exacting and requires that the user
manually change the link. Moreover, if the linked-to page has another link back
to the homepage, that link may also need to be changed.
It is usually desirable to have a consistent style for all pages of a site. When the user hand codes the HTML for each page of a site, it is difficult for
the user to remember to use a consistent style. In addition, if the user decides
to change the style of a site, each page must be changed individually.
SUMMARY OF THE INVENTION
The present invention overcomes the problems and disadvantages of
the prior art by using a "top-down" approach to designing a Web page. The user can use a "drag and drop" interface to move icons representing Web pages into a desired hierarchy of pages for the site. The hierarchy can, but does not necessarily represent links between the pages of the site.
The user drags and drops display elements to define the hierarchy of the site and to define the layout of each page in the site. The present invention automatically generates a layout for each page. This layout contains display
elements that represent the links between pages of the site. Thus, the user
does not have to manually specify links for each page. As the user drags and drops icons to add, move, and delete pages of the site hierarchy, the present invention will automatically add, remove, and delete the appropriate links
between the pages of the site. A preferred embodiment also automatically
creates a banner across the top of each page that contains a user-specified page name.
After the user has defined the hierarchy of the site and the layout of
each page in the site, the user "publishes" the site. The publish function
automatically generates HTML for each page of the site in accordance with the display elements of each page. In the described embodiment of the present invention, the publish function generates an HTML table for each page. The
number of cells in each table reflects the number and placement of display
elements on a corresponding page, yielding a true WYSIWYG page for the site.
In accordance with the purpose of the invention, as embodied and
broadly described herein the invention is a method of allowing a user to define a World Wide Web site having a plurality of pages with a hierarchical organization comprising the steps, performed by a data processing system, of:
receiving an indication that the user wants to add a new page at a position in
the site hierarchy; adding a page data structure for the new page to a tree of other page data structures reflecting the site hierarchy, where the page data structure is added in accordance with the position of the new page in the site
hierarchy; and automatically creating in the memory a layout data structure for
the new page, the layout data structure having a link in accordance with the position of the new page in the site hierarchy.
In further accordance with the purpose of this invention, as embodied
and broadly described herein the invention is a method of allowing a user to
define a World Wide Web site having a plurality of pages with a hierarchical organization comprising the steps, performed by a data processing system of:
displaying a plurality of page icons in a hierarchical fashion, on a display device
where the hierarchy of the page icons reflects the hierarchal organization of the pages; receiving an indication that the user has dragged one of the page icons in the site hierarchy from an old position to a new position; displaying, in accordance with the new position, an indicator on a second page icon
indicating where the new page icon would be added in the site hierarchy;
receiving an indication that the user wants to move the new page to the new
position; removing the page icon from the old position on the display device;
displaying the page icon in proximity to the indicator; and moving a page
object, corresponding to the moved page icon, within a tree structure in accordance with the new position of the moved page icon.
Advantages of the invention will be set forth in part in the description
which follows and in part will be obvious from the description or may be learned by practice of the invention. The advantages of the invention will be
realized and attained by means of the elements and combinations particularly
pointed out in the appended claims and equivalents.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute
a part of this specification, illustrate several embodiments of the invention and, together with the description, serve to explain the principles of the invention.
Fig. 1 is a block diagram of a computer system in accordance with a preferred embodiment of the present invention.
Fig. 2 is a block diagram showing input and output to structure editor
software of Fig. 1 .
Fig. 3 shows a first display on a display device generated in accordance with the embodiment of Fig. 1 , where the display shows all pages of a Web
site.
Fig. 4 shows a second display on a display device generated in accordance with the embodiment of Fig. 1 , where the site has multiple pages added and one page has been moved from its original position.
Fig. 5(a) show an example of an internal representation of page objects corresponding to the pages of Fig. 3 before the page is moved.
Fig. 5(b) show an example of an internal representation of objects corresponding to the page objects of Fig. 4 after the page is moved.
Fig. 6 shows an alternate display for the objects of Fig. 5(b).
Fig. 7 shows a format of a page object corresponding to a page in the
site.
Fig. 8 is a flow chart showing initialization steps performed by the structure editor software.
Fig. 9 is a flow chart showing steps performed by the structure editor
software to create a new page in the site.
Fig. 1 0 is a flow chart showing steps performed by the structure editor software when the user selects a node.
Fig. 1 1 is a flow chart showing steps performed by the structure editor software when the user moves a node.
Fig. 1 2 is a flow chart showing steps performed by the structure editor software when the user changes the profile of a page.
Fig. 1 3 is a flow chart showing steps performed by the structure editor
software when the user changes a property of the site.
Fig. 1 4(a) is a flow chart showing steps performed by the structure editor software when the user changes a view of the site.
Fig. 1 4(b) shows an example of a View tab.
Fig. 1 5(a) is a flow chart showing steps performed by the is a flow chart showing steps performed by the structure editor software when the user changes a view of the site.
Fig. 1 5(b) shows a collapsed node.
Fig. 1 6 is a flow chart showing steps performed by the structure editor
software when the user expands a branch on the display.
Fig. 1 7 shows an example of adding a child page to the site.
Fig. 1 8 shows an example of adding a sibling page to the site.
Fig. 1 9 shows an example of a stacked data page in the site view. Fig. 20 shows an example of a horizontal display of pages of a site.
Fig. 21 shows an example of a vertical display of pages of a site.
Fig. 22 shows an example of an initial page layout before the user has
edited it.
Fig. 23 is a flow chart showing steps performed by the structure editor
software to display the page layout of Fig. 22.
Fig. 24 is an example showing an internal representation stored in a
memory of objects automatically generated on the page by the structure editor. Fig. 25 is an example of a draw object for a page banner.
Figs. 26(a) and 26(b) are examples of a draw object for a navigator
button.
Fig. 27 is an example of a draw object for a text navigator button. Fig. 28 shows an example of a display used to allow the user to publish
the pages of a site.
Fig. 29 shows an example of a display used to allow the user to specify
details of how to publish a site.
Fig. 30 is a flow chart showing steps performed by the structure editor software to publish all the pages of a site.
Fig. 31 is a flow chart showing steps performed by the structure editor
software to publish a single page.
Fig. 32 is a flow chart showing steps performed by the structure editor
software to publish a stacked page.
Fig. 33 is a flow chart showing steps performed by the structure editor software to generate initial HTML for a page.
Fig. 34 is a flow chart showing further steps performed by the
structure editor software to generate an HTML table for layout elements of a page, such as a header, body, and footer.
Fig. 35 is a flow chart showing steps performed by the structure editor
software to generate an HTML table.
Fig. 36 is an example of steps performed by the structure editor to generate final HTML for a site.
Fig. 37 is an example of first steps involved in determining an HTML
table size.
Fig. 38 is an example of second steps involved in determining an HTML table size.
Fig. 39 is an example of a matrix generated by the steps of Figs. 37
and 38.
Fig. 40 is a block diagram of how the matrix of Fig. 39 is used to generate an HTML table, which a browser uses to display a portion of a page.
Fig. 41 shows an example of a Style display.
Fig. 42 shows an example of an Assets Display.
Fig. 43 shows an example of a plurality of link dialog boxes, showing a structural link, an internal link, and an external link.
Fig. 44 is a flow chart showing identification of structural links for a page. DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Reference will now be made in detail to a preferred embodiment of the invention, an example of which is illustrated in the accompanying drawings.
Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
I. System Overview
Fig. 1 is a block diagram of a computer system 1 00 in accordance with a preferred embodiment of the present invention. Computer system 100
includes a CPU 1 02; a memory 1 04; input/output lines 1 05; an input device
1 50, such as a keyboard or mouse; and a display device 1 60, such as a display terminal. Computer 1 00 also includes an input device 1 61 , such as a floppy
disk drive or CD ROM reader, that reads computer instructions and data stored on computer readable medium 1 62, such as a floppy disk or a CD ROM. These
computer instructions are the instructions of e.g., structure editor software 1 20. Memory 104 includes structure editor software 1 20, page objects, layout objects, and draw objects 1 30, HTML 1 40, and image files 1 40, etc., as described in further detail below.
A person of ordinary skill in the art will understand that memory 104 also contains additional information, such as application programs, operating
systems, data, etc., which are not shown in the figure for the sake of clarity.
It also will be understood that computer system 100 can also include
numerous elements not shown in the Figure for the sake of clarity, such as disk
drives, keyboards, display devices, network connections, additional memory,
additional CPUs, LANs, internet connections, input/output lines, etc.
II. Site Creation and Manipulation
The following paragraphs describe how the user creates a hierarchy of
pages for a site. It will be understood that all flow charts in this document represent steps performed by processor 1 02 executing instructions of structure
editor software 102.
Fig. 2 is a block diagram showing input and output to structure editor software 1 20 of Fig. 1 . Structure editor 1 20 includes a portion 202 that creates and manages a hierarchy of pages and a portion 204 that publishes the pages of the site. The user uses a drag and drop interface to define the
hierarchy of the site. Pages in the site can include new text and images or
preexisting text and images. The user initiates publish portion 204 by clicking on a "publish" button as described below. Publish portion 204 generates a
plurality of HTML pages, as described below. Each page includes one or more
HTML tables that yields a WYSIWYG Web page.
Fig. 3 shows a "site view" displayed on display device 1 60. In the described embodiment, the display of Fig. 3 is displayed by processor 102
upon beginning execution of structure editor software 1 20. The site view of
Fig. 3 is also displayed when the user selects Site button 302. Fig. 3 shows that the software automatically creates a node representing a "Home" page and displays an icon 350 corresponding to the home page node.
The display of Fig. 3 includes a plurality of buttons: a "Site" button
302, a "Page" button 304, a "Style" button 306, an "Assets" button 308, and
a "Publish" button 310. The display also includes a "Preview" button 31 2, a
"New Page" button 314, a "Goto" button 31 6, and a "Last" button 31 8. Each of buttons 302-31 4 are discussed below in turn. The Goto and Last buttons 31 6, 31 8 transfer control to a most recent display or a user-selected previous
display, in a manner known to persons of ordinary skill in the art. The
described embodiment keeps a "history" of execution of structure editor 1 20 in order to implement the Goto and Last buttons.
The display of Fig. 3 further includes a "Structure View" toggle 320
and an "Outline View" toggle 322. When the user clicks on Structure View
toggle 320, a display having a format of Figs. 3 and 4 are displayed. When the user clicks on Outline View toggle 322, a display having a format of Fig. 6 are displayed. The user can drag and drop page icons in either the Structure view
or the Outline view.
The display of Fig. 3 further includes a "Tools" window 324. Tools window 324 includes a "cursor" tool, and "zoom in" and "zoom out" tools, as
are known in the art. Depending on the implementation used, windows are
also called "dialog boxes."
The display of Fig. 3 further includes a "Properties" window 326. Properties window 326 includes three tabs: a "View" tab 328, a "Site" tab 330, and a "Page" tab 332. Properties window currently shows page
properties because page tab 332 is selected. Properties window 326 includes
a "Name" area 334, a "Page Type" area 336, a "Publish/Don't Publish" area 338, a "Color" area 340, a "Status" area 342, and a "Comments" area 344.
The user can "select" a page icon, such as page icon 350, in a manner known to person of ordinary skill in the art. When a page icon is selected, the
values shown in Properties window 326 are values for the selected page.
Thus, in Fig. 3, when "Home" page icon 350 is selected, the name field in
Properties window 326 is "Home." The page type is "normal." ("Stacked pages" are discussed below). The user has indicated that the page should be published during the Publish function. (The user also can indicate that the page
should not be published during the publish function). The color of page icon
350 is the color indicated in Color area 340. (Note that this is different from the background color of the page itself.) The user has indicated that the status of the page is "not done." The user has not entered any comments about the page. It will be understood by persons of ordinary skill in the art that structure editor software 1 20 stores values corresponding to Properties window 326 and for each Properties window and Properties tab discussed herein in memory
104. Fig. 4 shows a second display on a display device generated in accordance with the embodiment of Fig. 1 , where the user has added multiple pages to the site and one page has been moved from its original position. In
Fig. 4, the user has added page icons 452-474 by selecting (e.g., clicking) on
New Page button 31 4 for each new page icon added. Each new page icon
represents a new page added to the site hierarchy. The site hierarchy uses a
"tree" structure. Each branch of the tree represents a "logical" (or "structural")
connection between two pages. As discussed below, these logical connections
may also represent links between the pages, but do not necessarily represent
such links. Moreover, links between pages may exist that do not represent
branches of the site hierarchy.
Fig. 4 shows a display after the user has selected page icon "Files" 466 and dragged page icon 466 on top of page icon 474. The dotted line in Fig. 4
indicates the path of the dragged page icon, but is not displayed. In the
described embodiment, page icon 466 is highlighted when it is selected. When a page icon is dragged, it is represented by a dotted outline of a page icon (not shown). As shown in Fig. 4, when the user drags a first icon on top of a second icon, the first icon is displayed with an arrow indicating where the
second page icon will connect to the first page icon. Thus, in Fig. 4, if the user drops page icon 466 on top of page icon 474 (and slightly below icon 474), page icon 466 will be displayed as "child" of page icon 474 (and removed from its previous display location). Fig. 1 7 shows another example of moving a
page icon so that it becomes a child icon. Fig. 1 8 shows an example of moving a page icon so that it becomes a sibling page icon. If, in Fig. 4, page icon 466 was moved to the left side of icon 474 instead of to the bottom, an arrow would appear on the left side of icon 474, indicating where the page
icon 466 will connect to page icon 474 if it is dropped. Thus, in Fig. 4, if the user drops page icon 466 on top of page icon 474 (and slightly to the left, not shown), page icon 466 will be displayed as "sibling" of page icon 474 (and removed from its previous display location).
Fig. 5(a) show an example of an internal representation of page objects corresponding to the page icons of Fig. 4 before page icon 466 is moved. Page objects and page icons are also called "nodes." The page objects of Fig. 5(a)
form a tree data structure in memory 1 04. Page object 502 is a child of a
"Private" page object 503, since page icon 466 is a child of "Private" page icon
454. In the tree of Fig. 5(a), each node has zero or one "first children." Other
children of the node are indicated as "next siblings" of the first child.
Fig. 5(b) show the internal representation of page objects corresponding
to the page icons of Fig. 4 after page icon 466 is moved. Page object 502,
which corresponds to page icon 466, is a child of page object "Poles" 504
since page icon 466 has been moved to be a child of "Poles" page icon 474.
Fig. 7 shows a format of a page object 700. Each page object of Figs. 5(a) and 5(b) has this format. Fig. 7 shows only the information in the object, not the size or type of the information. Page object 700 includes an object number, an object type, an object name (e.g., "Products"), a collection number (currently unused), a number of a parent node/page, a next sibling number, a first child number, a pointer to a list of draw objects in a current layout of the
page (discussed below), a flag indicating whether the page is a stacked page, a
flag indicating whether the page is currently expanded on the display, a flag indicating whether the page is currently collapsed on the display, a flag
indicating whether the page should be published when the site is published, a
color of the page icon for the page, a status (e.g., "done," "not done"), and
user-entered comments. Fig. 8 is a flow chart showing initialization steps performed by structure
editor software 1 20 upon execution. Step 802 opens the initial window of Fig.
3. Step 804 sets default values for the site in memory 104. These default
values include a style of the layout, header, and footer, as discussed below.
Step 806 creates and displays a page object for the homepage (root node) of
the site in memory 104. The created page object has a format shown in Fig. 7
and has no parent node. Step 808 stores default initial values in the root page
object.
In the described embodiment, the default name is "Home". The default class is node. The default parent number, sibling number, and first child
number is "0" . The default layout includes a banner having the default name
"Home". The stacked flag defaults to "false." The expanded flag and the publish flag default to "true." The color of the page icon defaults to a predetermined page icon color. Alternately, the each level of page icon
defaults to a different predetermined color. The status defaults to "not done".
The comments default to < null > .
Fig. 9 is a flow chart showing steps performed by structure editor software 1 20 to create a new page in the site. The steps of Fig. 9 are
performed when the user selects New Page button 314 of Fig. 3. If, in step 902, the user has previously selected a page icon (also called a "node"), then processor 102 displays a new child page icon of the selected page icon in step 904. Step 906 creates a page object in memory for the new page. If the
selected node already has an existing child (step 908) then, in step 910, the new node is made a next sibling of the existing child node. Otherwise, in step
91 2, if the selected node has no children, then the new node is made a first child of the selected node. In the described embodiment, a new page is always
a normal page. Creation of stacked pages is discussed in the copending
application.
In the described embodiment, whenever a new page is created, new
draw objects are automatically created for that page. These draw objects represent links in the page layout to other nodes in the site. Currently links are created in the header and the footer of the new page to the homepage, to the
parent node, and to the "first level nodes" (i.e., to children of the homepage).
Links can also be generated for (future) children of the new page. The described embodiment automatically creates "structural links. " A draw object is created for each link. A structural link represents a link to a node having a
certain place in the site hierarchy, not a link to an absolute page. Thus, a page can contain a structural link to a sibling page. The actual identity of the sibling page is not determined when the draw object for the link is created. The identity of the link is created when the page containing the link is displayed,
previewed or published. Fig. 43 shows an example of a plurality of dialog boxes for different types of links.
Fig. 1 0 is a flow chart showing steps performed by structure editor
software 1 20 when the user selects a page icon/node (step 1002). In step
1 004, processor 102 displays the selected page icon in a predetermined color, or by drawing a line around the selected page icon, or by displaying some similar indication of selection. Processor 1 02 also sets a value in memory 104 indicating the current selected node.
Fig. 1 1 is a flow chart showing steps performed by structure editor
software 1 20 when the user moves a node. Note that, in the described embodiment, the page icon for the homepage cannot be moved. In step 1 104,
the page icon is displayed as dotted line while it is moving. In step 1 1 06, if
the selected node is close to the side of another node then, in step 1 108, the node is highlighted and an arrow is displayed on the corresponding side of that node. In step 1 1 10, if the selected node is close to the bottom of another
node then, in step 1 1 1 2, the node is highlighted and an arrow is displayed on
the bottom of that node. In step 1 1 14, if the selected node has been dropped, if the dropped
node is not near another node (either side or bottom), then no action is taken.
The user cannot drop a node so that it is not a part of the site. If the selected node has been dropped near another node (either side or bottom) then, in steps
1 1 20 through 1 1 24, the page icon/node is moved to a new position in the site
hierarchy. Step 1 1 20 removes the selected node (and all its children) from its
old display position. Step 1 1 22 adds the selected page icon/node (and all its children) to its new display position. Step 1 1 24 changes one or more page objects in memory so that the page is correctly linked into its new position in
the site hierarchy. In an alternate embodiment, in step 1 1 26, the draw objects of the selected page are altered so that when the selected page is displayed by a browser, the selected page contains links to its new parents, siblings, and/or
children. The user may, of course, alter these draw objects if he so desires. The draw objects of the new parents and siblings are also changed so that a link to the moved page will be created.
Fig. 1 2 is a flow chart showing steps performed by structure editor
software 1 20 when the user changes the profile of a page. The steps of Fig.
1 2 are performed when the user selects "Profile" from a pull down-view menu
to display Profile window 326 of Fig. 3. In the described embodiment, the
values in the profile window are the current values from the selected page icon/node. If the user enters a page name in step 1 206 then, in step 1 208, the name is stored in a corresponding page object having the format of Fig. 7. In
step 1 21 2, the new name is displayed in the page icon on the display. In an
alternate embodiment, the name is changed in any existing draw objects for the selected page (i.e., banners, etc.). Moreover, if other pages link to the selected page, then the name is also changed in any other draw objects of those pages.
If the page contains "smart links. " the identity of the linked-to page is not determined until the page is displayed, previewed, or published. If the user selects "publish" or "don't publish" in step 1 21 2 then, in step 1 214, the value of the publish flag is changed accordingly and, in step 1 21 6, a dot indicating "publish" is displayed in the page icon. If the user
changes the color of the selected page icon in step 1 21 8 then, in steps 1 220 and 1 222, the color value in the corresponding page object is changed accordingly and the page icon is displayed in its new color.
If the user selects "done" or "not done" in step 1 224 then, in step
1226, the done flag in the corresponding page object is changed accordingly and a checkmark indicating "done" is displayed in the page icon. If the user
has entered comments in step 1 228 then, in step 1 230, the comments in the
corresponding page object are changed accordingly.
Fig. 1 3 is a flow chart showing steps performed by structure editor
software 1 20 when the user clicks on a Site tab of a site property window.
The user can change the style and name for the site and save the creation and
edit dates.
Fig. 14(a) is a flow chart showing steps performed by structure editor software 1 20 when the user clicks on a View tab of a Site property window.
The user can set the view to be either horizontal or vertical. Fig. 14(b) shows
an example of a View Tab. Fig. 20 shows a horizontal view of the site hierarchy. Fig. 21 shows a vertical view of the site hierarchy.
Fig. 1 5(a) is a flow chart showing steps performed by structure editor
software 1 20 when the user collapses a branch on the display. The user collapses a branch by selecting a page icon and selecting "Collapse" from the pull-down view menu. All nodes below the selected node are removed from the display and the selected node is displayed in a predetermined format
indicating a collapsed branch. Fig. 1 5(b) shows an example of a collapsed node. When a node is collapsed, its collapsed flag is set to "true."
Fig. 1 6 is a flow chart showing steps performed by structure editor
software 1 20 when the user expands a branch on the display. The user
expands a branch by selecting a page icon and selecting "Expand" from the pull-down view menu. The nodes below the selected node in the site hierarchy are displayed and the Collapsed indicator is removed from the selected node. When a node is expanded, its expanded flag is set to "true."
Fig. 1 9 shows an example of adding stacked data pages to the site hierarchy. When a page is a stacked page, it is displayed as overlapping pages
1 902. Stacked pages are moved at the site level of Figs. 3 and 4 in
substantially the same manner as normal pages, with the exception that a
stacked page causes multiple HTML pages to be generated.
III. Page Creation and Manipulation for the Site
Fig. 22 shows an example of an initial page layout before the user has edited it. Fig. 22 is displayed after the user indicates that he wants to edit a
page by preferably: 1 ) double clicking on a page icon or 2) selecting a page
icon and selecting "Page" button 304 of Fig. 3. The display of Fig. 22 is generated by a "page editor". The described embodiment of the present invention automatically creates draw objects in memory for each page of the
site. The automatically created draw objects reflect links between pages of the
site, as described below. The display of Fig. 22 creates a page having three parts: a header
2202, a body 2204, and a footer 2206. The page editor allows individual scrolling in each of these parts. The described embodiment of the present invention automatically creates display elements of header 2202 and footer 2206. Header 2202 automatically contains a banner 2210 and a plurality of navigator buttons 221 2. In the example, the banner contains the name of the
selected page icon 456 ("Products") of Fig. 4. Navigator buttons 221 2 include buttons for home page 250 ("Home button 221 4), the Welcome page 252 ("Welcome" button 221 6), and the "Private" page ("Private" button 221 6).
Navigator buttons 221 2 preferably include an image, such as the 3D button
image shown in Fig. 22. This image may be predefined or defined by the user through use of a pop-up window.
Thus, in Fig. 22, the navigator buttons 221 2 automatically include buttons corresponding to the home page, to the first hierarchical level below
the homepage, and to the parent page. Alternate implementations of the present invention automatically display navigator buttons for one or more of the home page, the parent page, sibling pages, the first level, children pages, and any other appropriate pages. In some embodiments, the user chooses which
navigator buttons are generated automatically by way of a pop-up site window. Footer 2206 automatically contains a plurality of text buttons 2230.
These text buttons preferably correspond to the navigator buttons 221 2.
Thus, text buttons 2230 include buttons for home page 250 ("Home text
button 2230), the Welcome page 452 ("Welcome" text button 2232), and the "Private" page 454 ("Private" text button 2234). The internal memory representation of banner 221 0 and of buttons 221 2 and 2230 are discussed in
detail below.
Fig. 22 also shows a "Properties" window 2250 in which a "View" tab is selected. Properties window 2250 includes three tabs: a "View" tab 2252, a "Page" tab 2254, and a "Layout" tab 2256. Properties window 2250
currently shows view properties because View tab 2252 is selected.
Properties window 2250 includes a "Measurement Unit" area 2260, a "Element border" area 2262, "Grid Width" and "Grid Height" areas" 2264, 2266, a "Show Grid" flag 2265, font size areas 2268, 2272, a "Color" area
2272, a "Horizontal Splitter" flag area 2270, and a "Snap to Grid" flag area
2276.
When the page editor is started, the values of Properties window 326 are properties for the displayed page. Thus, in the example, the grid is
measured in unit of pixels. Element borders around each display element are
displayed. A grid of 24 x 24 pixels is displayed. The specified fonts are used.
The page uses the colors described in the colors area 2272. Horizontal
splitters 2280, 2282 are displayed. The "Snap to Grid" property is turned off. It will be understood by persons of ordinary skill in the art that structure editor software 1 20 stores values corresponding to this Property window and each
Property window discussed herein in memory 104.
Fig. 24 is an example showing an internal memory representation of draw objects automatically generated by structure editor software 1 20. The draw objects are generated when a page layout is modified. The internal
representation includes a list of objects (a layout object), representing the header, body, and footer of the page of Fig. 22. Thus, the list of draw objects includes a banner draw object 2402 (corresponding to banner 2210), a
navigator buttons draw object 2404 (corresponding to navigator buttons 221 2), and text buttons draw object 2406 (corresponding to text buttons
221 4). In the described embodiment, all draw objects of the header 2202 are stored together in a layout object and a pointer points to the beginning of this list. Similarly, all objects of the footer 2206 are stored together in a layout
object and a pointer points to the beginning of this list. In the described embodiment, the user has not entered any elements into the body 2204 and a pointer to body elements points to a null list.
Fig. 25 is an example of a draw object for a page banner. It includes a
bitmap of the banner and the name of the page (e.g., "Products"). Fig. 26(a) is
an example of a draw object for a navigator button. Fig. 26(a) includes a node
number to which it will link when displayed by a browser, a name of the linked
to page, and an image of the navigator button (e.g., a GIF image). Fig. 26(a) includes a smart link to another node, which is specified by relationship, and an image. The identity of the link is determined when the page is displayed,
previewed, or published. Fig. 27 is an example of a draw object for a text object. It includes a node number to which it will link when displayed by a browser, a name of the linked to page, and a string displayed in the text
button. In the described embodiment, each draw object contains its type, its X
position, Y position, width, and height. An example of a draw object of text and a draw image for an image is shown elsewhere in this document. It will be understood that each type of display element in a page (e.g., text, image,
button, etc.) has a corresponding type of draw object.
Fig. 23 is a flow chart showing steps performed by structure editor software 1 20 to display the page layout of Fig. 22 during execution of the page editor. In step 2302, the page editor determines whether this is the first
time that the page has been edited. If it is not the first time, in step 2304, the
current page layout is displayed in accordance with the draw objects for the page. The page layout will include the automatically generated banner, navigator buttons, and text buttons, unless the user has previously deleted
them.
If it is the first time, in step 2306, the editor displays the default page layout in accordance with the draw objects for the page. The page layout will include the automatically generated banner, navigator buttons, and text
buttons. Step 2308 allow the user to modify the page layout using drag and
drop methods. It will be understood that the user does not have to modify the
page at all if he doesn't want to. The automatically generated page elements
will still be a part of the page. The user exits the page editor by, e.g., clicking on Site button 302, Style button 206, Assets button 308, or publish button 310. After the user has edited a page, he can still move the page around in the site hierarchy by using the structure editor.
IV. HTML Generation for the Site
Once the user has created a hierarchy of pages for the site as described
above, the user needs to be able to generate HTML for all pages of the site.
Fig. 28 shows an example of a display used to allow the user to publish the pages of a site. Fig. 28 shows a screen displayed when the user clicks on
"Publish" button 310 of Fig. 3. The screen includes three buttons "Settings"
2802, "Stage" 2804, and "Publish" 2806. Once the display of Fig. 28 is displayed, the user can either "stage" or "publish" his site. Generally, staging is performed first and publishing is performed once the site is debugged. Staging and publishing are substantially the same, differing in when they are performed during the site development process. The user can also set configuration parameters to control the publishing or staging process. Clicking
on either "publish" button 2802 or "Stage" button 2804 causes the described
embodiment to generate HTML code for each page in the site (or only for pages indicated by the publish flag or by the user). This process is described below.
Clicking on "Settings" button 2802 causes a pop-up window 2808 to be displayed. Clicking on "Stage" tab 281 0 or "Publish" tab 281 2 will display
a window, which allows the user to specify a storage location for the staged or
published site. Clicking on a "Modify" tab 2814 causes the pop-up window
2902 of Fig. 29 to be displayed. Window 2902 allows the user to indicate
certain attributes of the HTML to be generated for the site (e.g., text only, black and white (grey scale), or low-resolution).
Fig. 30 is a flow chart showing steps performed by structure editor
software 1 20 to publish all the pages of a site. It will be understood that the
steps of Fig. 30 are performed by processor 1 02 executing instructions in structure editor software 1 20. In Fig. 30, steps 3002 through 301 0 form a loop repeated for each page in the site, i.e., for each page object stored in the
memory. In the described embodiment, the tree of page objects is traversed in
a recursive, depth first manner in a manner known to persons of ordinary skill in the art. For each page object, in step 3004, if the stacked flag of the current page object indicates that the current page is a stacked page, then
processor 102 creates HTML for a plurality of pages. If the current page object
is not a stacked page then, in step 3008, processor 1 02 builds HTML for a "normal" page. In either case, the HTML for the page is then written to a storage medium of the system.
It will be understood that, generally, each page object has a
corresponding list of draw objects describing the elements of the page for the header, body and footer of the page, and that processor 102 generates HTML in accordance with the draw objects. As described above, each list of draw
objects automatically includes draw objects representing automatically
generated banners and links (e.g., to the home, first level, parent, sibling, and/or children pages of that page). The draw objects of a page may also
represent other, additional links added by the user that are not a part of the site hierarchy. Moreover, the user can use the page editor to remove some of the automatically generated draw objects links if he so desires. Unless the user
explicitly removes them, however, these automatically generated links are
present in each page layout. Thus, the generated HTML for each page will contain links to the home, parents, siblings, and/or children pages for each
page of the site view.
V. HTML Generation for a Page
Fig. 31 is a flow chart showing steps performed by the structure editor software to publish a normal page. Fig. 32 is a flow chart showing steps performed by the structure editor software to publish a stacked page. The steps of Figs. 31 and 32 are similar, except that the steps of Fig. 32 generates multiple HTML pages for the stacked page. Step 31 10 creates initial HTML for
the page as shown in Fig. 33. This step creates the beginning of an HTML
page. Steps 31 04-3108 create HTML tables for each of the header, body, and
footer as shown in Figs. 34 and 35. Step 31 10 creates final HTML for the end of the page as shown in Fig. 36. The preferred embodiment generates
Netscape HTML versions 3.X.
Fig. 32 shows the creation of a plurality of HTML pages for a stacked page. Each HTML contains, for example, data for one record of a database associated with the stacked page. Each of the plurality of HTML pages has a
common format including the same fields of the database and the same layout
of the fields. Each page of the plurality of pages has the same format, but
different data.
Step 3314 of Fig. 33 shows that the HTML for a page includes a tag specifying the colors that a browser will use to display regular, visited, and active links. Other embodiments specify other HTML tags that specify other attributes common to the page.
Fig. 34 is a flow chart showing steps to build an HTML table. In the described embodiment, an HTML table is generated for the header, body, and footer of each page. Steps 3402-3408 generate a matrix in memory 104 as discussed below in connection with Figs. 37-40. Step 3410 create the HTML
table in accordance with the matrix as shown in Fig. 35. Fig. 35 shows steps that create an HTML table. Step 3502 writes a table tag including a border of zero width and cellpadding and cellspacing of
zero. Step 3504 generates a table header including column and width
definitions for the HTML table. Steps 3506-351 8 go through each row and column of the matrix to generate a plurality of cells in the HTML table. Some of the cells in the HTML table can be several columns wide and/or several rows
high. Step 3520 generates an end of table tag.
Fig. 37 is an example of first steps involved in determining an HTML table size for a layout element of a header, body, or footer. In the example, the
layout element has four display elements. Each display element corresponds to
one draw object of the page. As discussed above, each draw object has an X
position (a start row) and a length. Each draw object also has a Y position (a
start column) and a height. For each object, a first column edge is the X start position and a second column edge is the X start position plus the length. In
addition, for each object, a first row edge is the Y start position and a second row edge is the Y start position plus the height. Processor 102 finds the row
edges and columns edges for a current page, yielding data 3702 and 3704.
Fig. 37 is an example of second steps involved in determining an HTML table size for a layout element. Once the column and row edges of the draw
objects are determined, the edges are sorted, duplicate edges are removed from
the sorted list, yielding unique row edges and unique column edges (steps 3404 and 3406 of Fig. 34). The unique rows edges and column edges are then counted. In the example, the objects have six column edges and seven row edges. Once the unique row edges and column edges are determined, the
column widths and row heights for each column and row are determined.
Fig. 39 is an example of a matrix 3802 generated in accordance with the edges and draw objects. Matrix 3902 has a number of rows equal to the number of row edges plus one. The matrix has a number of columns equal to
the number of column edges plus one. Thus, in the example, the matrix has seven columns and eight rows. Each element 3904 of the matrix has a pointer field and an occupied flag. The element of row 7, column 2 of the matrix
points to object number 1 and is marked as occupied. The next four elements in row 2 are also marked as occupied. The element of row 3, column 3 points to object number 2 and is marked as occupied. The element of row 2, column 5 points to object number 3 and is marked as occupied. The next four
elements in column 5 are also marked as occupied. The element of row 5,
column 3 points to object number 4 and is marked as occupied.
Fig. 40 is a block diagram of how the matrix 3902 is used to generate
an HTML table. The HTML table is used by a browser to display a portion of a page on display device 1 60 (such as a header, body, or a footer, (an alternate
embodiment of the present invention creates a single table for each page of the site). Each element of the matrix is used to generate a cell in an HTML table (although some cells occupy more than one row or more than one column) . For
example, the matrix element in row 1 , column 1 causes an empty table cell to
be generated. Each row in the HTML table has a height in pixels that is equal to the height for that matrix row. Each cell in the HTML table has a width that
is equal to the width of the matrix for that column.
As is known to persons of ordinary skill in the art, the cells in the table
can be of varying sizes (i.e., can use the HTML tags "ROWSPAN" and
COLSPAN"). The matrix element in row 2, column 5 causes generates of a cell that spans four rows (ROWSPAN = 4). The matrix element in row 7, column 2
causes generation of a cell that spans five column (COLSPAN = 5).
Fig. 41 shows an example of a Style display. The display of Fig. 41 is shown when the user selects Style button 306. The Style button display allows the user to select an overall default appearance of all pages in the site.
The user can override the style for a given page by defining a different style for
the page (not shown). In the described embodiment, the values shown in Fig. 41 are stored in locations of memory 104. The automatic generation of banners, navigation buttons, and text buttons is performed in accordance with user-specified style values.
Fig. 42 shows an example of an Assets Display. The Assets display shows the files, links, and objects in the data processing system. For example,
the assets shown in Fig. 42 are the draw objects for the "Products" page of
Fig. 22.
Fig. 43 shows an example of a plurality of link dialog boxes, showing a
structural link, an internal link, and an external link.
Fig. 44 is a flow chart showing identification of structural links for a page. The links preferably are identified when the page is displayed, previewed or published. Internal and external links are "absolute" links. Structural links
are identified only as "next sibling link," "next child link", etc. For each link, the node-that-is-linked-to is identified by looking at the page hierarchy specified by the page layout tree. After the node is identified, the processor finds the URL, name, etc of the node and generates the display or HTML for the
structural link.
In summary, the described embodiment of the present invention allows a user to define a hierarchy of pages for a Web Site. A structure editor in
accordance with the present invention automatically creates page objects for
each site that reflects the user-defined site hierarchy. Each page has an associated plurality of draw objects that define the display elements of the page. When the user "publishes" a page, the described embodiment generates
HTML code for each page. Thus, even if the user never edits a page, and only
creates a site hierarchy, each page will have an automatically created banner and automatically created links to other pages of the site. The links can be structural links (smart links), internal links, or external links. Moreover, the
pages of the site conform to a user-specified style.
Other embodiments will be apparent to those skilled in the art from
consideration of the specification and practice of the invention disclosed herein.
It is intended that the specification and examples be considered as exemplary only, with a true scope of the invention being indicated by the following claims and equivalents.
/* NetObjects plctotoj *h definition of piture object
*/
♦ifndef PICTOBJ_H #define "PICTOBJ H
♦include "drawobj.h" #include "resource.h" ♦include "DOFile.h" #include "dlgbase.h" class CModelessInsp; class CHotSpot; class CPictureGeneral ; class CDrawRect;
// flags for picture class ♦define DRAW_NATURAL 1 //object not stretched ♦define DRAW_STRETCHED 2 //object stretched to fit ♦define DRAWJTILED 4 //objecxt tiled ♦define DRA_HOTSPOTON 16 // object has hot spots turned on ♦define DRAW_H_ALIGN_LEFT 32 // alignment ♦define DRAW_H_ALIGN_CENTER 64 // alignment ♦define DRA_H_A IGN_RIGHT 128 // alignment ♦define DRA_V_ALIGN_TOP 256 // alignment ♦define DRA_V_ALIGN_CENTER 512 // alignment ♦define DRAW V_ALIGN_BOTTOM 1024 // alignment ♦define DRAW~GIF_SOURCE 2048 ♦define DRAW_JPEG_SOURCE 4096 ♦define DRAW_UNKNOWN_SOURCE 8192 ♦define DRAW_GENERATEA WAYS 16384 // always rename and generate this gif ♦define DRAW DATAOBJECT 32768 // this is a data object
// 'list' class for hot spots (requires afxtempl.h) typedef CTypedPtrLiεt<COb ist, CHotSpot*> CHotSpotLiεt; class CDrawPicture : public CDrawRect
{ protected:
DECLARE_SERIAL(CDrawPicture) ; BOOL LoadBitmapO ; CDrawPicture() ; public:
CDrawPicture(const CRect& position) ; -CDrawPicture() ;
virtual void Serialize(CArchive iar) ?
//virtual void Serialize(CArchiveft ar) ; virtual void Draw(CDC* pDC,CLayoutView* pView,BOOL bXorOutline ■ FALSE, CRect *pDrawRect = NULL) ; void TileBackGround(CDC* pDC, CLayoutView* pView, CRect *pRect) ; virtual BOOL SetBitmap(const CPDStringt aFileType cFILE_IMAGE_TYPE) ; //does the file dialog etc.
BOOL Changed(void) ; void SetStretch(UINT) ; UINT GetStretch() ; virtual CRect Getl agePosition(CRect *position = NULL) ; virtual CRect GetImageSize() ; void SizeToImage(CLayoutView *p) ; int GetlmageHandle(void) {retur m_ImageHandl ; ) ; long ConvertImage(CPDS ring *theFileName,
CPDString * theFilePath) ;
BOOL SetBitmap(const char *pStr, const CPDStringβt aFileType = cFILE_IMAGE_TYPE) ; virtual int GetSourceType(void) ; virtual void OnOpen(CLayoutView* pView) ;
CHotSpotList* GetHotSpotεO { return &m_objects; } virtual CDrawObj *RemoveChiId(CDrawObj *obj) ; virtual void AddChild(CDrawObj *obj) ;
CHotSpot* HotSpotAt(const CPointfc point,CLayoutView * pView) ;
CHotSpot* HotSpotAt(const CRect& rect,CLayoutView * pView) ; void DeleteHotSpots(void) ; void MakeChildrenFit(CRect *newPosition = NULL) ; virtual void EndMov (CLayoutView* pView = NULL) ; virtual void MoveChildren(CRect *lastPoistion = NULL, CRect *newPosition = NULL) ; // offsets all childern difference of last to new position void MoveChildren(CPoint point) ; // offsets all children using point coords virtual CDrawObj* FindChild(int id) ; virtual BOOL mAutoGenerated() ; virtual int HitTest(CPoint point, CLayoutView* pView, BOOL bSelected) ; void SetHotSpotsOn(BOOL) ; BOOL GetHotSpotsOn(void) ; void SetDataObjectOn(void) {m_PictureFlags J= DRAW DATAOBJECT; )
virtual CDrawObj* Intersects(const CRect* rect, CLayoutView *pView) j virtual void AddPropPage(CObListi) ; virtual void AddProperties(CMenu *pPopup) ; virtual BOOL IsParent(void) {return TRUE;); virtual CDrawObj* GetSelectedChild(void) ; virtual void SetSelectedChiId(CDrawObj *pObj , BOOL set=TRUE) ; virtual void SaveUndo(CArchive& ar,PROPERTY_TYPE,CLayoutView *pView) ; virtual void LoadUndo(CArchive& ar,PROPERTY_TYPE, CLayoutView *pView) ; virtual void SetAssetInfo(PROPERTY_TYPE type = DRAWOBJ) ; virtual void SetObjectData(void) ; virtual CDrawObj* Clone(CLayoutData *pLayoutData) ; virtual void SetlnitialValue (CLayoutView*) ; virtual BOOL DrawImageToMemory (CDC *) ; CString m_csName; int m_PictureFlags;
CHotSpotList m_objects; void SetGenerateAlways(BOOL b = TRUE) ; void SetVAlignFlag(int) ; void SetHAlignFlag(int) ;
BOOL HasPicture() (return m_pDIB != NULL;} void mGenerateHTML(CPDBuffer* theBuffer) ; protected: int m_ImageHandle; char * m_pDIB;
BITHAPINFO * m_biInfo; int m_biwidth; int m_biHeight; char * m_biBits; private: static CPictureGeneral *m_pPicturePro ; protected:
// { { AFX_HSG (CDrawPicture) afx_msg void OnPictureProperty ( ) ; afx_msg void OnEditClearQ ; // } )AFX_MSG
DECIARE_MESSAGE_MAP()
// PictureAlign ent dialog class PictureAlignment : public CT2Dialog
{
// Construction public:
PictureAlignment (CWnd* pParent = NULL) ; // standard constructor
CWnd *parentWnd; BOOL m_Cancel ; UINT v ; UINT h; DrawShape user; void SetUser (DrawShape d) { user = d; )
// Dialog Data
// { { AFX_DATA ( PictureAl ign ent ) enum { IDD = IDD_PICTURE_ALIGNHENT } ;
// NOTE: the ClassWizard will add data members here // } )AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
// { ( AFX_VIRTUAL ( PictureAl ignment) protected : virtual void DoDataExchange (CDataExchange* pDX) ; //
DDX/DDV support
// } )AFX_VIRTUAL
// Implementation protected :
// Generated message map functions // ( { AFX_MSG (PictureAlignment) virtual void OnOK() ; // } }AFX_MSG DECLARE_MESSAGE_MAP ( )
) ?
tendif //
_PICT0BJ_H//////////////////////////////////////////////////////
///////////////////////
// CDrawText - Text Object
♦ifndef _CRICHTEXT_H__ ♦define _CRICHTEXT_H_ //l
♦include "drawobj .h"
// General stuff
/////////////////////////////////////////////////////////////////
////////////
// Tokens that we store in the token steam
// After a token there is potential more bytes and other tokens
// If this is the case then it is noted in the comments after the token
// All token take up 1 byte, Each item noted in [] take one byte
// Note that all that contain data have a end token to enable backwards searching typedef enu (
T_TEXT = 0, // Dummy token just use to communicate that its a text token
T_NULL, // Place holder to break up findtoken
// Text formatting tokens turn on/off T_BOLDON, // Bold T_BOLDOFF,
T_ITALICON, // Italics
T_ITALICOFF,
T_UNDERLINEON, // underline T JNDERLINEOFF, T_STRIKEOUTON, // strikeout T_STRIKE0UTOFF,
T_BLINKON, // Blinking
T_BLINKOFF,
T_FIXEDON, // Fixed pitch font
T_FIXEDOFF,
T_DUMMY1, // Raw html code. Used to insert HTML code directly into the token stream
// Text formatting with extra data
T_FACE, // Font face stored as T_FACE <name>
T_FACE
T__SIZE, // Size of font; stored as T_SIZE [size]
T_SIZE
T_COLOR, // Change to COLORREF color; stored as T_COLOR <COLORREF> T_COL0R
T_HEADING, // Heading marker; stored as T_HEADING
[heading id) T_HEADING - should follow <P>
T_PARAFMT, // Formatting belonging to T_PARAGRAPH - stored as T_PARAFMT <ParaFormat> T_PARAFMT
T_SYMBOL, // Stores a symbol <T_SYMBOL> symbol value (int) <T_SYMBOL>
T__HTMLTAG, // A HTML tag stored
// String flow control T_END, // End of text object
T_NEWLINE, // New line - still inside the paragraph
T_PARAGRAPH, // New paragraph T_SOFTNEWLINE, // Soft end of line - autowrap symbol
// Support for html links
T_LINKNAME, // Link name stored as T_LINKNAME <display text T_LINKNAME2
T_LINKNAME2,
T_LIN URL, // Link URL stored as T_LINKURL <url>
T_LINKURL2
T_LINKURL2 } TokenTypes;
// Notes:
// T_COL0R:
// The COLORREF is stored as 4 bytes. The maximum byte that is normally 0x00 will be
// 0x00 when the color is reset back to the default color defined for the view, In this case
// the rest of the color is unused. When a color ride is in effect the byte is 0x00.\
// T_PARAGRAPH: The line number is stored in the paragraph as
<Px|xP>
// T_SOFTNEWLINE: Only used for return in FindToken
// Link should be stored as
// <T_LINK1> tokens <T_LINK2> URLStruct <T_LINK3>
♦define 0VERRIDE_0F( CR) * ( ( (char*) i(CR) )+3 )
♦define MAX_INDENT 31
// Alignment settings as they apply to one paragraph typedef enum (
AlignLeft = 0,
AlignCenter,
AlignRight
);
// Builit types typedef enum {
Bull_None = 0,
Bull_Bullit,
Bull_Square,
Bull_Disc,
Bull_ABC,
Bull_abc,
Bull_III ,
Bull_iii,
Bull_123,
Bull_UnUsed, // Used when promoting and demoting paragraphs
)
// Pitchtype, used to select between the proportional and fixed type font typedef enum (
Proportional,
Fixed, ) PITCHTYPE;
// T_PARAFMT <ParagraphFormat> T_PARAFMT, size = 4 bytes struct ParaForat { unsigned short aAlign : 2; unsigned short Undent : 5; // [ 0 .. 31 ] levels unsigned short iBullit : 4; unsigned short iOrder : 10; // Order item number [0..1024[ unsigned short bStart : 1; // Special start value for ordered lists
);
// Usage of the Font list
♦define FONTINDEX_AUTOMATIC 0 // position of the Automatic font
♦define FONTINDEX_MAX 127
// The complete set of font settings as will be treated for text object.
// These settings are at any given location applied to the current setting
// in the global font setting. struct FontAttrib (
BYTE rgbRed; // l b
BYTE rgbGreen; // 2 b
BYTE rgbBlue; // 3b
BOOL bColorOverride : 1; // Is the color currently overridden short iSize : 7; // b
BOOL bBold : 1;
PITCHTYPE ptPitch : 3;
BOOL bltalic : 1;
BOOL bUnderline : 1;
BOOL bStrikeout : 1;
BOOL bBlink : 1; // 5 b
BOOL bURL : 1; // Are we inside an URL display string unsigned short iFontlndex : 7 ; // 6 b
ParaFormat pf; // 10 b
);
// URL control structure
/////////////////////////////////////////////////////// // The URLStruct is stored between the LINK and URL
struct URLStruct
{ int iJavaEventld;
) class ExtFontAttrib l
// Current attribute; public:
// Utility information
CString sHeading ; int istyleldx ;
URLStruct urllnfo;
FontAttrib f Attrib ;
// Functions int operator= (ExtFontAttrib fcfs) ; ExtFontAttrib &operator= (ExtFontAttrib ifs) ;
) i
// Search commands to the FindText function
♦define FIND_HOHE 1
♦define FIND_END 2
♦define FIND_PREVCHAR 3
♦define FIND_NEXTCHAR 4
♦define FIND__PREVWORD 5
♦define FIND_NEXTWORD 6
♦define FIND_PREVPARA 7
♦define FIND_NEXTPARA 8
♦define FIND_PREVLINE 9
♦define FIND_NEXTLINE 10 class CLayoutView;
♦define TALIGN_LEFT 0X01 ♦define TALIGN_CENTER 0x02 ♦define TALIGN_RIGHT 0x04 struct FindReplaceData ( int ilndex;
CFindReplaceDialog *pFRDlg; int iFoundl; int iFound2; int careto, caretl; BOOL bRewrapped;
);
// CDrawText
///////////////////////////////////////////////////////////////// //////////// struct CaretStruct
(
BOOL getlndex; // is index valid, if not then pos is valid - calc index in UpdateCaret
// index into m_text; // if index set - status if its OK
// mouse pos, not maintained if
// height of character at
{ public: int width; // width of text excl. the space needed for indent or bullit int heigh ; int base;
CPoint ul; // Top left corner of the text box, if bullit then its before the text box int idxLine; // Index into the text stream of line, either point to <P> <BR> or to char that is first on εoftbreak line
FontAttrib fa; // FontAttrib for the start of the line after all heading and aling have been applied int iStyleldx; // Index of the style used int fFlags; // Flags for the line
) i
// Line flags
♦define LINE_PARAGRAPH 0x0001 // Line is start of new paragraph
// Different hardcoded sizes that HTML assumes
♦define INDENT_SIZE 40 //700 // Total indent size
♦define BULLIT_SIZE 30 //300 // Space for bullit
♦define BULLIT_SPACE 6 //50 // Space after bullit and before text
// Minimum Wrap width accepted ♦define MIN_WIDTH 10
// Edit mode flags
♦define EDIT_READONLY 0x00000001 // Field is read-only - user may not change ny content - inspector is disabled
♦define EDIT_ASCIIFIELD 0x00000002 // Field may only contain ascii string
♦define EDIT_SINGLELINE 0x00000004 // User must not be able to insert line break or paragraph
// Undo information
Insert bytes into buffer Delete bytes from buffer Position carets assign single byte in buffer assign range to T_NULL move range inside buffer assign range of bytes in buffer
whole object should be rewrapped
)? struct UndoRecord { char nOpType; union {
// Used when inserting (Oplnsert) or deleting (OpDelete) bytes in the stream
// and when setting bytes to T_NULL (OpSetT_NULL)
// and when assigning a range of bytes (OpAssignBytes) .
// and used for OpMoveBytes
// When OpDelete it is followed by bytes deleted struct { unsigned short iNoBytes; unsigned short ilndex; } insdel ;
// Used when position the carets struct ( unsigned short indexO; unsigned short indexl; ) caret;
// Used when []= assigning a single byte struct { unsigned short ilndex; char cOldByte; ) assign;
) dat ;
♦define UNDOBUFFER_INCREMENT 256 // increase buffer increment
♦define UNDOBUFFER_MINSIZE UNDOBUFFER INCREMENT
♦define MAX_FONT_LENGTH 256 // Max size for a font face name
♦define PRIVATE_KEYSTATE
♦define MAX TEXT (65536 * 4) ♦define MAX TEXT EDIT (MAXJTEXT - 1000)
♦define WRAP FIRSTLINE ♦define WRAP~LASTLINE MAX TEXT ♦define WRAP JNDEFINED -1 extern BOOL IsChar( char c) ; extern BOOL IsToken( char c) ; extern BOOL WordDelimiter( char c) ; extern BOOL HardLineDelimiter( char c) ; extern BOOL LineDelimiter( char c) ; extern BOOL ParaDelimiter( char c) ; extern BOOL ParaFormatting( char c) ; extern BOOL IsFormatToken( char c) ; extern BOOL IsNonNormalizeToken( char c) ; extern BOOL IsOrdered( int iType) ; extern BOOL IsUnordered( int iType) ; extern int TokenSize( int token, BOOL bForward); extern int iT2clipbordFormat; extern int iRTFclipboardFormat; extern int [ ] ; extern int d[] » class CTextStyle;
/ J Class CDrawText ///////////////////////////////////////////////////////////////
//class CTextHTMLGenerator; class CDrawText : public CDrawRect
( friend class CTextHTMLGenerator; public: char *m_tex ; int m_nText;
BOOL bSelectAnchor; // Are we currently selecting using achor point static CStringArray *m_FontFaceArray; // Font face list private: int ιa_needsWrap;
CPoint m~LeftMargin;
CPoint m_RightMargin; int clickCount; //dont start edit mode until second click
CFont *m_oldCFont;
CFont m_CFont; //Active font, setup during calls to gettextsegment int m_iWrapIdxl; int m_iWrapIdx2 ;
int m_maxTβxt; ///maximum allocated text int insertlndex; int m_haveCaretAndHeight; int m iCaretWidth;
CRgn *m_pRgnCaret; //marked block
BOOL m setMouseXPos;
// For mouse selection static CaretStruct *mjpDblClick_Carets; // contains dbl marked selection while mouse is still down static CaretStruct *m_pTriClick_Carets; // contains tri marked selection while mouse is still down static CaretStruct *m_pClick_Carets; // contains mouse marked selection while mouse is still down static BOOL m_bMDragθverride; // Override that we must
NOT do word extension in single click draw select
LinelnfoStruct * m_lineInfo; // display lines int m_nLines; // used lines in above int m maxLineε; // max no lines int m_hMarg; int m_vMarg; static CTextStyle *m_pTextProp; //property sheet belonging to object static BOOL bReturnFirstPara; //return a <P> at start of data
FindReplaceData
*m_FindReplace;
BOOL m_Transparent; // Is the control transparent
BOOL m_LockedSize; // Is the text size locked
CSize m_sizeLockSize; // The locked size
UINT m EditMode; // Edit mode flags
CO ORREF m_BackGroundColor; // Background color when not transparent char *m_pUndo; // Undo record buffer int m_nUndoLen; // length of under buffer int m_iUndo; // Next location in undo buffer
BOOL bRecordUndo; // wheater to record or not in : :Insert and : :Delete
CaretStruct m__caret[2]; //cursor/block location, if postions are the same, no marking
ExtFontAttrib m_FontSet; // Settings set while gettextsegment traverses text ExtFontAttrib m_01dFontSet; // Compare copy for SelectFont int m_TrueHeight; //true height of text, different than size when m_Locked is TRUE private: static COLORREF m_TextColor; static COLORREF m TextLinkColor; protected:
DECLARE_SERIAL(CDrawText) ; CDrawText() ; public:
CDrawText(const CRect& position) ; -CDrawText() ; virtual void Serialize(CArchive tar) ; virtual void AddProperties(CMenu *pPopup) ; virtual void Draw(CDC *pDC,CLayoutView* pView,BOOL bXorOutline « FALSE, CRect *pDrawRect -= NULL) ; virtual void MoveTo(const CRecti positon, CLayoutView* pView = NULL, BOOL fAutosize = TRUE,BOOL fOutline = TRUE) ;
//property sheet support virtual void AddPropPage(CObListi) ; virtual void Select(CPoint pi, CPoint p2) ; virtual void KeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) ; virtual void CharDown(UINT nChar, UINT nRepCnt, UINT nFlags) ; virtual void SysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) ; virtual void StartMove( void) ; virtual void EndMove( CLayoutView *pView) ; virtual void OnLButtonDow (CLayoutView* pView, UINT nFlags, const CPointS point) ; virtual void OnLButtonUp(CLayoutView* pView, UINT nFlags, const CPoin t point) ; virtual void OnMouseMove(CLayoutView* pView, UINT nFlags, const CPoint& point) ; virtual void OnLButtonDblClk(CLayoutView* pView, UINT nFlags, const CPointδ point);
virtual void SaveUndo(CArchive* ar, ROPERTY TYPE,CLayoutView ♦pView) ; virtual void LoadUndo(Cλrchive* ar,PROPERTY_TYPE,CLayoutView *pView) ; virtual void mSynchronizeAssetNumbers() ;
BOOL virtual FindReplace( frOperations frOp, void *pData) ; void Activate( TrackerState tsNewState ■= tsNor al) ; void Deactivate( TrackerState tsNewState = tsNormal) ; virtual void SetFocus( void) ; virtual void KillFocus( void); void GetText(char ** data, int * nData) ; void SetText(char * data, int nData) ; void SetλsciiText(char *pString, BOOL bKeepFor at) ; char *GetAsciiText( void); void mGenerateHTML(CPDBuffer* theBuffer) ; void GetFont(ExtFontAttrib *fs, int iCaretldx = -2) ; void SetFont(TokenTypes t_type) ; void SetFontAlignment( int iAlign) ; void SetFontBullit( int iBullit) ; void SetFontSize( int isize) ; void SetFontColor( COLORREF *pColor) ; void SetFontFace( char *pFontFace) ; void Changelndent( int ichange) ; void SetSizeList( CCoboBox *pComboBox, ExtFontAttrib* fs) ; void SetBulletList( CComboBox *pComboBox, ExtFontAttrib* fs) ; int FindFon Index( char *pFontFace) ; static void InitFontFaceArray( void); static void SetFontFaceList( CComboBox *pComboBox) ; void SetStyle( CString *psStyle) ; void ApplyURL(CString* εDisp, CString* sURL, char lToken, char rToken,int iJavaEventld — 0) ; void SetURL( CString* sDisp, CString* εURL, BOOL bAddSpaces = FALSE, int iJavaEventld = 0);
BOOL GetURL( CString* sDisp, CString* εURL, int* linkl, int* link2, int* urll, int* url2, int* iJava) ; void UpdateURL( CString* sURL, int il, int i2) ; void Unlink( int il, int i2, int 11, int 12);
BOOL GetSelectedText( CString* sText, int* il, int* i2) ;
// Java event access functions int GetJavaEvent( void) ;
BOOL SetJavaEven ( int iJavaEventld) ;
// External access methods COLORREF GβtBackColor( void) ; void SetBackColor( COLORREF c) ; BOOL GetTransparent( void) ; void SetTransparent( BOOL t) ; BOOL GetLockedSize( void) ; void SetLockedSize( BOOL Is) ; BOOL IεStyleUεed( CString *psStyleName) ; void ResizeToOneLine( CLayoutView *pView, int ilndex « 0) ; void ResizeObject( CLayoutView *pView, int ix, int iY) ; void GetWordCounts( int *pLine, int *pPara, int *pWord, int *pChars) ;
UINT GetEditMode( void) {return m_EditMode; } ; void SetEditMode( UINT fFlags) (m_EditMode = fFlagε;); static void GetMinRect(CRect*) ; int GetTrueHeight() ; private: void CalcFontSizes( PITCHTYPE pt, int *pFontSizes) ; virtual BOOL HasFont() (return TRUE;)
BOOL CreateFont( CFont* font, ExtFontAttrib* fs) ; void InitSelectFont( CDC *pDC) ;
BOOL SelectFont(ExtFontAttrib* fs, CDC *pDC) ; void AsciiSelectAll( void); void MouseSelectWord(CLayoutView* pView, UINT nFlags, const CPoint* point) ; void MouseSelectParagraph(CLayoutView* pView, UINT nFlags, const CPoint* point) ; void UpdateCarets( CLayoutView *pView) ; BOOL IsEmptyO ; char extChar(int* istart) ; char PrevChar(int* istart) ;
BOOL FindStream( int* index, int where) ; void GetFontAtlndex(ExtFontAttrib tfs, int index) ; int GetParaFormat( int iLine) ; int FindFirstLineAtLevel ( int iLine, int iLevel); void RewrapLevelAtLine( int iLine, int iLevel); void ApplyBulletToParagraphLevel( int iLine, int iBulletType) ; void ApplyParaFormat( int iKind, int iValue) ; void ApplylndentToParagraph( int iLine, int iChange) ; int ApplyStyleToPara( CString *psStyle, int iPara, BOOL bRemoveFormatting) ; void ApplyStyle( CString *psStyle, BOOL bRemoveFormatting); void SetsimpleType( char *tokenl, char *token2 , int iTokenSizel, int iTokenSize2, BOOL bSymetric = TRUE); void LinelnfoUpdate( int iLocation, int nData) ; void Insert(int ilndex, const char * data, int nData) ; void Insert(int ilndex, char token) ; void Delete(int nData);
void DelText(int indexl, int index2, BOOL bPreserveTokanβ » TRUE) ; void EnsureURLforDelete( int* idxl, int* idx2) ;
BOOL DeleteSelection( void) ; int ExtractAsciiToBuffer( char *pText, int ilndexl, int ilndex2, int iLen) ; public: void Delete( int index, int count) ; private:
BOOL SkipJunk( int* index, BOOL bForward) ; void UpdateCaret(char token, int iC, int nL, int istart, int nChars, CPoint gpos, CDC *pDC) ; void UpdateselectRegion( CLayoutView* pView) ; void RemoveSelectRegion( CLayoutView* pView) ; void FreeSelectRegion( void) ; void lnvertSelectRegion( CDC *pDC) ;
CRgn *GetSelectRegion( void) ; void ScrollCaretIntoView( CLayoutView* pView, int iCaret) ; void UpdateWndCaret( CLayoutView* pView) ; void FreeWndCaret( CLayoutView* pView) ; void UpdateMarking( CLayoutView *pView) ; void UpdateTextθbject( CLayoutView *pView = NULL) ; int FindMatchToken( char token, int* iSize, int istart, int iEnd) ; int CompressTokens( int idxl, int idx2) ; int NormalizeStream( int idxl, int idx2, int *piNewEnd) ; void Normalize( int idxl, int idx2) ; void Normalize( void) ; void InitFontSet( ExtFontAttrib* fs) ; void InitFontSettings( void); void InitFindToken( BOOL bReturnFirstParagraph = FALSE) ; int FindToken( int* istart, int *iText = NULL, int *iTextLen = NULL, int iLineBreak = 0) ; BOOL FindText(int where) ; void Realloc(int reqSize) ;
// Wrap functions void AllWrapped( void) ; void RewrapParagraph( int iParaldx) ; void Rewrap( int idxl, int idx2) ; void RewrapLines( int iLinel, int iLine2) ; void RewrapAll( void) ; void Wrap( CLayoutView *pView, CDC *pDCin = NULL) ; void SkipLineDelimiter( int* idx) ; void SkipRTFO i void SelectText( CPoint pi, CPoint p2 ) ; void Positionlndex( int* index) ;
void PositionCaret( int idx) ; void PoβitionCarβtβ( void) ; int DocToClientToDoc( CDC *pDC, int iY) ? void DisplayBackground(CLayoutView* pView, CDC *pDC, CRect *pDrawRect) ; void Display(CLayoutView* pView, CDC *pDC, CRect *pDrawRect) ; void DisplayText(CDC *pDC, BOOL extentOnly, BOOL drawItAll) ;
void CommonlnitializationO ; int EnsureCorrectForCopy( int* idxl, int* idx2) ; void EnsureCorrectStartMarking( int* si, int* ei) ; int GetSelection( int* si, int* ei) ; int InsertColorSize( FontAttrib* fa) ; int InsertSettings( FontAttrib* fa) ; char *MakeθnSettings( FontAttrib *fa, int *pLen, BOOL bOnlyColorSize = FALSE) ; int Co pressTNULLs( char *pTokens, int len, int idxl, int id 2, BOOL bUpdateCaret) ; void CompressTNULLs( void) ; void ClearRegion( int* idxl, int* idx2) ; void EnsureURLforCopy( int* idxl, int* idx2) ; void RemoveURLs( char *pToken, int len) ; void InvalidateLines( int iFirstLine, int iLastLine) ; void InvalidateLine( int iLine) ; int GetLineFromlndex( int index) ; void InvalidateRange( int idxl, int idx2) ; void InvalidateSelection( void) ; void InvalObjAndParent( CLayoutView *pView, BOOL bErase = TRUE) ;
// Undo buffer functions void InitUndo( void); void AllocUndo( int iNeeded) ; void RecordUndo( UndoOp opcode, int ilntl, int ilnt2 , void *pBytes » NULL) ; void Freeϋndo( void) ; void EmptyUndo( void) ; void MarkUndo( void) ; void Undo( void) ; void RecordCarets( void) ; void RecordRewrapAll( void); void AssignTokenUndoable( int ilndex, char cNewValue) ; void AssignTokensUndoable( int ilndex, int iNoBytes, char *pData) ; void SetT_NULLundoable( int ilndex, int iNoBytes) ; void MoveTokensUndoable( int iDest, int iSrc, int iSize) ; void OnPreUndo(void *pObj); private: void MoveDelete( int iKind) ;
BOOL FindMatch( BOOL bCaβeSenβitivβ, . it istart, int iLen, LPCSTR pTarget, int iiNext) ;
BOOL Find( void) ;
BOOL Replac ( void) ;
BOOL nextFindReplace(CLayoutView *pView, frOperations frop, int* iReplace) ;
;
//♦define COLOR_LINK RGB(0,0,255) //♦define COLOR_RAWHTML RGB(255, 0, 0) ♦endif
Claims
1. A method of allowing a user to define a World Wide Web site having a plurality of pages with a hierarchical organization comprising the steps, performed by a data processing system, of: receiving an indication that the user wants to add a new page at a position in the site hierarchy; adding a page data structure for the new page to a tree of other page data structures reflecting the site hierarchy, where the page data structure is added in accordance with the position of the new page in the site hierarchy; and automatically creating in the memory a layout data structure for the new page, the layout data structure having a hyperlink in accordance with the position of the new page in the site hierarchy.
2. The method of claim 1 where the hyperlink is a URL pointing to one of the plurality of pages.
3. The method of claim 1, wherein the link references a parent page of the new page.
4. The method of claim 1 , wherein the link references a sibling page of the new page.
5. The method of claim 1, wherein the link references a child page of the new page.
6. The method of claim 1 , wherein the link references a homepage of the site hierarchy.
7. The method of claim 1, wherein the step of receiving an indication that the user wants to add a new page includes the step of: receiving an indication that the user has selected a "New Page" button displayed on a display device.
8. The method of claim 1, wherein the step of adding a page data structure for the new page to a tree of other page data structures reflecting the site hierarchy
includes the step of: inserting a page object into a tree structure of page objects corresponding to the plurality of pages.
9. The method of claim 1 , wherein the step of automatically creating in the memory a layout data structure for the new page includes the step of: creating a draw object for the new page, where the draw object describes a navigator button having a hypertext link to another page in the site hierarchy.
10. The method of claim 1, wherein the step of automatically creating in the memory a layout data structure for the new page includes the step of: creating a draw object for the new page, where the draw object describes a text button having a hypertext link to another page in the site hierarchy.
11. The method of claim 1 , further comprising the step of: automatically creating in the memory a layout data structure for the new page, where the layout data structure describes a banner for the new page.
12. The method of claim 1 , further comprising the steps of: displaying a plurality of page icons in accordance with the site hierarchy; and adding a new page icon, that corresponds to the new page, in the position of the site hierarchy.
13. A method of allowing a user to define a World Wide Web site having a plurality of pages with a hierarchical organization comprising the steps, performed by a data processing system of: displaying a plurality of page icons in a hierarchical fashion, on a display device where the hierarchy of the page icons reflects the hierarchal organization of the pages; receiving an indication that the user has dragged one of the page icons in the site hierarchy from an old position to a new position; displaying, in accordance with the new position, an indicator on a second page icon indicating where the new page icon would be added in the site hierarchy; receiving an indication that the user wants to move the new page to the new position; removing the page icon from the old position on the display device; displaying the page icon in proximity to the indicator; and moving a page object, corresponding to the moved page icon, within a tree structure in accordance with the new position of the moved page icon.
14. The method of claim 12, wherein a draw object for a link in the moved page automatically changes to reflect the new position of the moved page.
15. The method of claim 12, wherein a draw object for a link in the parent of the moved page automatically changes to reflect the new position of the moved page.
16. The method of claim 12, wherein a draw object for a link in the sibling of the moved page automatically changes to reflect the new position of the moved page.
17. A method of allowing a user to define a World Wide Web site having a plurality of pages with a hierarchical organization comprising the steps, performed by a data processing system, of: 5 displaying a plurality of page icons on a display device in a hierarchical fashion, where the hierarchy of the page icons reflects the hierarchal organization of the pages; receiving an indication that the user has selected page icon; receiving an indication that the user may want to add a new page as a l o child of the selected page icon; displaying a page icon corresponding to the new page as a child of the
selected page icon; and adding a page object, corresponding to the new page, to a tree structure, where the new page object is a child of a page object corresponding to the selected page 15 icon.
18. The method of claim 16, further comprising the step of: adding a draw object for a hypertext link to the parent page.
19. The method of claim 16, wherein a draw object in the parent page of the new page automatically adds a hypertext link to the new page.
20 20. The method of claim 16, wherein a draw object in the sibling page of the new page automatically adds a hypertext link to the new page.
21. A computer program product, comprising: a computer usable medium having computer readable code embodied therein for allowing a user to define a World Wide Web site having a plurality of pages 25 with a hierarchical organization, the computer program product comprising: computer readable program code devices configured to cause a computer to effect receiving an indication that the user wants to add a new page at a position in the site hierarchy; computer readable program code devices configured to cause a computer to effect adding a page data structure for the new page to a tree of other page data structures reflecting the site hierarchy, where the page data structure is added in accordance with the position of the new page in the site hierarchy; and computer readable program code devices configured to cause a computer to effect automatically creating in the memory a layout data structure for the new page, the layout data structure having a hyperlink in accordance with the position of the new page in the site hierarchy.
22. A computer program product, comprising: a computer usable medium having computer readable code embodied therein for allowing a user to define a World Wide Web site having a plurality of pages with a hierarchical organization, the computer program product comprising: computer readable program code devices configured to cause a computer to effect displaying a plurality of page icons in a hierarchical fashion on a display device, where the hierarchy of the page icons reflects the hierarchal organization of the pages; computer readable program code devices configured to cause a computer to effect receiving an indication that the user has dragged one of the page icons in the site hierarchy from an old position to a new position; computer readable program code devices configured to cause a computer to effect displaying, in accordance with the new position, an indicator on a second page icon indicating where the new page icon would be added in the site hierarchy; computer readable program code devices configured to cause a computer to effect receiving an indication that the user wants to move the new page to the new
position; computer readable program code devices configured to cause a computer to effect removing the page icon from the old position on the display device; computer readable program code devices configured to cause a computer to effect displaying the page icon in proximity to the indicator; and computer readable program code devices configured to cause a computer to effect moving a page object, corresponding to the moved page icon, within a tree structure in accordance with the new position of the moved page icon.
23. A method of adding a new page at a predetermined hierarchical position in a multipage hierarchy in a World Wide Web site, comprising the steps, performed by a data processing system, of: adding a new page data structure for the new page to a tree of page data structures of the existing pages in the multipage hierarchy, the position of the new page data structure in the tree being determined from the position of the new page in the multipage hierarchy; and creating a layout data structure for the new page having a link to another page defined by the position of the new page in the multipage hierarchy.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU38083/97A AU3808397A (en) | 1996-07-29 | 1997-07-25 | Hierarchical structure editor for web sites |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/687,971 | 1996-07-29 | ||
US08/687,971 US5911145A (en) | 1996-07-29 | 1996-07-29 | Hierarchical structure editor for web sites |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1998004983A1 true WO1998004983A1 (en) | 1998-02-05 |
Family
ID=24762584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1997/012820 WO1998004983A1 (en) | 1996-07-29 | 1997-07-25 | Hierarchical structure editor for web sites |
Country Status (3)
Country | Link |
---|---|
US (3) | US5911145A (en) |
AU (1) | AU3808397A (en) |
WO (1) | WO1998004983A1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999066433A1 (en) * | 1998-06-16 | 1999-12-23 | Easysite Australia Pty Ltd | Real-time document management system |
EP0973105A2 (en) * | 1998-05-18 | 2000-01-19 | Matsushita Electric Industrial Co., Ltd. | Document management system with link function and document management method |
WO2000051033A2 (en) * | 1999-02-23 | 2000-08-31 | Planet-Intra.Com | Dynamic sites |
GB2354923A (en) * | 1999-04-06 | 2001-04-04 | Zyris Plc | Web-site editor |
EP1643382A2 (en) * | 2004-09-30 | 2006-04-05 | Microsoft Corporation | System and method for unified navigation in Web pages |
EP2575053A1 (en) * | 2011-09-27 | 2013-04-03 | Alcatel Lucent | User-enhanced ranking of information objects |
CN110293539A (en) * | 2019-06-24 | 2019-10-01 | 佛山智异科技开发有限公司 | Implementation method, device and the teaching machine of industrial robot teaching device software architecture |
Families Citing this family (275)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5911145A (en) * | 1996-07-29 | 1999-06-08 | Rae Technology, Inc. | Hierarchical structure editor for web sites |
SG70025A1 (en) * | 1996-08-14 | 2000-01-25 | Nippon Telegraph & Telephone | Method and system for preparing and registering homepages interactive input apparatus for multimedia informations and recording medium including interactive input programs of the multimedia informations |
US6189019B1 (en) * | 1996-08-14 | 2001-02-13 | Microsoft Corporation | Computer system and computer-implemented process for presenting document connectivity |
US5956737A (en) * | 1996-09-09 | 1999-09-21 | Design Intelligence, Inc. | Design engine for fitting content to a medium |
US6101509A (en) * | 1996-09-27 | 2000-08-08 | Apple Computer, Inc. | Method and apparatus for transmitting documents over a network |
US6268851B1 (en) * | 1996-09-30 | 2001-07-31 | Trellix Corporation | Hypermedia authoring and publishing system |
US20020156814A1 (en) * | 1997-01-13 | 2002-10-24 | Ho Bruce K. | Method and apparatus for visual business computing |
US7278098B1 (en) * | 1997-04-09 | 2007-10-02 | Adobe Systems Incorporated | Method and apparatus for implementing web pages having smart tables |
US6148311A (en) * | 1997-04-25 | 2000-11-14 | Adobe Systems Incorporation | Web site construction by inferring navigational structure from physical file structure |
US6061696A (en) * | 1997-04-28 | 2000-05-09 | Computer Associates Think, Inc. | Generating multimedia documents |
US6185587B1 (en) * | 1997-06-19 | 2001-02-06 | International Business Machines Corporation | System and method for building a web site with automated help |
US6684369B1 (en) * | 1997-06-19 | 2004-01-27 | International Business Machines, Corporation | Web site creator using templates |
IL121181A0 (en) * | 1997-06-27 | 1997-11-20 | Agentics Ltd | A method and system for unifying multiple information resources into hierarchial integrated information resource accessible by means of user interface |
US8386912B2 (en) * | 1997-07-28 | 2013-02-26 | Ca, Inc. | Hypermedia document publishing including hypermedia document parsing |
JPH1153168A (en) * | 1997-08-07 | 1999-02-26 | Matsushita Graphic Commun Syst Inc | Document preparing device with voice information and method used with the same |
US6292809B1 (en) * | 1997-08-07 | 2001-09-18 | Adobe Systems Incorporated | Selecting cells in a table having individual cells and joined cells |
US5987482A (en) * | 1997-09-08 | 1999-11-16 | International Business Machines Corporation | Computer system and method of displaying hypertext documents with internal hypertext link definitions |
US6658623B1 (en) * | 1997-09-15 | 2003-12-02 | Fuji Xerox Co., Ltd. | Displaying in a first document a selectable link to a second document based on a passive query |
US6356922B1 (en) * | 1997-09-15 | 2002-03-12 | Fuji Xerox Co., Ltd. | Method and system for suggesting related documents |
US6209007B1 (en) * | 1997-11-26 | 2001-03-27 | International Business Machines Corporation | Web internet screen customizing system |
US6380950B1 (en) * | 1998-01-20 | 2002-04-30 | Globalstreams, Inc. | Low bandwidth television |
IL125432A (en) * | 1998-01-30 | 2010-11-30 | Easynet Access Inc | Personalized internet interaction |
US20050203835A1 (en) * | 1998-01-30 | 2005-09-15 | Eli Nhaissi | Internet billing |
IL123129A (en) * | 1998-01-30 | 2010-12-30 | Aviv Refuah | Www addressing |
US6380954B1 (en) * | 1998-02-09 | 2002-04-30 | Reuters, Ltd. | Method and system for layout of objects within a perimeter using constrained interactive search |
US6073135A (en) * | 1998-03-10 | 2000-06-06 | Alta Vista Company | Connectivity server for locating linkage information between Web pages |
JPH11272871A (en) * | 1998-03-20 | 1999-10-08 | Toshiba Corp | Processor and method for image processing and record medium |
US6496203B1 (en) * | 1998-05-27 | 2002-12-17 | Microsoft Corporation | Standardized and application-independent graphical user interface components implemented with web technology |
US7269585B1 (en) | 1998-06-26 | 2007-09-11 | Alexander James Burke | User interface and search system for local and remote internet and other applications |
US6665687B1 (en) | 1998-06-26 | 2003-12-16 | Alexander James Burke | Composite user interface and search system for internet and multimedia applications |
CA2246920A1 (en) * | 1998-09-10 | 2000-03-10 | Ibm Canada Limited - Ibm Canada Limitee | An activemark mechanism for a live parsing editor |
US6558431B1 (en) * | 1998-09-11 | 2003-05-06 | Macromedia, Inc. | Storing valid and invalid markup language in strict and relaxed tables respectively |
US7117433B1 (en) * | 1998-09-29 | 2006-10-03 | International Business Machines Corporation | HTML mapping substitution graphical user interface for display of elements mapped to HTML files |
US6981215B1 (en) | 1998-12-31 | 2005-12-27 | Microsoft Corp. | System for converting event-driven code into serially executed code |
US6889379B1 (en) * | 1998-12-31 | 2005-05-03 | Microsoft Corporation | Transporting objects between a client and a server |
US20010039594A1 (en) * | 1999-02-03 | 2001-11-08 | Park Britt H. | Method for enforcing workflow processes for website development and maintenance |
CA2362180A1 (en) * | 1999-02-19 | 2000-08-24 | Toptier, Israel, Ltd. | Hyperlink link browser with multilink select capability |
US6813746B1 (en) * | 1999-03-10 | 2004-11-02 | Adobe Systems Incorporated | Hierarchical master pages |
US9262384B2 (en) | 1999-05-21 | 2016-02-16 | E-Numerate Solutions, Inc. | Markup language system, method, and computer program product |
US7421648B1 (en) * | 1999-05-21 | 2008-09-02 | E-Numerate Solutions, Inc. | Reusable data markup language |
US9262383B2 (en) | 1999-05-21 | 2016-02-16 | E-Numerate Solutions, Inc. | System, method, and computer program product for processing a markup document |
US7249328B1 (en) * | 1999-05-21 | 2007-07-24 | E-Numerate Solutions, Inc. | Tree view for reusable data markup language |
US9268748B2 (en) | 1999-05-21 | 2016-02-23 | E-Numerate Solutions, Inc. | System, method, and computer program product for outputting markup language documents |
US7356559B1 (en) * | 1999-07-01 | 2008-04-08 | Affinity Internet, Inc. | Integrated platform for developing and maintaining a distributed multiapplication online presence |
US6449765B1 (en) * | 1999-08-09 | 2002-09-10 | Acceleration Software International Corporation | Varying web page link based on user and web page status |
US7661062B1 (en) * | 1999-09-20 | 2010-02-09 | Business Objects Americas | System and method of analyzing an HTML document for changes such that the changed areas can be displayed with the original formatting intact |
US6754648B1 (en) * | 1999-09-30 | 2004-06-22 | Software Ag | Method for storing and managing data |
US6600497B1 (en) * | 1999-11-15 | 2003-07-29 | Elliot A. Gottfurcht | Apparatus and method to navigate interactive television using unique inputs with a remote control |
US7020845B1 (en) * | 1999-11-15 | 2006-03-28 | Gottfurcht Elliot A | Navigating internet content on a television using a simplified interface and a remote control |
US20060229930A9 (en) * | 1999-11-15 | 2006-10-12 | Gottfurcht Elliot A | Method to generate advertising revenue based on time and location |
US6823330B1 (en) * | 1999-11-16 | 2004-11-23 | Gateway, Inc. | Site home navigation control |
US7194680B1 (en) * | 1999-12-07 | 2007-03-20 | Adobe Systems Incorporated | Formatting content by example |
WO2001049015A1 (en) * | 1999-12-24 | 2001-07-05 | Siemens Ltd | A portable symbol |
US7305617B2 (en) | 2000-02-12 | 2007-12-04 | Adobe Systems Incorporated | Method for aligning text to baseline grids and to CJK character grids |
WO2001059576A1 (en) * | 2000-02-12 | 2001-08-16 | Adobe Systems Incorporated | Text grid creation tools |
US20030115546A1 (en) * | 2000-02-17 | 2003-06-19 | Dubey Stuart P. | Method and apparatus for integrating digital media assets into documents |
US20040150677A1 (en) * | 2000-03-03 | 2004-08-05 | Gottfurcht Elliot A. | Method for navigating web content with a simplified interface using audible commands |
WO2001067304A1 (en) * | 2000-03-07 | 2001-09-13 | Hotlens.Com Inc. | Server-side web browsing and multiple lens system, method and apparatus |
DE20004370U1 (en) * | 2000-03-10 | 2001-07-19 | Kuka Schweissanlagen Gmbh | Industrial production plant with WEB control system |
US6611881B1 (en) | 2000-03-15 | 2003-08-26 | Personal Data Network Corporation | Method and system of providing credit card user with barcode purchase data and recommendation automatically on their personal computer |
US20010047477A1 (en) * | 2000-03-20 | 2001-11-29 | Hiang-Swee Chiang | Transparent user and session management for web applications |
US6745238B1 (en) * | 2000-03-31 | 2004-06-01 | Oracle International Corporation | Self service system for web site publishing |
US7404141B1 (en) | 2000-03-31 | 2008-07-22 | Oracle International Corporation | System for creating and maintaining a website |
US20010049733A1 (en) * | 2000-03-31 | 2001-12-06 | Hiroshi Tokumaru | Content distribution system |
US7539623B1 (en) | 2000-04-06 | 2009-05-26 | Medical Central Online | Method and a system for providing bed availability information on a computer network |
EP1146441A1 (en) * | 2000-04-11 | 2001-10-17 | BRITISH TELECOMMUNICATIONS public limited company | Changing hypermedia content of a web site |
US7013340B1 (en) | 2000-05-18 | 2006-03-14 | Microsoft Corporation | Postback input handling by server-side control objects |
KR20010106980A (en) * | 2000-05-24 | 2001-12-07 | 하주한 | Method of providing virtual reality web site on internet |
US10878178B2 (en) | 2000-06-07 | 2020-12-29 | Pt 291, Llc | Modifying web pages to be served by computer server system |
US6771291B1 (en) * | 2000-06-07 | 2004-08-03 | The Perfect Web Corporation | Method for developing electronic documents employing multiple display regions |
US7210099B2 (en) * | 2000-06-12 | 2007-04-24 | Softview Llc | Resolution independent vector display of internet content |
US6792475B1 (en) * | 2000-06-23 | 2004-09-14 | Microsoft Corporation | System and method for facilitating the design of a website |
WO2002017097A1 (en) * | 2000-08-25 | 2002-02-28 | Simon Tomalin | Knowledge management system |
US6990480B1 (en) | 2000-09-18 | 2006-01-24 | Trancept Limited | Information manager method and system |
KR20020031501A (en) * | 2000-10-20 | 2002-05-02 | 김영돈, 정춘보 | Method for manufacturing home page in web |
US7073137B2 (en) * | 2000-10-30 | 2006-07-04 | Microsoft Corporation | System and method for user interface mirroring utilizing a layout manager |
AU2002220172A1 (en) | 2000-11-15 | 2002-05-27 | David M. Holbrook | Apparatus and method for organizing and/or presenting data |
US20070226640A1 (en) * | 2000-11-15 | 2007-09-27 | Holbrook David M | Apparatus and methods for organizing and/or presenting data |
WO2002046878A2 (en) * | 2000-12-06 | 2002-06-13 | American Express Travel Related Services Company, Inc. | Layout generator system and method |
US20020091740A1 (en) * | 2001-01-05 | 2002-07-11 | Curtis Schantz | Electronic publishing method and system |
US9600842B2 (en) * | 2001-01-24 | 2017-03-21 | E-Numerate Solutions, Inc. | RDX enhancement of system and method for implementing reusable data markup language (RDL) |
US6963930B2 (en) * | 2001-02-15 | 2005-11-08 | Centric Software, Inc. | Automatic transfer and expansion of application-specific data for display at a website |
US7380250B2 (en) * | 2001-03-16 | 2008-05-27 | Microsoft Corporation | Method and system for interacting with devices having different capabilities |
US20060288212A1 (en) * | 2001-03-20 | 2006-12-21 | Gutenberg Printing Llc | Transparent user and session management for web applications |
JP3475186B2 (en) * | 2001-03-21 | 2003-12-08 | 株式会社ニチベイ | Blinds, blind slats, manufacturing method thereof and molding machine |
US7971138B2 (en) * | 2001-03-23 | 2011-06-28 | Oracle International Corporation | Common design for web pages through employment of master specifications |
US8396720B2 (en) * | 2001-04-05 | 2013-03-12 | Numoda Technologies, Inc. | Patient diagnosis using triage protocols that have customized messages at exit points |
US20070028165A1 (en) * | 2001-04-10 | 2007-02-01 | Lee Cole | Dynamic layout system and processes |
US20020158902A1 (en) * | 2001-04-30 | 2002-10-31 | Hooker Bryce H. | Method and apparatus for automatically publishing associate information |
US7219309B2 (en) | 2001-05-02 | 2007-05-15 | Bitstream Inc. | Innovations for the display of web pages |
EP1393190A4 (en) * | 2001-05-02 | 2007-07-18 | Bitstream Inc | Methods and systems for displaying media in scaled manner and/or in orientation |
US7493397B1 (en) | 2001-06-06 | 2009-02-17 | Microsoft Corporation | Providing remote processing services over a distributed communications network |
US6915454B1 (en) | 2001-06-12 | 2005-07-05 | Microsoft Corporation | Web controls validation |
US6892355B2 (en) | 2001-06-13 | 2005-05-10 | Bannergalaxy.Com, L.L.C. | System and method for interactively designing and producing customized advertising banners |
AUPR580801A0 (en) * | 2001-06-19 | 2001-07-12 | Newbrain Technologies Pty Ltd | A user interface for constructing web pages to build a website |
US7287227B2 (en) * | 2001-06-29 | 2007-10-23 | Ve Enterprises Llc | System and method for editing web pages in a client/server architecture |
US7594001B1 (en) * | 2001-07-06 | 2009-09-22 | Microsoft Corporation | Partial page output caching |
US7210094B2 (en) * | 2001-07-11 | 2007-04-24 | International Business Machines Corporation | Method and system for dynamic web page breadcrumbing using javascript |
US20030023641A1 (en) * | 2001-07-27 | 2003-01-30 | Gorman William Phillip | Web page authoring tool |
US20040205604A1 (en) * | 2001-10-05 | 2004-10-14 | Read Kimberly K. | Data driven web page generator |
US7428725B2 (en) | 2001-11-20 | 2008-09-23 | Microsoft Corporation | Inserting devices specific content |
US20030110449A1 (en) * | 2001-12-11 | 2003-06-12 | Wolfe Donald P. | Method and system of editing web site |
US6948132B2 (en) * | 2001-12-12 | 2005-09-20 | International Business Machines Corporation | Method for mapping screen display objects with spatial coordinates into an HTML table |
US7120632B2 (en) * | 2002-02-06 | 2006-10-10 | General Electric Capital Corporation | Methods and systems for managing business information on a web site |
US20040150676A1 (en) * | 2002-03-25 | 2004-08-05 | Gottfurcht Elliot A. | Apparatus and method for simple wide-area network navigation |
US20030187932A1 (en) * | 2002-03-28 | 2003-10-02 | Kennedy Bruce C. | Network project development system and method |
US20030187755A1 (en) * | 2002-04-01 | 2003-10-02 | Kamal Acharya | Method and system for providing portable shopping information |
EP1359503A1 (en) * | 2002-05-02 | 2003-11-05 | Sap Ag | Providing code for prototype page for subsequent presentations |
US20080046835A1 (en) * | 2002-05-28 | 2008-02-21 | Truc Nguyen | Object-oriented processing of tab text |
US20060095838A1 (en) * | 2002-05-28 | 2006-05-04 | Truc Nguyen | Object-oriented processing of tab text |
US20040019848A1 (en) * | 2002-07-24 | 2004-01-29 | Truc Nguyen | Method for dynamically inserting and removing tab text |
US20030225632A1 (en) * | 2002-05-30 | 2003-12-04 | Vincent Tong | Method and system for providing personalized online shopping service |
US7370288B1 (en) * | 2002-06-28 | 2008-05-06 | Microsoft Corporation | Method and system for selecting objects on a display device |
US7079713B2 (en) * | 2002-06-28 | 2006-07-18 | Microsoft Corporation | Method and system for displaying and linking ink objects with recognized text and objects |
CA2491419A1 (en) | 2002-06-28 | 2004-01-08 | Omniture, Inc. | Capturing and presenting site visitation path data |
US20080201357A1 (en) * | 2003-06-27 | 2008-08-21 | Omniture, Inc. | Page Grouping for Site Traffic Analysis Reports |
US7751623B1 (en) | 2002-06-28 | 2010-07-06 | Microsoft Corporation | Writing guide for a free-form document editor |
US7051548B2 (en) * | 2002-08-23 | 2006-05-30 | Roger Pruitt | Air conditioner |
US20040104946A1 (en) * | 2002-09-23 | 2004-06-03 | Yufeng Li | System and method for automated positioning of graphic objects |
US20040133853A1 (en) * | 2002-09-23 | 2004-07-08 | Colleen Poerner | System and method for navigating an HMI |
US7574653B2 (en) | 2002-10-11 | 2009-08-11 | Microsoft Corporation | Adaptive image formatting control |
JP4138462B2 (en) * | 2002-11-22 | 2008-08-27 | 株式会社東芝 | Hierarchical structure display device and hierarchical structure display method |
US7124137B2 (en) * | 2002-12-19 | 2006-10-17 | International Business Machines Corporation | Method, system, and program for optimizing processing of nested functions |
US7243098B2 (en) * | 2002-12-19 | 2007-07-10 | International Business Machines Corporation | Method, system, and program for optimizing aggregate processing |
FR2850184B1 (en) * | 2003-01-17 | 2005-04-15 | Comint | AUTOMATED PROCESS FOR PUBLICATION OF COMPUTER DOCUMENTS ON THE INTERNET |
US7000184B2 (en) * | 2003-01-24 | 2006-02-14 | The Cobalt Group, Inc. | Remote web site editing in a standard web browser without external software |
US7472170B2 (en) | 2003-02-13 | 2008-12-30 | Bruce Zak | System and method for managing content on a network interface |
US7421649B1 (en) * | 2003-04-28 | 2008-09-02 | Adobe Systems Incorporated | Enhanced visual table editing |
US7979804B1 (en) * | 2003-04-28 | 2011-07-12 | Adobe Systems Incorporated | Cross-view undo/redo for multi-view editing environments |
JP2004341671A (en) * | 2003-05-14 | 2004-12-02 | Internatl Business Mach Corp <Ibm> | Information processing system, control method, control program and recording medium |
US7281202B2 (en) * | 2003-06-19 | 2007-10-09 | Microsoft Corporation | Framework for creating modular web applications |
US7581173B1 (en) | 2003-09-25 | 2009-08-25 | Google, Inc. | Methods and apparatuses for formatting web pages |
US20050071758A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Client-side processing of alternative component-level views |
US7308649B2 (en) * | 2003-09-30 | 2007-12-11 | International Business Machines Corporation | Providing scalable, alternative component-level views |
US7502834B2 (en) * | 2003-09-30 | 2009-03-10 | International Business Machines Corporation | Autonomic content load balancing |
US7571355B2 (en) * | 2003-10-10 | 2009-08-04 | Microsoft Corporation | Product support connected error reporting |
EP1526447A1 (en) * | 2003-10-24 | 2005-04-27 | SAP Aktiengesellschaft | Method and computer system for document authoring |
US7120864B2 (en) | 2004-01-27 | 2006-10-10 | International Business Machines Corporation | Eliminating superfluous namespace declarations and undeclaring default namespaces in XML serialization processing |
JP4241410B2 (en) * | 2004-01-30 | 2009-03-18 | キヤノン株式会社 | Layout adjustment method and apparatus, and layout adjustment program |
US7610219B2 (en) * | 2004-02-17 | 2009-10-27 | Omar Farooq Sayed | System and methods for assembly of a web site for an online store by a seller |
US7721226B2 (en) * | 2004-02-18 | 2010-05-18 | Microsoft Corporation | Glom widget |
US7659890B2 (en) * | 2004-03-19 | 2010-02-09 | Microsoft Corporation | Automatic height adjustment for electronic highlighter pens and mousing devices |
WO2005109284A2 (en) * | 2004-05-03 | 2005-11-17 | Trintuition Llc | Apparatus and method for creating and using documents in a distributed computing network |
US7890604B2 (en) | 2004-05-07 | 2011-02-15 | Microsoft Corproation | Client-side callbacks to server events |
US9026578B2 (en) | 2004-05-14 | 2015-05-05 | Microsoft Corporation | Systems and methods for persisting data between web pages |
US7464386B2 (en) | 2004-05-17 | 2008-12-09 | Microsoft Corporation | Data controls architecture |
US8156448B2 (en) * | 2004-05-28 | 2012-04-10 | Microsoft Corporation | Site navigation and site navigation data source |
US7370273B2 (en) * | 2004-06-30 | 2008-05-06 | International Business Machines Corporation | System and method for creating dynamic folder hierarchies |
FR2874106B1 (en) * | 2004-08-09 | 2007-10-19 | Web Operator Sarl | METHOD FOR DISPLAYING AND EDITING PAGES ACCORDING TO STANDARD FORMAT |
US20060077443A1 (en) * | 2004-10-08 | 2006-04-13 | Sharp Laboratories Of America, Inc. | Methods and systems for imaging device display coordination |
US7979849B2 (en) * | 2004-10-15 | 2011-07-12 | Cisco Technology, Inc. | Automatic model-based testing |
US8302074B1 (en) * | 2004-10-15 | 2012-10-30 | Oracle America, Inc. | “If” and “switch” as drag and drop objects |
US7631290B1 (en) * | 2004-10-27 | 2009-12-08 | Adobe Systems Incorporated | Enhanced navigation for visual design editing |
CN100458774C (en) * | 2004-11-29 | 2009-02-04 | 国际商业机器公司 | File editing device and file editing method |
US7814457B2 (en) * | 2005-01-19 | 2010-10-12 | Sap Ag | System and method for revising flow diagrams displaying a process |
US8887099B1 (en) * | 2005-01-27 | 2014-11-11 | Oracle America, Inc. | Managing data hierarchically in a user interface |
US8234309B2 (en) | 2005-01-31 | 2012-07-31 | International Business Machines Corporation | Method for automatically modifying a tree structure |
JP5053550B2 (en) * | 2005-02-01 | 2012-10-17 | キヤノン株式会社 | Document processing apparatus and method and document processing system |
US20060212806A1 (en) * | 2005-03-18 | 2006-09-21 | Microsoft Corporation | Application of presentation styles to items on a web page |
US20060212792A1 (en) * | 2005-03-18 | 2006-09-21 | Microsoft Corporation | Synchronously publishing a web page and corresponding web page resources |
US7444597B2 (en) * | 2005-03-18 | 2008-10-28 | Microsoft Corporation | Organizing elements on a web page via drag and drop operations |
US7596574B2 (en) * | 2005-03-30 | 2009-09-29 | Primal Fusion, Inc. | Complex-adaptive system for providing a facted classification |
US9104779B2 (en) | 2005-03-30 | 2015-08-11 | Primal Fusion Inc. | Systems and methods for analyzing and synthesizing complex knowledge representations |
US8849860B2 (en) | 2005-03-30 | 2014-09-30 | Primal Fusion Inc. | Systems and methods for applying statistical inference techniques to knowledge representations |
US7606781B2 (en) * | 2005-03-30 | 2009-10-20 | Primal Fusion Inc. | System, method and computer program for facet analysis |
US7849090B2 (en) * | 2005-03-30 | 2010-12-07 | Primal Fusion Inc. | System, method and computer program for faceted classification synthesis |
US9177248B2 (en) | 2005-03-30 | 2015-11-03 | Primal Fusion Inc. | Knowledge representation systems and methods incorporating customization |
US9378203B2 (en) | 2008-05-01 | 2016-06-28 | Primal Fusion Inc. | Methods and apparatus for providing information of interest to one or more users |
US7844565B2 (en) | 2005-03-30 | 2010-11-30 | Primal Fusion Inc. | System, method and computer program for using a multi-tiered knowledge representation model |
US10002325B2 (en) | 2005-03-30 | 2018-06-19 | Primal Fusion Inc. | Knowledge representation systems and methods incorporating inference rules |
US7602972B1 (en) * | 2005-04-25 | 2009-10-13 | Adobe Systems, Incorporated | Method and apparatus for identifying white space tables within a document |
JP4485991B2 (en) | 2005-05-13 | 2010-06-23 | 株式会社ソニー・コンピュータエンタテインメント | Image processing apparatus, image processing method, and program |
US7945863B1 (en) * | 2005-07-05 | 2011-05-17 | Adobe Systems Incorporated | Localized exploded view |
US8423913B1 (en) * | 2005-07-12 | 2013-04-16 | Adobe Systems Incorporated | Methods and apparatus to display style-related information |
US20070050703A1 (en) * | 2005-08-26 | 2007-03-01 | Pierre Lebel | Methods, systems and computer program products for analyzing a hypertext markup language (HTML) document |
EP1920468B1 (en) * | 2005-09-01 | 2014-02-26 | Merck Patent GmbH | Photovoltaic cells integrated with bypass diode |
US7526737B2 (en) * | 2005-11-14 | 2009-04-28 | Microsoft Corporation | Free form wiper |
US7526495B2 (en) * | 2006-01-03 | 2009-04-28 | Emc Corporation | Real-time construction of a selection representation for items in tree structures |
US7605815B1 (en) | 2006-01-03 | 2009-10-20 | Emc Corporation | Selection representation methods applied to logical groupings |
US7574445B2 (en) * | 2006-01-03 | 2009-08-11 | Emc Corporation | Generating a selection representation for items in tree structures |
US7620646B1 (en) * | 2006-01-03 | 2009-11-17 | Emc Corporation | Real-time construction of a selection representation for items in tree structures |
US7984389B2 (en) | 2006-01-28 | 2011-07-19 | Rowan University | Information visualization system |
US20070186173A1 (en) * | 2006-02-03 | 2007-08-09 | Yahoo! Inc. | Instant messenger alerts and organization systems |
US9880702B2 (en) * | 2006-02-03 | 2018-01-30 | Yahoo Holdings, Inc. | Content structures and content navigation interfaces |
US8055444B2 (en) * | 2006-04-04 | 2011-11-08 | Yahoo! Inc. | Content display and navigation interface |
US20070250783A1 (en) * | 2006-04-24 | 2007-10-25 | Ehealthinsurance Services, Inc. | Method and system to provide online application forms |
US20070260483A1 (en) * | 2006-05-08 | 2007-11-08 | Marja-Leena Nurmela | Mobile communication terminal and method |
US20080172608A1 (en) * | 2006-06-06 | 2008-07-17 | Bellsouth Intellectual Property Corporation | Site builder |
US20080065679A1 (en) * | 2006-09-12 | 2008-03-13 | Douglas Ray Fish | Method for rules-based drag and drop processing in a network environment |
US7930648B1 (en) | 2006-10-10 | 2011-04-19 | Adobe Systems Incorporated | Expanded stack view |
WO2008067621A2 (en) * | 2006-12-04 | 2008-06-12 | Tassent E. Corporation Belgium Bvba | Method and apparatus for representing the layout of a website |
US8640086B2 (en) * | 2006-12-29 | 2014-01-28 | Sap Ag | Graphical user interface system and method for presenting objects |
US10083184B2 (en) * | 2007-01-07 | 2018-09-25 | Apple Inc. | Widget synchronization in accordance with synchronization preferences |
US20080256435A1 (en) * | 2007-01-26 | 2008-10-16 | Citation Technologies, Inc. | Interconnection of Document Preparation, Document Viewing, and Alert Processing in Structured Documents |
US8549409B2 (en) * | 2007-02-22 | 2013-10-01 | Microsoft Corporation | Customizable web application navigation |
JP4521417B2 (en) * | 2007-03-16 | 2010-08-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Computer program, method and apparatus for editing a structured electronic document represented by a tree structure in which an object to be processed by a computer constitutes each node |
US20080270566A1 (en) * | 2007-04-26 | 2008-10-30 | Lipinski Gregory J | System and method of hosting or publishing of content |
US8739068B2 (en) * | 2007-06-15 | 2014-05-27 | Microsoft Corporation | Dynamic user interface for in-diagram shape selection |
US20080313260A1 (en) * | 2007-06-15 | 2008-12-18 | Wildfireweb Inc. | Automated website generation |
US20090031224A1 (en) * | 2007-07-25 | 2009-01-29 | International Business Machines Corporation | Method, system, and computer program product for visually associating a static graphic image and html text on a web page |
US7949946B2 (en) * | 2007-10-17 | 2011-05-24 | Microsoft Corporation | Layout and line routing composition |
US8095417B2 (en) * | 2007-10-23 | 2012-01-10 | Microsoft Corporation | Key performance indicator scorecard editor |
US7987428B2 (en) * | 2007-10-23 | 2011-07-26 | Microsoft Corporation | Dashboard editor |
US8762871B2 (en) * | 2008-02-03 | 2014-06-24 | Microsoft Corporation | Dynamic preview of diagram elements to be inserted into a diagram |
US9361365B2 (en) | 2008-05-01 | 2016-06-07 | Primal Fusion Inc. | Methods and apparatus for searching of content using semantic synthesis |
US8676732B2 (en) | 2008-05-01 | 2014-03-18 | Primal Fusion Inc. | Methods and apparatus for providing information of interest to one or more users |
CA2723179C (en) * | 2008-05-01 | 2017-11-28 | Primal Fusion Inc. | Method, system, and computer program for user-driven dynamic generation of semantic networks and media synthesis |
US8875032B2 (en) * | 2008-05-08 | 2014-10-28 | Dialogic Corporation | System and method for dynamic configuration of components of web interfaces |
US20090327872A1 (en) * | 2008-06-27 | 2009-12-31 | International Business Machines Corporation | Object editing including layout modes during drag and drop operations |
EP2329406A1 (en) | 2008-08-29 | 2011-06-08 | Primal Fusion Inc. | Systems and methods for semantic concept definition and semantic concept relationship synthesis utilizing existing domain definitions |
US9170778B2 (en) * | 2008-11-18 | 2015-10-27 | Adobe Systems Incorporated | Methods and systems for application development |
US9015611B2 (en) | 2009-03-23 | 2015-04-21 | Adobe Systems Incorporated | Transferring component hierarchies between applications |
US20100269093A1 (en) * | 2009-04-17 | 2010-10-21 | iBiz Framework, Inc. | Content Management System and Method for Generating Dynamic Applications |
US8924921B2 (en) * | 2009-04-20 | 2014-12-30 | International Business Machines Corporation | Abstracting business logic into centralized database controls |
US8190710B2 (en) | 2009-06-23 | 2012-05-29 | Oracle International Corporation | System and method for providing user context support in a native transaction platform |
US8326913B2 (en) * | 2009-06-25 | 2012-12-04 | Oracle International Corporation | Method and system for service contract discovery |
US10909545B2 (en) * | 2009-07-24 | 2021-02-02 | Oracle International Corporation | Interactive store design interface based system |
JP5635247B2 (en) * | 2009-08-20 | 2014-12-03 | 富士通株式会社 | Multi-chip module |
US8863029B2 (en) * | 2009-09-01 | 2014-10-14 | Oracle International Corporation | Method and system for providing graphical user interface having filtering capability |
US8806379B2 (en) * | 2009-09-01 | 2014-08-12 | Oracle International Corporation | Method and system for displaying group relationships in a graphical user interface |
US8161413B2 (en) * | 2009-09-01 | 2012-04-17 | Oracle International Corporation | Method and system for providing user interface representing organization hierarchy |
US20110060644A1 (en) * | 2009-09-08 | 2011-03-10 | Peter Sweeney | Synthesizing messaging using context provided by consumers |
US20110060645A1 (en) * | 2009-09-08 | 2011-03-10 | Peter Sweeney | Synthesizing messaging using context provided by consumers |
US9292855B2 (en) | 2009-09-08 | 2016-03-22 | Primal Fusion Inc. | Synthesizing messaging using context provided by consumers |
TW201115362A (en) | 2009-10-29 | 2011-05-01 | Ibm | System, method, and program for editing electronic document |
US9262520B2 (en) | 2009-11-10 | 2016-02-16 | Primal Fusion Inc. | System, method and computer program for creating and manipulating data structures using an interactive graphical interface |
JP5460390B2 (en) * | 2010-03-12 | 2014-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Layout conversion apparatus, layout conversion program, and layout conversion method |
WO2011133162A1 (en) * | 2010-04-23 | 2011-10-27 | Hewlett-Packard Development Company, L.P. | Updating a user interface |
US7770122B1 (en) | 2010-04-29 | 2010-08-03 | Cheman Shaik | Codeless dynamic websites including general facilities |
CN102279856B (en) | 2010-06-09 | 2013-10-02 | 阿里巴巴集团控股有限公司 | Method and system for realizing website navigation |
US10474647B2 (en) | 2010-06-22 | 2019-11-12 | Primal Fusion Inc. | Methods and devices for customizing knowledge representation systems |
US9235806B2 (en) | 2010-06-22 | 2016-01-12 | Primal Fusion Inc. | Methods and devices for customizing knowledge representation systems |
US20120136693A1 (en) * | 2010-11-30 | 2012-05-31 | Sap Ag | System and method for a process overview diagram |
US9727538B2 (en) * | 2010-12-10 | 2017-08-08 | International Business Machines Corporation | Editing a fragmented document |
US11294977B2 (en) | 2011-06-20 | 2022-04-05 | Primal Fusion Inc. | Techniques for presenting content to a user based on the user's preferences |
US10482475B2 (en) | 2011-02-10 | 2019-11-19 | Adp Dealer Services, Inc. | Systems and methods for providing targeted advertising |
US9002139B2 (en) | 2011-02-16 | 2015-04-07 | Adobe Systems Incorporated | Methods and systems for automated image slicing |
US9098575B2 (en) | 2011-06-20 | 2015-08-04 | Primal Fusion Inc. | Preference-guided semantic processing |
US20130030987A1 (en) * | 2011-07-27 | 2013-01-31 | Zuckerberg Mark E | Paid Profile Personalization |
US20130086496A1 (en) * | 2011-08-31 | 2013-04-04 | Wixpress Ltd | Adaptive User Interface for a Multimedia Creative Design System |
US9323440B2 (en) * | 2011-12-16 | 2016-04-26 | International Business Machines Corporation | Scroll focus |
CN103218719B (en) | 2012-01-19 | 2016-12-07 | 阿里巴巴集团控股有限公司 | A kind of e-commerce website air navigation aid and system |
US9223456B2 (en) * | 2012-01-20 | 2015-12-29 | Cimpress Schweiz Gmbh | Digital image editing |
US9129018B2 (en) * | 2012-04-20 | 2015-09-08 | Microsoft Technology Licensing, Llc | Changing results after back button use or duplicate request |
US9256587B2 (en) * | 2012-06-04 | 2016-02-09 | Aphotofolio.Com | Editor for website and website menu |
USD740839S1 (en) * | 2012-09-18 | 2015-10-13 | Fanhattan, Inc. | Display screen with graphical user interface for live media content |
USD742395S1 (en) * | 2012-09-18 | 2015-11-03 | Fanhattan, Inc. | Display screen with graphical user interface for live media content |
US20140101533A1 (en) * | 2012-10-02 | 2014-04-10 | Percussion Software, Inc. | Lossless application of new information architecture to existing websites, web pages, and online content |
CN104718527B (en) * | 2012-10-12 | 2017-10-20 | 三菱电机株式会社 | Picture transition diagram generating means |
US11080734B2 (en) | 2013-03-15 | 2021-08-03 | Cdk Global, Llc | Pricing system for identifying prices for vehicles offered by vehicle dealerships and other entities |
US9465523B2 (en) * | 2013-06-27 | 2016-10-11 | Sap Se | Visual exploration of multidimensional data |
KR20150017099A (en) * | 2013-08-06 | 2015-02-16 | 삼성전자주식회사 | Controlling Method For Input Status and Electronic Device supporting the same |
US20150149935A1 (en) * | 2013-11-25 | 2015-05-28 | Richard Paul Mcnee | Information browser |
USD768144S1 (en) * | 2014-01-03 | 2016-10-04 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
US9836284B2 (en) | 2014-06-18 | 2017-12-05 | Vmware, Inc. | HTML5 graph layout for application topology |
US9852114B2 (en) | 2014-06-18 | 2017-12-26 | Vmware, Inc. | HTML5 graph overlays for application topology |
US9740792B2 (en) * | 2014-06-18 | 2017-08-22 | Vmware, Inc. | Connection paths for application topology |
USD751115S1 (en) * | 2014-07-29 | 2016-03-08 | Krush Technologies, Llc | Display screen or portion thereof with icon |
USD754195S1 (en) * | 2014-07-29 | 2016-04-19 | Krush Technologies, Llc | Display screen or portion thereof with icon |
CN105335039A (en) | 2014-07-30 | 2016-02-17 | 国际商业机器公司 | Method and device for moving object among pages of editable document |
USD755838S1 (en) * | 2014-07-30 | 2016-05-10 | Krush Technologies, Llc | Display screen or portion thereof with icon |
KR101786660B1 (en) * | 2014-10-31 | 2017-10-18 | 삼성에스디에스 주식회사 | Control map providing method and apparatus |
US9965450B2 (en) * | 2014-12-31 | 2018-05-08 | Sap Portals Israel Ltd. | Dynamic management of site components |
US10867285B2 (en) | 2016-04-21 | 2020-12-15 | Cdk Global, Llc | Automatic automobile repair service scheduling based on diagnostic trouble codes and service center attributes |
US10332068B2 (en) | 2016-04-21 | 2019-06-25 | Cdk Global, Llc | Systems and methods for stocking an automobile |
US10853769B2 (en) | 2016-04-21 | 2020-12-01 | Cdk Global Llc | Scheduling an automobile service appointment in a dealer service bay based on diagnostic trouble codes and service bay attributes |
US10326858B2 (en) | 2017-05-23 | 2019-06-18 | Cdk Global, Llc | System and method for dynamically generating personalized websites |
US11501351B2 (en) | 2018-03-21 | 2022-11-15 | Cdk Global, Llc | Servers, systems, and methods for single sign-on of an automotive commerce exchange |
US11190608B2 (en) | 2018-03-21 | 2021-11-30 | Cdk Global Llc | Systems and methods for an automotive commerce exchange |
US20200125559A1 (en) * | 2018-10-22 | 2020-04-23 | Tableau Software, Inc. | Generating data visualizations according to an object model of selected data sources |
US11762525B2 (en) * | 2020-01-15 | 2023-09-19 | Vmware, Inc. | Enterprise branding configuration provisioning |
US11119907B1 (en) * | 2020-08-19 | 2021-09-14 | Oracle International Corporation | Techniques for tracking and testing code modifications using semantic catalogue |
US11080105B1 (en) | 2020-11-18 | 2021-08-03 | Cdk Global, Llc | Systems, methods, and apparatuses for routing API calls |
US11514021B2 (en) | 2021-01-22 | 2022-11-29 | Cdk Global, Llc | Systems, methods, and apparatuses for scanning a legacy database |
US11803535B2 (en) | 2021-05-24 | 2023-10-31 | Cdk Global, Llc | Systems, methods, and apparatuses for simultaneously running parallel databases |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994028480A1 (en) * | 1993-05-24 | 1994-12-08 | Media Station, Inc. | Interactive multimedia development system and method |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5632022A (en) * | 1991-11-13 | 1997-05-20 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Encyclopedia of software components |
US5446837A (en) * | 1992-04-30 | 1995-08-29 | Ricoh Company, Ltd. | Method and system to process resources in a document processing language |
US5237635A (en) | 1992-07-15 | 1993-08-17 | W. L. Gore & Associates, Inc. | Signal cable having metal-plated polymer shielding |
JPH06176081A (en) * | 1992-12-02 | 1994-06-24 | Hitachi Ltd | Hierarchical structure browsing method and device |
JP2906949B2 (en) * | 1993-10-27 | 1999-06-21 | 富士ゼロックス株式会社 | Hypertext device |
JP2692782B2 (en) * | 1993-12-13 | 1997-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレイション | How to link objects |
US5546519A (en) * | 1994-02-28 | 1996-08-13 | International Business Machines Corporation | System and method for visually programming iteration |
US5694594A (en) * | 1994-11-14 | 1997-12-02 | Chang; Daniel | System for linking hypermedia data objects in accordance with associations of source and destination data objects and similarity threshold without using keywords or link-difining terms |
US5546517A (en) * | 1994-12-07 | 1996-08-13 | Mitsubishi Electric Information Technology Center America, Inc. | Apparatus for determining the structure of a hypermedia document using graph partitioning |
US5801702A (en) * | 1995-03-09 | 1998-09-01 | Terrabyte Technology | System and method for adding network links in a displayed hierarchy |
US5870552A (en) * | 1995-03-28 | 1999-02-09 | America Online, Inc. | Method and apparatus for publishing hypermedia documents over wide area networks |
US5680619A (en) * | 1995-04-03 | 1997-10-21 | Mfactory, Inc. | Hierarchical encapsulation of instantiated objects in a multimedia authoring system |
JP3188135B2 (en) * | 1995-05-19 | 2001-07-16 | 三洋電機株式会社 | Video signal processing circuit |
US5701137A (en) * | 1995-05-24 | 1997-12-23 | Microsoft Corporation | Method for separating a hierarchical tree control into one or more hierarchical child tree controls in a graphical user interface |
US5644736A (en) * | 1995-05-25 | 1997-07-01 | International Business Machines Corporation | System and method for selecting components of a hierarchical file structure |
US5745360A (en) * | 1995-08-14 | 1998-04-28 | International Business Machines Corp. | Dynamic hypertext link converter system and process |
US5748186A (en) * | 1995-10-02 | 1998-05-05 | Digital Equipment Corporation | Multimodal information presentation system |
US5802299A (en) * | 1996-02-13 | 1998-09-01 | Microtouch Systems, Inc. | Interactive system for authoring hypertext document collections |
US6199098B1 (en) * | 1996-02-23 | 2001-03-06 | Silicon Graphics, Inc. | Method and apparatus for providing an expandable, hierarchical index in a hypertextual, client-server environment |
US5890170A (en) * | 1996-02-28 | 1999-03-30 | Silicon Graphics, Inc. | Method and apparatus for publishing documents in a hypertextural network environment |
US5758361A (en) * | 1996-03-20 | 1998-05-26 | Sun Microsystems, Inc. | Document editor for linear and space efficient representation of hierarchical documents |
US6035330A (en) * | 1996-03-29 | 2000-03-07 | British Telecommunications | World wide web navigational mapping system and method |
US5727156A (en) * | 1996-04-10 | 1998-03-10 | Hotoffice Technologies, Inc. | Internet-based automatic publishing system |
US6034689A (en) * | 1996-06-03 | 2000-03-07 | Webtv Networks, Inc. | Web browser allowing navigation between hypertext objects using remote control |
US5724595A (en) * | 1996-06-19 | 1998-03-03 | Sun Microsystems, Inc. | Simple method for creating hypertext links |
US5845299A (en) | 1996-07-29 | 1998-12-01 | Rae Technology Llc | Draw-based editor for web pages |
US5911145A (en) * | 1996-07-29 | 1999-06-08 | Rae Technology, Inc. | Hierarchical structure editor for web sites |
US5956736A (en) * | 1996-09-27 | 1999-09-21 | Apple Computer, Inc. | Object-oriented editor for creating world wide web documents |
US6029182A (en) * | 1996-10-04 | 2000-02-22 | Canon Information Systems, Inc. | System for generating a custom formatted hypertext document by using a personal profile to retrieve hierarchical documents |
US5870559A (en) | 1996-10-15 | 1999-02-09 | Mercury Interactive | Software system and associated methods for facilitating the analysis and management of web sites |
US6144962A (en) * | 1996-10-15 | 2000-11-07 | Mercury Interactive Corporation | Visualization of web sites and hierarchical data structures |
US5953731A (en) * | 1997-03-31 | 1999-09-14 | International Business Machines Coporation | HTML integration utility for a program development environment |
US7278098B1 (en) | 1997-04-09 | 2007-10-02 | Adobe Systems Incorporated | Method and apparatus for implementing web pages having smart tables |
US6148311A (en) * | 1997-04-25 | 2000-11-14 | Adobe Systems Incorporation | Web site construction by inferring navigational structure from physical file structure |
US6505212B2 (en) * | 1998-02-04 | 2003-01-07 | Interwoven Inc | System and method for website development |
US6792475B1 (en) * | 2000-06-23 | 2004-09-14 | Microsoft Corporation | System and method for facilitating the design of a website |
-
1996
- 1996-07-29 US US08/687,971 patent/US5911145A/en not_active Expired - Lifetime
-
1997
- 1997-07-25 WO PCT/US1997/012820 patent/WO1998004983A1/en active Application Filing
- 1997-07-25 AU AU38083/97A patent/AU3808397A/en not_active Abandoned
-
2002
- 2002-10-02 US US10/263,124 patent/US7246307B2/en not_active Expired - Fee Related
-
2007
- 2007-01-19 US US11/655,432 patent/US8935602B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994028480A1 (en) * | 1993-05-24 | 1994-12-08 | Media Station, Inc. | Interactive multimedia development system and method |
Non-Patent Citations (3)
Title |
---|
BALDAZO R: "Battle of the Web site builders", BYTE, JULY 1996, MCGRAW-HILL, USA, vol. 21, no. 7, ISSN 0360-5280, pages 157 - 158, XP002046654 * |
HOWLETT D: "How to build your own Web site", PC USER, 10-23 JAN. 1996, EMAP COMPUTING, UK, no. 274, ISSN 0263-5720, pages 41 - 42, 44, XP002046655 * |
ROUSSEAU B: "PUBLISHING ON THE WEB", CERN SCHOOL OF COMPUTING, 25 October 1995 (1995-10-25), pages 279 - 293, XP000578592 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0973105A2 (en) * | 1998-05-18 | 2000-01-19 | Matsushita Electric Industrial Co., Ltd. | Document management system with link function and document management method |
EP0973105A3 (en) * | 1998-05-18 | 2000-02-23 | Matsushita Electric Industrial Co., Ltd. | Document management system with link function and document management method |
WO1999066433A1 (en) * | 1998-06-16 | 1999-12-23 | Easysite Australia Pty Ltd | Real-time document management system |
WO2000051033A2 (en) * | 1999-02-23 | 2000-08-31 | Planet-Intra.Com | Dynamic sites |
WO2000051033A3 (en) * | 1999-02-23 | 2001-05-31 | Planet Intra Com | Dynamic sites |
GB2354923A (en) * | 1999-04-06 | 2001-04-04 | Zyris Plc | Web-site editor |
EP1643382A2 (en) * | 2004-09-30 | 2006-04-05 | Microsoft Corporation | System and method for unified navigation in Web pages |
KR101143198B1 (en) * | 2004-09-30 | 2012-05-18 | 마이크로소프트 코포레이션 | System and method for unified navigation |
EP2575053A1 (en) * | 2011-09-27 | 2013-04-03 | Alcatel Lucent | User-enhanced ranking of information objects |
WO2013045177A1 (en) * | 2011-09-27 | 2013-04-04 | Alcatel Lucent | User-enhanced ranking of information objects |
KR101584981B1 (en) | 2011-09-27 | 2016-01-13 | 알까뗄 루슨트 | User-enhanced ranking of information objects |
CN110293539A (en) * | 2019-06-24 | 2019-10-01 | 佛山智异科技开发有限公司 | Implementation method, device and the teaching machine of industrial robot teaching device software architecture |
CN110293539B (en) * | 2019-06-24 | 2022-09-30 | 佛山智异科技开发有限公司 | Method and device for realizing software architecture of industrial robot demonstrator and demonstrator |
Also Published As
Publication number | Publication date |
---|---|
US20040205594A1 (en) | 2004-10-14 |
US8935602B2 (en) | 2015-01-13 |
US5911145A (en) | 1999-06-08 |
US7246307B2 (en) | 2007-07-17 |
US20070118793A1 (en) | 2007-05-24 |
AU3808397A (en) | 1998-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO1998004983A1 (en) | Hierarchical structure editor for web sites | |
WO1998004978A1 (en) | Draw-based editor for web pages | |
US6668354B1 (en) | Automatic display script and style sheet generation | |
US6799299B1 (en) | Method and apparatus for creating stylesheets in a data processing system | |
JP4344693B2 (en) | System and method for browser document editing | |
US6826727B1 (en) | Apparatus, methods, programming for automatically laying out documents | |
US6584480B1 (en) | Structured documents in a publishing system | |
US5860073A (en) | Style sheets for publishing system | |
KR100324456B1 (en) | Structured document searching display method and apparatus | |
US7191405B1 (en) | System and method for editing information | |
US7685426B2 (en) | Managing and indexing content on a network with image bookmarks and digital watermarks | |
EP1376408B1 (en) | Extraction of information from structured documents | |
US7240294B2 (en) | Method of constructing a composite image | |
US20050028081A1 (en) | System and method for facilitating the design of a website | |
JP3776866B2 (en) | Electronic document printing program and electronic document printing system | |
JP2002189595A (en) | Integrated method for creating refreshable web query | |
JP2002222181A (en) | Information processing system and method therefor, and recording medium recording information processing software | |
WO2002037939A9 (en) | Method of constructing a composite image within an image space of a webpage | |
US7620903B1 (en) | Simplified implementation of adaptable user interfaces | |
JPH07239850A (en) | Structured document preparation supporting system | |
EP0843266A2 (en) | Dynamic incremental updating of electronic documents | |
EP0971295A1 (en) | System for automatically organizing digital contents and recording medium on which automatically organized digital contents are recorded | |
US20020099623A1 (en) | System for automatically organizing digital contents and recording medium on which automatically organized digital contents are recorded | |
US20050039122A1 (en) | Methodology and system for rendering dynamic images | |
JP3100614B2 (en) | Document processing apparatus and document processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU BR CA CN IL JP KP |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: JP Ref document number: 1998508933 Format of ref document f/p: F |
|
NENP | Non-entry into the national phase |
Ref country code: CA |
|
122 | Ep: pct application non-entry in european phase |