US20090064035A1 - Workspace management method, workspace management system, and computer readable medium - Google Patents
Workspace management method, workspace management system, and computer readable medium Download PDFInfo
- Publication number
- US20090064035A1 US20090064035A1 US12/265,533 US26553308A US2009064035A1 US 20090064035 A1 US20090064035 A1 US 20090064035A1 US 26553308 A US26553308 A US 26553308A US 2009064035 A1 US2009064035 A1 US 2009064035A1
- Authority
- US
- United States
- Prior art keywords
- window
- windows
- docking
- docked
- unit
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
Definitions
- the present invention relates to a workspace management method, a workspace management system, a computer readable medium storing a program for managing a window displayed in response to start-up of an application as a workspace for user interface.
- PC personal computer
- the user performs a work on the PC by starting various applications and opening various documents at the same time.
- various kinds of information is displayed or edited, various applications are employed.
- the operational scheme is different depending on the purpose or the kind of information. For example, a word processor is used for a text sentence, a draw tool is used in drawing a picture, and a Web browser is used to see a document on the Web.
- An action (task) for the user to attain a certain purpose does not necessarily correspond to an application. That is, one task is not always completed in one application. Rather, two or more applications are often involved to accomplish one task.
- the user displays a dictionary, an article read by himself or herself, his or her own article written before, and a draw tool for drawing the diagram at the same time (by activating the corresponding applications at the same time) in addition to a word processor.
- an editor for editing the source code, the environment for compiling or debugging, a manual, and a Web browser for retrieval as needed) are employed at the same time.
- a mailer In creating a mail, a mailer, a calendar, a schedule management system, and a name list management system are employed at the same time. Further, in these tasks, individual applications or documents are arranged on the desk top to the user's liking to constitute a working space for the user. Such working space corresponding to the task of the user is called a “workspace” in this specification.
- the user mostly performs various tasks in parallel. After reading or writing a mail, the user reads others' articles, and further writes his or her own thesis. At this time, a work of switching the tasks is often troublesome. There occurs a problem that it is required to click the icon many times to make plural applications or documents active, or it is not possible to place the same document at a different position in a different workspace. What the user wants to do is to switch the tasks, or workspaces, and manage them. The switching or management of the applications only imposes the system's convenience on the user. Various applications or documents are arranged flexibly to the user's liking to make the configuration of the workspace more easy, whereby it is required that the switching of the workspaces occurring in switching the tasks can be made simply.
- a workspace management method for managing a plurality of windows displayed in response to start-up of an application as a workspace for user interface, the method including: managing management information regarding the windows; detecting a change in a state of each of the windows; detecting, in a case where a movement of one window of the windows is detected in the detecting of the change, the other windows positioned in the neighborhood of the one window or overlapping the one window by referring to the management information; displaying, in a case where the other windows are detected in the detecting of the other windows, a docking position to be docked in each of the one window and the other windows; and docking, in a case where a stop of the movement of the one window is detected in the detecting of the change, the one window with the other windows via the docking position.
- FIGS. 1A and 1B are views for explaining a state of window, in which 1 A shows a state where a window B is dragged near a window A, and FIG. 1B shows a state where the window B is docked with the window A;
- FIGS. 2A and 2B are views for explaining the changing of the size of a sub-window in the docking window, in which FIG. 2A shows the changing of the size of the sub-window B, and FIG. 2B shows the changing of the size of the sub-window A;
- FIGS. 3A and 3B are views for explaining a state where the size of sub-window is changed in the window into which the windows A, B and C are docked, in which FIG. 3A shows the changing of the size of the sub-window A, and FIG. 3B shows the changing of the size of the sub-windows B and C;
- FIGS. 4A and 4B are views for explaining a state where the size of sub-window is changed in the window into which the windows A, B, C and D are docked, in which FIG. 4A shows the changing of the size of the sub-window A, and FIG. 4B shows the changing of the size of the sub-windows B, C and D;
- FIGS. 5A and 5B are views for explaining the embedded docking, in which FIG. 5A shows a state before the window C is docked with the docking window A and B, and FIG. 5B shows a state after the window C is docked;
- FIG. 6 is a block diagram showing the configuration of an event detection method in a workspace management system according to an embodiment of the invention.
- FIG. 7 is a flowchart showing the operation flow of event detection unit according to this embodiment.
- FIG. 8 is a flowchart showing the operation flow in Execute of window management unit according to this embodiment.
- FIG. 9 is a flowchart showing the operation flow in Move of the window management unit according to this embodiment.
- FIG. 10 is a flowchart showing the operation flow in Drop of the window management unit according to this embodiment.
- FIG. 11 is a flowchart showing the operation flow in Resize of the window management unit according to this embodiment.
- FIG. 12 is an operation explanatory view for neighboring window unit
- FIGS. 13A and 13B are operation explanatory views, in which
- FIG. 13A is an operation explanatory view for margin display unit, and FIG. 13B is an operation explanatory view for docking unit;
- FIG. 14 is a block diagram showing the configuration of an event notification method according to this embodiment.
- FIG. 15 is a flowchart showing the operation flow in Exit of the window management unit with the event notification method
- FIG. 16 is a block diagram showing a system configuration for saving and regenerating the window state/document state according to this embodiment
- FIG. 17 is a block diagram showing a system configuration for presenting the docking object window candidate according to this embodiment.
- FIG. 18 is a view showing an example of listing up the candidate documents by candidate document presentation unit
- FIG. 19 is a block diagram showing a system configuration for recommending the window arrangement according to this embodiment.
- FIG. 20 is a view for explaining the concept of calculating the degree of similarity between the sub-windows according to this embodiment.
- FIG. 21 is a block diagram showing a system configuration for making the embedded docking according to this embodiment.
- FIGS. 22A and 22B are views for explaining examples of docking, in which FIG. 22A shows an example of extended docking, and FIG. 22B shows an example of embedded docking;
- FIGS. 23A to 23C are views for explaining the operation of neighboring sub-window detection unit
- FIG. 24 is a view for explaining an example of dividing an area within the window.
- FIG. 25 is a diagram showing a configuration example of a processing apparatus for performing the workspace management system, a workspace management method, and a workspace management program according to this embodiment.
- a user interface for supporting the construction and switching of the workspace 2.
- FIG. 1A shows a state where two windows A and B are displayed on a display and the window B is dragged near the window A.
- the windows A and B are displayed on the display by executing different application software on the operating software of a computer, in which the window B is selected by an input device such as a mouse, and dragged (moved). If the window A and the window B are closer to some extent, the serrated margins 10 and 12 indicating that both windows can be docked are displayed on the opposed sides of the windows A and B. If the window B is dropped (stopped to move) in this state, both the windows A and B are docked into one window, as shown in FIG. 1B . At this time, the size of the window B is adjusted in the size adapted to the size of the side on which the margin of the window A is displayed.
- the docked window (hereinafter referred to as a docking window) behaves like the normal window that is not docked (hereinafter referred to as a non-docking window).
- window after docking is rectangular or square.
- the windows after docking are moved together. Namely, both the windows A and B are moved at the same time by dragging a title bar.
- the individual sub-windows contained in the docking window can be closed, maximized or minimized at the same time.
- the docking window which is an aggregate of multiple windows, is different from the normal window in the following points.
- the size of the other sub-window (further, the docking window that puts together the entirety) is also changed by changing the size of a specific sub-window.
- the docking can be canceled.
- the entirety may be canceled or the specific sub-window only may be canceled.
- the display of the title bar may be different from the display of the normal window to indicate the docking, as needed.
- a “docking cancel” button is added to the normal buttons of “minimization”, “maximization” and “closing”.
- the icon of window is changed to the special icon.
- the background color of the title bar is changed.
- FIG. 2 shows the changing of the size of the sub-window B to change the size of the window A and change the total size of the docking window (including the windows A and B) at the same time. If the window B is enlarged (increased in height and width) as shown in FIG. 2A , the height of the window A is changed as shown in FIG. 2B . However, the width of the window A is not changed.
- FIG. 3 shows how the window A is widened in the window into which the sub-windows A, B and C are docked. If the width of the sub-window A is increased from the state as shown in FIG. 3A , the windows B and C are reduced at the same ratio of widths as shown in FIG. 3B .
- FIG. 4 shows how the window A is widened in the window into which the sub-windows A, B, C and D are docked. If the sub-window A is enlarged from the state as shown in FIG. 4A , the width of the windows C and D is reduced accordingly as shown in FIG. 4B . At the same time, the width of the window B is enlarged.
- the docking window is employed as a workspace.
- the docking window and the workspace are synonymously used.
- DWF Docking Window Framework
- a module for managing the window added to the OS is called a “manager”.
- Event detection method involves periodically checking the states of all the windows with the manager and specifying the kind of event from the kind of change if there is a change in the window state.
- Method B (event notification method): The event notification method involves notifying that an event occurs from the window to the manager if each window has a change in the window state.
- the event detection method allows the realization of the DWF without changing the application at all. However, it has the following problems.
- the application side For the event notification method, it is required for the application side to perform a process of “notifying the manager that there is an event at necessary timing”. That is, it is required to change each application. Of course, the less change, the better. Since it is troublesome to change all the applications at every time of changing the function in the manager, it is desirable that the functions to be mounted on each application are universal (sturdy for changing the functions). Thus, as the minimum function provided on the application side, it is proposed that “a specific event is notified to the manager if it occurs.” To be important here is that the application side only informs the occurrence of event to the manager, but does not perform any other things (including bidirectional communication with the manager), in which if the application only makes the notification, the manager deals with all other things.
- the kinds of event to be sent are as follows as the minimum configuration, as described in detail in the embodiments.
- Exit corresponding to Execute is added to the list, but Exit is not absolutely necessary. If there is Exit, the operation is smarter, but Exit is not requisite. More specifically, if Exit is not detected, the window can not be deleted from the table in closing the window, so that the window becomes larger. This increases the process. Also, to cope with “maximization”, “minimization” and “restoration” of the window, there is possibility that a Resize event is subdivided. For reference, there is possibility that some of these events are automatically detected by the manager, and the others are notified from the application.
- the docking as shown in FIG. 1 is performed in the form in which the window B sticks to the outside of the window A to be docked (B jutting out of A). Such docking is called the “extended docking”.
- the docking as shown in FIGS. 5A and 5B is performed in the form in which the window C intrudes into an area of the window B in the docking window of the windows A and B.
- the docking in the form in which the window intrudes into the existent window is called the “embedded docking”.
- the extended docking in the extended docking the size of window is changed before and after docking, whereas in the embedded docking the size of window is not changed before and after docking.
- the “margin” is displayed on only one side for each window, whereas in the embedded docking the “margin” is displayed on two or more sides for each window.
- the margins 14 a and 14 b are displayed on each side of the windows A and B that are docked, and the margin 16 is displayed on the left end and upper end of the window C.
- the maximum feature of the invention is the ability of configuring the workspace through the operation of docking for the singly usable application.
- the arrangement of windows is not preserved as conventionally, but the arranging operation itself leads to configuring the workspace. That is, the creation of the workspace is intuitive, and the feedback of the result can be obtained at once.
- a feature in the realization is the ability of managing the workspace by making no or little change for the existent application.
- workspace management system of the invention can be applied in the following way.
- the user When the user firstly uses a framework using the invention, it can be used as a support for constructing the workspace, or when the windows are docked in normal use, another window that can become the candidate may be automatically recommended.
- the application or document of docking candidate may be collected in the following way.
- the workspace system according to the embodiment can be performed by the application software executable on an OS mounted on a personal computer, or a program incorporated into the OS, for example.
- FIG. 6 is a block diagram showing the configuration of the event detection method.
- the manager 100 for performing the event detection method comprises docking unit 110 for docking the windows, margin display unit 120 for displaying the margin on the window to be docked, neighboring window detection unit 130 for detecting the neighboring window of docking object, event detection unit 140 and window management unit 150 , as shown in FIG. 6 .
- the event detection unit 140 detects the event by periodically acquiring the active window state, and comparing it with the previous window state while referring to a window event table.
- Table 1 shows a data structure of the window event table.
- the window event table has the following columns.
- Window ID holds an identifier of window.
- Size holds the width and height of window.
- Event holds the event occurring immediately before for the active window.
- FIG. 7 shows an operation flow of the event detection unit.
- the event detection unit 140 periodically acquires the window ID (id), position (Position) and size (Size) of the active window W (step S 10 ). And it is checked whether or not the active window W is already registered in the window event table (step S 11 ).
- step S 12 If the active window W is not registered in the table, it is known that the window becomes active for the first time, in which the event is “Execute”.
- the event “Execute” is detected (step S 12 ), and added as an item of the active window W to a window event table, whereby the process is ended.
- step S 13 If the active window W already exists in the table, whether or not the window W is active is acquired from the table (step S 13 ). If the window W in the table is not active, it becomes active by the check at this time, whereby an event “Active” is detected (step S 14 ). And the table is rewritten (step S 15 ), whereby the process is ended.
- step S 16 the previous size “size_old” is acquired from the table, and compared with the current size “size” of the active window W to check whether or not the size is changed. If the “size” and the “size_old” are different, it is known that the size of the active window W is changed, whereby an event “Resize” is detected (step S 17 ). And the table is rewritten, whereby the process is ended.
- step S 18 If the “size” and the “size_old” are the same value, it is known that the size is not changed. At this time, the previous position “position_old” is acquired from the table, and compared with the current position “position” of the active window W to check whether or not the position is changed (step S 18 ).
- step S 19 If the “position” and the “position_old” are different, it is known that the window position is changed, whereby an event “Move” is detected (step S 19 ). If the “position” and the “position_old” are the same, it is known that there is no movement. In this case, the previous event is acquired from the table, and it is checked whether or not the previous event is “Move” (step S 20 ). In the case of “Move”, since it is known that the Move is ended by the check at this time, an event “Drop” is detected (step S 21 ).
- step S 22 If the event is detected in the above manner, it is required that the window event table is rewritten, whether the event is detected or not (step S 22 ). Firstly, the “active” column and the “event” column in the table are all cleared. Then, the line of W in the “active” column is checked. Further, if the event is detected, the detected event is written in the “event” column of W.
- the “window management unit” receives an event message from event sending unit of individual windows, and performs an operation on the necessary window by referring to the “window table” and “docking table”. First of all, the data structure of the window table and docking table and then the behavior of the window management unit will be described below.
- the “window table” manages all the windows during execution.
- Table 2 shows the data structure.
- the window table has the following columns.
- Window ID holds the ID of window.
- Size holds the width and height of each window.
- “Docking ID” holds a set of window IDs for the windows that are docked if the windows are docked. If the window is not docked with any window, this column is empty.
- the “docking table” manages all the docking windows during execution.
- Table 3 shows the data structure.
- the window table has the following columns.
- “Docking ID” holds the ID of docking window.
- Size holds the width and height of each docking window.
- “Docking set” holds a set of window IDs for the windows that are docked.
- the window management unit receives an event message from the event sending unit of the window W, and performs a required operation on the necessary window by referring to the “window table” and “docking table” according to the kind of received event.
- the operation of each event is given below.
- FIG. 8 shows an operation flow in detecting an Execute event.
- the operation is different depending on whether or not the W is docking window. It is checked whether or not the W is docking window (step S 20 ). If the W is docking window, the position and size of W are acquired from the docking table (step S 21 ), the information (ID, position, size, a set of sub-windows) of W is added to the docking table (step S 22 ), the position and size of the sub-window are acquired from the window table (step S 23 ), and the information of the sub-window is added to the window table (step S 24 ). In the case where the W is non-docking window, the size of W is acquired (step S 25 ), and the information of W is simply added to the window table (step S 26 ).
- FIG. 9 shows an operation flow in detecting a Move event.
- the position of W is acquired (step S 30 ), and the information of W is updated in the window table (step S 31 ). It is checked whether or not the W is docked (step S 32 ). If the W is docked, the window position is recalculated by searching for another window docked with the W (step S 33 ). Then, for another window docked with the W, the positional information in the window table and the corresponding information in the docking table are updated (step S 34 ). Further, the neighboring window detection unit detects whether or not there is any neighboring window by referring to the window table (step S 35 ). If there is the neighboring window, the margin display unit displays the margin (step S 36 ). If there is no neighboring window, the margin display unit displays no margin (step S 37 ).
- FIG. 11 shows an operation flow in detecting a Resize event.
- the position of W is acquired (step S 50 ), and the information of W is updated in the window table (step S 51 ). It is checked whether or not the W is docked with another window (step S 52 ). If the W is not docked, the process is ended. If the W is docked with another window, the position and size of other docked window than the W are recalculated and the window position is set (step S 53 ). Further, the information of other docked window than the W is updated in the window table (step S 54 ), and the information of the position and size of the W is updated in the docking table (step S 55 ).
- Two windows can be docked if the positional relationship of windows is any of the following sets.
- the window X in which the distance from the window position is less than a certain threshold is called the neighboring window of W.
- the neighboring window of W is searched from the docking table.
- the neighboring window is returned, if any. If not, the neighboring window is searched from the window table this time. In this way, only one neighboring window is searched for the docking window or the single window that is not docked.
- the margin display unit displays the margin indicating that “W and X can be docked” on both sides of W and X. If X is the neighboring window of W and the left (Left) of W and the right (Right) of W are closer, the margin display unit displays the margin 20 on the window X and the margin 22 on the window W, as shown in FIG. 13A .
- a margin display mode the shape of the side of window is changed, the color of the side of window is changed, or both the shape and color of the side of window are changed, for example.
- other modes are possible as far as the user can visually recognize the docking position, or the images of other colors or shapes may be added.
- the window management unit searches for the neighboring window of W. If the neighboring window X of W exists, the “docking unit” actually performs a docking process for W and X.
- the operation is different depending on which side of the W is docking object (the position of this side is called the “docking position”).
- the height of W is equalized to the height of X and the W is moved to the left of X to make contact with X (see FIG. 13B ).
- the height of W is equalized to the height of X and the W is moved to the right of X to make contact with X (see FIG. 13B ).
- the width of W is equalized to the width of X and the W is moved to the bottom of X to make contact with X.
- the width of W is equalized to the width of X and the W is moved to the top of X to make contact with X.
- the exchange of data or timing between the windows is event-driven, although the embodiment is not limited to only the event-driven. It may be performed via a memory or a file. Any way, a message is sent from each window to the manager by some unit.
- FIG. 14 shows a system configuration for the event notification method in this embodiment.
- the event notification method has event sending unit 200 for each window, as shown in FIG. 14 .
- a manager 210 for supervising the windows comprises window management unit 220 , neighboring window detection unit 230 , margin display unit 240 and docking unit 250 .
- each window additionally has the “event sending unit” and the manager does not have the “event detection unit”.
- the operation of the event sending unit 200 and a different point of the window management unit 220 will be described in this embodiment.
- the event sending unit 200 sends the event to the window management unit 220 when the following operation occurs in its own window. Though the Exit event is not detected in the previous embodiment, the Exit event is also sent from each window in this embodiment.
- Table 4 shows a data structure of the event message that the event sending unit 200 sends to the window management unit 220 .
- the Move event is sent from the window having the window ID W001.
- “Kind of event” indicates the kind of event to be sent.
- the window management unit 220 is basically the same as for the event detection method. However, the management of the Exit event is newly added, and its difference will be only described below.
- FIG. 15 shows an operation flow in detecting the Exit event. The operation is different depending on whether or not the W is docking window. It is checked whether or not the W is docking window (step S 60 ). If the W is docking window, the information on the sub-window of W is deleted from the window table (step S 61 ), and the information of W is deleted from the docking table (step S 62 ). If the W is non-docking window, the information of W is simply deleted from the window table (step S 63 ).
- the exit event is received and the closed window is deleted from the window table and the docking table as previously described, whereby the size of the table is reduced. This leads to the more efficient process.
- the configuration of saving the document state includes the configuration of saving the window state
- the saving and regeneration of the document state will be described below. Also, the embodiment here will be described with the event notification system as the base.
- FIG. 16 is a block diagram showing the configuration of a system for saving and regenerating the window state/document state.
- the modules of state saving unit 300 and state regeneration unit 310 are added to the side of the window manager 212 in the previous embodiment. Also, the data structure of the window table is different from the previous structure. Herein, only its difference will be described.
- the data structure of the window table included in the window management unit 220 is extended as shown in Table 5. Though the “window ID”, “position”, “size”, and “docking ID” are the same as in Table 2, the following fields are extended in Table 5.
- Document indicates the path or URL of the document opened in the window. If the document is not designated, this is blank.
- Scroll position holds the scroll position (ratio to the length of document) of the document. If the “document” field is blank, the scroll is not made, and this field is also blank.
- “Cursor position” holds the cursor position (the number of characters from the top) in the document. If the “document” field is blank, the cursor is not placed, and this field is also blank.
- the state saving unit 300 saves the structured data including information (see Table 6) in which a part regarding D001 is extracted from Table 5 in a file designated by the user or designated beforehand.
- the state regeneration unit 310 reads the file and regenerates the docking window based on the above data structure. Firstly, the sub-window is opened using the designated application and the position and size of the window are decided. Further, the designated document is opened, and the scroll position and the cursor position are set up.
- FIG. 17 shows the system configuration for presenting the docking object window candidate.
- candidate document retrieval unit 400 candidate document informing unit 410 , candidate document presentation unit 420 and window generation unit 430 are added on the side of the window manager 214 to the event notification system as described above.
- the candidate document retrieval unit 400 automatically retrieves the document of docking object from the user's PC at the following timing.
- the window manager is a resident application that is always activated during execution of the OS.
- the window manager resides in a task tray (located to the right of the task bar, in which an icon of the resident application is displayed) of the Windows (registered trademark).
- the candidate document informing unit 410 changes the state of icon for the window manager in the task tray, and informs the user that the candidate document of the document exists.
- the candidate document presentation unit 420 lists up the candidate documents. This example is shown in FIG. 18 . If the user clicks on the icon, a menu is displayed, and the candidate documents are listed up, and if the document is selected, the document is opened and ready for dragging, as shown in FIG. 18 .
- the window generation unit 430 opens the document with the corresponding application. And the generated window is made ready for dragging. Thereby, the user can find the document to be docked promptly, and dock it with another window immediately. This is a proposal for supporting the generation of workspace.
- FIG. 19 shows the system configuration for recommending the window arrangement.
- Use log acquisition unit 500 , use log analysis unit 510 , and layout recommendation unit 520 are added on the side of the window manager 216 to the embodiment of the event notification system.
- the use log acquisition unit 500 acquires the log for the operation on the sub-window within the docking window and stores the history in a use log table.
- the use log table is the table holding the operation history for the docking window.
- Table 7 shows one example of the data structure. This table has the following fields.
- “Docking ID” holds the ID of the docking window in which the operation is performed. Herein, the docking ID is not different for every activation of the docking window.
- Window ID holds the window ID of the sub-window in the docking window.
- the window ID is not different for every activation.
- “Kind of operation” holds what operation is made from the user. Though the operation such as active, scroll, click or input is held for the time being, active is the most important among them. In the following algorithm for the use log analysis unit, the history of active is analyzed to make the recommendation.
- the use log analysis unit 510 analyzes a use log DB 530 , and searches for the optimal arrangement of sub-windows in the docking window.
- the degree of similarity between the sub-windows is calculated as the height of possibility that the different sub-windows are used at the same time (within a relatively short time).
- the time section is partitioned at every fixed time interval T.
- a matrix is created in which the sub-window is in the row and the time partitioned by the length T is in the column, with the number of times that the sub-window becomes active within the time as the element.
- the degree of similarity between the sub-windows A and B is defined as the cosine of the row vectors corresponding to A and B. As a result, the degree of similarity between the windows having more number of times that they are used together within the fixed time interval is higher.
- FIG. 20 shows conceptually the relationship between the matrix and the degree of similarity.
- indexes i.e., use frequency of sub-window and the degree of similarity between the sub-windows
- the user may possibly notice, in the workspace of his or her own, such a problem that the sub-window with high use frequency is located in a hard-to-use place or two sub-windows having higher frequency of being used together are arranged apart.
- the sub-window with the highest use frequency is placed to the leftmost.
- the window with higher degree of similarity with it is placed at the second from the left.
- the window with the higher degree of similarity to the second sub-window from the left among the sub-windows of which the arrangement is not yet decided is placed at the third from the left.
- the arrangement of all the sub-windows (in the order from the left) is decided by repeating the step of (3).
- the size of sub-window is decided in breadth to be proportional to the original area of the sub-window.
- the windows having the possibility that they are used together are arranged adjacently. Though the original shape of sub-window is changed, the ratio of areas is held.
- the layout presentation unit 520 presents a sample of layout to the user. The user changes the layout of sub-window in the workspace by oneself while seeing the sample.
- the embedded docking has the following features in the operation.
- the total size of window (on the dropped side) is not changed before and after docking.
- the “margin” is displayed on plural sides of the window.
- FIG. 21 shows a system configuration for embedded docking.
- Neighboring sub-window detection unit 600 is added on the side of the manager 218 to the system configuration diagram for the event notification method. Further, the operation of the neighboring window detection unit 600 , the margin display unit 240 , and the docking unit 230 is different from the event notification method. These will be described below.
- the neighboring window detection unit 600 of the event notification method also detects two overlapping windows in this embodiment, besides the two windows only in the relationship of left (Left) and right (Right) or top (Top) and bottom (Bottom).
- the extended docking is made if the windows do not overlap as shown in FIG. 22A
- the embedded docking is made if the windows overlap as shown in FIG. 22B .
- the heavy line 30 drawing the outer shape of window represents the margin.
- the neighboring sub-window detection unit is not required, but the process may be performed in the same way as before.
- the neighboring sub-window detection unit 600 decides the sub-window in the docking window to be pushed aside and the position to dock the window anew, if the neighboring window detection unit judges the embedded docking. Conceptually, this operation is performed as shown in FIG. 23 .
- the neighboring sub-window detection unit 600 has the following two steps.
- step 1 the sub-window to be pushed aside is detected.
- the center of gravity of A (center of rectangle of window) and the center of gravity of B are calculated.
- the distances from them to the center of gravity of C are calculated, and the window with closer distance is the window to be docked with the window C.
- B is the docking object.
- step 2 which position in the window B to be pushed aside is decided. Firstly, a window area of B is divided into four sub-areas partitioned by two diagonal lines, as shown in FIG. 24 . Then, the distances from each center of gravity of four sub-areas of B to the center of gravity of C are calculated. The sub-area with the closest distance is the embedding position of C into B. For example, if the center of gravity of C is closer to the center of gravity of the left sub-area of B (example of FIG. 23C ), C is embedded into the right position of B, and docked.
- the margin display unit 240 displays the margin at the embedding position (to the left in the previous example) of the sub-window (B in the previous example) detected by the neighboring sub-window detection unit 600 and the corresponding position of the window (C in the previous example) being dragged.
- the corresponding position unit the sides 40 B, 40 C, 42 B, 42 C, 44 B and 44 C to contact other sub-windows as a result of docking, as shown in FIGS. 23A , 23 B and 23 C.
- the docking unit 230 docks the new window (C in the previous example) in the part of margin displayed by the margin display unit 240 .
- FIG. 25 is a diagram showing one example of a processing apparatus for performing the workspace management method according to this embodiment.
- the processing apparatus 700 comprises an input unit 702 including a keyboard, a mouse, a touch panel, an image scanner, and other inputs, an external interface (I/F) 704 that enables the transmission and reception of information to and from an external network, a display unit 706 , an output unit 708 such as a printer, a storage unit 710 that can store various kinds of data, a memory 712 for storing an OS, a program and the application software, and a CPU (Central Processing Unit) 714 that can control the operation of each part in accordance with the program.
- I/F external interface
- the CPU 714 executes an application stored in the memory 712 to display a window for user interface on the display unit 706 to provide the user with the workspace.
- the workspace management system of this embodiment is incorporated into the OS and/or application software to enable the docking of the windows as described above.
- the window displayed on the display unit 706 is manipulated via the input unit 702 such as the mouse by the user.
Abstract
Description
- 1. Technical Field
- The present invention relates to a workspace management method, a workspace management system, a computer readable medium storing a program for managing a window displayed in response to start-up of an application as a workspace for user interface.
- 2. Related Art
- In recent years, information is more diversified, and the amount of information is enormous. An individual personal computer (PC) is not exceptional. The user performs a work on the PC by starting various applications and opening various documents at the same time. When various kinds of information is displayed or edited, various applications are employed. The operational scheme is different depending on the purpose or the kind of information. For example, a word processor is used for a text sentence, a draw tool is used in drawing a picture, and a Web browser is used to see a document on the Web.
- In such a situation, various applications are started on the PC, and many documents are opened, for which the management is troublesome. In the Windows (registered trademark) that is a universal OS (Operating System), the active application and the opened document are iconized on a bar called a task bar, allowing the user to survey the currently active application and opened document (i.e., window). However, if the number of windows is increased, many icons are arranged, whereby it is troublesome to look for a desired icon on the task bar. To cope with this problem, a plurality of documents opened in the same application (e.g., Microsoft Word or Internet Explorer) are iconized as a unit on the task bar in the Windows.
- However, there is one problem. An action (task) for the user to attain a certain purpose does not necessarily correspond to an application. That is, one task is not always completed in one application. Rather, two or more applications are often involved to accomplish one task. For example, in writing a technical article, the user displays a dictionary, an article read by himself or herself, his or her own article written before, and a draw tool for drawing the diagram at the same time (by activating the corresponding applications at the same time) in addition to a word processor. Also, in making the programming, an editor for editing the source code, the environment for compiling or debugging, a manual, and a Web browser (for retrieval as needed) are employed at the same time. In creating a mail, a mailer, a calendar, a schedule management system, and a name list management system are employed at the same time. Further, in these tasks, individual applications or documents are arranged on the desk top to the user's liking to constitute a working space for the user. Such working space corresponding to the task of the user is called a “workspace” in this specification.
- Usually, the user mostly performs various tasks in parallel. After reading or writing a mail, the user reads others' articles, and further writes his or her own thesis. At this time, a work of switching the tasks is often troublesome. There occurs a problem that it is required to click the icon many times to make plural applications or documents active, or it is not possible to place the same document at a different position in a different workspace. What the user wants to do is to switch the tasks, or workspaces, and manage them. The switching or management of the applications only imposes the system's convenience on the user. Various applications or documents are arranged flexibly to the user's liking to make the configuration of the workspace more easy, whereby it is required that the switching of the workspaces occurring in switching the tasks can be made simply.
- According to an aspect of the present invention, a workspace management method for managing a plurality of windows displayed in response to start-up of an application as a workspace for user interface, the method including: managing management information regarding the windows; detecting a change in a state of each of the windows; detecting, in a case where a movement of one window of the windows is detected in the detecting of the change, the other windows positioned in the neighborhood of the one window or overlapping the one window by referring to the management information; displaying, in a case where the other windows are detected in the detecting of the other windows, a docking position to be docked in each of the one window and the other windows; and docking, in a case where a stop of the movement of the one window is detected in the detecting of the change, the one window with the other windows via the docking position.
- Exemplary embodiment of the present invention will be described in detail based on the following figures, wherein:
-
FIGS. 1A and 1B are views for explaining a state of window, in which 1A shows a state where a window B is dragged near a window A, andFIG. 1B shows a state where the window B is docked with the window A; -
FIGS. 2A and 2B are views for explaining the changing of the size of a sub-window in the docking window, in whichFIG. 2A shows the changing of the size of the sub-window B, andFIG. 2B shows the changing of the size of the sub-window A; -
FIGS. 3A and 3B are views for explaining a state where the size of sub-window is changed in the window into which the windows A, B and C are docked, in whichFIG. 3A shows the changing of the size of the sub-window A, andFIG. 3B shows the changing of the size of the sub-windows B and C; -
FIGS. 4A and 4B are views for explaining a state where the size of sub-window is changed in the window into which the windows A, B, C and D are docked, in whichFIG. 4A shows the changing of the size of the sub-window A, andFIG. 4B shows the changing of the size of the sub-windows B, C and D; -
FIGS. 5A and 5B are views for explaining the embedded docking, in whichFIG. 5A shows a state before the window C is docked with the docking window A and B, andFIG. 5B shows a state after the window C is docked; -
FIG. 6 is a block diagram showing the configuration of an event detection method in a workspace management system according to an embodiment of the invention; -
FIG. 7 is a flowchart showing the operation flow of event detection unit according to this embodiment; -
FIG. 8 is a flowchart showing the operation flow in Execute of window management unit according to this embodiment; -
FIG. 9 is a flowchart showing the operation flow in Move of the window management unit according to this embodiment; -
FIG. 10 is a flowchart showing the operation flow in Drop of the window management unit according to this embodiment; -
FIG. 11 is a flowchart showing the operation flow in Resize of the window management unit according to this embodiment; -
FIG. 12 is an operation explanatory view for neighboring window unit; -
FIGS. 13A and 13B are operation explanatory views, in which -
FIG. 13A is an operation explanatory view for margin display unit, andFIG. 13B is an operation explanatory view for docking unit; -
FIG. 14 is a block diagram showing the configuration of an event notification method according to this embodiment; -
FIG. 15 is a flowchart showing the operation flow in Exit of the window management unit with the event notification method; -
FIG. 16 is a block diagram showing a system configuration for saving and regenerating the window state/document state according to this embodiment; -
FIG. 17 is a block diagram showing a system configuration for presenting the docking object window candidate according to this embodiment; -
FIG. 18 is a view showing an example of listing up the candidate documents by candidate document presentation unit; -
FIG. 19 is a block diagram showing a system configuration for recommending the window arrangement according to this embodiment. -
FIG. 20 is a view for explaining the concept of calculating the degree of similarity between the sub-windows according to this embodiment; -
FIG. 21 is a block diagram showing a system configuration for making the embedded docking according to this embodiment; -
FIGS. 22A and 22B are views for explaining examples of docking, in whichFIG. 22A shows an example of extended docking, andFIG. 22B shows an example of embedded docking; -
FIGS. 23A to 23C are views for explaining the operation of neighboring sub-window detection unit; -
FIG. 24 is a view for explaining an example of dividing an area within the window; and -
FIG. 25 is a diagram showing a configuration example of a processing apparatus for performing the workspace management system, a workspace management method, and a workspace management program according to this embodiment. - A basic idea of a workspace management system according to the present invention will be described below with reference to the drawings. The idea of the invention is largely divided into two parts.
- 1. A user interface for supporting the construction and switching of the workspace
2. An architecture for realizing the user interface of 1 to incorporate the existent application into a framework of the invention as simply as possible -
FIG. 1A shows a state where two windows A and B are displayed on a display and the window B is dragged near the window A. The windows A and B are displayed on the display by executing different application software on the operating software of a computer, in which the window B is selected by an input device such as a mouse, and dragged (moved). If the window A and the window B are closer to some extent, theserrated margins FIG. 1B . At this time, the size of the window B is adjusted in the size adapted to the size of the side on which the margin of the window A is displayed. - Herein, the docked window (hereinafter referred to as a docking window) behaves like the normal window that is not docked (hereinafter referred to as a non-docking window).
- (a) The shape of window after docking is rectangular or square.
(b) The windows after docking are moved together. Namely, both the windows A and B are moved at the same time by dragging a title bar.
(c) The individual sub-windows contained in the docking window can be closed, maximized or minimized at the same time. - Also, the docking window, which is an aggregate of multiple windows, is different from the normal window in the following points.
- (a) The size of the other sub-window (further, the docking window that puts together the entirety) is also changed by changing the size of a specific sub-window.
(b) The docking can be canceled. The entirety may be canceled or the specific sub-window only may be canceled.
(c) The display of the title bar may be different from the display of the normal window to indicate the docking, as needed.
(c1) A “docking cancel” button is added to the normal buttons of “minimization”, “maximization” and “closing”.
(c2) The icon of window is changed to the special icon.
(c3) The background color of the title bar is changed. - Next, the operation in changing the size of sub-window will be described below.
FIG. 2 shows the changing of the size of the sub-window B to change the size of the window A and change the total size of the docking window (including the windows A and B) at the same time. If the window B is enlarged (increased in height and width) as shown inFIG. 2A , the height of the window A is changed as shown inFIG. 2B . However, the width of the window A is not changed. -
FIG. 3 shows how the window A is widened in the window into which the sub-windows A, B and C are docked. If the width of the sub-window A is increased from the state as shown inFIG. 3A , the windows B and C are reduced at the same ratio of widths as shown inFIG. 3B . -
FIG. 4 shows how the window A is widened in the window into which the sub-windows A, B, C and D are docked. If the sub-window A is enlarged from the state as shown inFIG. 4A , the width of the windows C and D is reduced accordingly as shown inFIG. 4B . At the same time, the width of the window B is enlarged. - In the invention, it is supposed that the docking window is employed as a workspace. In this meaning, the docking window and the workspace are synonymously used.
- To realize a framework (hereinafter referred to as a Docking Window Framework (DWF)) for the above idea of the invention, it is advantageous if the DWF can be realized simply by adding a function to an operating system (OS) from the following viewpoints.
- (a) The advantage of the DWF can be obtained without changing the existent application (e.g., application of Microsoft Office).
(b) Even if there is a bug in the system, it is sufficient to replace only a module added to the OS, and it is unnecessary to replace each application. This can be also true for the version-up of the system. - However, such a thing is generally difficult. Because it is difficult to know what event occurs in the window of the application and what state the window is in from outside of the application. Herein, two methods are proposed to cope with this problem. Herein, a module for managing the window added to the OS is called a “manager”.
- Method A (event detection method): The event detection method involves periodically checking the states of all the windows with the manager and specifying the kind of event from the kind of change if there is a change in the window state.
- Method B (event notification method): The event notification method involves notifying that an event occurs from the window to the manager if each window has a change in the window state.
- The event detection method allows the realization of the DWF without changing the application at all. However, it has the following problems.
- (a) Since the manager periodically checks the states of all the windows, a large amount of computer resources are employed.
(b) Since an event is detected by the periodical check, there is a time lag from the actual occurrence of the event to the detection of the event. This causes a delay in the overall behavior of the DWF. Of course, though this problem is relieved by using a smaller check period, the more computer resources are consumed if the period is smaller. - For the event notification method, it is required for the application side to perform a process of “notifying the manager that there is an event at necessary timing”. That is, it is required to change each application. Of course, the less change, the better. Since it is troublesome to change all the applications at every time of changing the function in the manager, it is desirable that the functions to be mounted on each application are universal (sturdy for changing the functions). Thus, as the minimum function provided on the application side, it is proposed that “a specific event is notified to the manager if it occurs.” To be important here is that the application side only informs the occurrence of event to the manager, but does not perform any other things (including bidirectional communication with the manager), in which if the application only makes the notification, the manager deals with all other things. The kinds of event to be sent are as follows as the minimum configuration, as described in detail in the embodiments.
- Start of application “Execute”
- End of application “Exit”
- Active window “Active”
- Moving window “Move”
- Dropping window (end of movement) “Drop”
- Size change of window “Resize”
- Actually, Exit corresponding to Execute is added to the list, but Exit is not absolutely necessary. If there is Exit, the operation is smarter, but Exit is not requisite. More specifically, if Exit is not detected, the window can not be deleted from the table in closing the window, so that the window becomes larger. This increases the process. Also, to cope with “maximization”, “minimization” and “restoration” of the window, there is possibility that a Resize event is subdivided. For reference, there is possibility that some of these events are automatically detected by the manager, and the others are notified from the application.
- The docking as shown in
FIG. 1 is performed in the form in which the window B sticks to the outside of the window A to be docked (B jutting out of A). Such docking is called the “extended docking”. On the contrary, the docking as shown inFIGS. 5A and 5B is performed in the form in which the window C intrudes into an area of the window B in the docking window of the windows A and B. The docking in the form in which the window intrudes into the existent window is called the “embedded docking”. - A difference between the extended docking and the embedded docking will be additionally described below. First, in the extended docking the size of window is changed before and after docking, whereas in the embedded docking the size of window is not changed before and after docking. Second, in the extended docking the “margin” is displayed on only one side for each window, whereas in the embedded docking the “margin” is displayed on two or more sides for each window. As shown in
FIG. 5A , themargins margin 16 is displayed on the left end and upper end of the window C. - The maximum feature of the invention is the ability of configuring the workspace through the operation of docking for the singly usable application. The arrangement of windows is not preserved as conventionally, but the arranging operation itself leads to configuring the workspace. That is, the creation of the workspace is intuitive, and the feedback of the result can be obtained at once. A feature in the realization is the ability of managing the workspace by making no or little change for the existent application.
- Further, the workspace management system of the invention can be applied in the following way.
- (Interaction with Docking Window)
(a) The specific window in the workspace is increased or decreased. Relatively, the other window is decreased or increased. This corresponds to the enlargement or reduction, not the maximization or minimization.
(b) The specific window in the workspace is shrunken. Relatively, the other window is increased.
(c) The state of the docking window (positional relationship of the sub-window with the application) can be saved and regenerated.
(d) The state of document in the docking window (in addition to the window state, the document opened in each window, scroll position and cursor position) can be saved and regenerated. - When the user firstly uses a framework using the invention, it can be used as a support for constructing the workspace, or when the windows are docked in normal use, another window that can become the candidate may be automatically recommended. The application or document of docking candidate may be collected in the following way.
- (a) The date and time attributes (creation, update, reference) of the document are closer.
(b) The document that has been used together before
(c) The document that is used together in another workspace - (a) Analyzing how the active sub-window transits in the behavior of the user in the workspace and recommending the appropriate window arrangement
(a1) The movement of operation or movement of eye-line is desirably smaller
(a2) The operation is desirably shifted from left to right or top to bottom
(a3) The sub-windows frequently switched in the operation are desirably adjacent - A workspace system according to an embodiment of the invention will be described below. The workspace system according to the embodiment can be performed by the application software executable on an OS mounted on a personal computer, or a program incorporated into the OS, for example.
- In the following explanation, to begin with, two event processing methods, 1. event detection and 2. event notification, will be described below. As its expansion, 3. an exemplary system for saving and regenerating the window state and document state is given. Further, 4. an exemplary system for automatically presenting the window candidate to be docked and 5. an exemplary system for presenting the optimal window arrangement in the workspace are given. Finally, 6. an example of embedded docking is given. In these examples, the extended docking is presupposed as the docking method. The embedded docking will be described lastly. It is noted that the extended docking is simply referred to as the docking.
- In the event detection method, it is unnecessary to change the window for individual applications, and the manager performs all the operations. Also, in the event detection, an Exit event is not detected.
-
FIG. 6 is a block diagram showing the configuration of the event detection method. Themanager 100 for performing the event detection method comprisesdocking unit 110 for docking the windows,margin display unit 120 for displaying the margin on the window to be docked, neighboringwindow detection unit 130 for detecting the neighboring window of docking object,event detection unit 140 andwindow management unit 150, as shown inFIG. 6 . - First of all, the
event detection unit 140 will be described below. Theevent detection unit 140 detects the event by periodically acquiring the active window state, and comparing it with the previous window state while referring to a window event table. - Table 1 shows a data structure of the window event table. The window event table has the following columns.
- “Window ID” holds an identifier of window.
- “Position” holds the upper left coordinate of window.
- “Size” holds the width and height of window.
- “Active” holds a flag indicating whether the window is currently active or not.
- “Event” holds the event occurring immediately before for the active window.
-
TABLE 1 Window ID Position Size Active Event W001 (10,10) 120×200 W002 (220,40) 300×200 1 Move W003 (300,50) 200×200 -
FIG. 7 shows an operation flow of the event detection unit. As shown inFIG. 7 , theevent detection unit 140 periodically acquires the window ID (id), position (Position) and size (Size) of the active window W (step S10). And it is checked whether or not the active window W is already registered in the window event table (step S11). - If the active window W is not registered in the table, it is known that the window becomes active for the first time, in which the event is “Execute”. The event “Execute” is detected (step S12), and added as an item of the active window W to a window event table, whereby the process is ended.
- If the active window W already exists in the table, whether or not the window W is active is acquired from the table (step S13). If the window W in the table is not active, it becomes active by the check at this time, whereby an event “Active” is detected (step S14). And the table is rewritten (step S15), whereby the process is ended.
- If the window W in the table is already active, it is known that the window W is active at least before this time. Then, the previous size “size_old” is acquired from the table, and compared with the current size “size” of the active window W to check whether or not the size is changed (step S16). If the “size” and the “size_old” are different, it is known that the size of the active window W is changed, whereby an event “Resize” is detected (step S17). And the table is rewritten, whereby the process is ended.
- If the “size” and the “size_old” are the same value, it is known that the size is not changed. At this time, the previous position “position_old” is acquired from the table, and compared with the current position “position” of the active window W to check whether or not the position is changed (step S18).
- If the “position” and the “position_old” are different, it is known that the window position is changed, whereby an event “Move” is detected (step S19). If the “position” and the “position_old” are the same, it is known that there is no movement. In this case, the previous event is acquired from the table, and it is checked whether or not the previous event is “Move” (step S20). In the case of “Move”, since it is known that the Move is ended by the check at this time, an event “Drop” is detected (step S21).
- If the event is detected in the above manner, it is required that the window event table is rewritten, whether the event is detected or not (step S22). Firstly, the “active” column and the “event” column in the table are all cleared. Then, the line of W in the “active” column is checked. Further, if the event is detected, the detected event is written in the “event” column of W.
- The “window management unit” receives an event message from event sending unit of individual windows, and performs an operation on the necessary window by referring to the “window table” and “docking table”. First of all, the data structure of the window table and docking table and then the behavior of the window management unit will be described below.
- The “window table” manages all the windows during execution. Table 2 shows the data structure. The window table has the following columns.
- “Window ID” holds the ID of window.
- “Position” holds the upper left coordinate of each window.
- “Size” holds the width and height of each window.
- “Docking ID” holds a set of window IDs for the windows that are docked if the windows are docked. If the window is not docked with any window, this column is empty.
-
TABLE 2 Window ID Position Size Docking ID W001 (10,10) 120×200 W002 (220,40) 300×200 W003 (300,50) 200×200 D001 W003 (500,50) 100×200 D001 W005 (900,400) 200×150 D002 W006 (1100,400) 120×150 D002 W007 (900,550) 320×100 D002 - In Table 2, seven windows are currently opened on the PC, in which it is indicated that W003 and W004 of those windows are docked (docking information is in the line D001 of the docking table), and W005, W006 and W007 are also docked (docking information is in the line D002 of the docking table).
- The “docking table” manages all the docking windows during execution. Table 3 shows the data structure. The window table has the following columns.
- “Docking ID” holds the ID of docking window.
- “Position” holds the upper left coordinate of each docking window.
- “Size” holds the width and height of each docking window.
- “Docking set” holds a set of window IDs for the windows that are docked.
-
TABLE 3 Docking ID Position Size Docking set D001 (300,50) (300,200) W003, W004 D002 (900,400) (320,250) W005, W006, W007 - In Table 3, there are currently two docking windows during execution, in which one docking window is composed of two sub-windows and the other composed of three sub-windows.
- Turning back to the window management unit, the window management unit receives an event message from the event sending unit of the window W, and performs a required operation on the necessary window by referring to the “window table” and “docking table” according to the kind of received event. The operation of each event is given below.
-
FIG. 8 shows an operation flow in detecting an Execute event. The operation is different depending on whether or not the W is docking window. It is checked whether or not the W is docking window (step S20). If the W is docking window, the position and size of W are acquired from the docking table (step S21), the information (ID, position, size, a set of sub-windows) of W is added to the docking table (step S22), the position and size of the sub-window are acquired from the window table (step S23), and the information of the sub-window is added to the window table (step S24). In the case where the W is non-docking window, the size of W is acquired (step S25), and the information of W is simply added to the window table (step S26). -
FIG. 9 shows an operation flow in detecting a Move event. Firstly, the position of W is acquired (step S30), and the information of W is updated in the window table (step S31). It is checked whether or not the W is docked (step S32). If the W is docked, the window position is recalculated by searching for another window docked with the W (step S33). Then, for another window docked with the W, the positional information in the window table and the corresponding information in the docking table are updated (step S34). Further, the neighboring window detection unit detects whether or not there is any neighboring window by referring to the window table (step S35). If there is the neighboring window, the margin display unit displays the margin (step S36). If there is no neighboring window, the margin display unit displays no margin (step S37). -
FIG. 10 shows an operation flow in detecting a Drop event. Firstly, the position and size of W are acquired (step S40). Then, the neighboring window of the W is searched by the neighboring window detection unit (step S41). If there is no neighboring window, the process is ended without performing anything. If there is the neighboring window W′ (step S42), the position and size of W and W′ are recalculated by the docking unit, the window position is set and both are docked (step S43). Further, the information of the position and size of W and W′ is updated in the window table (step S44), and the information in the docking table is also updated (step S45). -
FIG. 11 shows an operation flow in detecting a Resize event. Firstly, the position of W is acquired (step S50), and the information of W is updated in the window table (step S51). It is checked whether or not the W is docked with another window (step S52). If the W is not docked, the process is ended. If the W is docked with another window, the position and size of other docked window than the W are recalculated and the window position is set (step S53). Further, the information of other docked window than the W is updated in the window table (step S54), and the information of the position and size of the W is updated in the docking table (step S55). - The operation of the “neighboring window detection unit” while the window W is moving (an event Move is detected in the W) will be described below. To represent the positions of four sides of the window, the upper side is called top (Top), the lower side is called bottom (Bottom), the left side is called left (Left), and the right side is called right (Right), as shown in
FIG. 12 . - Two windows can be docked if the positional relationship of windows is any of the following sets.
- Right (Right)? left (Left)
- Top (Top)? bottom (Bottom)
- That is, there is possibility that the window W is docked with the window X in the following cases.
- Right (Right) of W and left (Left) of X
- Left (Left) of W and right (Right) of X
- Top (Top) of W and bottom (Bottom) of X
- Bottom (Bottom) of W and top (Top) of X
- The window X in which the distance from the window position is less than a certain threshold is called the neighboring window of W. Herein, in looking for the neighboring window of W, firstly, the neighboring window of W is searched from the docking table. The neighboring window is returned, if any. If not, the neighboring window is searched from the window table this time. In this way, only one neighboring window is searched for the docking window or the single window that is not docked.
- For the W being moved, if the neighboring window X is detected by the neighboring window detection unit, the margin display unit displays the margin indicating that “W and X can be docked” on both sides of W and X. If X is the neighboring window of W and the left (Left) of W and the right (Right) of W are closer, the margin display unit displays the
margin 20 on the window X and themargin 22 on the window W, as shown inFIG. 13A . In a margin display mode, the shape of the side of window is changed, the color of the side of window is changed, or both the shape and color of the side of window are changed, for example. Besides, other modes are possible as far as the user can visually recognize the docking position, or the images of other colors or shapes may be added. - If a Drop event is detected from the window W, the window management unit searches for the neighboring window of W. If the neighboring window X of W exists, the “docking unit” actually performs a docking process for W and X.
- In the docking process, the operation is different depending on which side of the W is docking object (the position of this side is called the “docking position”).
- If the docking position of W is left (Left),
- the height of W is equalized to the height of X and the W is moved to the left of X to make contact with X (see
FIG. 13B ). - If the docking position of W is right (Right),
- the height of W is equalized to the height of X and the W is moved to the right of X to make contact with X (see
FIG. 13B ). - If the docking position of W is top (Top),
- the width of W is equalized to the width of X and the W is moved to the bottom of X to make contact with X.
- If the docking position of W is bottom (Bottom),
- the width of W is equalized to the width of X and the W is moved to the top of X to make contact with X.
- In this embodiment, it is presupposed that the exchange of data or timing between the windows is event-driven, although the embodiment is not limited to only the event-driven. It may be performed via a memory or a file. Any way, a message is sent from each window to the manager by some unit.
-
FIG. 14 shows a system configuration for the event notification method in this embodiment. The event notification method hasevent sending unit 200 for each window, as shown inFIG. 14 . Further, amanager 210 for supervising the windows compriseswindow management unit 220, neighboringwindow detection unit 230,margin display unit 240 anddocking unit 250. - A difference from the previous embodiment is that each window additionally has the “event sending unit” and the manager does not have the “event detection unit”. Hence, the operation of the
event sending unit 200 and a different point of thewindow management unit 220 will be described in this embodiment. - The
event sending unit 200 sends the event to thewindow management unit 220 when the following operation occurs in its own window. Though the Exit event is not detected in the previous embodiment, the Exit event is also sent from each window in this embodiment. - Table 4 shows a data structure of the event message that the
event sending unit 200 sends to thewindow management unit 220. In Table 4, it is represented that the Move event is sent from the window having the window ID W001. - “Source window” holds the window ID of the window that sends the event.
- “Kind of event” indicates the kind of event to be sent.
-
TABLE 4 Source window W0001 Kind of event Move - The
window management unit 220 is basically the same as for the event detection method. However, the management of the Exit event is newly added, and its difference will be only described below. - If any other event than Exit is received by the
window management unit 220, the operation is the same as for the event detection method. The operation in receiving the Exit event will be described below. -
FIG. 15 shows an operation flow in detecting the Exit event. The operation is different depending on whether or not the W is docking window. It is checked whether or not the W is docking window (step S60). If the W is docking window, the information on the sub-window of W is deleted from the window table (step S61), and the information of W is deleted from the docking table (step S62). If the W is non-docking window, the information of W is simply deleted from the window table (step S63). - The exit event is received and the closed window is deleted from the window table and the docking table as previously described, whereby the size of the table is reduced. This leads to the more efficient process.
- First of all, it is clearly stated that there are two saving forms in saving the state of window.
- Saving the window state
- In saving the window state, the following information is held.
- Application of individual window
- Position and size of individual window
- In saving the document state, the following information is held, in addition to the window state.
- Document opened in individual window
- Scroll position in individual window
- Cursor position in individual window
- Since the configuration of saving the document state includes the configuration of saving the window state, the saving and regeneration of the document state will be described below. Also, the embodiment here will be described with the event notification system as the base.
-
FIG. 16 is a block diagram showing the configuration of a system for saving and regenerating the window state/document state. The modules ofstate saving unit 300 andstate regeneration unit 310 are added to the side of thewindow manager 212 in the previous embodiment. Also, the data structure of the window table is different from the previous structure. Herein, only its difference will be described. - The data structure of the window table included in the
window management unit 220 is extended as shown in Table 5. Though the “window ID”, “position”, “size”, and “docking ID” are the same as in Table 2, the following fields are extended in Table 5. - “Document” indicates the path or URL of the document opened in the window. If the document is not designated, this is blank.
- “Scroll position” holds the scroll position (ratio to the length of document) of the document. If the “document” field is blank, the scroll is not made, and this field is also blank.
- “Cursor position” holds the cursor position (the number of characters from the top) in the document. If the “document” field is blank, the cursor is not placed, and this field is also blank.
-
TABLE 5 Scroll Cursor Window ID Position Size Docking ID Document position position W001 (10,10) 120×200 W002 (220,40) 300×200 W003 (300,50) 200×200 D001 C: ¥work¥paper.doc 57 1922 W003 (500,50) 100×200 D001 http://www.google.co.jp W005 (900,400) 200×150 D002 C: ¥work¥report.txt 10 310 W006 (1100,40) 120×150 D002 http://citeseer.ist.psu.edu/ W007 (900,550) 320×100 D002 - In the window W003 of Table 5, it is indicated that the document “C:¥work¥paper.doc” is opened, and scrolled to the position of 57% of the total, and the cursor is located at the 1922-th character from the top of the document.
- If the saving of the docking window with the docking ID D001 is designated, the
state saving unit 300 saves the structured data including information (see Table 6) in which a part regarding D001 is extracted from Table 5 in a file designated by the user or designated beforehand. -
TABLE 6 Scroll Cursor Window ID Position Size Docking ID Document position position W003 (300,50) 200×200 D001 C: ¥work¥paper.doc 57 1922 W003 (500,50) 100×200 D001 http://www.google.co.jp - The
state regeneration unit 310 reads the file and regenerates the docking window based on the above data structure. Firstly, the sub-window is opened using the designated application and the position and size of the window are decided. Further, the designated document is opened, and the scroll position and the cursor position are set up. -
FIG. 17 shows the system configuration for presenting the docking object window candidate. Herein, candidatedocument retrieval unit 400, candidatedocument informing unit 410, candidatedocument presentation unit 420 andwindow generation unit 430 are added on the side of thewindow manager 214 to the event notification system as described above. - The candidate
document retrieval unit 400 automatically retrieves the document of docking object from the user's PC at the following timing. - When the user docks the window
- When the retrieval of the candidate document is instructed from the user
- The following retrieval methods are considered.
- (a) The document in the date attribute (creation date and time, update date and time, reference date and time) closer to the document displayed in the currently active window is retrieved. If the active window is the docking window, the document in the date attribute closer to the document displayed in the sub-window is retrieved.
(b) The document that has been ever used together with the document displayed in the currently active window is retrieved. If the active window is the docking window, the document that has been ever used together with the document displayed in the sub-window is retrieved. To implement this, it is required that the use of the document so far is held as the history.
(c) The document used in another workspace (docking window) together with the document displayed in the currently active window is retrieved. If the active window is the docking window, the document used in another workspace together with the document displayed in the sub-window is retrieved. To implement this, it is required that the use of the document in the docking window is held as the history. - Herein, the window manager is a resident application that is always activated during execution of the OS. Herein, it is supposed that the window manager resides in a task tray (located to the right of the task bar, in which an icon of the resident application is displayed) of the Windows (registered trademark).
- If the candidate document exists by the retrieval of the candidate document retrieval unit, the candidate
document informing unit 410 changes the state of icon for the window manager in the task tray, and informs the user that the candidate document of the document exists. - If the user clicks on the icon, seeing a change in the state of icon for the window manager, the candidate
document presentation unit 420 lists up the candidate documents. This example is shown inFIG. 18 . If the user clicks on the icon, a menu is displayed, and the candidate documents are listed up, and if the document is selected, the document is opened and ready for dragging, as shown inFIG. 18 . - If the user selects a specific document in the listed-up menu, the
window generation unit 430 opens the document with the corresponding application. And the generated window is made ready for dragging. Thereby, the user can find the document to be docked promptly, and dock it with another window immediately. This is a proposal for supporting the generation of workspace. -
FIG. 19 shows the system configuration for recommending the window arrangement. Uselog acquisition unit 500, uselog analysis unit 510, andlayout recommendation unit 520 are added on the side of thewindow manager 216 to the embodiment of the event notification system. - The use
log acquisition unit 500 acquires the log for the operation on the sub-window within the docking window and stores the history in a use log table. The use log table is the table holding the operation history for the docking window. Table 7 shows one example of the data structure. This table has the following fields. - “Date and time” holds the date and time when the operation occurs.
- “Docking ID” holds the ID of the docking window in which the operation is performed. Herein, the docking ID is not different for every activation of the docking window.
- “Window ID” holds the window ID of the sub-window in the docking window. Herein, the window ID is not different for every activation.
- “Kind of operation” holds what operation is made from the user. Though the operation such as active, scroll, click or input is held for the time being, active is the most important among them. In the following algorithm for the use log analysis unit, the history of active is analyzed to make the recommendation.
-
TABLE 7 Date and time Docking ID Window ID Kind of operation 2006/09/20 D001 W003 Active 15:22:14 214 2006/09/20 D001 W003 Scroll 15:22:15 412 2006/09/20 D001 W003 Click 15:22:20 888 2006/09/20 D001 W003 Input 15:22:23 377 2006/09/20 D001 W005 Active 15:25:32 532 2006/09/20 D001 W004 Active 15:25:35 114 2006/09/20 D002 W032 Active 15:25:35 114 - The use
log analysis unit 510 analyzes ause log DB 530, and searches for the optimal arrangement of sub-windows in the docking window. - Herein, as one example, a system for recommending the optimal arrangement of sub-windows in the docking window D is given. Firstly, two indexes are introduced.
- (a) Use frequency of sub-window
(b) Degree of similarity between sub-windows - The degree of similarity between the sub-windows is calculated as the height of possibility that the different sub-windows are used at the same time (within a relatively short time). The time section is partitioned at every fixed time interval T. And a matrix is created in which the sub-window is in the row and the time partitioned by the length T is in the column, with the number of times that the sub-window becomes active within the time as the element. The degree of similarity between the sub-windows A and B is defined as the cosine of the row vectors corresponding to A and B. As a result, the degree of similarity between the windows having more number of times that they are used together within the fixed time interval is higher.
FIG. 20 shows conceptually the relationship between the matrix and the degree of similarity. - First of all, it is considered that there is the effect only by presenting the indexes (i.e., use frequency of sub-window and the degree of similarity between the sub-windows) at this stage to the user. This is because the user may possibly notice, in the workspace of his or her own, such a problem that the sub-window with high use frequency is located in a hard-to-use place or two sub-windows having higher frequency of being used together are arranged apart.
- Next, a system for recommending the arrangement of sub-windows in the workspace using the above two indexes will be described below. In reality, this algorithm is complex because it is required to take into consideration the size of window. Herein, a very simple method is introduced.
- (1) The sub-window with the highest use frequency is placed to the leftmost.
(2) The window with higher degree of similarity with it is placed at the second from the left.
(3) The window with the higher degree of similarity to the second sub-window from the left among the sub-windows of which the arrangement is not yet decided is placed at the third from the left.
(4) The arrangement of all the sub-windows (in the order from the left) is decided by repeating the step of (3).
(5) The size of sub-window is decided in breadth to be proportional to the original area of the sub-window. - By deciding the arrangement in the above stance, the windows having the possibility that they are used together are arranged adjacently. Though the original shape of sub-window is changed, the ratio of areas is held.
- The
layout presentation unit 520 presents a sample of layout to the user. The user changes the layout of sub-window in the workspace by oneself while seeing the sample. - It is possible to make not only the recommendation for the arrangement of sub-windows but also the recommendation for excluding the sub-window scarcely used from the workspace or reducing the size.
- As described above, the embedded docking has the following features in the operation. The total size of window (on the dropped side) is not changed before and after docking. The “margin” is displayed on plural sides of the window.
- Herein, a realization method for the embedded docking in an extended form of the embodiment of the event notification unit will be described below.
FIG. 21 shows a system configuration for embedded docking. - Neighboring
sub-window detection unit 600 is added on the side of the manager 218 to the system configuration diagram for the event notification method. Further, the operation of the neighboringwindow detection unit 600, themargin display unit 240, and thedocking unit 230 is different from the event notification method. These will be described below. - The neighboring
window detection unit 600 of the event notification method also detects two overlapping windows in this embodiment, besides the two windows only in the relationship of left (Left) and right (Right) or top (Top) and bottom (Bottom). - A distinction between the extended docking and the embedded docking is that the extended docking is made if the windows do not overlap as shown in
FIG. 22A , and the embedded docking is made if the windows overlap as shown inFIG. 22B . InFIG. 22 , theheavy line 30 drawing the outer shape of window represents the margin. In the extended docking where two windows do not overlap, the neighboring sub-window detection unit is not required, but the process may be performed in the same way as before. - The neighboring
sub-window detection unit 600 decides the sub-window in the docking window to be pushed aside and the position to dock the window anew, if the neighboring window detection unit judges the embedded docking. Conceptually, this operation is performed as shown inFIG. 23 . - The neighboring
sub-window detection unit 600 has the following two steps. - (1) Detecting the sub-window to be pushed aside.
(2) Detecting the pushing aside position in the sub-window to be pushed aside. - Herein, an instance of embedded docking the new window C somewhere in the docking window AB into which two windows A and B are docked is given as shown in
FIG. 23 . - At
step 1, the sub-window to be pushed aside is detected. The center of gravity of A (center of rectangle of window) and the center of gravity of B are calculated. The distances from them to the center of gravity of C are calculated, and the window with closer distance is the window to be docked with the window C. Herein, it is supposed that B is the docking object. - At
step 2, which position in the window B to be pushed aside is decided. Firstly, a window area of B is divided into four sub-areas partitioned by two diagonal lines, as shown inFIG. 24 . Then, the distances from each center of gravity of four sub-areas of B to the center of gravity of C are calculated. The sub-area with the closest distance is the embedding position of C into B. For example, if the center of gravity of C is closer to the center of gravity of the left sub-area of B (example ofFIG. 23C ), C is embedded into the right position of B, and docked. - The
margin display unit 240 displays the margin at the embedding position (to the left in the previous example) of the sub-window (B in the previous example) detected by the neighboringsub-window detection unit 600 and the corresponding position of the window (C in the previous example) being dragged. Herein, the corresponding position unit thesides FIGS. 23A , 23B and 23C. - The
docking unit 230 docks the new window (C in the previous example) in the part of margin displayed by themargin display unit 240. -
FIG. 25 is a diagram showing one example of a processing apparatus for performing the workspace management method according to this embodiment. Theprocessing apparatus 700 according to this embodiment comprises aninput unit 702 including a keyboard, a mouse, a touch panel, an image scanner, and other inputs, an external interface (I/F) 704 that enables the transmission and reception of information to and from an external network, adisplay unit 706, anoutput unit 708 such as a printer, astorage unit 710 that can store various kinds of data, amemory 712 for storing an OS, a program and the application software, and a CPU (Central Processing Unit) 714 that can control the operation of each part in accordance with the program. - The
CPU 714 executes an application stored in thememory 712 to display a window for user interface on thedisplay unit 706 to provide the user with the workspace. The workspace management system of this embodiment is incorporated into the OS and/or application software to enable the docking of the windows as described above. The window displayed on thedisplay unit 706 is manipulated via theinput unit 702 such as the mouse by the user. - Though the preferred embodiments of the invention have been detailed above, the invention is not limited to those specific embodiments, but various variations and modifications may be made without departing from the spirit or scope of the invention as defined in the claims.
- The foregoing description of the embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention defined by the following claims and their equivalents.
Claims (32)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007-146482 | 2007-06-01 | ||
JP2007146482A JP4858313B2 (en) | 2007-06-01 | 2007-06-01 | Workspace management method |
Publications (2)
Publication Number | Publication Date |
---|---|
US20090064035A1 true US20090064035A1 (en) | 2009-03-05 |
US8607157B2 US8607157B2 (en) | 2013-12-10 |
Family
ID=40173139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/265,533 Active 2031-04-22 US8607157B2 (en) | 2007-06-01 | 2008-11-05 | Workspace management method, workspace management system, and computer readable medium |
Country Status (2)
Country | Link |
---|---|
US (1) | US8607157B2 (en) |
JP (1) | JP4858313B2 (en) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090235203A1 (en) * | 2008-03-13 | 2009-09-17 | Panasonic Corporation | Information device and window display method |
US20110252359A1 (en) * | 2010-04-12 | 2011-10-13 | International Business Machines Corporation | User interface manipulation for coherent content presentation |
US20130318449A2 (en) * | 2011-12-07 | 2013-11-28 | Blackberry Limited | Presenting context information in a computing device |
US20140229891A1 (en) * | 2013-02-14 | 2014-08-14 | Citibank, N.A. | Methods and Systems for Managing a Graphical User Interface |
WO2014158225A1 (en) * | 2013-03-29 | 2014-10-02 | Microsoft Corporation | Visual selection and grouping |
US20150067588A1 (en) * | 2013-08-30 | 2015-03-05 | Samsung Electronics Co., Ltd. | Method and apparatus for changing screen in electronic device |
US20150128085A1 (en) * | 2012-07-19 | 2015-05-07 | Tencent Technology (Shenzhen) Company Limited | Method, Device and Computer Storage Medium for Controlling Desktop |
US20150277673A1 (en) * | 2014-03-27 | 2015-10-01 | Xin Ye | Child container control of parent container of a user interface |
US9176612B2 (en) | 2011-12-21 | 2015-11-03 | Ixonos Oyj | Master application for touch screen apparatus |
US20160034241A1 (en) * | 2009-06-18 | 2016-02-04 | Hiperwall, Inc. | Systems, methods, and devices for manipulation of images on tiled displays |
USD749109S1 (en) * | 2013-09-03 | 2016-02-09 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
USD749610S1 (en) * | 2013-09-03 | 2016-02-16 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
GB2532940A (en) * | 2014-12-01 | 2016-06-08 | Advanced Risc Mach Ltd | Method of and apparatus for providing an output surface in a data processing system |
WO2016195785A1 (en) * | 2015-06-01 | 2016-12-08 | Apple Inc. | Linkin multiple windows in a user interface display |
US20170255380A1 (en) * | 2016-03-02 | 2017-09-07 | Kyocera Document Solutions Inc. | Display control device and non-transitory computer-readable storage medium having program recorded thereon |
US20180210739A1 (en) * | 2017-01-20 | 2018-07-26 | International Business Machines Corporation | Cognitive screen sharing with contextual awareness |
US10430020B2 (en) * | 2013-12-20 | 2019-10-01 | Huawei Technologies Co., Ltd. | Method for opening file in folder and terminal |
US20190310763A1 (en) * | 2010-10-01 | 2019-10-10 | Z124 | Multi-screen mobile device that launches applications into a revealed desktop |
WO2022146936A1 (en) * | 2020-12-31 | 2022-07-07 | Sterling Labs Llc | Method of grouping user interfaces in an environment |
US11487398B1 (en) * | 2021-10-13 | 2022-11-01 | Citrix Systems, Inc. | Computing device with window docking and related systems and methods |
US11714520B2 (en) | 2012-09-24 | 2023-08-01 | Samsung Electronics Co., Ltd. | Method and apparatus for providing multi-window in touch device |
US20230305692A1 (en) * | 2022-02-09 | 2023-09-28 | Microsoft Technology Licensing, Llc | Just-in-time snap layouts |
US11853543B2 (en) * | 2020-05-25 | 2023-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Method and apparatus for controlling display of video call interface, storage medium and device |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9400659B2 (en) * | 2009-09-29 | 2016-07-26 | Verizon Patent And Licensing Inc. | Graphical user interface window attachment |
WO2011122402A1 (en) * | 2010-03-31 | 2011-10-06 | 株式会社 日立メディコ | Inspection information display device and method |
KR20140133072A (en) * | 2013-05-09 | 2014-11-19 | 삼성디스플레이 주식회사 | Mobile device and method for operating the same |
JP5785998B2 (en) * | 2013-08-08 | 2015-09-30 | 東芝テック株式会社 | Information processing apparatus and program |
JP6059114B2 (en) * | 2013-08-28 | 2017-01-11 | 京セラ株式会社 | Portable terminal, coupling control program, and coupling control method |
US20160299666A1 (en) * | 2013-11-28 | 2016-10-13 | Sony Corporation | Information processing apparatus, information processing method, and program |
JP6598441B2 (en) * | 2014-09-09 | 2019-10-30 | シャープ株式会社 | Information processing apparatus, information processing method, and program |
JP5908046B1 (en) * | 2014-10-21 | 2016-04-26 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | A method, apparatus, and program for combining and displaying a plurality of areas. |
JP6610138B2 (en) * | 2015-09-30 | 2019-11-27 | 富士通クライアントコンピューティング株式会社 | Display control apparatus, display control method, and display control program |
JP6455467B2 (en) * | 2016-03-03 | 2019-01-23 | 京セラドキュメントソリューションズ株式会社 | Display control device |
JP6693279B2 (en) * | 2016-06-03 | 2020-05-13 | コニカミノルタ株式会社 | Medical information display device, display control method and program |
JP6322272B2 (en) * | 2016-12-22 | 2018-05-09 | シャープ株式会社 | Display device, setting method, computer program, and recording medium recording the same |
JP2019101474A (en) * | 2017-11-28 | 2019-06-24 | 富士通株式会社 | Grouping control method, grouping control program, information processing apparatus and information sharing system |
CN110347315A (en) * | 2018-04-08 | 2019-10-18 | 中兴通讯股份有限公司 | A kind of data processing method, terminal and storage medium |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5712995A (en) * | 1995-09-20 | 1998-01-27 | Galileo Frames, Inc. | Non-overlapping tiling apparatus and method for multiple window displays |
US5734380A (en) * | 1996-09-27 | 1998-03-31 | Adams; James S. | Method for controlling the presentation of displays in a multi-window computer environment |
US5758111A (en) * | 1994-07-20 | 1998-05-26 | Fujitsu Limited | Data processing apparatus for executing data processing using windows displayed on a display apparatus |
US5796403A (en) * | 1996-09-27 | 1998-08-18 | Adams; James S. | Method of display categorization in a multi-window display |
US5801699A (en) * | 1996-01-26 | 1998-09-01 | International Business Machines Corporation | Icon aggregation on a graphical user interface |
US5808610A (en) * | 1996-08-28 | 1998-09-15 | Macromedia, Inc. | Method and system of docking panels |
US5819055A (en) * | 1994-12-13 | 1998-10-06 | Microsoft Corporation | Method and apparatus for docking re-sizeable interface boxes |
US5873106A (en) * | 1995-09-18 | 1999-02-16 | Oracle Corporation | Geometry management for displaying objects on a computer |
US5917483A (en) * | 1995-09-18 | 1999-06-29 | Oracle Corporation | Advanced windows management for a computer system |
US5977973A (en) * | 1997-05-14 | 1999-11-02 | Microsoft Corporation | Window linking |
US6008809A (en) * | 1997-09-22 | 1999-12-28 | International Business Machines Corporation | Apparatus and method for viewing multiple windows within a dynamic window |
US20020122066A1 (en) * | 1999-03-25 | 2002-09-05 | Cary Lee Bates | Window scroll-bar |
US6550057B1 (en) * | 1999-08-31 | 2003-04-15 | Accenture Llp | Piecemeal retrieval in an information services patterns environment |
US20030107604A1 (en) * | 2001-12-12 | 2003-06-12 | Bas Ording | Method and system for automatic window resizing in a graphical user interface |
US20030152270A1 (en) * | 2000-03-16 | 2003-08-14 | Hisashi Saiga | Image encoding device, decoding device and encoding method, decoding method, and recorded program on which programs of the methods are recorded |
US6771292B2 (en) * | 2001-03-29 | 2004-08-03 | International Business Machines Corporation | Method and system for providing feedback concerning a content pane to be docked in a host window |
US20050088452A1 (en) * | 2003-10-23 | 2005-04-28 | Scott Hanggie | Dynamic window anatomy |
US20050125742A1 (en) * | 2003-12-09 | 2005-06-09 | International Business Machines Corporation | Non-overlapping graphical user interface workspace |
US20060218499A1 (en) * | 2005-03-22 | 2006-09-28 | Microsoft Corporation | Determining and displaying a list of most commonly used items |
US20070180448A1 (en) * | 2006-01-24 | 2007-08-02 | Citrix Systems, Inc. | Methods and systems for providing access to a computing environment provided by a virtual machine executing in a hypervisor executing in a terminal services session |
US7289964B1 (en) * | 1999-08-31 | 2007-10-30 | Accenture Llp | System and method for transaction services patterns in a netcentric environment |
US20080034317A1 (en) * | 2006-08-04 | 2008-02-07 | Assana Fard | User Interface Spaces |
US7434177B1 (en) * | 1999-12-20 | 2008-10-07 | Apple Inc. | User interface for providing consolidation and access |
US7839419B2 (en) * | 2003-10-23 | 2010-11-23 | Microsoft Corporation | Compositing desktop window manager |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6476114A (en) | 1987-09-18 | 1989-03-22 | Hitachi Ltd | Screen area displaying control system |
JP2715421B2 (en) | 1987-11-27 | 1998-02-18 | 富士ゼロックス株式会社 | Electronic Document Management System for Workstation |
JPH0228716A (en) | 1988-07-18 | 1990-01-30 | Matsushita Electric Ind Co Ltd | Multi-window device |
JP3942305B2 (en) * | 1999-04-12 | 2007-07-11 | 富士通株式会社 | Window layout management system for multiple display configurations |
JP2002215683A (en) * | 2001-01-22 | 2002-08-02 | Amu:Kk | Cad software |
JP2003241359A (en) * | 2001-12-13 | 2003-08-27 | Dainippon Screen Mfg Co Ltd | Layout processor, layout processing method, recording medium and program |
JP4430908B2 (en) * | 2003-09-04 | 2010-03-10 | 株式会社リコー | Multi-window display control device and computer system using the same |
-
2007
- 2007-06-01 JP JP2007146482A patent/JP4858313B2/en active Active
-
2008
- 2008-11-05 US US12/265,533 patent/US8607157B2/en active Active
Patent Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758111A (en) * | 1994-07-20 | 1998-05-26 | Fujitsu Limited | Data processing apparatus for executing data processing using windows displayed on a display apparatus |
US5819055A (en) * | 1994-12-13 | 1998-10-06 | Microsoft Corporation | Method and apparatus for docking re-sizeable interface boxes |
US5873106A (en) * | 1995-09-18 | 1999-02-16 | Oracle Corporation | Geometry management for displaying objects on a computer |
US5917483A (en) * | 1995-09-18 | 1999-06-29 | Oracle Corporation | Advanced windows management for a computer system |
US5712995A (en) * | 1995-09-20 | 1998-01-27 | Galileo Frames, Inc. | Non-overlapping tiling apparatus and method for multiple window displays |
US5801699A (en) * | 1996-01-26 | 1998-09-01 | International Business Machines Corporation | Icon aggregation on a graphical user interface |
US5808610A (en) * | 1996-08-28 | 1998-09-15 | Macromedia, Inc. | Method and system of docking panels |
US5796403A (en) * | 1996-09-27 | 1998-08-18 | Adams; James S. | Method of display categorization in a multi-window display |
US5734380A (en) * | 1996-09-27 | 1998-03-31 | Adams; James S. | Method for controlling the presentation of displays in a multi-window computer environment |
US5977973A (en) * | 1997-05-14 | 1999-11-02 | Microsoft Corporation | Window linking |
US6008809A (en) * | 1997-09-22 | 1999-12-28 | International Business Machines Corporation | Apparatus and method for viewing multiple windows within a dynamic window |
US6590594B2 (en) * | 1999-03-25 | 2003-07-08 | International Business Machines Corporation | Window scroll-bar |
US20020122066A1 (en) * | 1999-03-25 | 2002-09-05 | Cary Lee Bates | Window scroll-bar |
US6550057B1 (en) * | 1999-08-31 | 2003-04-15 | Accenture Llp | Piecemeal retrieval in an information services patterns environment |
US7289964B1 (en) * | 1999-08-31 | 2007-10-30 | Accenture Llp | System and method for transaction services patterns in a netcentric environment |
US7434177B1 (en) * | 1999-12-20 | 2008-10-07 | Apple Inc. | User interface for providing consolidation and access |
US20030152270A1 (en) * | 2000-03-16 | 2003-08-14 | Hisashi Saiga | Image encoding device, decoding device and encoding method, decoding method, and recorded program on which programs of the methods are recorded |
US6771292B2 (en) * | 2001-03-29 | 2004-08-03 | International Business Machines Corporation | Method and system for providing feedback concerning a content pane to be docked in a host window |
US20030107604A1 (en) * | 2001-12-12 | 2003-06-12 | Bas Ording | Method and system for automatic window resizing in a graphical user interface |
US20050088452A1 (en) * | 2003-10-23 | 2005-04-28 | Scott Hanggie | Dynamic window anatomy |
US7839419B2 (en) * | 2003-10-23 | 2010-11-23 | Microsoft Corporation | Compositing desktop window manager |
US20050125742A1 (en) * | 2003-12-09 | 2005-06-09 | International Business Machines Corporation | Non-overlapping graphical user interface workspace |
US20060218499A1 (en) * | 2005-03-22 | 2006-09-28 | Microsoft Corporation | Determining and displaying a list of most commonly used items |
US7543244B2 (en) * | 2005-03-22 | 2009-06-02 | Microsoft Corporation | Determining and displaying a list of most commonly used items |
US20070180448A1 (en) * | 2006-01-24 | 2007-08-02 | Citrix Systems, Inc. | Methods and systems for providing access to a computing environment provided by a virtual machine executing in a hypervisor executing in a terminal services session |
US20080034317A1 (en) * | 2006-08-04 | 2008-02-07 | Assana Fard | User Interface Spaces |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8627229B2 (en) * | 2008-03-13 | 2014-01-07 | Panasonic Corporation | Information device and window display method |
US20090235203A1 (en) * | 2008-03-13 | 2009-09-17 | Panasonic Corporation | Information device and window display method |
US9606764B2 (en) * | 2009-06-18 | 2017-03-28 | Hiperwall, Inc. | Systems, methods, and devices for manipulation of images on tiled displays |
US20160034241A1 (en) * | 2009-06-18 | 2016-02-04 | Hiperwall, Inc. | Systems, methods, and devices for manipulation of images on tiled displays |
US10037184B2 (en) | 2009-06-18 | 2018-07-31 | Hiperwall, Inc. | Systems, methods, and devices for manipulation of images on tiled displays |
US8667416B2 (en) * | 2010-04-12 | 2014-03-04 | International Business Machines Corporation | User interface manipulation for coherent content presentation |
US20110252359A1 (en) * | 2010-04-12 | 2011-10-13 | International Business Machines Corporation | User interface manipulation for coherent content presentation |
US20190310763A1 (en) * | 2010-10-01 | 2019-10-10 | Z124 | Multi-screen mobile device that launches applications into a revealed desktop |
US20130318449A2 (en) * | 2011-12-07 | 2013-11-28 | Blackberry Limited | Presenting context information in a computing device |
US9164649B2 (en) * | 2011-12-07 | 2015-10-20 | Blackberry Limited | Presenting context information in a computing device |
US9176612B2 (en) | 2011-12-21 | 2015-11-03 | Ixonos Oyj | Master application for touch screen apparatus |
US20150128085A1 (en) * | 2012-07-19 | 2015-05-07 | Tencent Technology (Shenzhen) Company Limited | Method, Device and Computer Storage Medium for Controlling Desktop |
US11714520B2 (en) | 2012-09-24 | 2023-08-01 | Samsung Electronics Co., Ltd. | Method and apparatus for providing multi-window in touch device |
US20150177942A1 (en) * | 2013-02-14 | 2015-06-25 | Citibank, N.A. | Methods and Systems for Managing a Graphical User Interface |
US8984439B2 (en) * | 2013-02-14 | 2015-03-17 | Citibank, N.A. | Methods and systems for managing a graphical user interface |
US20140229891A1 (en) * | 2013-02-14 | 2014-08-14 | Citibank, N.A. | Methods and Systems for Managing a Graphical User Interface |
US9477385B2 (en) * | 2013-02-14 | 2016-10-25 | Citibank, N.A. | Methods and systems for managing a graphical user interface |
WO2014158225A1 (en) * | 2013-03-29 | 2014-10-02 | Microsoft Corporation | Visual selection and grouping |
US20140298219A1 (en) * | 2013-03-29 | 2014-10-02 | Microsoft Corporation | Visual Selection and Grouping |
US11687214B2 (en) | 2013-08-30 | 2023-06-27 | Samsung Electronics Co., Ltd. | Method and apparatus for changing screen in electronic device |
US11137881B2 (en) | 2013-08-30 | 2021-10-05 | Samsung Electronics Co., Ltd. | Method and apparatus for changing screen in electronic device |
US20150067588A1 (en) * | 2013-08-30 | 2015-03-05 | Samsung Electronics Co., Ltd. | Method and apparatus for changing screen in electronic device |
USD749610S1 (en) * | 2013-09-03 | 2016-02-16 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
USD749109S1 (en) * | 2013-09-03 | 2016-02-09 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
US10430020B2 (en) * | 2013-12-20 | 2019-10-01 | Huawei Technologies Co., Ltd. | Method for opening file in folder and terminal |
US20150277673A1 (en) * | 2014-03-27 | 2015-10-01 | Xin Ye | Child container control of parent container of a user interface |
US9933922B2 (en) * | 2014-03-27 | 2018-04-03 | Sybase, Inc. | Child container control of parent container of a user interface |
US10649795B2 (en) | 2014-12-01 | 2020-05-12 | Arm Limited | Method of and apparatus for providing an output surface in a data processing system |
GB2532940A (en) * | 2014-12-01 | 2016-06-08 | Advanced Risc Mach Ltd | Method of and apparatus for providing an output surface in a data processing system |
GB2532940B (en) * | 2014-12-01 | 2021-12-15 | Advanced Risc Mach Ltd | Method of and apparatus for providing an output surface in a data processing system |
WO2016195785A1 (en) * | 2015-06-01 | 2016-12-08 | Apple Inc. | Linkin multiple windows in a user interface display |
US10558344B2 (en) | 2015-06-01 | 2020-02-11 | Apple Inc. | Linking multiple windows in a user interface display |
US10558356B2 (en) * | 2016-03-02 | 2020-02-11 | Kyocera Document Solutions Inc. | Display control device and non-transitory computer-readable storage medium having program recorded thereon |
US20170255380A1 (en) * | 2016-03-02 | 2017-09-07 | Kyocera Document Solutions Inc. | Display control device and non-transitory computer-readable storage medium having program recorded thereon |
US10678566B2 (en) * | 2017-01-20 | 2020-06-09 | International Business Machines Corporation | Cognitive screen sharing with contextual awareness |
US20180210739A1 (en) * | 2017-01-20 | 2018-07-26 | International Business Machines Corporation | Cognitive screen sharing with contextual awareness |
US11853543B2 (en) * | 2020-05-25 | 2023-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Method and apparatus for controlling display of video call interface, storage medium and device |
WO2022146936A1 (en) * | 2020-12-31 | 2022-07-07 | Sterling Labs Llc | Method of grouping user interfaces in an environment |
US11487398B1 (en) * | 2021-10-13 | 2022-11-01 | Citrix Systems, Inc. | Computing device with window docking and related systems and methods |
US20230305692A1 (en) * | 2022-02-09 | 2023-09-28 | Microsoft Technology Licensing, Llc | Just-in-time snap layouts |
US11868160B2 (en) * | 2022-02-09 | 2024-01-09 | Microsoft Technology Licensing, Llc | Just-in-time snap layouts |
Also Published As
Publication number | Publication date |
---|---|
JP2008299689A (en) | 2008-12-11 |
US8607157B2 (en) | 2013-12-10 |
JP4858313B2 (en) | 2012-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8607157B2 (en) | Workspace management method, workspace management system, and computer readable medium | |
KR20100056594A (en) | Workspace management method, workspace management system, and computer readable medium | |
CN101739196B (en) | Working space management method and working space management system | |
KR101814309B1 (en) | Graphical user interface for backup interface | |
US20040056903A1 (en) | Directory management program, object display program, directory management method, and directory management apparatus | |
US20100192066A1 (en) | Method and system for a graphical user interface | |
US5594847A (en) | System and method for selecting free form objects associated with a selection region displayed by a computer | |
US20100146435A1 (en) | Method and system for navigating through parts of a document | |
US9196227B2 (en) | Selecting techniques for enhancing visual accessibility based on health of display | |
WO2008031740A2 (en) | User driven computerized selection, categorization and layout of live content components | |
EP2437184A1 (en) | Host apparatus and method of displaying content by the same | |
JP5167850B2 (en) | GUI system, GUI generation method, program, and recording medium | |
JP5634140B2 (en) | Information processing apparatus, display method, and program | |
JP5358945B2 (en) | Information processing apparatus, information processing system, and information processing program | |
JP2009187308A (en) | Display controller, display control method, program, and storage medium | |
JP5039312B2 (en) | Program, method and apparatus for controlling multiple pointers | |
AU2008243141B2 (en) | Workspace management method, workspace management system, and workspace management program | |
JP2013114426A (en) | Information communication device | |
JP6624972B2 (en) | Method, apparatus, and program for controlling display | |
JP2015090684A (en) | Information processing device, information processing method, and program | |
JP2003196283A (en) | Image forming program and image forming device | |
KR102530285B1 (en) | Method of displaying content preview screen and apparatus thereof | |
JP2000284884A (en) | Screen operation device | |
US11487406B1 (en) | Windowing container | |
Pribeanu et al. | A methodological approach to task-based design of user interfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUJI XEROX CO., LTD., JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHIBATA, HIROHITO;MATSUNAGA, YOSHIFUMI;KOMURA, AKINORI;REEL/FRAME:021791/0618 Effective date: 20081031 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
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 |
|
AS | Assignment |
Owner name: FUJIFILM BUSINESS INNOVATION CORP., JAPAN Free format text: CHANGE OF NAME;ASSIGNOR:FUJI XEROX CO., LTD.;REEL/FRAME:058287/0056 Effective date: 20210401 |