An architecture integrates spreadsheet functionality into tables commonly used in word processing programs and HTML documents. The architecture presents a table user interface (UI) that resembles a table when not being edited and adds spreadsheet elements to the table when being edited. Underlying the table UI, the architecture separates data handling functions from presentation functions. The architecture includes a table appearance manager to manage how the table appears in a document including such characteristics as table resizing, selection, cut, copy, paste, split, merge, table formatting and so on. The architecture also has a spreadsheet functionality manager to manage the spreadsheet functions for the table, such as recalculation, formula handling, sorting, referencing, and the like. The bifurcated architecture supports cross-table referencing, reference editing, automatic universal recalculation throughout all tables in the document, and nested table structures in which one table is nested within a cell of another table.
RELATED APPLICATIONS
This patent application is a divisional application of U.S. patent application Ser. No. 09/599,810, titled "User Interface for Integrated Spreadsheets and Word Processing Tables", filed on Jun. 21, 2000, commonly assigned herewith, and hereby incorporated by reference.
A table converter is disclosed that enables a user to convert any table, or portion of a table, displayed on a web page to a spreadsheet control embedded in the webpage. The table converter is a web browser plug-in or feature comprising a table analysis program (TAP); a table conversion program (TCP), a spreadsheet configuration program (SCP), a spreadsheet modification program (SMP), a configurable table engine (CTE), and a configurable table template (CTT). The CTE contains a rules database. The TAP interrogates the highlighted hypertext markup language (HTML) table structure <table>, <tr>, <th> and <td> tags, and text for delimiters. The TCP maps the table headings and data to a configurable table engine (CTE). The CTE inserts the headings and data into a configurable table template (CTT), and displays the CTT on the web page at a user configurable location. The SCP enables a user to automate the process, to add or subtract columns or rows from the table, and to add calculation functions. Automation options include both locating and converting a table displayed on a web page.
Methods and systems for network-based or Internet-based software delivery are described. In one embodiment, an application program or software platform resides on a client. The program or platform is configured so that it is extensible based on software extensions that are deliverable over a network such as the Internet. Various extensions can be developed by third party developers for incorporation into the program or platform. In the described embodiment, extension files that comprise a software extension are hosted on an Internet server. Additional files are also hosted on the Internet server and describe aspects of the software extension. These additional files include files that describe a logical attachment of the extension to the program or platform, as well as files that describe the location of the extension files. Extensions are incorporated on a client by navigating to a particular Internet site through which the extensions can be accessed. The files describing the extension files are downloaded on the client. These files tell the client where the particular extension is to be plugged in, as well as where to find the appropriate extension files and how to download them. The extension files are then downloaded and incorporated into the program or platform.
Instructions are received to open an eXtensible Markup Language (XML) document. The XML document is searched to locate a processing instruction (PI) containing an entity. The entity, by example, can be a href attribute, a URL, a name, or a character string identifying an application that created an HTML electronic form associated with the XML document. A solution is discovered using the entity. The XML document is opened with the solution. The solution includes an XSLT presentation application and an XML schema. The XML document can be inferred from the XML schema and portions of the XML document are logically coupled with fragments of the XML schema. The XSLT presentation application is executing to transform the coupled portions of the XML document into the HTML electronic form containing data-entry fields associated with the coupled portions. Data entered through the data-entry fields can be validated using the solution.
Scalable object model design is described. In an embodiment, one or more objects corresponding to a form are instantiated in response to a request for the form from a first client device, and an events manager is instantiated through which the one or more objects register to process data manipulation events associated with the form. Data specific to the first client device is processed with the one or more objects that correspond to the form via a first processor thread. An additional request from a second client device is received and additional data specific to the second client device is processed with the one or more objects that correspond to the form via a second processor thread. The one or more objects are shared by the first client device and the second client device to process the data manipulation events associated with the form.
Systems and/or methods ("tools") are described that convert or present conversion problems for electronic documents. The tools may convert a generally unstructured electronic document to a generally structured electronic document using non-visual textual and layout information of the unstructured document. The tools can also present possible problems with this or other types of conversion. And the tools can enable a user to alter an electronic document's schema without altering its visual layout.