Bug 50204 - Advanced text manipulation with the mouse
Summary: Advanced text manipulation with the mouse
Status: RESOLVED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Text (show other bugs)
Version: 3.0   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: JDT-Text-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2004-01-19 07:14 EST by newhoggy CLA
Modified: 2007-06-22 10:04 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description newhoggy CLA 2004-01-19 07:14:25 EST
1. Block selection.

Some editors such as Visual Studio and nedit support the selection of a
rectangular block of text by holding down either the ALT or CTRL key.  When a
rectangular block of text is selected and a cut command is invoked, all of the
text in the rectangular selection (exception newlines) are cut out.  Pasting the
cut text back into the editor will paste the text without inserting any new lines.

For instance, if the following selection was made on some text and the the cut
command invoked, the text on the clipboard will contain {"BCDE", "GHJI", "NOP",
"RSTU"}

 +-------+
A|B C D E|
 |       |
F|G H J I|K L
 |       |
M|N O P  |
 |       |
Q|R S T U|V W X Y Z
 +-------+

Once cut the remaining text looks like this:

A
 
F K L
  
M 
  
Q V W X Y Z
  
Then suppose the caret is place before the A, pasting the text back in we get this:

+-------+
|B C D E|A
|       |
|G H J I|F K L
|     +-+
|N O P|M 
|     +-+
|R S T U|Q V W X Y Z
+-------+

The boundary here demonstrates the pasted text only and does not represent a
selection.

2. Word selection

Eclipse supports word selection via the CTRL+LEFT or CTRL+RIGHT key combination,
but it does not fully support word selection via the mouse.  The limited amount
of support amounts to double clicking a word which will select that word.  It
does not support selecting multiple words.  Support for selecting multiple words
could be implemented like this:

 a. move mouse over a word
 b. <mousedown> <mouseup> <mousedown>
 c. move mouse over another word some place else
 d. <mouseup>

After step b, the word under the mouse pointer is selected already (not needing
the following <mouseup> to select the word).  During step c, the left of the
selected text is always at the next word boundary to the left of where step b
was performed and the right of the selected text is continuously update to
always be the first word boundary to the right of the selected text.  After step
d, the selection process is complete.

3. Drag and drop

It should be possible to drag text around using only the mouse.

 a. Move the mouse pointer over select text.
 b. <mousedown>
 c. Move mouse several pixels
 d. Move mouse to unselected portion of text.
 e. <mouseup>

After step c, the mouse pointer changes into a shape appropriate for drag and
drop operations.  While the mouse is moving of unselected text (perhaps while
doing step d) the caret follows the mouse pointer around indicating when the
selected text will be dropped should the mouse button be released.  If the mouse
pointer returns to the selected text, the caret should disappear.  Releasing the
mouse button here is a no-op.  If the mouse button is released on unslected
text, (ie. step e), the selected text is cut and then pasted where the mouse
pointer and caret is.

4. Mouse wheel

The mouse wheel should work during a drag and drop operation as well as a
selection operation and the display (selection or drag drop display cues (eg.
drop caret)) should be updated continuously.  Currently the mouse wheel does
work for selection, but the selection display cue is not update while the wheel
is adjusted.

5. Border hover scrolling

During a select or drag and drop operation, hovering the mouse near the boundary
of the code editor should cause the code editor towards that direction. 
Ideally, the scroll speed should be slow to moderate.  The scroll speed could be
sped up by wiggling the mouse.
Comment 1 Adrian Colyer CLA 2004-04-20 10:46:16 EDT
I think this was intended as a general JDT request, rather than specific to the 
aspectj support?
Comment 2 Dani Megert CLA 2004-04-20 13:25:24 EDT
Most of these requests are already reported as separate bugs (as it should be).
Could you check with bugzilla and file those requests that you think aren't
reported yet.

Thank.
Comment 3 Dani Megert CLA 2007-06-22 09:59:46 EDT
Get rid of deprecated state.
Comment 4 Dani Megert CLA 2007-06-22 10:04:55 EDT
.