Some embodiments of the inventive subject matter include a computer-implemented method for processing text received in a first input filed. The method can include detecting the first input field configured to receive text, wherein the input field has a character limit defining a maximum number of characters that can be entered into the first input field. The method can also include receiving a first set of characters in the first input field, wherein a count of the first set of characters does not exceed the character limit. The method can also include receiving a second set of characters in the first input field. The method can also include detecting that a count of the second set of characters and the first set of characters exceeds the character limit, and presenting a second input field, wherein the second input field includes at least the second set of characters.
|
1. A method comprising:
detecting a first input field, wherein the first input field is configured to receive text, wherein the first input field has a character limit defining a maximum number of characters that can be entered into the first input field;
receiving a first set of characters in the first input field, wherein a count of the first set of characters does not exceed the character limit;
receiving a second set of characters in the first input field;
detecting that a count of the second set of characters and the first set of characters exceeds the character limit; and
presenting, in response to said detecting that the count of the second set of characters and the first set of characters exceeds the character limit, a second input field, wherein the second input field includes at least the second set of characters.
15. An apparatus comprising:
a processor;
a computer readable storage medium including computer usable program code executable by the processor, the computer useable program code configured to:
detect a first input field, wherein the first input field is configured to receive text, wherein the first input field has a character limit defining a maximum number of characters that can be entered into the first input field;
receive a first group of text in the first input field, wherein the first group of text does not exceed the character limit;
receive a second group of text in the first input field;
detect that the second group of text combined with the first group of text exceeds the character limit;
present, in response to detection that the second group of text combined with the first group of text exceeds the character limit, a second input field including at least the second group of text.
8. A computer program product for processing text received in a first input field, the computer program product comprising:
a computer readable storage medium having computer usable program code embodied therewith, the computer usable program code comprising computer usable program code configured to:
detect the first input field, wherein the first input field is configured to receive text, wherein the first input field has a character limit defining a maximum number of characters that can be entered into the first input field;
detect entry of first text in the first input field, wherein a count of characters in the first text equals the character limit;
detect an attempt to enter second text in the first input field;
detect that a count of characters in the second text and the first text exceeds the character limit; and
present, in response to detection that the count of characters in the second text and the first text exceeds the character limit, a second input field, wherein the second input field includes at least the second text.
2. The method of
receiving user input initiating a process for saving the first and second sets of characters to a file;
saving the first and second sets of characters to the file.
3. The method of
receiving user input initiating a process for copying the first and second sets of characters to a destination;
copying the first and second sets of characters to the destination.
4. The method of
5. The method of
6. The method of
7. The method of
9. The computer program product of
receive user input initiating a process for saving the first and second text to a file;
save the first and second text to the file.
10. The computer program product of
receive user input initiating a process for copying the first and second text to a destination;
copy the first and second text to the destination.
12. The computer program product of
13. The computer program product of
14. The computer program product of
16. The apparatus of
receive user input initiating a process for saving the first and second groups of text to a file;
save the first and second groups of text to the file.
17. The apparatus of
receive user input initiating a process for copying the first and second groups of text to a destination;
copy the first and second groups of text to the destination.
18. The apparatus of
19. The apparatus of
|
Embodiments of the inventive subject matter generally relate to the field of data processing, and more particularly to processing text in input fields in computer programs.
When an input field has a limit, a user is prevented from entering excessive text. That is, an input field having limited size prevents a user from entering text that goes beyond the input field's size. Some input fields prevent the user from entering extra text, automatically delete extra text as the user is typing, or display a current character count. Character limits and automatic text deletion allows entered text to be lost, which increases likelihood for poor data entry.
Some embodiments of the inventive subject matter include a computer-implemented method for processing text received in an input filed. The method can include presenting, under control of a processor, the input field configured to receive text, wherein the input field has a character limit defining a maximum number of characters that will appear in the input field. The method can also include receiving a first group of text in the input field, wherein the first group of text does not exceed the character limit. The method can also include receiving a second group of text in the input field. The method can also include detecting that the second group of text combined with the first group of text exceeds the character limit, and presenting, in response to the detecting, an input viewer including the first and second groups of text.
The present embodiments may be better understood, and numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
Some embodiments of the inventive subject matter enable users to enter large text strings into input fields without losing text. As noted above, some input fields are limited to a maximum number of characters, such as 40 characters. For such input fields, if users enter more than 40 characters, the input fields may cease accepting text beyond the 40 character limit. However, some embodiments of the inventive subject matter enable users to enter large quantities of text without losing a portion of the text. To facilitate this, after a user enters text exceeding an input field limit, some embodiments present a text viewer showing all text entered into the input field. In some instances, the text that does not exceed the input field limit appears differently than text exceeding the limit. For example, if the limit is 40 characters, the first 40 characters appear as text in a given font and size, whereas text beyond the fortieth character appears with highlighting or other distinguishing characteristics (e.g., different font, different size, italics, underlining, text-to-speech pitch, text-to-speech speed, etc.). Additionally, some embodiments enable users to copy and save text in the text editing window. These and other embodiments will be described in greater detail below.
Some embodiments enable users to save or copy text from the input viewer.
Although above-described examples refer to a web browser program, embodiments of the inventive subject matter are not limited to browser programs. That is, the operations for preserving text can be used with any suitable input field, regardless of the program type. In some instances, text preservation is limited by machine resources. For example, an application program that employs the text preservation techniques described herein may have limited memory resources, so the program may impose some limit on the amount of text captured by the input viewer. However, such limits will be larger than limits for input fields.
This discussion will continue with a description of some structural aspects of some embodiments.
The computer system includes memory 407. The memory 407 may be system memory (e.g., one or more of cache, SRAM, DRAM, zero capacitor RAM, Twin Transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM, etc.) or any one or more of the above already described possible realizations of machine-readable media.
The system memory 407 embodies functionality to implement embodiments described above. In
In some embodiments, functionality for avoiding text loss may be partially (or entirely) implemented in hardware and/or on the processing unit 401. For example, the functionality may be implemented with an application specific integrated circuit, in logic implemented in the processing unit 401, in a co-processor on a peripheral device or card, etc. Furthermore, realizations may include fewer or additional components not illustrated in
This discussion will now proceed with a discussion of operations performed by some embodiments.
At block 504, the input field receives initial text less than or equal to a character limit for the input field. For example, see the input field 104 in
At block 506, the input processor determines whether there is additional text exceeding its character limit. If there is no excess text, the flow continues at block 518. However, if there is excess text, the flow continues at block 508.
At block 508, the input field receives excess text. The flow continues at block 510, where the input processor presents a text viewer including the initial and excess text. For example, referring to
At block 511, the input processor determines whether a user has activated a control that initiates a process for copying text from the input viewer. If the user has not initiated the copy process, the flow continues at block 518. If the user has initiated the copy process, the flow continues at block 512.
At block 512, the input processor copies all (or a selected portion of) the text in the input viewer to a destination, such as a system clipboard, application program, etc. In some embodiments, a user can configure the input viewer to copy text to a particular destination. The flow continues at block 514.
At block 514, the input processor determines whether a user has activated a control that initiates a process for saving text from the input viewer. If the save process has been initiated, the flow continues at block 516. Otherwise, the flow continues at block 518.
At block 516, the input processor saves all (or a selected portion of) the text in the input viewer to a destination, such as a user-identified file, or other suitable location. In some embodiments, a user can configure the input viewer to save text to a particular destination. The flow continues at block 518.
At block 518, the application program utilizes text entered in the input field. In some embodiments, the application program only utilizes text up to a character limit of the input field. For example, a browser application program may create a search query based on text up to the input field's character limit. From block 518, the flow ends.
This description includes exemplary systems, methods, techniques, instruction sequences, and computer program products that embody techniques of the present inventive subject matter. However, some embodiments may be practiced without these specific details. In some instances, well-known instruction instances, protocols, structures, and techniques have been omitted to avoid clouding the description of the inventive subject matter.
As will be appreciated by one skilled in the art, aspects of the present inventive subject matter may be embodied as a system, method or computer program product. Accordingly, aspects of the present inventive subject matter may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present inventive subject matter may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present inventive subject matter may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present inventive subject matter are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the inventive subject matter. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
While the embodiments are described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative and that the scope of the inventive subject matter is not limited to them. In general, techniques described herein may be implemented with facilities consistent with any hardware system or hardware systems. Many variations, modifications, additions, and improvements are possible.
Plural instances may be provided for components, operations or structures described herein as a single instance. Finally, boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the inventive subject matter. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the inventive subject matter.
Patent | Priority | Assignee | Title |
10897435, | Apr 14 2017 | Wistron Corporation | Instant messaging method and system, and electronic apparatus |
11281706, | Sep 26 2016 | SPLUNK INC | Multi-layer partition allocation for query execution |
11294941, | Sep 26 2016 | SPLUNK Inc.; SPLUNK INC | Message-based data ingestion to a data intake and query system |
11321321, | Sep 26 2016 | SPLUNK INC | Record expansion and reduction based on a processing task in a data intake and query system |
11341131, | Sep 26 2016 | SPLUNK INC | Query scheduling based on a query-resource allocation and resource availability |
11392654, | Sep 26 2016 | SPLUNK Inc. | Data fabric service system |
11416528, | Sep 26 2016 | SPLUNK INC | Query acceleration data store |
11442935, | Sep 26 2016 | SPLUNK INC | Determining a record generation estimate of a processing task |
11461334, | Sep 26 2016 | SPLUNK INC | Data conditioning for dataset destination |
11494380, | Oct 18 2019 | SPLUNK INC | Management of distributed computing framework components in a data fabric service system |
11500875, | Sep 25 2017 | SPLUNK Inc. | Multi-partitioning for combination operations |
11550847, | Sep 26 2016 | SPLUNK INC | Hashing bucket identifiers to identify search nodes for efficient query execution |
11562023, | Sep 26 2016 | SPLUNK INC | Merging buckets in a data intake and query system |
11567993, | Sep 26 2016 | SPLUNK INC | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
11580107, | Sep 26 2016 | SPLUNK INC | Bucket data distribution for exporting data to worker nodes |
11586627, | Sep 26 2016 | SPLUNK INC | Partitioning and reducing records at ingest of a worker node |
11586692, | Sep 26 2016 | SPLUNK Inc. | Streaming data processing |
11593377, | Sep 26 2016 | SPLUNK INC | Assigning processing tasks in a data intake and query system |
11599541, | Sep 26 2016 | SPLUNK INC | Determining records generated by a processing task of a query |
11604795, | Sep 26 2016 | SPLUNK INC | Distributing partial results from an external data system between worker nodes |
11615087, | Apr 29 2019 | SPLUNK Inc. | Search time estimate in a data intake and query system |
11615104, | Sep 26 2016 | SPLUNK INC | Subquery generation based on a data ingest estimate of an external data system |
11620336, | Sep 26 2016 | SPLUNK INC | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
11663227, | Sep 26 2016 | SPLUNK INC | Generating a subquery for a distinct data intake and query system |
11704313, | Oct 19 2020 | SPLUNK INC | Parallel branch operation using intermediary nodes |
11715051, | Apr 30 2019 | SPLUNK Inc.; SPLUNK INC | Service provider instance recommendations using machine-learned classifications and reconciliation |
11720537, | Apr 30 2018 | SPLUNK Inc. | Bucket merging for a data intake and query system using size thresholds |
11797618, | Sep 26 2016 | SPLUNK Inc. | Data fabric service system deployment |
11860874, | Sep 25 2017 | SPLUNK Inc. | Multi-partitioning data for combination operations |
11860940, | Sep 26 2016 | SPLUNK Inc. | Identifying buckets for query execution using a catalog of buckets |
11874691, | Sep 26 2016 | SPLUNK INC | Managing efficient query execution including mapping of buckets to search nodes |
Patent | Priority | Assignee | Title |
6735347, | Aug 08 2000 | International Business Machines Corporation | Method and apparatus for text extraction from cut image |
8627222, | Sep 12 2005 | Microsoft Technology Licensing, LLC | Expanded search and find user interface |
20020015167, | |||
20020122197, | |||
20040162877, | |||
20040255249, | |||
20060112333, | |||
20070061719, | |||
20070061754, | |||
20070088705, | |||
20080109752, | |||
20080270897, | |||
20100030749, | |||
20100064252, | |||
20100153880, | |||
20100174728, | |||
20100198768, | |||
20100257478, | |||
20110246941, | |||
20120281011, | |||
20130321340, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 13 2012 | BASILE, RYAN M | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028722 | /0358 | |
Jul 16 2012 | International Business Machines Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jan 15 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 13 2023 | REM: Maintenance Fee Reminder Mailed. |
Aug 28 2023 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 21 2018 | 4 years fee payment window open |
Jan 21 2019 | 6 months grace period start (w surcharge) |
Jul 21 2019 | patent expiry (for year 4) |
Jul 21 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 21 2022 | 8 years fee payment window open |
Jan 21 2023 | 6 months grace period start (w surcharge) |
Jul 21 2023 | patent expiry (for year 8) |
Jul 21 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 21 2026 | 12 years fee payment window open |
Jan 21 2027 | 6 months grace period start (w surcharge) |
Jul 21 2027 | patent expiry (for year 12) |
Jul 21 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |