1. A method of performing an object editing operation in a data processing system having a display for displaying an object and also having a user input arrangement including a pointer control device for providing inputs to control the location of a pointer on the display, the data processing system also having a processing device programmed to receive and respond to inputs entered through the user input arrangement and provide an output for controlling the display, the method including the steps of:
(a) receiving an edit function input entered through the user input arrangement, the edit function input defining an edit operation to be performed by the data processing system;
(b) identifying a target in response to the edit function input, the target comprising an object appearing on the display as specified by proximity to the pointer at the time the edit function input is received;
(c) determining a state of the target; and
(d) applying the edit operation to the target if the state of the target indicates that the edit operation is not currently applied to the target.
2. The method of claim 1 wherein the object comprises a text object a the predetermined minimum level of granularity defines the amount of text for the target to be a single word.
3. The method of claim 1 further including the steps of:
(a) identifying a first target string for the target if the state of the target indicates that the edit operation is currently applied to the target, the first target string comprising a first string of additional object elements which includes the target;
(b) determining the state of the first target string; and
(c) applying the edit operation to the first target string if the state of the first target string indicates that the edit operation is not currently applied to the first target string.
4. The method of claim 3 wherein the object comprises text and a predetermined minimum level of granularity defines the amount of text for the target to be a single target word, and wherein the first target string comprises a sentence which includes the target word.
5. The method of claim 3 further including the steps of:
(a) identifying a second target string for the target if the state of the first target string indicates that the edit operation is currently applied to the first target string, the second target string comprising a second string of additional object elements which includes the first target string;
(b) determining the state of the second target string; and
(c) applying the edit operation to the second target string if the state of the second target string indicates that the edit operation is not currently applied to the second target string.
6. The method of claim 5 wherein the object comprises text and a predetermined minimum level of granularity defines the amount of text for the target to be a single target word, and wherein the first target string comprises a target sentence which includes the target word, and wherein the second target string comprises a paragraph which includes the target sentence.
7. The method of claim 5 further including the steps of:
(a) identifying a third target string for the target if the state of the second target string indicates that the edit operation is currently applied to the second target string, the third target string comprising a third string of additional object elements which includes the second target string;
(b) determining the state of the third target string; and
(c) applying the edit operation to the third target string if the state of the third target string indicates that the edit operation is not currently applied to the third target string.
8. The method of claim 1 further including the step of undoing the edit operation to the target if the state of the target indicates that the edit function is currently applied to the target.
9. The method of claim 1 wherein the step of receiving the edit function input comprises receiving input data from a keyboard associated with the user input arrangement.
10. The method of claim 1 wherein the step of receiving the edit function input comprises receiving input data from the pointer control device included in the user input arrangement, the input data from the pointer control device including a switch signal from a switch included in the pointer control device.
11. A program product for performing an editing operation in a data processing system having a display for displaying an object and also having a user input arrangement including a pointer control device for providing inputs to control the location of a pointer on the display, the data processing system also having a processing device for executing the program product, the program product being stored on a computer readable medium and including:
(a) input program code for receiving an edit function input entered through the user input arrangement and for associating the edit function input with an edit operation to be performed by the data processing system;
(b) target identifying program code for identifying a target in response to the edit function input, the target comprising an object appearing on the display as specified by proximity to the pointer at the time the edit function input is received;
(c) state checking program code for determining a state of the target; and
(d) operation performance program code for applying the edit operation to the target if the state of the target indicates that the edit operation is not currently applied to the target.
12. The program product of claim 11 wherein the target identifying program code identifies a single target word of text as the target.
13. The program product of claim 11 further including first target string identifying program code for identifying a first target string if the state of the target indicates that the edit operation is currently applied to the target, the first target string comprising a first string of object elements which includes the target, and wherein:
(a) the state checking program code determines the state of the first target string; and
(b) the operation performance program code applies the edit operation to the first target string if the state of the first target string indicates that the edit operation is not currently applied to the first target string.
14. The program product of claim 13 further including second target string identifying program code for identifying a second target string if the state of the first target string indicates that the edit operation is currently applied to the first target string, the second target string comprising a second string of object elements which includes the first target string, and wherein:
(a) the state checking program code determines the state of the second target string; and
(b) the performance program code applies the edit operation to the second target string if the state of the second target string indicates that the edit operation is not currently applied to the second target string.
15. The program product of claim 14 further including third target string identifying program code for identifying a third target string if the state of the second target string indicates that the edit operation is currently applied to the second target string, the third target string comprising a third string of object elements which includes the second target string, and wherein:
(a) the state checking program code determines the state of the third target string; and
(b) the performance program code applies the edit operation to the third target string if the state of the third target string indicates that the edit operation is not currently applied to the third target string.
16. A data processing system including:
(a) a display;
(b) a user input arrangement including a pointer control device, the pointer control device for providing inputs to control the location of a pointer on the display; and
(c) a processor programmed to:
(i) receive an edit function input entered through the user input arrangement;
(ii) identify a target in response to the edit function input, the target comprising an object appearing on the display as specified by proximity to the pointer at the time the edit function input is received;
(iii) determine a state of the target; and
(iv) apply an edit operation to the target if the state of the target indicates that the edit operation is not currently applied to the target, the edit operation comprising an operation defined by the edit function input.
17. The data processing system of claim 16 wherein the processor is further programmed to:
(a) identify a first target string for the target if the state of the target indicates that the edit operation is currently applied to the target, the first target string comprising a first string of additional object elements which includes the target;
(b) determine the state of the first target string; and
(c) apply the edit operation to the first target string if the state of the first target string indicates that the edit operation is not currently applied to the first target string.
18. The data processing system of claim 17 wherein the processor is also programmed to:
(a) identify a second target string if the state of the first target string indicates that the edit operation is currently applied to the first target string, the second target string comprising a second string of additional object elements which includes the first target string;
(b) determine the state of the second target string; and
(c) apply the edit operation to the second target string if the state of the second target string indicates that the edit operation is not currently applied to the second target string.
19. The data processing system of claim 18 wherein the processor is also programmed to:
(a) identify a third target string for the target if the state of the second target string indicates that the edit operation is currently applied to the second target string, the third target string comprising a third string of additional object elements which includes the second target string;
(b) determine the state of the third target string; and
(c) apply the edit operation to the third target string if the state of the third target string indicates that the edit operation is not currently applied to the third target string.
20. The data processing system of claim 18 wherein the target comprises a single target word, the first target string comprises a target sentence including the target word, and the second target string comprises a paragraph including the target sentence.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A computer system that adapts a functionality to a client and server combination, comprising:
a processor, the processor is configured to:
retrieve, responsive to a request of a client for a functionality, pre-configured properties of the client, pre-configured properties of the requested functionality, and pre-configured properties of a server on which the requested functionality is run;
perform an availability check, based on the retrieved pre-configured properties of the client, pre-configured properties of the server, and pre-configured properties of the requested functionality, to eliminate properties of the requested functionality which are not capable of functioning on a combination of the client and the server; and
provide the result of the availability check as a set of properties which is available for the requested functionality on the combination of the client and the server,
wherein the pre-configured properties define different property types, property values of the different property types, functionality values for each property value, and rules that instruct the processor how to perform the availability check based on the property types, the property values and the functionality values.
2. The computer system of claim 1, wherein the processor is further configured to enable execution, on the combination of the client and the server, of the requested functionality, the execution being limited to the set of properties which is the result of the availability check.
3. The computer system of claim 1, wherein the processor is further configured so that the availability check incorporates a four-pass filter.
4. The computer system of claim 3, wherein the processor is further configured to perform the four-pass filter, and the rules include intersection rules and non-intersection rules, comprising:
in a first client filter, perform intersection rule preprocessing to reduce functionality properties to properties of the client;
in a first server filter, perform intersection rule preprocessing to reduce functionality properties to properties of the server;
in a second client filter, performed after the first client and server filters, remove the requested functionality when the requested functionality is determined to be not compatible with the client properties; and
in a second server filter, performed after the first client and server filters, remove the requested functionality when the requested functionality is determined to be not compatible with the server properties.
5. The computer system of claim 1, wherein the availability check is performed prior to connecting the client to the server for the requested functionality.
6. The computer system of claim 1, wherein the pre-configured properties further comprise actions that instruct the processor as to which of the pre-configured properties to allow and to filter out based on the results of application of the rules, and the processor is configured to perform the actions as part of the availability check.
7. The computer system of claim 1, wherein the processor is further configured to define the pre-configured properties of the client, the pre-configured properties of the server and the pre-configured properties of the requested functionality using an XML schema consistent with the XML schema for client, server and functionality.
8. A method that adapts a functionality to a client and server combination, comprising:
retrieving, by a processor, responsive to a request of a client for a functionality, pre-configured properties of the client, pre-configured properties of the requested functionality, and pre-configured properties of a server on which the requested functionality is run;
performing, by the processor, an availability check, based on the retrieved pre-configured properties of the client, pre-configured properties of the server, and pre-configured properties of the requested functionality, to eliminate properties of the requested functionality which are not capable of functioning on a combination of the client and the server; and
providing, by the processor, the result of the availability check as a set of properties which is available for the requested functionality on the combination of the client and the server,
wherein the pre-configured properties define different property types, property values of the different property types, functionality values for each property value, and rules that instruct the processor how to perform the availability check based on the property types, the property values and the functionality values.
9. The method of claim 8, further comprising enabling, by the processor, execution on the combination of the client and the server, of the requested functionality, the execution being limited to the set of properties which is the result of the availability check.
10. The method of claim 8, further comprising performing, by the processor, a four-pass filter as part of the availability check.
11. The method of claim 10, wherein the rules include intersection rules and non-intersection rules, further comprising:
in a first client filter, performing intersection rule preprocessing by the processor to reduce functionality properties to properties of the client;
in a first server filter, performing intersection rule preprocessing by the processor to reduce functionality properties to properties of the server;
in a second client filter, performed after the first client and server filters, removing by the processor the requested functionality when the requested functionality is determined to be not compatible with the client properties; and
in a second server filter, performed after the first client and server filters, removing by the processor the requested functionality when the requested functionality is determined to be not compatible with the server properties.
12. The method of claim 8, wherein the availability check is performed prior to connecting the client to the server for the requested functionality.
13. The method of claim 8, wherein the pre-configured properties further comprise actions that instruct the processor as to which of the pre-configured properties to allow and to filter out based on the results of application of the rules, further comprising performing, by the processor, the actions as part of the availability check.
14. The method of claim 8, further comprising defining, by the processor, the pre-configured properties of the client, the pre-configured properties of the server and the pre-configured properties of the requested functionality using an XML schema consistent with the XML schema for client, server and functionality.
15. A non-transitory computer readable medium comprising executable instructions for performing a method that adapts a functionality to a client and server combination, comprising computer-executable instructions for:
retrieving, responsive to a request of a client for a functionality, pre-configured properties of the client, pre-configured properties of the requested functionality, and pre-configured properties of a server on which the requested functionality is run;
performing an availability check, based on the retrieved pre-configured properties of the client, pre-configured properties of the server, and pre-configured properties of the requested functionality, to eliminate properties of the requested functionality which are not capable of functioning on a combination of the client and the server; and
providing the result of the availability check as a set of properties which is available for the requested functionality on the combination of the client and the server,
wherein the pre-configured properties define different property types, property values of the different property types, functionality values for each property value, and rules that instruct a processor how to perform the availability check based on the property types, the property values and the functionality values.
16. The non-transitory computer readable medium of claim 15, further comprising enabling execution on the combination of the client and the server, of the requested functionality, the execution being limited to the set of properties which is the result of the availability check.
17. The non-transitory computer readable medium of claim 15, further comprising performing a four-pass filter as part of the availability check.
18. The non-transitory computer readable medium of claim 15, wherein the rules include intersection rules and non-intersection rules, further comprising:
in a first client filter, performing intersection rule preprocessing to reduce functionality properties to properties of the client;
in a first server filter, performing intersection rule preprocessing to reduce functionality properties to properties of the server;
in a second client filter, performed after the first client and server filters, removing the requested functionality when the requested functionality is determined to be not compatible with the client properties; and
in a second server filter, performed after the first client and server filters, removing the requested functionality when the requested functionality is determined to be not compatible with the server properties.
19. The non-transitory computer readable medium of claim 15, wherein the pre-configured properties further comprise actions that instruct a processor as to which of the pre-configured properties to allow and to filter out based on the results of application of the rules, further comprising performing the actions as part of the availability check.
20. The non-transitory computer readable medium of claim 15, further comprising defining the pre-configured properties of the client, the pre-configured properties of the server and the pre-configured properties of the requested functionality using an XML schema consistent with the XML schema for client, server and functionality.