up
EP 0463250:
Data processing apparatus user interface and data processing apparatus with such an interface.
- EC Classification:
- G06F3/033A1 ; G06F9/46R2
- IPC Classification:
- G06F3/033 ; G06F9/46
- Priority Number(s):
- EP19900307114 19900628
- Application Number:
- EP19900307114 19900628
- Requested Patent:
- [_] EP0463250, B1
- Applicant(s)::
- IBM (US)
- Inventor(s):
- KANE JACQUELINE (IE); DOYLE MARY THERESA (IE)
- Publication date:
- 1992-01-02
- Patent Number:
- EP0463250
- Invention:
- Data processing apparatus user interface and data processing apparatus with such an interface.
Description
This invention relates to the field of data processing. More
particularly, this invention relates to the field of user interfaces
for data processing apparatus.
The user interface of a piece of data processing apparatus is a term
that is used to describe the way that apparatus interacts with its
user. A particularly important part of a user interface is the way the
apparatus displays information the user of the device. Considerable
attention is directed at this aspect of user interfaces, and one
approach that has been successfully adopted is the so called
'windowing interface'.
In a windowing system such as that used in the Operating System/2
computer program produced by International Business Machines
Corporation (Operating System/2 is a trade mark of International
Business Machines Corporation), the display is divided into a number
of rectangular areas each displaying a piece of text or graphics as
appropriate. The windows can be compared to pieces of paper on a desk
top, with each window capable of overlapping and obscuring windows
having a lower priority in the display. More recent windows systems
also provide multiprocessing facilities with which several application
programs may be concurrently active. A window may be dedicated to a
particular application such as word processing or spreadsheet or
alternatively to different threads within a single application, e.g. a
window may be allocated to each different part of a word processing
application such as pagination, printing, spell checking and the like
- different activities on different documents can be controlled
concurrently through each window.
One feature of these windowing systems is the provision of so called
dialog boxes using which data relating to a preceding action can be
entered. An example of this would be if a window displayed a list of
names and telephone numbers, a possible action for selection would be
to edit the details of an entry. The user would highlight the entry
concerned in the list names and then select the action of edit from
the list of actions. Having done this the system would display a
dialog box possibly overlapping a portion of the window containing the
names list. The dialog box would display the full details of that
entry, and then by moving around and over typing portions the entry
can be edited.
Dialog boxes in existing systems fall into two categories. The is
first is modeless dialog boxes, which are such that when they are
produced they can be completed at any time, and any other action can
be taken in another window whilst the dialog box is still displayed.
The second is modal dialog boxes, which come in two forms. System
modal dialog boxes are such that when produced no other action may be
made by the user until that system modal dialog box has been completed
and removed. Application modal dialog boxes are such that when
produced no action may be made by the user within the application to
which that dialog box belongs until the dialog box has been completed
and removed.
The present invention is concerned with the problem of producing data
processing apparatus with a user interface that is easier to
understand and work with.
Viewed from one aspect the invention provides a method of manipulating
data stored by a data processing apparatus having a windowing user
interface comprising the steps of:
detecting a user input requesting display for manipulation of data
within a logically defined division of an application program
executing on said data processing apparatus,
creating a dialog window displaying said data for manipulation,
storing mode data indicating said dialog window within said logically
defined division is being displayed, and
upon a subsequent request to manipulate data within a given logically
defined division, rejecting said subsequent request if said mode data
indicates a dialog window for said logically defined division is being
displayed and said subsequent request is determined to be of a type
capable of conflicting with manipulation being made using said dialog
window being displayed.
The invention both recognises and solves the problem that whilst
ensuring data integrity within an application is maintained it is
important not to excessively restrict the different actions a user may
wish to undertake with the data processing apparatus.
The modeless dialog boxes allow the user complete freedom to undertake
other actions with the system, but suffer from the disadvantage of not
protecting the user from taking actions which disrupt data integrity,
e.g the user can have open a dialog box for editing an entry in data
database, whilst at the same deleting that entry in the database using
another part of the application.
The modal dialog boxes, either application or system modal, do protect
the user from producing integrity problems, but suffer from the
disadvantage of restricting the users freedom more than is truely
necessary.
The invention provides a mechanism that is responsive to whether or
not a dialog box within a part of an application is already open and
whether the further request is capable of creating a data integrity
problem with that change being made in the dialog box already open.
Thus, data integrity is protected whilst the restriction of actions
possible is held to only a part of the application and also to only
requests that could cause data integrity problems.
An example would be a database application for manipulating a list of
peoples' telephone numbers or a list of books. The type of actions you
may wish to take against each of these lists would be edit an item,
add an item, delete an item or sort the list. The list of users and
books are quite separate and so would be defined to be within
different logically defined divisions of the program - changes to
either list wouldn't effect the integrity of the other.
Within a given list if it is decided to edit the details of a
particular user then the user is selected from the list of users and
the edit action selected from the list of actions thereby triggering
production of an edit dialog box for that user. Once that dialog box
was open then the other actions which pose a threat to data integrity
would be blocked until the editing had been finished and the edit
dialog box removed.
A preferred feature of the invention is that said mode data of said
dialog window stores an identifier to said logically defined division,
said logically defined division identifier being used for directing
movement of a cursor between said dialog window and said logically
defined division to switch activity therebetween. This feature allows
the user to move between the dialog window and other parts of the
logically defined division thereby giving a clear visual indication of
the link between them. This is particularly useful when more than one
dialog box is displayed, each relating to a different logically
defined division of the application. In such circumstance each
logically defined division could have a number of dialog boxes
associated with it each being independently movable. The display could
become jumbled and the user may become confused as to which elements
of the display relate to one another. By providing a mechanism for
rapidly moving focus (i.e. cursor and active status) by preferably
using repeated operation of a single key on a keyboard the link
between the items is made clear and rapid movement between them is
possible.
In preferred embodiments of the invention if said subsequent request
does not conflict then a subsequent dialog window is created for said
logically defined division and any further subsequent request is
tested for conflict with all manipulations being made using dialog
windows within that logically defined division. This feature allows
more than one dialog box to be created within a logically division to
aid the flexibility of the system and yet still protects data
integrity. An example would be if the edit telephone number list
dialog window included an option of displaying STD (national dialling)
codes within another dialog window. This option would be allowed to be
activated as no conflict in integrity could arise.
In preferred embodiments of the invention said mode data for each
dialog box provides an identifier to one or more other dialog windows
of said logically defined division, said dialog window identifier
being used for directing movement of a cursor between dialog windows
within said logically defined division to switch activity
therebetween. The dialog windows within a logically defined division
may be thought of as forming a chain of dialog windows between which
the user can move to manipulate data within that logically defined
division. The provision of this pointer enables the application to
move between dialog windows in response to a single command, such as
use of the cursor keys. The movement between dialog boxes can be
considered as equivalent to movement between links in a chain.
A further preferred feature of the invention is that said logically
defined division stores an identifier to a main application action
menu, said main application menu identifier being used for directing
movement of a cursor between said logically defined division and said
main application action menu to switch activity therebetween. In this
way the complete chain of all dialog windows for a given logically
defined division, the root action menu for the given logically defined
division and the main application action menu can be quickly moved
between and a clear visual indication of their hierarchical
relationship given.
Viewed from a second aspect the invention provides a data processing
apparatus having a display, a windowing user interface and dialog box
control logic for:
detecting a user input from a user input device requesting display for
manipulation of data within a logically defined division of an
application program executing on said data processing apparatus,
creating a dialog window displaying said data for manipulation,
storing mode data indicating said dialog window within said logically
defined division is being displayed, and
upon a subsequent request to manipulate data within a given logically
defined division, rejecting said subsequent request if said mode data
indicates a dialog window for said logically defined division is being
displayed and said subsequent request is determined to be of a type
capable of conflicting with manipulation being made using said dialog
window being displayed.
An embodiment of the invention will now be described, by way of
example only, with reference to the accompanying drawings in which:
Figure 1 illustrates a windowing user interface having a plurality of
logically defined divisions.
Figure 2 illustrates the selection of an action within one logically
defined division.
Figure 3 illustrates a dialog box within one logically defined
division.
Figure 4 illustrates a second level dialog box.
Figure 5 is a flow diagram illustrating the operation of an embodiment
of the invention.
Figure 6 is a schematic illustration of a data processing apparatus
using the present invention.
Figure 7 is a schematic illustration of a data structure used in
controlling the interaction of dialog boxes in one embodiment of the
invention.
Figure 1 illustrates a database application having a windowing user
interface and a number of logically defined divisions within the
application program. The program provides access to a list of
telephone numbers and peoples names via window 2 and to a list of
books via window 4. The telephone list and the book list are separate
logically defined divisions within the program since changes in one do
not effect the data integrity of the other. In order to carry out a
function on one of the items in the telephone list that item is
selected by manipulation of the cursor. The selected item 6 is
highlighted within the list.
Figure 2 illustrates the next step in the manipulation of the data. A
pull down menu 8 from the root action bar menu 10 is selected. The
user then highlights a particular action 12 he wishes to perform on
the selected item 6.
Figure 3 illustrates the response to this action selection. The pulled
down menu is no longer displayed and an edit telephone list dialog box
14 is created. This edit telephone list dialog box displays details of
the selected item 6 which may be edited by the user. When the user has
finished with editing the changes can either be saved or discarded
using the "Save" or "Cancel" buttons within the dialog box 14. If
during the editing of the telephone list the user wishes to refer to a
list of STD telephone codes then a second level dialog box 16 can be
selected by activating the "STD" button.
Figure 4 illustrates the display with both first and second level
dialog boxes. It will be seen that the display is now becoming
complicated. This illustrates why there is a need to protect the user
from making changes which could interfere with data integrity. With a
large number of different windows being displayed it would be easy for
the user to become confused as to which window related to which
particular action he wished to make. In order to help the user
recognise the link between the various windows a facility is provided
for moving between the various portions of a logically defined
division. By pressing a particular function key the system moves the
focus (i.e. changes which window is active) to the main application
menu bar of the logically defined division that is currently active.
By manipulating the cursor keys the user may then successively bring
the focus to the various other elements within the logically defined
division.
The system menu 18 is available on each window and allows the
selection of actions which apply to the form of the window itself
rather than the function it is performing. When the cursor is moved
between the elements within a logically defined division using the
function key and cursor keys (chaining process) it is placed on top of
the system menu in each window since all windows have a system menu
and it is often the system menu functions that are desired to be used.
The system menu is initially displayed in the form of a symbol which
must be selected to produce the display of the various actions within
the system menu.
Figure 5 is a flow diagram illustrating the operation of an
embodiment. At step 20 the system receives a user input requesting
manipulation, e.g. the user has manipulated the cursor to pick a
selected item 6 and a selected action 8. At step 22 the system creates
the first level dialog box. At step 24 the system stores the mode data
indicating to that dialog box which logical division of the
application it belongs to and also indicating to the logical division
that a dialog box has been created within it. At step 26 the system
receives another user input requesting a further manipulation, e.g.
STD code list selection. At step 28 the system reads the stored mode
data to determine where a dialog box has already been created for that
logical division. At step 30 the system determines whether the
subsequent request received at step 26 is one that conflicts with the
existing dialog box created at step 22. This test could be performed
by comparing the subsequent request with a list of requests that are
known to be capable of producing conflicts with the dialog box created
at step 22.
If the result for steps 28 and 30 are both YES then at step 32 the
request is rejected. If either of the steps 28 and 30 produce a result
of NO then at step 34 the system creates the second level dialog box
and at step 36 the system stores the mode data indicating the
relationship between the first and second level dialog boxes for use
when chaining the dialog boxes together. The process then terminates.
Figure 6 schematically illustrates a data processing apparatus 42
embodying the invention. The data processing apparatus 42 comprises a
data processing unit 38 and a display 40. The data processing unit 38
includes a central processor unit 44, a dialog box control program
storage area 46 and an application program storage area 48. The
central processor unit 44 acting under control of the dialog box
control program stored in dialog box control program storage 46 acts
as logic for carrying out the functions with which the present
invention is concerned. The central processor unit 44 acting under the
control of the application program stored within the application
program storage area 48 acts as logic to provide the data base
application program described earlier.
It will be appreciated that whilst the present invention has been
described in terms of a general purpose computer acting under the
control of a computer program it would be possible (although in
practice difficult and expensive) to embody the invention in special
purpose hardware. Similarly, it will be appreciated that the invention
is not restricted to the use of any particular computer language.
Figure 7 illustrates a data structure that can be used within the
Presentation Manager program discussed earlier to store the mode data
indicating the connection between the various items within the
logically defined division. Within the Presentation Manager
environment the application system records data indicating what
logically defined division of the program is currently active, i.e.
stores the window handle of the currently active logical division.
When focus is changed between logically defined divisions the
application updates this store. This is illustrated as store 50. The
Presentation Manager environment also provides a facility for use by
dialog boxes and windows for storing pointers to data structures
designated offset QWL_USER. The central processor unit 44 acting under
the control of the dialog box control program may store data in and
access data from these data structures using the WinSetWindowULong and
WinQueryWindowULong commands within the Presentation Manager
environment. The dialog boxes each store within this storage 52 data
pointing to the previous item within the logical division chain and
the following item within the logical division chain. In this way
second and lower level dialog box point to the previous and next
dialog box within the chain and the first level dialog box points to
the route action menu 10 for that logically defined division and the
next (second level) dialog box within the chain. It will be
appreciated that the above is just one example of a storage structure
that may be used to control the relationship between the various items
within the logically defined division.
_________________________________________________________________
Data supplied from the esp@cenet database - l2
Claims
1. A method of manipulating data stored by a data processing apparatus
having a windowing user interface comprising the steps of:
detecting a user input requesting display for manipulation of data
within a logically defined division of an application program
executing on said data processing apparatus,
creating a dialog window displaying said data for manipulation,
storing mode data indicating said dialog window within said logically
defined division is being displayed, and
upon a subsequent request to manipulate data within a given logically
defined division, rejecting said subsequent request if said mode data
indicates a dialog window for said logically defined division is being
displayed and said subsequent request is determined to be of a type
capable of conflicting with manipulation being made using said dialog
window being displayed.
2. A method as claimed in claim 1, wherein said mode data of said
dialog window stores an identifier to said logically defined division,
said logically defined division identifier being used for directing
movement of a cursor between said dialog window and said logically
defined division to switch activity therebetween.
3. A method as claimed in any of claims 1 or 2, wherein if said
subsequent request does not conflict then a subsequent dialog window
is created for said logically defined division and any further
subsequent request is tested for conflict with all manipulations being
made using dialog windows within that logically defined division.
4. A method as claimed in claim 3, wherein said mode data for each
dialog box provides an identifier to one or more other dialog windows
of said logically defined division, said dialog window identifier
being used for directing movement of a cursor between dialog windows
within said logically defined division to switch activity
therebetween.
5. A method as claimed in any of claims 2 to 5, wherein said logically
defined division stores an identifier to a main application action
menu, said main application menu identifier being used for directing
movement of a cursor between said logically defined division and said
main application action menu to switch activity therebetween.
6. A method as claimed in any of claims 2 to 5, wherein said movement
of said cursor is affected by repeated operation of a key on a
keyboard.
7. A data processing apparatus having a display, a windowing user
interface and dialog box control logic for:
detecting a user input from a user input device requesting display for
manipulation of data within a logically defined division of an
application program executing on said data processing apparatus,
creating a dialog window displaying said data for manipulation,
storing mode data indicating said dialog window within said logically
defined division is being displayed, and
upon a subsequent request to manipulate data within a given logically
defined division, rejecting said subsequent request if said mode data
indicates a dialog window for said logically defined division is being
displayed and said subsequent request is determined to of a type
capable of conflicting with manipulation being made using said dialog
window being displayed.
8. A data processing apparatus as claimed in claim 7, wherein said
mode data of said dialog window stores an identifier to said logically
defined division, said logically defined division identifier being
used for directing movement of a cursor between said dialog window and
said logically defined division to switch activity therebetween.
9. A data processing apparatus as claimed in any of claims 7 or 8,
wherein if said subsequent request does not conflict then a subsequent
dialog window is created for said logically defined division and any
further subsequent request is tested for conflict with all
manipulations being made using dialog windows within that logically
defined division.
10. A data processing apparatus as claimed in claim 9, wherein said
mode data for each dialog box provides an identifier to one or more
other dialog windows of said logically defined division, said dialog
window identifier being used for directing movement of a cursor
between dialog windows within said logically defined division to
switch activity therebetween.
11. A data processing apparatus as claimed in any of claims 8 to 10,
wherein said logically defined division stores an identifier to a main
application action menu, said main application menu identifier being
used for directing movement of a cursor between said logically defined
division and said main application action menu to switch activity
therebetween.
12. A data processing apparatus as claimed in any of claims 8 to 11,
wherein said movement of said cursor is affected by repeated operation
of a key on a keyboard.
_________________________________________________________________
Data supplied from the esp@cenet database - l2
Claims as Graphics
OCR result
Europäisches Patentamt
_ _ European patent ofice
Ofice europeen des brevets _ publication number. O _63 250 B 1
_ EUROPEA_ PATE_T SPECIFICATIO_
g Date or publ_icat_ion or patent spec_ircat_ion. _ lnt. cl.'. _06F 3I033, G06F 9146
O_.02.95 Bulletin 95I05
_ Application number. 9o3ol__,.o
_ Date or riling. 28.o6.ao
_ Data Processing aPParatus user interface and data Processing aPParatus with such an interface.
g Date of publication of application. _ lnventor. Kane, Jacqueline
02.O_.92 Bulletin 92IO_ _8 Dromawling Road,
Beaumont
Dublin 9 (IE)
g Publication of the grant of the patent = ,ln,Ve,ntOf _ DwOYle,1,MäY ThefeSä
O_.02.95 Bulletin 95I05 Shänäkt_ln OO OUftl
Co. Dublin (IE)
_ Designated Contracting States.
DE FR GB _ Representative. Moss, Robert Douglas
IBM United Kingdom Limited
_ lntellectual Property Department
Ref_fenCeS Cited _ HufSley Päfk
EuPS_AA_ O, 3g_622 836g6g Winchester Hampshire S02_ 2Jhl (GB)
US__A__ 8,02 02_
_ ProPrietor. International Business Machines
Corporation
Old Orchard Road
Armonk, hl.Y. _050, (US)
_
_
__
_
__
_ Note. w.ith.in n.ine months from the publ.icat.ion of the ment.ion of the grant of the European patent any
_ penon may give notice to the European patent orrice or opposition to the European patent gra'nte_.
_ Notice of opposition shall be fled in a written reasoned statement. It shall not be deemed to have been
W fled until the opposition fee has been paid (Art. 99(1) European patent convention).
Jouve, 18, rue Saint-Denis, 75001 PARIS
1 EP O _63 250 B_ 2
Description come in two forms. System modal dialog boxes are
such that when produced no other action may be
DA_A PROCESSING APPARATUS USER made by the user until that system modal dialog box
INTERFACE has been completed and removed. Application modal
_ dialog boxes are such that when produced no action
This invention relates to the field ofdata process- may be made by the user within the application to
ing. More particularly, this invention relates to the which that dialog box belongs until the dialog box has
field ofuser interfaces fordata processing apparatus. been completed and removed.
The user interface of a piece of data processing The present invention is concerned with the prob-
apparatus is a term that is used to describe the way 1o lem of producing data processing apparatus with a
that apparatus interacts with its user. A particularly user interface that is easier to understand and work
important part of a user interface is the way the ap- with.
paratus displays information the user of the device. Viewed from one aspect the invention provides a
Considerable attention is directed at this aspect of method of manipulating data stored by a data proc-
user interfaces, and one approach that has been suc- 1_ essing apparatus having a windowing user interface,
cessfully adopted is the so called 'windowing inter- said method comprising the steps of.
face'. detecting a user input requesting display for
In a windowing system such as that used in the manipulation ofdata within a logically defined division
Operating Systeml2 computer program produced by ofan application program being executed by said data
International Business Machines Corporation (Oper- 2o processing apparatus,
ating Systeml2 is a trade mark of lnternational Busi- creating a dialog window displaying said data
ness Machines Corporation), the display is divided for manipulation,
into a number of rectangular areas each displaying a storing mode data which indicates that said di-
piece of text or graphics as appropriate. The windows alog window within said logically defined division is
can be compared to pieces of paper on a desk top, 2_ being displayed, and
with each window capable ofoverlapping and obscur- upon a subsequent request to manipulate data
ing windows having a lower priority in the display. within a given logically defined division, rejecting said
More recent windows systems also provide multipro- subsequent request if said mode data indicates that
cessing facilities with which several application pro- a dialog window for said logically defined division is
grams may be concurrently active. Awindow may be 3o being displayed and said subsequent request is de-
dedicated to a particular application such as word termined to be of a type which may conflict with ma-
processing orspreadsheet oralternatively to different nipulation being made using said dialog window being
threads within a single application, e.g. a window may displayed.
be allocated to each different part of a word process- The invention both recognises and solves the
ing application such as pagination, printing, spell 3_ problem that whilst ensuring data integrity within an
checking and the like - different activities on different application is maintained it is important not to exces-
documents can be controlled concurrently through sively restrict the different actions a user may wish to
each window. undertake with the data processing apparatus.
One feature of these windowing systems is the The modeless dialog boxes allow the user com-
provision of so called dialog boxes using which data 4o plete freedom to undertake otheractions with the sys-
relating to a preceding action can be entered. An ex- tem, but suffer from the disadvantage of not protect-
ample of this would be if a window displayed a list of ing the userfrom taking actions which disrupt data in-
names and telephone numbers, a possible action for tegrity, e.g the user can have open a dialog box for
selection would be to edit the details of an entry. The editing an entry in data database, whilst at the same
user would highlight the entry concerned in the list 4_ deleting that entry in the database using another part
names and then select the action of edit from the list of the application.
ofactions. Having done this the system would display The modal dialog boxes, eitherapplication orsys-
a dialog box possibly overlapping a portion ofthe win- tem modal, do protect the user from producing integ-
dow containing the names list. The dialog box would rity problems, but suffer from the disadvantage of re-
display the full details of that entry, and then by mov- _o stricting the users freedom more than is truely nec-
ing around and over typing portions the entry can be essary.
edited. The invention provides a mechanism that is re-
Dialog boxes in existing systems fall into two cat- sponsive to whether or not a dialog box within a part
egories. The is first is modeless dialog boxes, which ofan application is already open and whether the fur-
are such that when they are produced they can be __ ther request is capable of creating a data integrity
completed at any time, and any other action can be problem with that change being made in the dialog
taken in another window whilst the dialog box is still box already open. Thus, data integrity is protected
displayed. The second is modal dialog boxes, which whilst the restriction ofactions possible is held to only
2
3 EP O _63 250 B_ 4
a part ofthe application and also to only requests that defined division, said dialog window identifier being
could cause data integrity problems. used for directing movement of a cursor between di-
An example would be a database application for alog windows within said logically defined division to
manipulating a list of peoples' telephone numbers or switch activity therebetween. The dialog windows
a list of books. The type of actions you may wish to _ within a logically defined division may be thought of
take against each ofthese lists would be edit an item, as forming a chain of dialog windows between which
add an item, delete an item or sort the list. The list of the user can move to manipulate data within that log-
users and books are quite separate and so would be ically defined division. The provision of this pointer
defined to be within different logically defined divi- enables the application to move between dialog win-
sions of the program - changes to either list wouldn't 1o dows in response to a single command, such as use
effect the integrity of the other. of the cursor keys. The movement between dialog
Within a given list if it is decided to edit the details boxes can be considered as equivalent to movement
of a particular user then the user is selected from the between links in a chain.
Iist of users and the edit action selected from the list Afurther preferred feature of the invention is that
of actions thereby triggering production of an edit di- 1_ said logically defined division stores an identifier to a
alog box for that user. Once that dialog box was open main application action menu, said main application
then the other actions which pose a threat to data in- menu identifier being used for directing movement of
tegritywould be blocked until the editing had been fin- a cursor between said logically defined division and
ished and the edit dialog box removed. said main application action menu to switch activity
A preferred feature of the invention is that said 2o therebetween. In this way the complete chain ofall di-
mode data of said dialog window stores an identifier alog windows for a given logically defined division,
to said logically defined division, said logically de- the root action menu forthe given logically defined di-
fined division identifier being used fordirecting move- vision and the main application action menu can be
ment ofa cursor between said dialog windowand said quickly moved between and a clear visual indication
Iogically defined division to switch activity therebetw- 2_ of their hierarchical relationship given.
een. This feature allows the user to move between Viewed from a second aspect the invention pro-
the dialog window and other parts of the logically de- vides a data processing apparatus having a display,
fined division thereby giving a clear visual indication a windowing user interface and dialog box control log-
of the link between them. This is particularly useful ic for.
when more than one dialog box is displayed, each re- 3o detecting a user input from a user input device
Iating to a different logically defined division ofthe ap- requesting display for manipulation of data within a
plication. In such circumstance each logically defined logically defined division of an application program
division could have a number of dialog boxes associ- being executed by said data processing apparatus,
ated with it each being independently movable. The creating a dialog window displaying said data
display could become jumbled and the user may be- 3_ for manipulation,
come confused as to which elements of the display storing mode data which indicates that said di-
relate to one another. By providing a mechanism for alog window within said logically defined division is
rapidly moving focus (i.e. cursor and active status) by being displayed, and
preferably using repeated operation ofa single key on upon a subsequent request to manipulate data
a keyboard the link between the items is made clear 4o within a given logically defined division, rejecting said
and rapid movement between them is possible. subsequent request if said mode data indicates that
In preferred embodiments of the invention if said a dialog window for said logically defined division is
subsequent request does not conflict then a subse- being displayed and said subsequent request is de-
quent dialog window is created for said logically de- termined to be of a type which may conflict with ma-
fined division and any further subsequent request is 4_ nipulation being made using said dialog window being
tested for conflict with all manipulations being made displayed.
using dialog windows within that logically defined di- An embodiment of the invention will now be de-
vision. This feature allows more than one dialog box scribed, by way ofexample only, with reference to the
to be created within a logically division to aid the flex- accompanying drawings in which.
ibility of the system and yet still protects data integri- _o Figure 1 illustrates a windowing user interface
ty. An example would be ifthe edit telephone number having a plurality of logically defined divisions.
Iist dialog window included an option of displaying Figure 2 illustrates the selection ofan action with-
STD (national dialling) codes within another dialog in one logically defined division.
window. This option would be allowed to be activated Figure 3 illustrates a dialog box within one logi-
as no conflict in integrity could arise. __ cally defined division.
In preferred embodiments of the invention said Figure 4 illustrates a second level dialog box.
mode data for each dialog box provides an identifier Figure 5 is a flow diagram illustrating the opera-
to one or more other dialog windows of said logically tion of an embodiment of the invention.
3
5 EP O _63 250 B_ 6
Figure 6 is a schematic illustration ofa data proc- function key and cursor keys (chaining process) it is
essing apparatus using the present invention. placed on top of the system menu in each window
Figure 7 is a schematic illustration ofa data struc- since all windows have a system menu and it is often
ture used in controlling the interaction ofdialog boxes the system menu functions that are desired to be
in one embodiment of the invention. _ used. The system menu is initially displayed in the
Figure 1 illustrates a database application having form of a symbol which must be selected to produce
a windowing user interface and a number of logically the display of the various actions within the system
defined divisions within the application program. The menu.
program provides access to a list of telephone num- Figure 5 is a flow diagram illustrating the opera-
bers and peoples names via window 2 and to a list of 1o tion ofan embodiment. At step 20 the system receives
books via window 4. The telephone list and the book a user input requesting manipulation, e.g. the user
Iist are separate logically defined divisions within the has manipulated the cursor to pick a selected item 6
program since changes in one do not effect the data and a selected action 8. At step 22 the system creates
integrity of the other. In order to carry out a function the first level dialog box. At step 24 the system stores
on one of the items in the telephone list that item is 1_ the mode data indicating to that dialog box which log-
selected by manipulation of the cursor. The selected ical division of the application it belongs to and also
item 6 is highlighted within the list. indicating to the logical division that a dialog box has
Figure 2 illustrates the next step in the manipula- been created within it. At step 26 the system receives
tion of the data. A pull down menu 8 from the root ac- another user input requesting a further manipulation,
tion bar menu 1 O is selected. The user then highlights 2o e.g. STD code list selection. At step 28 the system
a particular action 1 2 he wishes to perform on the se- reads the stored mode data to determine where a di-
Iected item 6. alog box has already been created for that logical di-
Figure 3 illustrates the response to this action se- vision. At step 30 the system determines whether the
Iection. The pulled down menu is no longer displayed subsequent request received at step 26 is one that
and an edit telephone list dialog box 14 is created. 2_ conflicts with the existing dialog box created at step
This edit telephone list dialog box displays details of 22. This test could be performed by comparing the
the selected item 6 which may be edited by the user. subsequent request with a list of requests that are
When the user has finished with editing the changes known to be capable of producing conflicts with the
can either be saved or discarded using the ''Save'' or dialog box created at step 22.
''Cancel'' buttons within the dialog box 14. Ifduring the 3o lfthe resultfor steps 28 and 30 are both YES then
editing ofthe telephone list the userwishes to refer to at step 32 the request is rejected. Ifeither ofthe steps
a list of STD telephone codes then a second level di- 28 and 30 produce a result of NO then at step 34 the
alog box 16 can be selected by activating the ''STD'' system creates the second level dialog box and at
button. step 36 the system stores the mode data indicating
Figure 4 illustrates the display with both first and 3_ the relationship between the first and second level di-
second level dialog boxes. It will be seen that the dis- alog boxes for use when chaining the dialog boxes to-
play is now becoming complicated. This illustrates gether. The process then terminates.
why there is a need to protect the user from making Figure 6 schematically illustrates a data process-
changes which could interfere with data integrity. ing apparatus 42 embodying the invention. The data
With a large number of different windows being dis- 4o processing apparatus 42 comprises a data process-
played it would be easy for the user to become con- ing unit 38 and a display 40. The data processing unit
fused as to which window related to which particular 38 includes a central processor unit 44, a dialog box
action he wished to make. In order to help the user control program storage area 46 and an application
recognise the link between the various windows a fa- program storage area 48. The central processor unit
cility is provided for moving between the various por- 4_ 44 acting under control of the dialog box control pro-
tions ofa logically defined division. By pressing a par- gram stored in dialog box control program storage 46
ticular function key the system moves the focus (i.e. acts as logic for carrying out the functions with which
changes which window is active) to the main applica- the present invention is concerned. The central proc-
tion menu bar of the logically defined division that is essor unit 44 acting under the control of the applica-
currently active. By manipulating the cursor keys the _o tion program stored within the application program
user may then successively bring the focus to the va- storage area 48 acts as logic to provide the data base
rious other elements within the logically defined divi- application program described earlier.
sion. It will be appreciated that whilst the present in-
The system menu 1 8 is available on each window vention has been described in terms ofa general pur-
and allows the selection of actions which apply to the __ pose computeracting underthe control ofa computer
form of the window itself rather than the function it is program it would be possible (although in practice dif-
performing. When the cursor is moved between the ficult and expensive) to embody the invention in spe-
elements within a logically defined division using the cial purpose hardware. Similarly, it will be appreciat-
_
7 EP O _63 250 B_ 8
ed that the invention is not restricted to the use of any 2. A method as claimed in claim 1, wherein said
particular computer language. mode data of said dialog window stores an iden-
Figure 7 illustrates a data structure that can be tifier to said logically defined division, said logi-
used within the Presentation Manager program dis- cally defined division identifier being used for di-
cussed earlier to store the mode data indicating the _ recting movement of a cursor between said dia-
connection between the various items within the log- log window and said logically defined division to
ically defined division. Within the Presentation Man- switch activity therebetween.
ager environment the application system records data
indicating what logically defined division of the pro- 3. A method as claimed in any of claims 1 or 2,
gram is currently active, i.e. stores the window handle 1o wherein if said subsequent request does not con-
of the currently active logical division. When focus is flict, then a subsequent dialog window is created
changed between logically defined divisions the ap- for said logically defined division and any further
plication updates this store. This is illustrated as store subsequent request is tested for conflict with all
50. The Presentation Manager environment also pro- manipulations being made using dialog windows
vides a facility for use by dialog boxes and windows 1_ within that logically defined division.
for storing pointers to data structures designated off-
set QWL-USER. The central processor unit 44 acting _. A method as claimed in claim 3, wherein said
under the control of the dialog box control program mode data for each dialog box provides an iden-
may store data in and access data from these data tifier to one or more other dialog windows of said
structures using the WinSetWindowULong and Win- 2o logically defined division, said dialog window
QueryWindowULong commands within the Presenta- identifier being used for directing movement of a
tion Manager environment. The dialog boxes each cursor between dialog windows within said logi-
store within this storage 52 data pointing to the previ- cally defined division to switch activity therebetw-
ous item within the logical division chain and the fol- een.
Iowing item within the logical division chain. In this 2_
way second and lower level dialog box point to the 5. A method as claimed in any of claims 2 to 5,
previous and next dialog box within the chain and the wherein said logically defined division stores an
first level dialog box points to the route action menu identifier to a main application action menu, said
1 O for that logically defined division and the next (sec- main application menu identifier being used for
ond level) dialog box within the chain. It will be appre- 3o directing movement ofa cursor between said log-
ciated that the above is just one example of a storage ically defined division and said main application
structure that may be used to control the relationship action menu to switch activity therebetween.
between the various items within the logically defined
division. 6. A method as claimed in any of claims 2 to 5,
3_ wherein said movement of said cursor is affected
by repeated operation of a key on a keyboard.
Claims l. A data processing apparatus having a display, a
_. A method of manipulating data stored by a data windowing user interface and dialog box control
processing apparatus having a windowing user 4o logic for.
interface, said method comprising the steps of. detecting a user input from a user input de-
detecting a user input requesting display vice requesting display for manipulation of data
for manipulation of data within a logically defined within a logically defined division of an applica-
division ofan application program being executed tion program being executed by said data proc-
by said data processing apparatus, 4_ essing apparatus,
creating a dialog window displaying said creating a dialog window displaying said
data for manipulation, data for manipulation,
storing mode data which indicates that storing mode data which indicates that
said dialog window within said logically defined said dialog window within said logically defined
division is being displayed, and _o division is being displayed, and
upon a subsequent request to manipulate upon a subsequent request to manipulate
data within said given logically defined division, data within a given logically defined division, re-
rejecting said subsequent request if said mode jecting said subsequent request ifsaid mode data
data indicates that a dialog window for said logi- indicates that a dialog window for said logically
cally defined division is being displayed and said __ defined division is being displayed and said sub-
subsequent request is determined to be of a type sequent request is determined to of a type which
which may conflict with manipulation being made may conflict with manipulation being made using
using said dialog window being displayed. said dialog window being displayed.
5
9 EP O _63 250 B_ IO
8. A data processing apparatus as claimed in claim das genannte Dialogfenster innerhalb des ge-
7, wherein said mode data of said dialog window nannten logisch definierten Bereichs angezeigt
stores an identifier to said logically defined divi- wird, und
sion, said logically defined division identifier be- Bearbeiten von Daten innerhalb des genannten
ing used for directing movement of a cursor be- _ logischen Bereichs bei einer nachfolgenden An-
tween said dialog window and said logically de- forderung, Zurückweisen der genannten nachfol-
fined division to switch activity therebetween. genden Anforderung, wenn die genannten Mo-
dusdaten anzeigen, da_ ein Dialogfensterfürden
9. Adata processing apparatus as claimed in any of genannten logisch definierten Bereich angezeigt
claims 7 or 8, wherein if said subsequent request 1o wird und da_ die genannte nachfolgende Anfor-
does not conflict, then a subsequent dialog win- derung als solcher Typ erkannt wird, der mit die-
dow is created for said logically defined division ser Datenbearbeitung unter Verwendung des ge-
and any further subsequent request is tested for nannten angezeigten Dialogfensters zu einem
conflict with all manipulations being made using Konflikt führen kann.
dialog windows within that logically defined divi- 1_
sion. 2. Ein Verfahren gemä_ Anspruch 1, in dem die ge-
nannten Modusdaten des genannten Dialogfen-
_ O. A data processing apparatus as claimed in claim sters eine Markierung zum genannten logisch de-
9, wherein said mode data for each dialog box finierten Bereich speichern, wobei diese Markie-
provides an identifier to one or more other dialog 2o rung des genannten logisch definierten Bereichs
windows ofsaid logically defined division, said di- verwendet wird, um die Bewegung eines Cursors
alog window identifier being used for directing zwischen dem genannten Dialogfenster und dem
movement of a cursor between dialog windows genannten logisch definierten Bereich zu steu-
within said logically defined division to switch ac- ern, so da_ ein Umschalten der Aktivität möglich
tivity therebetween. 2_ ist.
__. Adata processing apparatus as claimed in any of 3. Ein Verfahren gemä_ Anspruch 1 oder 2, in dem,
claims 8 to 1 O, wherein said logically defined di- wenn die genannte nachfolgende Anforderung
vision stores an identifier to a main application keinen Konflikt verursacht, für den genannten lo-
action menu, said main application menu identi- 3o gisch definierten Bereich ein nachfolgendes Dia-
fier being used fordirecting movement ofa cursor logfenster erstellt und jede weitere nachfolgende
between said logically defined division and said Anforderung auf einen Konflikt hin geprüft wird,
main application action menu to switch activity wobei alle Bearbeitungen unter Verwendung von
therebetween. Dialogfenstern innerhalb dieses logisch definier-
3_ ten Bereichs erfolgen.
_2. Adata processing apparatus as claimed in any of
claims 8 to 11, wherein said movement of said _. Ein Verfahren gemä_ Anspruch 3, in dem die ge-
cursor is affected by repeated operation of a key nannten Modusdaten für jedes Dialogfeld eine
on a keyboard. Markierung zu einem oder mehreren anderen
4o Dialogfenstern dieses logisch definierten Be-
reichs bereitstellen, wobei die Markierung des
Patentansprüche genannten Dialogfensters zur Steuerung der Be-
wegung eines Cursors zwischen Dialogfenstern
_. Ein Verfahren zur Behandlung von Daten, die in innerhalb des genannten logisch definierten Be-
einer Datenverarbeitungsanlage mit Benutzer- 4_ reichs verwendet wird, so da_ ein Umschalten
schnittstelle auf Fensterbasis gespeichert wer- der Aktivität möglich ist.
den, wobei dieses Verfahren folgende Schritte
umfa_t. 5. Ein Verfahren gemä_ jedem der Ansprüche 2 bis
Feststellen einer Benutzereingabe, in der eine 4, in dem der genannte logisch definierte Bereich
Anzeige zur Behandlung von Daten innerhalb ei- _o eine Markierung zu einem Anwendungshaupt-
nes logisch definierten Bereichs eines Anwen- menü speichert, wobei die Markierung des ge-
dungsprogramms, das auf der genannten Daten- nannten Anwendungshauptmenüs zur Steue-
verarbeitungsanlage ausgeführt wird, angefor- rung der Bewegung eines Cursors zwischen dem
dert wird; genannten logisch definierten Bereich und dem
Erstellen eines Dialogfensters, in dem die ge- __ genannten Anwendungshauptmenü verwendet
nannten zu behandelnden Daten angezeigt wer- wird, so da_ ein Umschalten der Aktivität möglich
den; ist.
Speichern von Modusdaten, die anzeigen, da_ 6
1 1 EP O _63 250 B_ 12
6. Ein Verfahren gemä_jedem der Ansprüche 2 bis mehreren anderen Dialogfenstern dieses logisch
5, in dem die genannte Bewegung des genannten definierten Bereichs bereitstellen, wobei die Mar-
Cursors durch wiederholte Betätigung einer Ta- kierung des genannten Dialogfensters zur Steue-
ste auf der Tastatur beeinflu_t wird. rung der Bewegung eines Cursors zwischen Dia-
_ logfenstern innerhalb des genannten logisch de-
l. Eine Datenverarbeitungsanlage mit einer Anzei- finierten Bereichs verwendet wird, so da_ ein
ge, einer Benutzerschnittstelle auf Fensterbasis Umschalten der Aktivität möglich ist.
und einer Dialogfeld-Steuerlogikfür.
Feststellen einer Benutzereingabe von einem __. Eine Datenverarbeitungsanlage gemä_ jedem
Benutzereingabegerät, in der eine Anzeige zur 1o der Ansprüche 8 bis 1 O, in dem der genannte lo-
Behandlung von Daten innerhalb eines logisch gisch definierte Bereich eine Markierung zu ei-
definierten Bereichs eines Anwendungspro- nem Anwendungshauptmenü speichert, wobei
gramms, das auf der genannten Datenverarbei- die Markierung des genannten Anwendungs-
tungsanlage ausgeführt wird, angefordert wird; hauptmenüs zur Steuerung der Bewegung eines
Erstellen eines Dialogfensters, in dem die ge- 1_ Cursors zwischen dem genannten logisch defi-
nannten zu behandelnden Daten angezeigt wer- nierten Bereich und dem genannten Anwen-
den; dungshauptmenü verwendet wird, so da_ ein
Speichern von Modusdaten, die anzeigen, da_ Umschalten der Aktivität möglich ist.
das genannte Dialogfenster innerhalb des ge-
nannten logisch definierten Bereichs angezeigt 2o _2. Ein Verfahren gemä_ jedem der Ansprüche 8 bis
wird, und 1 1, in dem die genannte Bewegung des genann-
Bearbeiten von Daten innerhalb des genannten ten Cursors durch wiederholte Betätigung einer
Iogischen Bereichs bei einer nachfolgenden An- Taste auf der Tastatur beeinflu_t wird.
forderung, Zurückweisen der genannten nachfol-
genden Anforderung, wenn die genannten Mo- 2_
dusdaten anzeigen, da_ ein Dialogfensterfürden Revendications
genannten logisch definierten Bereich angezeigt
wird und da_ die genannte nachfolgende Anfor- _. Procédé de manipulation de données emmagasi-
derung als solcher Typ erkannt wird, der mit die- nées par un appareil de traitement de données
ser Datenbearbeitung unter Verwendung des ge- 3o ayant une interface utilisateur de fenetrage, ledit
nannten angezeigten Dialogfensters zu einem procédé comprenant les étapes de.
Konflikt führen kann. détecter une entrée d'utilisateur deman-
dant un affichage en vue d'une manipulation de
8. Eine Datenverarbeitungsanlage gemä_ An- données dans une division définie logiquement
spruch 7, in dem die genannten Modusdaten des 3_ d'un programme d'application alors exécuté par
genannten Dialogfensters eine Markierung zum ledit appareil de traitement de données,
genannten logisch definierten Bereich spei- créer une fenetre de dialogue affichant
chern, wobei diese Markierung des genannten lo- lesdites données pour manipulation;
gisch definierten Bereichs verwendet wird, um emmagasiner des données de mode qui
die Bewegung eines Cursors zwischen dem ge- 4o indiquent que ladite fenetre de dialogue dans la-
nannten Dialogfenster und dem genannten lo- dite division définie logiquement est alors affi-
gisch definierten Bereich zu steuern, so da_ ein chée, et
Umschalten der Aktivität möglich ist. Iors d'une demande suivante pour mani-
puler des données dans ladite division définie lo-
9. Eine Datenverarbeitungsanlage gemä_ An- 4_ giquement, rejeter ladite demande suivante si
spruch 7 oder8, in dem, wenn die genannte nach- lesdites données de mode indiquent qu'une fene-
folgende Anforderung keinen Konflikt verur- tre de dialogue pour ladite division définie logi-
sacht, für den genannten logisch definierten Be- quement est alors affichée et ladite demande sui-
reich ein nachfolgendes Dialogfenster erstellt vante est déterminée comme étant d'un type qui
und jede weitere nachfolgende Anforderung auf _o peut etre en conflit avec une manipulation alors
einen Konflikt hin geprüft wird, wobei alle Bear- effectuée en utilisant ladite fenetre de dialogue
beitungen unter Verwendung von Dialogfenstern alors affichée.
innerhalb dieses logisch definierten Bereichs er-
folgen. 2. Procédé selon la revendication 1, dans lequel les-
__ dites données de mode de ladite fenetre de dia-
_ O. Eine Datenverarbeitungsanlage gemä_ An- logue emmagasinent un identificateur de ladite
spruch 9, in dem die genannten Modusdaten für division définie logiquement, ledit identificateur
jedes Dialogfeld eine Markierung zu einem oder de division définie logiquement étant utilisé pour
l
1 3 EP O _63 250 B_ 14
diriger le déplacement d'un curseur entre ladite lesdites données de mode indiquent qu'une fene-
fenetre de dialogue et ladite division définie logi- tre de dialogue pour ladite division définie logi-
quement afin de commuter une activité entre el- quement est alors affichée et ladite demande sui-
Ies. vante est déterminée comme étant d'un type qui
_ peut etre en conflit avec une manipulation alors
3. Procédé selon les revendications 1 ou 2, dans le- effectuée en utilisant ladite fenetre de dialogue
quel ladite demande suivante n'entre pas en alors affichée.
conflit, une autre fenetre de dialogue étant ainsi
créée pour ladite division définie logiquement et 8. Appareil de traitement de données selon la re-
toute autre demande suivante étant testée pour 1o vendication 7, dans lequel lesdites données de
conflit avec toutes les manipulations alors faites mode de ladite fenetre de dialogue emmagasi-
utilisant des fenetres de dialogue dans cette di- nent un identificateur de ladite division définie lo-
vision définie logiquement. giquement, ledit identificateur de division définie
Iogiquement étant utilisé pour diriger le déplace-
_. Procédé selon la revendication 3, dan lequel les- 1_ ment d'un curseur entre ladite fenetre de dialo-
dites données de mode pour chaque cadre de gue et ladite division définie logiquement afin de
dialogue fournissent un identificateur d'une ou commuter une activité entre elles.
plusieurs autres fenetres de dialogue de ladite di-
vision définie logiquement, ledit identificateur de 9. Appareil de traitement de données selon l'une
fenetre de dialogue étant utilisé pour diriger le dé- 2o quelconque des revendications 7 ou 8, dans le-
placement d'un curseur entre des fenetres de quel si ladite demande suivante n'est pas en
dialogue dans ladite division définie logiquement conflit, une autre fenetre de dialogue est alors
afin de commuter une activité entre elles. créée pour ladite division définie logiquement et
toute autre demande suivante est testée pour
5. Procédé selon l'une quelconque des revendica- 2_ conflit avec toutes les manipulations alors faites
tions 2 à 4, dans lequel ladite division définie lo- en utilisant des fenetres de dialogue dans cette
giquement emmagasine un identificateur d'un division définie logiquement.
menu d'actions d'application principal, ledit iden-
tificateur de menu d'application principal étant _ O. Système de traitement de données selon la re-
utilisé pour diriger le déplacement d'un curseur 3o vendication 9, dans lequel lesdites données de
entre ladite division définie logiquement et ledit mode pour chaque cadre de dialogue fournissent
menu d'actions d'application principal afin de un identificateur de une ou plusieurs autres fene-
commuter une activité entre eux. tres de dialogue de ladite division définie logique-
ment, ledit identificateur de fenetre de dialogue
6. Procédé selon l'une quelconque des revendica- 3_ étant utilisé pour diriger le déplacement d'un cur-
tions 2 à 5, dans lequel ledit déplacement dudit seur entre des fenetres de dialogue dans ladite
curseur est affecté par une opération répétée division définie logiquement afin de commuter
d'une touche d'un clavier. une activité entre elles.
l. Appareil de traitement de données ayant un 4o _ _. Appareil de traitement de données selon l'une
écran d'affichage, une interface utilisateur de fe- quelconque des revendications 8 à 1 O, dans le-
netrage et une logique de controle de cadre de quel ladite division définie logiquement emmaga-
dialogue pour. sine un identificateur de menu d'action d'applica-
détecter une entrée d'utilisateur depuis un tion principal, ledit identificateur de menu d'appli-
dispositif d'entrée demandant un affichage pour 4_ cation principal étant utilisé pour diriger le dépla-
manipulation de données dans une division défi- cement d'un curseur entre ladite division définie
nie logiquement d'un programme d'application logiquement et ledit menu d'actions d'application
alors exécuté par ledit appareil de traitement de principal afin de commuter une activité entre eux.
données,
créer une fenetre de dialogue affichant _o _ 2. Appareil de traitement de données selon l'une
Iesdites données pour manipulation; quelconque des revendications 8 à 1 1, dans le-
emmagasiner des données de mode qui quel ledit déplacement dudit curseur est affecté
indiquent que ladite fenetre de dialogue dans la- par une opération répétée d'une touche d'un cla-
dite division définie logiquement est alors affi- vier.
chée, et __
Iors d'une demande suivante pour mani-
puler des données dans ladite division définie lo-
giquement, rejeter ladite demande suivante si 8