US20090259950A1 - Editing user interface components - Google Patents
Editing user interface components Download PDFInfo
- Publication number
- US20090259950A1 US20090259950A1 US12/101,606 US10160608A US2009259950A1 US 20090259950 A1 US20090259950 A1 US 20090259950A1 US 10160608 A US10160608 A US 10160608A US 2009259950 A1 US2009259950 A1 US 2009259950A1
- Authority
- US
- United States
- Prior art keywords
- component
- editable
- components
- user interface
- editing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000008859 change Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 9
- 238000010304 firing Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Definitions
- One embodiment is directed generally to a computer user interface, and in particular to editing components of a computer user interface.
- having a user customize a user interface may make an application easier to use.
- most application user interfaces are written with fairly sophisticated computer code. The average user, who is likely not a computer programmer, may not have the desire or may not have the capability to rewrite computer code to implement any substantial amount of customization.
- One embodiment is a system that executes a user editable application.
- the application includes a user interface that includes a plurality of components organized as a tree structure.
- the system indicates which of the component subtrees of the plurality of components may be editable by a user of the application.
- the system receives editing input from the user for an editable component, and then updates the component based on the editing input.
- FIG. 1 is a block diagram of a system in accordance with one embodiment to provide a user interface with editable components.
- FIG. 2 is an editable user interface in accordance with one embodiment.
- FIG. 3 illustrates the user interface of FIG. 2 when a button has been selected in accordance with one embodiment.
- FIG. 4 illustrates the user interface of FIG. 2 when a selection is made by a user via the cursor of a component that does not support inline editing in accordance with one embodiment.
- FIG. 5 illustrates the user interface of FIG. 2 when a component filter box is checked.
- FIG. 6 illustrates the user interface of FIG. 2 when the “Click Me (goButton)” button has been selected and is in inline-editing mode.
- FIG. 7 illustrates the user interface of FIG. 2 in the middle of editing the button.
- FIG. 8 illustrates the user interface of FIG. 2 after the user has completed editing the subtree.
- FIG. 9 is a flow diagram of the functionality of the system when enabling an editable component subtree of a user interface page for inline editing in accordance with one embodiment.
- FIG. 10 is a flow diagram of the functionality of the system in handling user interface events on a page which includes an active inline editing component subtree in accordance with one embodiment.
- FIG. 11 is a flow diagram of the functionality of the system when handling user interface input events when the event is targeted at the currently active inline editor component in accordance with one embodiment.
- One embodiment is a user interface that included components that are easily editable by a user in order to customize the user interface.
- FIG. 1 is a block diagram of a system 10 in accordance with one embodiment to provide a user interface with editable components.
- System 10 includes a client computer 12 that receives and displays a user interface (“UI”) that includes one or more user interface components.
- Client computer 12 includes a processor 13 and memory 14 .
- Processor 13 can be any type of specific or general purpose processor, and memory 14 can be any type of memory or other computer readable media that stores instructions that are executed by processor 13 .
- Client 12 can be any type of computer or other computing device that can generate and display an Internet browser window or other type of graphical user interface (“GUI”) or other type of UI, including a personal digital assistant (“PDA”), telephone, etc.
- GUI graphical user interface
- PDA personal digital assistant
- memory 14 includes an operating system 15 and an Internet browser 16 .
- Client 12 is coupled to a server computer 22 via a link 20 .
- Link 22 is any type of local or network connection that enables client 12 to communicate and exchange data with server 22 .
- link 20 is the Internet and may be considered a computer readable media.
- Server 22 includes a processor 23 and memory 24 .
- Processor 23 can be any type of specific or general purpose processor, and memory 24 can be any type of memory or other computer readable media that stores instructions that are executed by processor 23 .
- memory 24 includes an operating system 25 and a UI editor enabled application 26 .
- a UI editor can be separate but coupled to an application in order to provide the editing functionality to the application.
- system 10 has a model-view-controller (“MVC”) architecture.
- MVC model-view-controller
- an MVC architecture in a computer application separates data (the “model”) and user interface (the “view”) concerns, so that changes to the user interface will not affect data handling, and the data can be reorganized without changing the user interface.
- An intermediate component, the “controller”, decouples data access and business logic from data presentation and user interaction.
- system 10 executes the Java Server Faces (“JSF”) from Sun Microsystems, Inc. as an MVC framework.
- JSF Java Server Faces
- the model is represented by Java beans, and the view is represented by a Java Server Page (“JSP”), which is implemented using JSF components.
- JSP Java Server Page
- Each JSF page is represented by a tree of JSF components rooted at a single JSF component, the UIViewRoot. Sub-pieces of a page rooted at a single JSF component are called component subtrees.
- the JSF servlet functions as the controller.
- any MVC framework may be used.
- UI editor enabled application 26 is an application that can be accessed on client 12 via browser 16 and has components that can be edited by a user at client 12 .
- Application 26 can be any type of application that includes a user interface and is accessible via a client.
- UI editor enabled application 26 is stored in memory 14 of client 12 and server 22 is not needed.
- the user interface of application 26 is formed by multiple JSF components or other types of components. The components may include user interface buttons, headers, footers, task bars, tabs, scrollbars, etc. One or more of these components may be edited by a user at client 12 .
- FIG. 2 is an editable UI 200 in accordance with one embodiment that is generated by application 26 and is displayed on browser 16 of client 12 .
- UI 200 displays a subtree of a JSP page that is in an “edit” mode.
- UI 200 includes a plurality of components, including a button 221 , a link 222 , and a tab 223 .
- UI 200 further includes a “Start Inline Edit” button 224 that can be selected by the user via a cursor 225 to begin the inline editing process of one or more components of UI 200 .
- choosing the editable subtrees may be accomplished through other user interface affordances.
- FIG. 3 illustrates UI 200 when button 221 has been selected in accordance with one embodiment.
- Cascading Style Sheets (“CSS”) styles such as shading 324 , are applied to indicate the editable subsection of the page—the editable component subtree of UI 200 and editable and selectable components.
- CSS CSS
- button 221 is now editable, as indicated by cursor 225 being changed into an I-beam when over an editable component.
- FIG. 4 illustrates UI 200 when a selection is made by a user via the cursor of a component (i.e., selection border 402 ) that does not support inline editing in accordance with one embodiment.
- the selection style is applied and cursor 225 becomes a pointer, indicating that only selection and not editing is allowed for that component.
- FIG. 5 illustrates UI 200 when a component filter box 502 is checked.
- filter box 502 When filter box 502 is selected, some components that by default would be editable are no longer editable. In this example, “Sometimes Editable” component 504 is not editable, as indicated by cursor 225 because box 502 is checked.
- FIG. 6 illustrates UI 200 when “Click Me (goButton)” button 221 has been selected and is in inline-editing mode, as indicated by cursor 225 .
- FIG. 7 illustrates UI 200 in the middle of editing button 221 .
- the text has been changed to “Click Me (Go Home”.
- FIG. 8 illustrates UI 200 after the user has completed editing the subtree.
- the editing styles have been removed and the edits to button 221 remains. Therefore, the user has been able to easily inline edit one or more components of UI 200 .
- the button would perform its normal action rather than start editing, since button 221 is no longer within an editable component subtree.
- FIG. 9 is a flow diagram of the functionality of system 10 when enabling an editable component subtree of a UI page for inline editing in accordance with one embodiment.
- the functionality of the flow diagram of FIG. 9 , and FIGS. 10 and 11 is implemented by software stored in memory or other computer readable or tangible medium, and executed by a processor.
- the functionality can be performed by hardware, or any combination of hardware and software.
- application 26 changes or specifies the root component of the component subtree to enable inline editing on.
- the framework of system 10 checks if a different inline editing component subtree (“old inline editing subtree”) is currently set. In one embodiment, only zero or one editable subtrees are allowed to exist at a time. In that embodiment, if an existing editable subtree exists, editing on that subtree needs to be disabled before enabling editing on the new subtree. If yes at 302 , the old inline editing subtree is disabled.
- the CSS style class used to highlight the editing subtree is cleared and removed from the old editable subtree root.
- the component children of the inline editing subtree are walked depth first in a loop.
- the loop exits at 310 .
- any editable or selectable CSS style classes previously added at 320 and 322 are removed/cleared.
- 310 to 322 of FIG. 9 are directed to configuring a new editable subtree, if any, for editing.
- the CSS style class used to highlight the editing subtree is set on the root component of the new editable subtree.
- the component children of the new editable subtree are walked depth first.
- the current component child is a private implementation detail of a public child. If it is, the child is skipped because the component does not exist in the application's definition of the page and thus can not be edited.
- the framework calls any filter function that the application may have specified.
- the filter allows the application control over which components may be edited or selected.
- the filter returns whether the component is editable and selectable, selectable only, or neither selectable nor editable. If no filter is specified, the assumption is that any component capable of being edited can be edited by the user and all other components are selectable.
- a potentially editable component is checked to determine whether it is capable of being editing by attempting to retrieve an inline editor object for the component. If no inline editor exists for this component, the component is not editable.
- the component is determined to be editable, and an editable CSS marker style is added to the component's root Document Object Model (“DOM”) node to show the user that this component is editable.
- DOM Document Object Model
- a component is marked as selectable by adding a selectable CSS marker style to the component's root DOM node. Since editable components are also selectable, an editable component will have both editable and selectable CSS style classes attached after this step.
- the work to clear the old editable subtree and configure the new editable subtree has been completed and an event to notify listeners of the change is fired. This allows an application to know when to show any additional editing tools (such as property inspectors, component palettes, and structure panes) relevant to the current editable component subtree.
- additional editing tools such as property inspectors, component palettes, and structure panes
- FIG. 10 is a flow diagram of the functionality of system 10 in handling user interface events on a page which includes an active inline editing component subtree in accordance with one embodiment.
- browser 16 delivers a DOM user interface event (e.g., a mouse click or key press) to the framework.
- a DOM user interface event e.g., a mouse click or key press
- the framework determines if the target of the DOM user interface event is in the currently displayed inline editor, if any. If it is in the inline editor, the event is dispatched to the inline editor for handling, disclosed in detail in FIG. 11 below.
- the framework determines whether the event is targeted inside the current editable component subtree, if any. If it is not, then at 109 the event is dispatched as normal to the target allowing normal user interaction with components outside of the editable subtree. This enables these areas to host components that manage the editing experience, such as property inspectors and structure viewers or allow these non-editable areas to contain other application-specific functionality, such as application navigation.
- the event is targeted at the editable subtree and it needs to be determined whether the user is attempting to modify the current selection or is starting a new editing operation. If the user interface event represents a gesture that explicitly modifies selection (e.g., a shift-click to extend selection or control-click to toggle selection on many windowing systems), the selection is modified at 111 .
- a gesture that explicitly modifies selection e.g., a shift-click to extend selection or control-click to toggle selection on many windowing systems
- the gesture is selection extension, then all of the selectable components between the last selected component and the currently selected component in a depth first walk of the component tree will be selected. If no component is currently selected, the clicked on component will be selected if it is selectable. If the gesture represents a selection toggle, the clicked component will be deselected if currently selected and selected if currently deselected and selectable. If the operations actually result in a change to the set of selected components, an event with the old and new sets of selected components will be delivered. Firing “selection changed” events allows other editing tools, unknown to the editing framework itself, to update their state as appropriate. For example, a component tree structure viewer may highlight the currently selected nodes in its tree structure, or a property inspector may display the attribute values of the currently selected components.
- editing is initiated by sending a “startEdit” message to the component's inline editing strategy object and passing the component to edit and the user interface input event that triggered the editing to the editor. Passing the triggering event allows a component that has multiple different editable sections to pick the correct editor to use for the targeted section. It also allows the editor to set up a better initial editing state, by enabling the editor to correctly position a text insertion cursor, for example.
- the current edited component is set to the target component and a change event with the old and new values of the currently edited component is fired.
- the inline editor For any attributes that the inline editor is editing, it stores the original values in case these need to be restored later (e.g., at 205 in FIG. 11 below).
- the selectability of the non-editable component is checked as marked at box 322 of FIG. 9 . If the component is selectable it is selected at 115 .
- the selection is set to the component that is the target of the input event. Any previously selected components are de-selected and a selection change event containing the list of previously selected and the newly selected component is fired.
- the current component was neither editable nor selectable so the current target to the parent of the current component is changed and the loop is executed again at 112 . If the current target is the root of the editable subtree, the loop is exited and the event is ignored.
- FIG. 11 is a flow diagram of the functionality of system 10 when handling user interface input events when the event is targeted at the currently active inline editor component in accordance with one embodiment.
- the inline editor receives an event targeted at its user interface structure.
- the inline editor checks whether it should interpret the event as indicating that editing should be canceled. For example, the inline editor might interpret the escape key as indicating cancel, for instance, or might expose a “cancel editing” button.
- the inline editor has interpreted the event as cancel and has restored the values of any edited attributes of the component to their values at the time that editing started and stops editing, hiding the inline editor, setting the current edited component to null and firing the appropriate change event.
- the inline editor checks whether it should interpret the event as indicating that the current value of the input should be committed. For example, the inline editor might interpret the enter key as indicating commit or might expose a commit button. While most editors post editing changes as soon as possible, more complicated editors that need a value to pass through a temporarily invalid state might defer posting changes until explicitly committed by the user.
- the inline editor has interpreted the event as commit and has set the current edited values of any edited attributes on the component. If these sets succeed without any exceptions, the current edited component is set to null and the current edited component change event is fired. If the commit fails, the editor is still displayed and editing continues.
- the inline editor checks whether the event is targeted at a part of its user interface that does not directly edit an attribute of the edited component (e.g., a button that exposes additional advanced editing controls).
- the inline editor handles the event on the additional editing user interface elements from 208 and updates its state.
- the inline editor checks whether the target of the event is one of its controls that directly edit the value of a component attribute. For example, a key press event targeted at a text field used to edit the label of the checkbox component.
- any event targeted at the inline editor did not affect any of the parts of the inline editor that react to user input is discarded.
- the event that updates edited attribute values is interpreted as a change to the attribute value and the new value for this attribute is set on the component, which typically updates its appearance to reflect the new value.
- the size and position of the different edited parts of the edited component may have changed.
- the label of an edited checkbox may have become larger if a character was added to it.
- the inline editor can reposition and resize its edited components to correctly mimic these changes.
- the inline editor retrieves the new value from the component and updates its value with this new value. This allows the editor to track any changes that the component made to the attribute value set by the inline editor and also allows the inline editor to respond to changes made to the edited attributes by parts of the system unknown to the inline editor.
- embodiments allow a user to selectively edit components of the user interface in order to customize the user interface.
- the editing may include changing the text that is used to identify the components, or other component attribute changes such as size, color, font, accelerator key, visibility, tab order, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
- One embodiment is directed generally to a computer user interface, and in particular to editing components of a computer user interface.
- As computer software applications increase in functionality and become more complicated, it can become more burdensome for a user to interact with the applications. The layout, design and content of the user interface of the application, which is the primary tool used by the user to interact with the application, increases in importance when efforts are made to make an application relatively easy to use.
- In some instances, having a user customize a user interface may make an application easier to use. Unfortunately, most application user interfaces are written with fairly sophisticated computer code. The average user, who is likely not a computer programmer, may not have the desire or may not have the capability to rewrite computer code to implement any substantial amount of customization.
- One embodiment is a system that executes a user editable application. The application includes a user interface that includes a plurality of components organized as a tree structure. The system indicates which of the component subtrees of the plurality of components may be editable by a user of the application. The system receives editing input from the user for an editable component, and then updates the component based on the editing input.
-
FIG. 1 is a block diagram of a system in accordance with one embodiment to provide a user interface with editable components. -
FIG. 2 is an editable user interface in accordance with one embodiment. -
FIG. 3 illustrates the user interface ofFIG. 2 when a button has been selected in accordance with one embodiment. -
FIG. 4 illustrates the user interface ofFIG. 2 when a selection is made by a user via the cursor of a component that does not support inline editing in accordance with one embodiment. -
FIG. 5 illustrates the user interface ofFIG. 2 when a component filter box is checked. -
FIG. 6 illustrates the user interface ofFIG. 2 when the “Click Me (goButton)” button has been selected and is in inline-editing mode. -
FIG. 7 illustrates the user interface ofFIG. 2 in the middle of editing the button. -
FIG. 8 illustrates the user interface ofFIG. 2 after the user has completed editing the subtree. -
FIG. 9 is a flow diagram of the functionality of the system when enabling an editable component subtree of a user interface page for inline editing in accordance with one embodiment. -
FIG. 10 is a flow diagram of the functionality of the system in handling user interface events on a page which includes an active inline editing component subtree in accordance with one embodiment. -
FIG. 11 is a flow diagram of the functionality of the system when handling user interface input events when the event is targeted at the currently active inline editor component in accordance with one embodiment. - One embodiment is a user interface that included components that are easily editable by a user in order to customize the user interface.
-
FIG. 1 is a block diagram of asystem 10 in accordance with one embodiment to provide a user interface with editable components.System 10 includes aclient computer 12 that receives and displays a user interface (“UI”) that includes one or more user interface components.Client computer 12 includes aprocessor 13 andmemory 14.Processor 13 can be any type of specific or general purpose processor, andmemory 14 can be any type of memory or other computer readable media that stores instructions that are executed byprocessor 13.Client 12 can be any type of computer or other computing device that can generate and display an Internet browser window or other type of graphical user interface (“GUI”) or other type of UI, including a personal digital assistant (“PDA”), telephone, etc. In one embodiment,memory 14 includes anoperating system 15 and anInternet browser 16. -
Client 12 is coupled to aserver computer 22 via alink 20.Link 22 is any type of local or network connection that enablesclient 12 to communicate and exchange data withserver 22. In one embodiment,link 20 is the Internet and may be considered a computer readable media.Server 22 includes aprocessor 23 andmemory 24.Processor 23 can be any type of specific or general purpose processor, andmemory 24 can be any type of memory or other computer readable media that stores instructions that are executed byprocessor 23. In one embodiment,memory 24 includes anoperating system 25 and a UI editor enabledapplication 26. In another embodiment, a UI editor can be separate but coupled to an application in order to provide the editing functionality to the application. - In one embodiment,
system 10 has a model-view-controller (“MVC”) architecture. In general, an MVC architecture in a computer application separates data (the “model”) and user interface (the “view”) concerns, so that changes to the user interface will not affect data handling, and the data can be reorganized without changing the user interface. An intermediate component, the “controller”, decouples data access and business logic from data presentation and user interaction. - In one embodiment,
system 10 executes the Java Server Faces (“JSF”) from Sun Microsystems, Inc. as an MVC framework. In this framework, the model is represented by Java beans, and the view is represented by a Java Server Page (“JSP”), which is implemented using JSF components. Each JSF page is represented by a tree of JSF components rooted at a single JSF component, the UIViewRoot. Sub-pieces of a page rooted at a single JSF component are called component subtrees. The JSF servlet functions as the controller. However, in other embodiments, any MVC framework may be used. Other embodiments can be implemented with other user MVC frameworks and user interface applications that include components, such as web-based frameworks (e.g., Microsoft ASP.NET, WebObjects, Apache Tapestry, Struts, etc.) or desktop frameworks (e.g., Microsoft Foundation Classes (“MFC”) or Java Swing). - In one embodiment, UI editor enabled
application 26 is an application that can be accessed onclient 12 viabrowser 16 and has components that can be edited by a user atclient 12.Application 26 can be any type of application that includes a user interface and is accessible via a client. In other embodiments, UI editor enabledapplication 26 is stored inmemory 14 ofclient 12 andserver 22 is not needed. In one embodiment, the user interface ofapplication 26 is formed by multiple JSF components or other types of components. The components may include user interface buttons, headers, footers, task bars, tabs, scrollbars, etc. One or more of these components may be edited by a user atclient 12. -
FIG. 2 is aneditable UI 200 in accordance with one embodiment that is generated byapplication 26 and is displayed onbrowser 16 ofclient 12. UI 200 displays a subtree of a JSP page that is in an “edit” mode. UI 200 includes a plurality of components, including abutton 221, alink 222, and atab 223. UI 200 further includes a “Start Inline Edit”button 224 that can be selected by the user via acursor 225 to begin the inline editing process of one or more components ofUI 200. In other embodiments, choosing the editable subtrees may be accomplished through other user interface affordances. -
FIG. 3 illustratesUI 200 whenbutton 221 has been selected in accordance with one embodiment. Cascading Style Sheets (“CSS”) styles, such as shading 324, are applied to indicate the editable subsection of the page—the editable component subtree ofUI 200 and editable and selectable components. As an example,button 221 is now editable, as indicated bycursor 225 being changed into an I-beam when over an editable component. -
FIG. 4 illustrates UI 200 when a selection is made by a user via the cursor of a component (i.e., selection border 402) that does not support inline editing in accordance with one embodiment. The selection style is applied andcursor 225 becomes a pointer, indicating that only selection and not editing is allowed for that component. -
FIG. 5 illustratesUI 200 when acomponent filter box 502 is checked. Whenfilter box 502 is selected, some components that by default would be editable are no longer editable. In this example, “Sometimes Editable”component 504 is not editable, as indicated bycursor 225 becausebox 502 is checked. -
FIG. 6 illustratesUI 200 when “Click Me (goButton)”button 221 has been selected and is in inline-editing mode, as indicated bycursor 225. -
FIG. 7 illustratesUI 200 in the middle ofediting button 221. The text has been changed to “Click Me (Go Home”. -
FIG. 8 illustratesUI 200 after the user has completed editing the subtree. The editing styles have been removed and the edits tobutton 221 remains. Therefore, the user has been able to easily inline edit one or more components ofUI 200. At this point, if the user clicked onbutton 221, the button would perform its normal action rather than start editing, sincebutton 221 is no longer within an editable component subtree. -
FIG. 9 is a flow diagram of the functionality ofsystem 10 when enabling an editable component subtree of a UI page for inline editing in accordance with one embodiment. In one embodiment, the functionality of the flow diagram ofFIG. 9 , andFIGS. 10 and 11 , is implemented by software stored in memory or other computer readable or tangible medium, and executed by a processor. In other embodiments, the functionality can be performed by hardware, or any combination of hardware and software. - At 300,
application 26 changes or specifies the root component of the component subtree to enable inline editing on. - At 302, the framework of
system 10 checks if a different inline editing component subtree (“old inline editing subtree”) is currently set. In one embodiment, only zero or one editable subtrees are allowed to exist at a time. In that embodiment, if an existing editable subtree exists, editing on that subtree needs to be disabled before enabling editing on the new subtree. If yes at 302, the old inline editing subtree is disabled. - At 304, the CSS style class used to highlight the editing subtree is cleared and removed from the old editable subtree root.
- At 306-308, the component children of the inline editing subtree are walked depth first in a loop. The loop exits at 310.
- At 308, any editable or selectable CSS style classes previously added at 320 and 322 are removed/cleared.
- 310 to 322 of
FIG. 9 are directed to configuring a new editable subtree, if any, for editing. - At 310, the CSS style class used to highlight the editing subtree is set on the root component of the new editable subtree.
- At 312 to 322, the component children of the new editable subtree are walked depth first.
- At 314, it is determined whether the current component child is a private implementation detail of a public child. If it is, the child is skipped because the component does not exist in the application's definition of the page and thus can not be edited.
- At 316, the framework calls any filter function that the application may have specified. The filter allows the application control over which components may be edited or selected. The filter returns whether the component is editable and selectable, selectable only, or neither selectable nor editable. If no filter is specified, the assumption is that any component capable of being edited can be edited by the user and all other components are selectable.
- At 318, a potentially editable component is checked to determine whether it is capable of being editing by attempting to retrieve an inline editor object for the component. If no inline editor exists for this component, the component is not editable.
- At 320, the component is determined to be editable, and an editable CSS marker style is added to the component's root Document Object Model (“DOM”) node to show the user that this component is editable.
- At 322, a component is marked as selectable by adding a selectable CSS marker style to the component's root DOM node. Since editable components are also selectable, an editable component will have both editable and selectable CSS style classes attached after this step.
- At 324, the work to clear the old editable subtree and configure the new editable subtree has been completed and an event to notify listeners of the change is fired. This allows an application to know when to show any additional editing tools (such as property inspectors, component palettes, and structure panes) relevant to the current editable component subtree.
-
FIG. 10 is a flow diagram of the functionality ofsystem 10 in handling user interface events on a page which includes an active inline editing component subtree in accordance with one embodiment. - At 102,
browser 16 delivers a DOM user interface event (e.g., a mouse click or key press) to the framework. - At 104, the framework determines if the target of the DOM user interface event is in the currently displayed inline editor, if any. If it is in the inline editor, the event is dispatched to the inline editor for handling, disclosed in detail in
FIG. 11 below. - At 106, since the event is not for the current inline editor, this implies that the user is done with any current editing. If there is a current inline editor, its current editing value is committed, the editor is closed, and an event is dispatched to any registered listeners indicating that no inline editor is currently displayed.
- At 108, the framework determines whether the event is targeted inside the current editable component subtree, if any. If it is not, then at 109 the event is dispatched as normal to the target allowing normal user interaction with components outside of the editable subtree. This enables these areas to host components that manage the editing experience, such as property inspectors and structure viewers or allow these non-editable areas to contain other application-specific functionality, such as application navigation.
- At 110, it is known that the event is targeted at the editable subtree and it needs to be determined whether the user is attempting to modify the current selection or is starting a new editing operation. If the user interface event represents a gesture that explicitly modifies selection (e.g., a shift-click to extend selection or control-click to toggle selection on many windowing systems), the selection is modified at 111.
- At 111, if the gesture is selection extension, then all of the selectable components between the last selected component and the currently selected component in a depth first walk of the component tree will be selected. If no component is currently selected, the clicked on component will be selected if it is selectable. If the gesture represents a selection toggle, the clicked component will be deselected if currently selected and selected if currently deselected and selectable. If the operations actually result in a change to the set of selected components, an event with the old and new sets of selected components will be delivered. Firing “selection changed” events allows other editing tools, unknown to the editing framework itself, to update their state as appropriate. For example, a component tree structure viewer may highlight the currently selected nodes in its tree structure, or a property inspector may display the attribute values of the currently selected components.
- At 112, if the current component target of the event is editable as marked at
box 320 ofFIG. 9 , editing is initiated. - At 113, editing is initiated by sending a “startEdit” message to the component's inline editing strategy object and passing the component to edit and the user interface input event that triggered the editing to the editor. Passing the triggering event allows a component that has multiple different editable sections to pick the correct editor to use for the targeted section. It also allows the editor to set up a better initial editing state, by enabling the editor to correctly position a text insertion cursor, for example.
- At 115, the current edited component is set to the target component and a change event with the old and new values of the currently edited component is fired.
- For any attributes that the inline editor is editing, it stores the original values in case these need to be restored later (e.g., at 205 in
FIG. 11 below). - At 114, the selectability of the non-editable component is checked as marked at
box 322 ofFIG. 9 . If the component is selectable it is selected at 115. - At 115, the selection is set to the component that is the target of the input event. Any previously selected components are de-selected and a selection change event containing the list of previously selected and the newly selected component is fired.
- At 116, the current component was neither editable nor selectable so the current target to the parent of the current component is changed and the loop is executed again at 112. If the current target is the root of the editable subtree, the loop is exited and the event is ignored.
-
FIG. 11 is a flow diagram of the functionality ofsystem 10 when handling user interface input events when the event is targeted at the currently active inline editor component in accordance with one embodiment. - At 202, the inline editor receives an event targeted at its user interface structure.
- At 204, the inline editor checks whether it should interpret the event as indicating that editing should be canceled. For example, the inline editor might interpret the escape key as indicating cancel, for instance, or might expose a “cancel editing” button.
- At 205, the inline editor has interpreted the event as cancel and has restored the values of any edited attributes of the component to their values at the time that editing started and stops editing, hiding the inline editor, setting the current edited component to null and firing the appropriate change event.
- At 206, the inline editor checks whether it should interpret the event as indicating that the current value of the input should be committed. For example, the inline editor might interpret the enter key as indicating commit or might expose a commit button. While most editors post editing changes as soon as possible, more complicated editors that need a value to pass through a temporarily invalid state might defer posting changes until explicitly committed by the user.
- At 207, the inline editor has interpreted the event as commit and has set the current edited values of any edited attributes on the component. If these sets succeed without any exceptions, the current edited component is set to null and the current edited component change event is fired. If the commit fails, the editor is still displayed and editing continues.
- At 208, the inline editor checks whether the event is targeted at a part of its user interface that does not directly edit an attribute of the edited component (e.g., a button that exposes additional advanced editing controls).
- At 209, the inline editor handles the event on the additional editing user interface elements from 208 and updates its state.
- At 210, the inline editor checks whether the target of the event is one of its controls that directly edit the value of a component attribute. For example, a key press event targeted at a text field used to edit the label of the checkbox component.
- At 211, any event targeted at the inline editor did not affect any of the parts of the inline editor that react to user input is discarded.
- At 212, the event that updates edited attribute values is interpreted as a change to the attribute value and the new value for this attribute is set on the component, which typically updates its appearance to reflect the new value.
- At 214, in response to the change to the attribute, the size and position of the different edited parts of the edited component may have changed. For example, the label of an edited checkbox may have become larger if a character was added to it. The inline editor can reposition and resize its edited components to correctly mimic these changes.
- At 216, the inline editor retrieves the new value from the component and updates its value with this new value. This allows the editor to track any changes that the component made to the attribute value set by the inline editor and also allows the inline editor to respond to changes made to the edited attributes by parts of the system unknown to the inline editor.
- As disclosed, embodiments allow a user to selectively edit components of the user interface in order to customize the user interface. The editing may include changing the text that is used to identify the components, or other component attribute changes such as size, color, font, accelerator key, visibility, tab order, etc.
- Several embodiments are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the disclosed embodiments are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/101,606 US8504929B2 (en) | 2008-04-11 | 2008-04-11 | Editing user interface components |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/101,606 US8504929B2 (en) | 2008-04-11 | 2008-04-11 | Editing user interface components |
Publications (2)
Publication Number | Publication Date |
---|---|
US20090259950A1 true US20090259950A1 (en) | 2009-10-15 |
US8504929B2 US8504929B2 (en) | 2013-08-06 |
Family
ID=41165011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/101,606 Active 2030-02-02 US8504929B2 (en) | 2008-04-11 | 2008-04-11 | Editing user interface components |
Country Status (1)
Country | Link |
---|---|
US (1) | US8504929B2 (en) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001145B1 (en) * | 2008-05-09 | 2011-08-16 | Amazon Technologies, Inc. | State management for user interfaces |
US20110307798A1 (en) * | 2010-06-11 | 2011-12-15 | Microsoft Corporation | Merging Modifications to User Interface Components While Preserving User Customizations |
US20120066585A1 (en) * | 2010-09-13 | 2012-03-15 | International Business Machines Corporation | Widget behavior customization via cascaded style sheets |
US8239882B2 (en) | 2005-08-30 | 2012-08-07 | Microsoft Corporation | Markup based extensibility for user interfaces |
US20120324377A1 (en) * | 2011-06-15 | 2012-12-20 | Microsoft Corporation | User interface extensibility for web application development tool |
US8442980B2 (en) * | 2011-07-07 | 2013-05-14 | Oracle International Corporation | Attribute change coalescing in order to deal with component moves on a page |
US20140019847A1 (en) * | 2012-07-10 | 2014-01-16 | Telerik, AD | Content management system employing a hybrid web application framework |
US8799353B2 (en) | 2009-03-30 | 2014-08-05 | Josef Larsson | Scope-based extensibility for control surfaces |
US20140245199A1 (en) * | 2013-02-28 | 2014-08-28 | Siemens Aktiengesellschaft | Method and system for customizing a gui of a mes screen |
USD757762S1 (en) * | 2013-04-05 | 2016-05-31 | Thales Avionics, Inc. | Display screen or portion thereof with graphical user interface |
USD769271S1 (en) * | 2013-04-05 | 2016-10-18 | Thales Avionics, Inc. | Display screen or portion thereof with graphical user interface |
US9588781B2 (en) | 2008-03-31 | 2017-03-07 | Microsoft Technology Licensing, Llc | Associating command surfaces with multiple active components |
US10073604B2 (en) * | 2014-05-15 | 2018-09-11 | Oracle International Corporation | UI-driven model extensibility in multi-tier applications |
US10248687B2 (en) | 2005-09-12 | 2019-04-02 | Microsoft Technology Licensing, Llc | Expanded search and find user interface |
US10437431B2 (en) | 2004-08-16 | 2019-10-08 | Microsoft Technology Licensing, Llc | Command user interface for displaying selectable software functionality controls |
US10482429B2 (en) | 2003-07-01 | 2019-11-19 | Microsoft Technology Licensing, Llc | Automatic grouping of electronic mail |
US10482637B2 (en) | 2006-06-01 | 2019-11-19 | Microsoft Technology Licensing, Llc | Modifying and formatting a chart using pictorially provided chart elements |
US10521081B2 (en) | 2004-08-16 | 2019-12-31 | Microsoft Technology Licensing, Llc | User interface for displaying a gallery of formatting options |
US10592073B2 (en) | 2007-06-29 | 2020-03-17 | Microsoft Technology Licensing, Llc | Exposing non-authoring features through document status information in an out-space user interface |
US10635266B2 (en) | 2004-08-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | User interface for displaying selectable software functionality controls that are relevant to a selected object |
US10642927B2 (en) | 2007-06-29 | 2020-05-05 | Microsoft Technology Licensing, Llc | Transitions between user interfaces in a content editing application |
CN112099697A (en) * | 2020-09-28 | 2020-12-18 | 四川长虹电器股份有限公司 | VUE-based method for dynamically switching display data of cascade panel assembly |
US10997562B2 (en) | 2008-06-20 | 2021-05-04 | Microsoft Technology Licensing, Llc | Synchronized conversation-centric message list and message reading pane |
US20210365277A1 (en) * | 2019-04-25 | 2021-11-25 | Google Llc | Static reconcilliation of application view hierarchies |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9396279B1 (en) * | 2009-02-17 | 2016-07-19 | Jpmorgan Chase Bank, Na | Collaborative virtual markup |
US9189210B2 (en) * | 2012-02-29 | 2015-11-17 | Avaya Inc. | Using source code generated from a data model file to generate a graphical user interface from objects in a database |
CN107015791B (en) * | 2016-10-28 | 2021-02-05 | 创新先进技术有限公司 | Processing method, device and system for generating chart component system |
US10936307B2 (en) * | 2018-11-26 | 2021-03-02 | International Business Machines Corporation | Highlight source code changes in user interface |
Citations (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6133915A (en) * | 1998-06-17 | 2000-10-17 | Microsoft Corporation | System and method for customizing controls on a toolbar |
US20020069204A1 (en) * | 2000-09-28 | 2002-06-06 | Roger Kahn | System and method for in-context editing |
US20020073125A1 (en) * | 2000-12-08 | 2002-06-13 | Xerox Corporation | Systems and methods for editing a web page |
US20020078140A1 (en) * | 2000-12-19 | 2002-06-20 | Ciaran Kelly | Remote web page maintenance |
US20020129052A1 (en) * | 2000-08-29 | 2002-09-12 | David Glazer | Method, system, apparatus and content model for the creation, management, storage, and presentation of dynamic objects |
US20020154166A1 (en) * | 2001-04-18 | 2002-10-24 | Sanders Roger Everette | Graphical user interface check-list button control and method |
US6476828B1 (en) * | 1999-05-28 | 2002-11-05 | International Business Machines Corporation | Systems, methods and computer program products for building and displaying dynamic graphical user interfaces |
US20030043192A1 (en) * | 2001-08-31 | 2003-03-06 | Schlumberger Technology Corporation | Dynamically modifiable user interface |
US20030048269A1 (en) * | 2001-09-12 | 2003-03-13 | Powell Donald T. | System and method for generating finite element models |
US20030074634A1 (en) * | 1998-11-25 | 2003-04-17 | Helmut Emmelmann | Interactive server side components |
US20030184585A1 (en) * | 2002-03-29 | 2003-10-02 | George Lin | Method for dynamically generating a user interface from XML-based documents |
US20030204810A1 (en) * | 2002-04-24 | 2003-10-30 | Xi-Nam Dam | Real time webpage editing system and method with auxiliary pattern |
US20030233614A1 (en) * | 2002-06-13 | 2003-12-18 | Microsoft Corporation | System and method for in-context editing of components |
US20040021699A1 (en) * | 2002-07-30 | 2004-02-05 | Ulf Fildebrandt | Editing browser documents |
US20040088653A1 (en) * | 2002-11-05 | 2004-05-06 | Xerox Corporation | System and method for copying formatting information between Web pages |
US6738964B1 (en) * | 1999-03-11 | 2004-05-18 | Texas Instruments Incorporated | Graphical development system and method |
US20040148576A1 (en) * | 2003-01-24 | 2004-07-29 | Matveyenko Wade A. | Remote web site editing in a standard web browser without external software |
US20040205571A1 (en) * | 2002-03-12 | 2004-10-14 | International Business Machines Corporation | Method and system for stylesheet-centric editing |
US20040205711A1 (en) * | 2003-04-10 | 2004-10-14 | Ishimitsu Michael Kazuo | System and method for creation of an object within an object hierarchy structure |
US20040217985A9 (en) * | 2001-06-29 | 2004-11-04 | Ries David E. | System and method for editing web pages in a client/server architecture |
US20050091584A1 (en) * | 2003-10-23 | 2005-04-28 | Microsoft Corporation | Methods for applying styles to visual aspects of user interface elements |
US20050149206A1 (en) * | 2003-12-24 | 2005-07-07 | Rolf Krane | Unified personalization |
US20050240869A1 (en) * | 2004-04-23 | 2005-10-27 | Kalev Leetaru | Method and system for editable web browsing |
US20050289156A1 (en) * | 2004-06-25 | 2005-12-29 | Icesoft Technologies Canada Corp. | Systems and methods for rendering and increasing portability of document-based user interface software objects |
US20060005207A1 (en) * | 2004-06-25 | 2006-01-05 | Louch John O | Widget authoring and editing environment |
US20060020681A1 (en) * | 2004-07-23 | 2006-01-26 | International Business Machines Corporation | Modification and importation of live web pages |
US20060075352A1 (en) * | 2004-10-06 | 2006-04-06 | Microsoft Corporation | Property independent in-place editing |
US20060090130A1 (en) * | 2004-10-21 | 2006-04-27 | Microsoft Corporation | System and method for styling content in a graphical user interface control |
US20060117248A1 (en) * | 2004-11-26 | 2006-06-01 | Fujitsu Limited | Web screen creation method, program and server |
US20060150178A1 (en) * | 2005-01-06 | 2006-07-06 | Jerrard-Dunne Stanley K | Method and system for updating application design |
US20060153097A1 (en) * | 2005-01-10 | 2006-07-13 | Microsoft Corporation | System and methods for inline property editing in tree view based editors |
US20060212806A1 (en) * | 2005-03-18 | 2006-09-21 | Microsoft Corporation | Application of presentation styles to items on a web page |
US20060248480A1 (en) * | 2005-05-02 | 2006-11-02 | Microsoft Corporation | In situ user interface template editing |
US20060250420A1 (en) * | 2005-05-06 | 2006-11-09 | Backlund Bjorn Eric P | Visual document structure indicator system |
US7191394B1 (en) * | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US20070061715A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Methods and systems for providing an editable visual formatting model |
US20070061710A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Methods and systems for providing direct style sheet editing |
US20070180386A1 (en) * | 2001-03-02 | 2007-08-02 | Alan Ballard | Customization of user interface presentation in an internet application user interface |
US20070288424A1 (en) * | 2006-06-09 | 2007-12-13 | Nextair Corporation | Software and device for effecting independently refreshable, markup language-based database queries and user interface screens |
US20080082572A1 (en) * | 2006-10-03 | 2008-04-03 | Salesforce.Com, Inc. | Method and system for customizing a user interface to an on-demand database service |
US7366991B1 (en) * | 2002-12-12 | 2008-04-29 | Microsoft Corporation | Method and system for providing an extensible user interface |
US7412689B1 (en) * | 2004-06-25 | 2008-08-12 | Sun Microsystems, Inc. | Method and apparatus for creating a hierarchical model to facilitate identifying components in a programming language file |
US20080263462A1 (en) * | 2007-04-18 | 2008-10-23 | Dietrich Mayer-Ullmann | Enterprise user interface customization |
US20080307328A1 (en) * | 2007-06-08 | 2008-12-11 | Timothy Gene Hatcher | Methods and systems for editing of web pages in an application capable of displaying web page content |
US20090083641A1 (en) * | 2007-09-24 | 2009-03-26 | Caterpillar Inc. | Web content management system involving certain elements as content |
US20090319879A1 (en) * | 2007-10-19 | 2009-12-24 | Jeffrey Scott | Double click inline edit / single click action |
US7698631B1 (en) * | 2004-07-29 | 2010-04-13 | Cisco Technology, Inc. | Stateless online web page editing system and method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0622729A3 (en) * | 1993-04-29 | 1995-02-01 | Ibm | A user interface builder for a user interface server. |
-
2008
- 2008-04-11 US US12/101,606 patent/US8504929B2/en active Active
Patent Citations (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6133915A (en) * | 1998-06-17 | 2000-10-17 | Microsoft Corporation | System and method for customizing controls on a toolbar |
US20030074634A1 (en) * | 1998-11-25 | 2003-04-17 | Helmut Emmelmann | Interactive server side components |
US6738964B1 (en) * | 1999-03-11 | 2004-05-18 | Texas Instruments Incorporated | Graphical development system and method |
US6476828B1 (en) * | 1999-05-28 | 2002-11-05 | International Business Machines Corporation | Systems, methods and computer program products for building and displaying dynamic graphical user interfaces |
US7191394B1 (en) * | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US20020129052A1 (en) * | 2000-08-29 | 2002-09-12 | David Glazer | Method, system, apparatus and content model for the creation, management, storage, and presentation of dynamic objects |
US20020069204A1 (en) * | 2000-09-28 | 2002-06-06 | Roger Kahn | System and method for in-context editing |
US20020073125A1 (en) * | 2000-12-08 | 2002-06-13 | Xerox Corporation | Systems and methods for editing a web page |
US20020078140A1 (en) * | 2000-12-19 | 2002-06-20 | Ciaran Kelly | Remote web page maintenance |
US20070180386A1 (en) * | 2001-03-02 | 2007-08-02 | Alan Ballard | Customization of user interface presentation in an internet application user interface |
US20020154166A1 (en) * | 2001-04-18 | 2002-10-24 | Sanders Roger Everette | Graphical user interface check-list button control and method |
US20040217985A9 (en) * | 2001-06-29 | 2004-11-04 | Ries David E. | System and method for editing web pages in a client/server architecture |
US20030043192A1 (en) * | 2001-08-31 | 2003-03-06 | Schlumberger Technology Corporation | Dynamically modifiable user interface |
US20030048269A1 (en) * | 2001-09-12 | 2003-03-13 | Powell Donald T. | System and method for generating finite element models |
US20040205571A1 (en) * | 2002-03-12 | 2004-10-14 | International Business Machines Corporation | Method and system for stylesheet-centric editing |
US20030184585A1 (en) * | 2002-03-29 | 2003-10-02 | George Lin | Method for dynamically generating a user interface from XML-based documents |
US20030204810A1 (en) * | 2002-04-24 | 2003-10-30 | Xi-Nam Dam | Real time webpage editing system and method with auxiliary pattern |
US20030233614A1 (en) * | 2002-06-13 | 2003-12-18 | Microsoft Corporation | System and method for in-context editing of components |
US20040021699A1 (en) * | 2002-07-30 | 2004-02-05 | Ulf Fildebrandt | Editing browser documents |
US20040088653A1 (en) * | 2002-11-05 | 2004-05-06 | Xerox Corporation | System and method for copying formatting information between Web pages |
US7366991B1 (en) * | 2002-12-12 | 2008-04-29 | Microsoft Corporation | Method and system for providing an extensible user interface |
US20040148576A1 (en) * | 2003-01-24 | 2004-07-29 | Matveyenko Wade A. | Remote web site editing in a standard web browser without external software |
US20040205711A1 (en) * | 2003-04-10 | 2004-10-14 | Ishimitsu Michael Kazuo | System and method for creation of an object within an object hierarchy structure |
US20090164939A1 (en) * | 2003-04-10 | 2009-06-25 | Microsoft Corporation | System and method for creation of an object within an object hierarchy structure |
US20050091584A1 (en) * | 2003-10-23 | 2005-04-28 | Microsoft Corporation | Methods for applying styles to visual aspects of user interface elements |
US20050149206A1 (en) * | 2003-12-24 | 2005-07-07 | Rolf Krane | Unified personalization |
US20050240869A1 (en) * | 2004-04-23 | 2005-10-27 | Kalev Leetaru | Method and system for editable web browsing |
US20060005207A1 (en) * | 2004-06-25 | 2006-01-05 | Louch John O | Widget authoring and editing environment |
US20050289156A1 (en) * | 2004-06-25 | 2005-12-29 | Icesoft Technologies Canada Corp. | Systems and methods for rendering and increasing portability of document-based user interface software objects |
US7412689B1 (en) * | 2004-06-25 | 2008-08-12 | Sun Microsystems, Inc. | Method and apparatus for creating a hierarchical model to facilitate identifying components in a programming language file |
US20060020681A1 (en) * | 2004-07-23 | 2006-01-26 | International Business Machines Corporation | Modification and importation of live web pages |
US7698631B1 (en) * | 2004-07-29 | 2010-04-13 | Cisco Technology, Inc. | Stateless online web page editing system and method |
US20060075352A1 (en) * | 2004-10-06 | 2006-04-06 | Microsoft Corporation | Property independent in-place editing |
US20060090130A1 (en) * | 2004-10-21 | 2006-04-27 | Microsoft Corporation | System and method for styling content in a graphical user interface control |
US20060117248A1 (en) * | 2004-11-26 | 2006-06-01 | Fujitsu Limited | Web screen creation method, program and server |
US20060150178A1 (en) * | 2005-01-06 | 2006-07-06 | Jerrard-Dunne Stanley K | Method and system for updating application design |
US20060153097A1 (en) * | 2005-01-10 | 2006-07-13 | Microsoft Corporation | System and methods for inline property editing in tree view based editors |
US20060212806A1 (en) * | 2005-03-18 | 2006-09-21 | Microsoft Corporation | Application of presentation styles to items on a web page |
US20060248480A1 (en) * | 2005-05-02 | 2006-11-02 | Microsoft Corporation | In situ user interface template editing |
US20060250420A1 (en) * | 2005-05-06 | 2006-11-09 | Backlund Bjorn Eric P | Visual document structure indicator system |
US20070061715A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Methods and systems for providing an editable visual formatting model |
US20070061710A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Methods and systems for providing direct style sheet editing |
US20070288424A1 (en) * | 2006-06-09 | 2007-12-13 | Nextair Corporation | Software and device for effecting independently refreshable, markup language-based database queries and user interface screens |
US20080082572A1 (en) * | 2006-10-03 | 2008-04-03 | Salesforce.Com, Inc. | Method and system for customizing a user interface to an on-demand database service |
US20080263462A1 (en) * | 2007-04-18 | 2008-10-23 | Dietrich Mayer-Ullmann | Enterprise user interface customization |
US20080307328A1 (en) * | 2007-06-08 | 2008-12-11 | Timothy Gene Hatcher | Methods and systems for editing of web pages in an application capable of displaying web page content |
US20090083641A1 (en) * | 2007-09-24 | 2009-03-26 | Caterpillar Inc. | Web content management system involving certain elements as content |
US20090319879A1 (en) * | 2007-10-19 | 2009-12-24 | Jeffrey Scott | Double click inline edit / single click action |
Non-Patent Citations (2)
Title |
---|
"The DOM: Part 3 - Styles and Implementations," 2007, retrieved form http://www.guistuff.com/javascript/js_dom_a3.html on 9/29/2012 * |
Masoud et al., "ASP.NET and JSP Frameworks in Model View Controller Implementation," published as part of the Proceedings of Information and Communication Technologies 2006, volume 2, pages 3593-3598. 2006. * |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10482429B2 (en) | 2003-07-01 | 2019-11-19 | Microsoft Technology Licensing, Llc | Automatic grouping of electronic mail |
US10521081B2 (en) | 2004-08-16 | 2019-12-31 | Microsoft Technology Licensing, Llc | User interface for displaying a gallery of formatting options |
US10437431B2 (en) | 2004-08-16 | 2019-10-08 | Microsoft Technology Licensing, Llc | Command user interface for displaying selectable software functionality controls |
US10635266B2 (en) | 2004-08-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | User interface for displaying selectable software functionality controls that are relevant to a selected object |
US8239882B2 (en) | 2005-08-30 | 2012-08-07 | Microsoft Corporation | Markup based extensibility for user interfaces |
US10248687B2 (en) | 2005-09-12 | 2019-04-02 | Microsoft Technology Licensing, Llc | Expanded search and find user interface |
US10482637B2 (en) | 2006-06-01 | 2019-11-19 | Microsoft Technology Licensing, Llc | Modifying and formatting a chart using pictorially provided chart elements |
US10642927B2 (en) | 2007-06-29 | 2020-05-05 | Microsoft Technology Licensing, Llc | Transitions between user interfaces in a content editing application |
US10592073B2 (en) | 2007-06-29 | 2020-03-17 | Microsoft Technology Licensing, Llc | Exposing non-authoring features through document status information in an out-space user interface |
US9588781B2 (en) | 2008-03-31 | 2017-03-07 | Microsoft Technology Licensing, Llc | Associating command surfaces with multiple active components |
US10445114B2 (en) | 2008-03-31 | 2019-10-15 | Microsoft Technology Licensing, Llc | Associating command surfaces with multiple active components |
US8001145B1 (en) * | 2008-05-09 | 2011-08-16 | Amazon Technologies, Inc. | State management for user interfaces |
US8812546B1 (en) * | 2008-05-09 | 2014-08-19 | Amazon Technologies, Inc. | State management for user interfaces |
US8244758B1 (en) * | 2008-05-09 | 2012-08-14 | Amazon Technologies, Inc. | State management for user interfaces |
US10997562B2 (en) | 2008-06-20 | 2021-05-04 | Microsoft Technology Licensing, Llc | Synchronized conversation-centric message list and message reading pane |
US8799353B2 (en) | 2009-03-30 | 2014-08-05 | Josef Larsson | Scope-based extensibility for control surfaces |
US8302014B2 (en) * | 2010-06-11 | 2012-10-30 | Microsoft Corporation | Merging modifications to user interface components while preserving user customizations |
US20110307798A1 (en) * | 2010-06-11 | 2011-12-15 | Microsoft Corporation | Merging Modifications to User Interface Components While Preserving User Customizations |
US8522132B2 (en) * | 2010-09-13 | 2013-08-27 | International Business Machines Corporation | Widget behavior customization via cascaded style sheets |
US20120066585A1 (en) * | 2010-09-13 | 2012-03-15 | International Business Machines Corporation | Widget behavior customization via cascaded style sheets |
US20120324377A1 (en) * | 2011-06-15 | 2012-12-20 | Microsoft Corporation | User interface extensibility for web application development tool |
US8442980B2 (en) * | 2011-07-07 | 2013-05-14 | Oracle International Corporation | Attribute change coalescing in order to deal with component moves on a page |
US10282397B1 (en) | 2012-07-10 | 2019-05-07 | Progress Software Corporation | Content management system employing a hybrid web application framework |
US9355077B2 (en) * | 2012-07-10 | 2016-05-31 | Telerik, AD | Content management system employing a hybrid web application framework |
US20140019847A1 (en) * | 2012-07-10 | 2014-01-16 | Telerik, AD | Content management system employing a hybrid web application framework |
US20140245199A1 (en) * | 2013-02-28 | 2014-08-28 | Siemens Aktiengesellschaft | Method and system for customizing a gui of a mes screen |
USD769271S1 (en) * | 2013-04-05 | 2016-10-18 | Thales Avionics, Inc. | Display screen or portion thereof with graphical user interface |
USD757762S1 (en) * | 2013-04-05 | 2016-05-31 | Thales Avionics, Inc. | Display screen or portion thereof with graphical user interface |
US10073604B2 (en) * | 2014-05-15 | 2018-09-11 | Oracle International Corporation | UI-driven model extensibility in multi-tier applications |
US20210365277A1 (en) * | 2019-04-25 | 2021-11-25 | Google Llc | Static reconcilliation of application view hierarchies |
CN112099697A (en) * | 2020-09-28 | 2020-12-18 | 四川长虹电器股份有限公司 | VUE-based method for dynamically switching display data of cascade panel assembly |
Also Published As
Publication number | Publication date |
---|---|
US8504929B2 (en) | 2013-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8504929B2 (en) | Editing user interface components | |
US6948134B2 (en) | Integrated method for creating a refreshable Web Query | |
CN102044083B (en) | System and method for maintaining graphical presentations based on user customizations | |
US7765494B2 (en) | Harmonized theme definition language | |
JP5439190B2 (en) | Method and system for creating server-based web applications for IT | |
US8694904B2 (en) | Cross-browser rich text editing via a hybrid client-side model | |
US6996780B2 (en) | Method and system for creating a place type to be used as a template for other places | |
US7181684B2 (en) | Dynamic tree control system | |
US20100235806A1 (en) | Rich Web Site Authoring And Design | |
US8793598B2 (en) | Cross-browser web dialog platform | |
US6948120B1 (en) | Computer-implemented system and method for hosting design-time controls | |
US20060224553A1 (en) | Method and system for generating an auto-completion list for a cascading style sheet selector | |
US20100251143A1 (en) | Method, system and computer program for creating and editing a website | |
US10318126B2 (en) | Data-driven schema for describing and executing management tasks in a graphical user interface | |
AU2004202329A1 (en) | Framework for creating modular web applications | |
US20140047318A1 (en) | Browser-level background page for providing multiple views | |
US20060090130A1 (en) | System and method for styling content in a graphical user interface control | |
US20050188295A1 (en) | Systems and methods for an extensible administration tool | |
JP2003186792A (en) | Method for displaying message and its server and client | |
US20140040724A1 (en) | Method and system for website creation | |
US20160139937A1 (en) | Interfacing systems and methods | |
JP2008203965A (en) | Method and program for creating web page | |
US20060236244A1 (en) | Command links | |
US7788578B1 (en) | System and method for a tool pane within a markup language document | |
US20090307625A1 (en) | Method, device, data carrier and computer program product for representing data in a user interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ORACLE INTERNATIONAL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SULLIVAN, BLAKE;FARRELL, EDWARD J;SCHWARTZ, ANDREW;REEL/FRAME:020796/0502;SIGNING DATES FROM 20080402 TO 20080403 Owner name: ORACLE INTERNATIONAL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SULLIVAN, BLAKE;FARRELL, EDWARD J;SCHWARTZ, ANDREW;SIGNING DATES FROM 20080402 TO 20080403;REEL/FRAME:020796/0502 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |