|
@@ -95,12 +95,11 @@ public final class TextPane extends JComponent implements AdjustmentListener,
|
95
|
95
|
if (e.getXOnScreen() > getLocationOnScreen().getX() && e.
|
96
|
96
|
getXOnScreen() < (getLocationOnScreen().
|
97
|
97
|
getX() + getWidth()) && e.getModifiersEx() ==
|
98
|
|
- MouseEvent.BUTTON1_DOWN_MASK) {
|
|
98
|
+ MouseEvent.BUTTON1_DOWN_MASK) {
|
99
|
99
|
if (getLocationOnScreen().getY() > e.getYOnScreen()) {
|
100
|
100
|
setScrollBarPosition(scrollBar.getValue() - 1);
|
101
|
|
- }
|
102
|
|
- else if (getLocationOnScreen().getY() + getHeight() <
|
103
|
|
- e.getYOnScreen()) {
|
|
101
|
+ } else if (getLocationOnScreen().getY() + getHeight() <
|
|
102
|
+ e.getYOnScreen()) {
|
104
|
103
|
setScrollBarPosition(scrollBar.getValue() + 1);
|
105
|
104
|
}
|
106
|
105
|
canvas.highlightEvent(MouseEventType.DRAG, e);
|
|
@@ -153,8 +152,8 @@ public final class TextPane extends JComponent implements AdjustmentListener,
|
153
|
152
|
scrollBar.setMaximum(lines);
|
154
|
153
|
|
155
|
154
|
if (!scrollBar.getValueIsAdjusting() && scrollBar.getValue() ==
|
156
|
|
- lines -
|
157
|
|
- linesAllowed) {
|
|
155
|
+ lines -
|
|
156
|
+ linesAllowed) {
|
158
|
157
|
setScrollBarPosition(lines);
|
159
|
158
|
}
|
160
|
159
|
}
|
|
@@ -179,8 +178,7 @@ public final class TextPane extends JComponent implements AdjustmentListener,
|
179
|
178
|
if (scrollBar.isEnabled()) {
|
180
|
179
|
if (e.getWheelRotation() > 0) {
|
181
|
180
|
setScrollBarPosition(scrollBar.getValue() + e.getScrollAmount());
|
182
|
|
- }
|
183
|
|
- else {
|
|
181
|
+ } else {
|
184
|
182
|
setScrollBarPosition(scrollBar.getValue() - e.getScrollAmount());
|
185
|
183
|
}
|
186
|
184
|
}
|
|
@@ -217,8 +215,8 @@ public final class TextPane extends JComponent implements AdjustmentListener,
|
217
|
215
|
}
|
218
|
216
|
|
219
|
217
|
for (int i = selectedRange.getStartLine(); i <=
|
220
|
|
- selectedRange.getEndLine();
|
221
|
|
- i++) {
|
|
218
|
+ selectedRange.getEndLine();
|
|
219
|
+ i++) {
|
222
|
220
|
if (i != selectedRange.getStartLine()) {
|
223
|
221
|
selectedText.append('\n');
|
224
|
222
|
}
|
|
@@ -226,23 +224,24 @@ public final class TextPane extends JComponent implements AdjustmentListener,
|
226
|
224
|
return selectedText.toString();
|
227
|
225
|
}
|
228
|
226
|
final String line = document.getLine(i).getText();
|
229
|
|
- if (selectedRange.getEndLine() == selectedRange.getStartLine()) {
|
230
|
|
- //loop through range
|
231
|
|
- selectedText.append(line.substring(selectedRange.getStartPos(),
|
232
|
|
- selectedRange.getEndPos()));
|
233
|
|
- }
|
234
|
|
- else if (i == selectedRange.getStartLine()) {
|
235
|
|
- //loop from start of range to the end
|
236
|
|
- selectedText.append(line.substring(selectedRange.getStartPos(),
|
237
|
|
- line.length()));
|
238
|
|
- }
|
239
|
|
- else if (i == selectedRange.getEndLine()) {
|
240
|
|
- //loop from start to end of range
|
241
|
|
- selectedText.append(line.substring(0, selectedRange.getEndPos()));
|
242
|
|
- }
|
243
|
|
- else {
|
244
|
|
- //loop the whole line
|
245
|
|
- selectedText.append(line);
|
|
227
|
+ if (!line.isEmpty()) {
|
|
228
|
+ if (selectedRange.getEndLine() == selectedRange.getStartLine()) {
|
|
229
|
+ //loop through range
|
|
230
|
+ selectedText.append(line.substring(
|
|
231
|
+ selectedRange.getStartPos(),
|
|
232
|
+ selectedRange.getEndPos()));
|
|
233
|
+ } else if (i == selectedRange.getStartLine()) {
|
|
234
|
+ //loop from start of range to the end
|
|
235
|
+ selectedText.append(line.substring(
|
|
236
|
+ selectedRange.getStartPos(), line.length()));
|
|
237
|
+ } else if (i == selectedRange.getEndLine()) {
|
|
238
|
+ //loop from start to end of range
|
|
239
|
+ selectedText.append(line.substring(0, selectedRange.
|
|
240
|
+ getEndPos()));
|
|
241
|
+ } else {
|
|
242
|
+ //loop the whole line
|
|
243
|
+ selectedText.append(line);
|
|
244
|
+ }
|
246
|
245
|
}
|
247
|
246
|
}
|
248
|
247
|
|
|
@@ -266,7 +265,7 @@ public final class TextPane extends JComponent implements AdjustmentListener,
|
266
|
265
|
public boolean hasSelectedRange() {
|
267
|
266
|
final LinePosition selectedRange = canvas.getSelectedRange();
|
268
|
267
|
return !(selectedRange.getStartLine() == selectedRange.getEndLine() &&
|
269
|
|
- selectedRange.getStartPos() == selectedRange.getEndPos());
|
|
268
|
+ selectedRange.getStartPos() == selectedRange.getEndPos());
|
270
|
269
|
}
|
271
|
270
|
|
272
|
271
|
/**
|
|
@@ -302,11 +301,11 @@ public final class TextPane extends JComponent implements AdjustmentListener,
|
302
|
301
|
return "";
|
303
|
302
|
}
|
304
|
303
|
final int[] indexes =
|
305
|
|
- canvas.getSurroundingWordIndexes(document.getLine(lineNumber).
|
|
304
|
+ canvas.getSurroundingWordIndexes(document.getLine(lineNumber).
|
306
|
305
|
getText(),
|
307
|
|
- index);
|
|
306
|
+ index);
|
308
|
307
|
return document.getLine(lineNumber).getText().substring(indexes[0],
|
309
|
|
- indexes[1]);
|
|
308
|
+ indexes[1]);
|
310
|
309
|
}
|
311
|
310
|
|
312
|
311
|
/**
|