Java 类javax.swing.text.Position.Bias 实例源码
项目:incubator-netbeans
文件:ExtPlainView.java
@Override
public Shape modelToView(int pos, Shape a, Bias b) throws BadLocationException {
// line coordinates
Element map = getElement();
int lineIndex = map.getElementIndex(pos);
Rectangle lineArea = lineToRect(a, lineIndex);
// determine span from the start of the line
tabBase = lineArea.x;
Element line = map.getElement(lineIndex);
int lineStart = line.getStartOffset();
Segment s = getSegment();
getText(lineStart, pos - lineStart, s);
int xOffs = Utilities.getTabbedTextWidth(s, metrics, tabBase, this, lineStart);
// fill in the results and return
lineArea.x += xOffs;
lineArea.width = 1;
lineArea.height = metrics.getHeight();
return lineArea;
}
项目:incubator-netbeans
文件:TableUISupport.java
@Override
public int getNextMatch(String prefix, int startIndex, Bias bias) {
ListModel model = getModel();
if (!(model instanceof TableModel)) {
return super.getNextMatch(prefix, startIndex, bias);
}
TableModel tablesModel = (TableModel)model;
int max = tablesModel.getSize();
int increment = (bias == Bias.Forward) ? 1 : -1;
int index = startIndex;
prefix = prefix.toUpperCase();
do {
Table table = tablesModel.getElementAt(index);
String tableName = table.getName().toUpperCase();
if (tableName.startsWith(prefix)) {
return index;
}
index = (index + increment + max) % max;
} while (index != startIndex);
return -1;
}
项目:incubator-netbeans
文件:DrawEngineLineView.java
public float getPreferredSpan(int axis) {
switch (axis) {
case Y_AXIS:
return getEditorUI().getLineHeight();
case X_AXIS:
// try {
int offset = Math.max(0, getEndOffset() - 1);
Shape retShape = modelToView(offset, new Rectangle(), Position.Bias.Forward, false);
int ret = retShape.getBounds().x + retShape.getBounds().width;
return Math.max(ret, 1f);
// } catch (BadLocationException ble) {
// LOG.log(Level.INFO, "Can't determine x-axis span", ble); //NOI18N
// }
}
return 1f;
}
项目:incubator-netbeans
文件:Utilities.java
static Rectangle2D modelToView(JTextComponent tc, int pos, Position.Bias bias) throws BadLocationException {
Document doc = tc.getDocument();
if (doc instanceof AbstractDocument) {
((AbstractDocument)doc).readLock();
}
try {
Rectangle alloc = getVisibleEditorRect(tc);
if (alloc != null) {
View rootView = tc.getUI().getRootView(tc);
rootView.setSize(alloc.width, alloc.height);
Shape s = rootView.modelToView(pos, alloc, bias);
if (s != null) {
return s.getBounds2D();
}
}
} finally {
if (doc instanceof AbstractDocument) {
((AbstractDocument)doc).readUnlock();
}
}
return null;
}
项目:incubator-netbeans
文件:BaseTextUI.java
@Override
public void damageRange(JTextComponent t, int p0, int p1, Bias p0Bias, Bias p1Bias) {
View rootView = getRootView(getComponent());
boolean doDamageRange = true;
if (rootView.getViewCount() > 0) {
View view = rootView.getView(0);
if (view instanceof LockView) {
LockView lockView = (LockView) view;
lockView.lock();
try {
GapDocumentView docView = (GapDocumentView)view.getView(0);
doDamageRange = docView.checkDamageRange(p0, p1, p0Bias, p1Bias);
} finally {
lockView.unlock();
}
}
}
if (doDamageRange) {
// Patch since this used to be a fallback and the original views' impl cleared char area at p1 too
Document doc = t.getDocument();
if (doc != null && p1 < doc.getLength()) {
p1++;
}
super.damageRange(t, p0, p1, p0Bias, p1Bias);
}
}
项目:incubator-netbeans
文件:ModificationResultTest.java
public void testCRLF197538() throws Exception {
prepareTest("test\r\ntest\r\ntest\r\n");
PositionRef start1 = ces.createPositionRef(5, Bias.Forward);
PositionRef end1 = ces.createPositionRef(9, Bias.Forward);
ModificationResult.Difference diff1 = new ModificationResult.Difference(ModificationResult.Difference.Kind.CHANGE, start1, end1, "test", "abcde", Source.create(testFile));
PositionRef start2 = ces.createPositionRef(10, Bias.Forward);
PositionRef end2 = ces.createPositionRef(13, Bias.Forward);
ModificationResult.Difference diff2 = new ModificationResult.Difference(ModificationResult.Difference.Kind.CHANGE, start2, end2, "tes", "a", Source.create(testFile));
ModificationResult result = new ModificationResult();
result.diffs = new HashMap<FileObject, List<ModificationResult.Difference>>();
result.diffs.put(testFile, Arrays.asList(diff1, diff2));
result.commit();
assertEquals("test\r\nabcde\r\nat\r\n", testFile.asText());
}
项目:powertext
文件:WrappedSyntaxView.java
/**
* {@inheritDoc}
*/
@Override
public int yForLineContaining(Rectangle alloc, int offs)
throws BadLocationException {
if (isAllocationValid()) {
// TODO: make cached Y_AXIS offsets valid even with folding enabled
// to speed this back up!
Rectangle r = (Rectangle)modelToView(offs, alloc, Bias.Forward);
if (r!=null) {
if (host.isCodeFoldingEnabled()) {
int line = host.getLineOfOffset(offs);
FoldManager fm = host.getFoldManager();
if (fm.isLineHidden(line)) {
return -1;
}
}
return r.y;
}
}
return -1;
}
项目:incubator-netbeans
文件:TabView.java
@Override
public Shape modelToViewChecked(int offset, Shape alloc, Position.Bias bias) {
int startOffset = getStartOffset();
Rectangle2D.Double mutableBounds = ViewUtils.shape2Bounds(alloc);
int charIndex = offset - startOffset;
if (charIndex == 1) {
mutableBounds.x += firstTabWidth;
} else if (charIndex > 1) {
int extraTabCount = getLength() - 1;
if (extraTabCount > 0) {
mutableBounds.x += firstTabWidth + (charIndex - 1) * ((width - firstTabWidth) / extraTabCount);
}
}
mutableBounds.width = 1;
return mutableBounds;
}
项目:incubator-netbeans
文件:ParagraphViewChildren.java
/**
* Find next visual position in Y direction.
* In case of no line-wrap the method should return -1 for a given valid offset.
* and a valid offset when -1 is given as parameter.
* @param offset offset inside line or -1 to "enter" a line at the given x.
*/
int getNextVisualPositionX(ParagraphView pView, int offset, Bias bias, Shape pAlloc, boolean eastDirection, Bias[] biasRet) {
// Children already ensured to be measured by parent
int viewCount = size();
int index = (offset == -1)
? (eastDirection ? 0 : viewCount - 1)
: getViewIndex(pView, offset);
int increment = eastDirection ? 1 : -1;
int retOffset = -1;
// Cycle through individual views in left or right direction
for (; retOffset == -1 && index >= 0 && index < viewCount; index += increment) {
EditorView view = get(index); // Ensure valid children
Shape viewAlloc = getChildAllocation(index, pAlloc);
retOffset = view.getNextVisualPositionFromChecked(offset, bias, viewAlloc,
eastDirection ? SwingConstants.EAST : SwingConstants.WEST, biasRet);
if (retOffset == -1) {
offset = -1; // Continue by entering the paragraph from outside
}
}
return retOffset;
}
项目:incubator-netbeans
文件:HighlightsViewUtils.java
static Shape indexToView(TextLayout textLayout, Rectangle2D textLayoutBounds,
int index, Position.Bias bias, int maxIndex, Shape alloc)
{
if (textLayout == null) {
return alloc; // Leave given bounds
}
assert (maxIndex <= textLayout.getCharacterCount()) : "textLayout.getCharacterCount()=" + // NOI18N
textLayout.getCharacterCount() + " < maxIndex=" + maxIndex; // NOI18N
// If offset is >getEndOffset() use view-end-offset - otherwise it would throw exception from textLayout.getCaretInfo()
int charIndex = Math.min(index, maxIndex);
// When e.g. creating fold-preview the offset can be < startOffset
charIndex = Math.max(charIndex, 0);
TextHitInfo startHit;
TextHitInfo endHit;
if (bias == Position.Bias.Forward) {
startHit = TextHitInfo.leading(charIndex);
} else { // backward bias
startHit = TextHitInfo.trailing(charIndex - 1);
}
endHit = (charIndex < maxIndex) ? TextHitInfo.trailing(charIndex) : startHit;
if (textLayoutBounds == null) {
textLayoutBounds = ViewUtils.shapeAsRect(alloc);
}
return TextLayoutUtils.getRealAlloc(textLayout, textLayoutBounds, startHit, endHit);
}
项目:incubator-netbeans
文件:DocumentViewChildren.java
int getNextVisualPositionY(DocumentView docView, int offset, Bias bias, Shape docViewAlloc, boolean southDirection, Bias[] biasRet) {
double x = HighlightsViewUtils.getMagicX(docView, docView, offset, bias, docViewAlloc);
int pIndex = docView.getViewIndex(offset, bias);
int viewCount = size();
int increment = southDirection ? 1 : -1;
int retOffset = -1;
for (; retOffset == -1 && pIndex >= 0 && pIndex < viewCount; pIndex += increment) {
// Get paragraph view with valid children
ParagraphView pView = get(pIndex);
Shape pAlloc = getChildAllocation(docView, pIndex, docViewAlloc);
if (ensureParagraphViewChildrenValid(docView, pIndex, pView)) {
pView = get(pIndex);
pAlloc = getChildAllocation(docView, pIndex, docViewAlloc);
}
if (pView.checkLayoutUpdate(pIndex, pAlloc)) {
pAlloc = getChildAllocation(docView, pIndex, docViewAlloc);
}
docView.op.getTextLayoutCache().activate(pView);
retOffset = pView.children.getNextVisualPositionY(pView, offset, bias, pAlloc, southDirection, biasRet, x);
if (retOffset == -1) {
offset = -1; // Continue by entering the paragraph from outside
}
}
return retOffset;
}
项目:incubator-netbeans
文件:DocumentViewChildren.java
int getNextVisualPositionX(DocumentView docView, int offset, Bias bias, Shape docViewAlloc, boolean eastDirection, Bias[] biasRet) {
int pIndex = docView.getViewIndex(offset, bias);
int viewCount = size();
int increment = eastDirection ? 1 : -1;
int retOffset = -1;
for (; retOffset == -1 && pIndex >= 0 && pIndex < viewCount; pIndex += increment) {
// Get paragraph view with valid children
ParagraphView pView = get(pIndex);
Shape pAlloc = getChildAllocation(docView, pIndex, docViewAlloc);
if (ensureParagraphViewChildrenValid(docView, pIndex, pView)) {
pView = get(pIndex);
pAlloc = getChildAllocation(docView, pIndex, docViewAlloc);
}
if (pView.checkLayoutUpdate(pIndex, pAlloc)) {
pAlloc = getChildAllocation(docView, pIndex, docViewAlloc);
}
retOffset = pView.children.getNextVisualPositionX(pView, offset, bias, pAlloc, eastDirection, biasRet);
if (retOffset == -1) {
offset = -1; // Continue by entering the paragraph from outside
}
}
return retOffset;
}
项目:incubator-netbeans
文件:JavaElementRefFinder.java
private Occurrence createClassOccurrence(String matched, SpringBean bean) throws BadLocationException {
Location loc = bean.getLocation();
if (loc == null) {
return null;
}
int startOffset = loc.getOffset();
if (startOffset == -1) {
return null;
}
AttributeValueFinder finder = new AttributeValueFinder(syntaxSupport, startOffset); // NOI18N
if (!finder.find("class")) {
return null;
}
int foundOffset = finder.getFoundOffset();
String foundValue = finder.getValue();
int index = foundValue.indexOf(matched);
if (index == -1) {
return null;
}
String displayText = createClassDisplayText(finder, foundValue, index, matched.length());
PositionRef startRef = docAccess.createPositionRef(foundOffset + index, Bias.Forward);
PositionRef endRef = docAccess.createPositionRef(foundOffset + index + matched.length(), Bias.Backward);
return new JavaElementRefOccurrence(displayText, docAccess.getFileObject(), new PositionBounds(startRef, endRef));
}
项目:incubator-netbeans
文件:ErrorHintsProvider.java
private void findResult() {
if (isCanceled())
return;
int len = sdoc.getLength();
if (startOffset >= len || endOffset > len) {
if (!isCanceled() && ERR.isLoggable(ErrorManager.WARNING)) {
ERR.log(ErrorManager.WARNING, "document changed, but not canceled?" );
ERR.log(ErrorManager.WARNING, "len = " + len );
ERR.log(ErrorManager.WARNING, "startOffset = " + startOffset );
ERR.log(ErrorManager.WARNING, "endOffset = " + endOffset );
}
cancel();
return;
}
try {
result[0] = NbDocument.createPosition(sdoc, startOffset, Bias.Forward);
result[1] = NbDocument.createPosition(sdoc, endOffset, Bias.Backward);
} catch (BadLocationException e) {
ERR.notify(ErrorManager.ERROR, e);
}
}
项目:incubator-netbeans
文件:Utilities.java
public static List<PositionBounds> prepareSpansFor(FileObject file, Iterable<? extends int[]> spans) {
List<PositionBounds> result = new ArrayList<PositionBounds>();
try {
DataObject d = DataObject.find(file);
EditorCookie ec = d.getLookup().lookup(EditorCookie.class);
CloneableEditorSupport ces = (CloneableEditorSupport) ec;
result = new LinkedList<PositionBounds>();
for (int[] span : spans) {
PositionRef start = ces.createPositionRef(span[0], Bias.Forward);
PositionRef end = ces.createPositionRef(span[1], Bias.Forward);
result.add(new PositionBounds(start, end));
}
} catch (DataObjectNotFoundException ex) {
Exceptions.printStackTrace(ex);
}
return result;
}
项目:incubator-netbeans
文件:CPRenameRefactoringPlugin.java
private void refactorElements(ModificationResult modificationResult, RefactoringElementContext context, Collection<RefactoringElement> elementsToRename, String renameMsg) throws IOException, ParseException {
Map<FileObject, List<Difference>> file2diffs = new HashMap<>();
for (RefactoringElement re : elementsToRename) {
CloneableEditorSupport editor = GsfUtilities.findCloneableEditorSupport(re.getFile());
Difference diff = new Difference(Difference.Kind.CHANGE,
editor.createPositionRef(re.getRange().getStart(), Bias.Forward),
editor.createPositionRef(re.getRange().getEnd(), Bias.Backward),
re.getName(),
refactoring.getNewName(),
renameMsg);
List<Difference> diffs = file2diffs.get(re.getFile());
if (diffs == null) {
diffs = new ArrayList<>();
file2diffs.put(re.getFile(), diffs);
}
diffs.add(diff);
}
for (Entry<FileObject, List<Difference>> entry : file2diffs.entrySet()) {
modificationResult.addDifferences(entry.getKey(), entry.getValue());
}
}
项目:incubator-netbeans
文件:TableUISupport.java
@Override
public int getNextMatch(String prefix, int startIndex, Bias bias) {
ListModel model = getModel();
if (!(model instanceof TableModel)) {
return super.getNextMatch(prefix, startIndex, bias);
}
TableModel tablesModel = (TableModel)model;
int max = tablesModel.getSize();
int increment = (bias == Bias.Forward) ? 1 : -1;
int index = startIndex;
prefix = prefix.toUpperCase();
do {
Table table = tablesModel.getElementAt(index);
String tableName = table.getName().toUpperCase();
if (tableName.startsWith(prefix)) {
return index;
}
index = (index + increment + max) % max;
} while (index != startIndex);
return -1;
}
项目:incubator-netbeans
文件:FoldView.java
@Override
public Shape modelToViewChecked(int offset, Shape alloc, Position.Bias bias) {
// TextLayout textLayout = getTextLayout();
// if (textLayout == null) {
// return alloc; // Leave given bounds
// }
// Rectangle2D.Double bounds = ViewUtils.shape2Bounds(alloc);
// return bounds;
return alloc;
}
项目:incubator-netbeans
文件:FoldView.java
@Override
public int getNextVisualPositionFromChecked(int offset, Bias bias, Shape alloc, int direction, Bias[] biasRet) {
int startOffset = getStartOffset();
int retOffset = -1;
switch (direction) {
case WEST:
if (offset == -1) {
retOffset = startOffset;
} else {
retOffset = -1;
}
break;
case EAST:
if (offset == -1) {
retOffset = startOffset;
} else {
retOffset = -1;
}
break;
case NORTH:
case SOUTH:
break;
default:
throw new IllegalArgumentException("Bad direction: " + direction); // NOI18N
}
return retOffset;
}
项目:incubator-netbeans
文件:HighlightURLs.java
@Override
public synchronized void insertUpdate(DocumentEvent e) {
try {
modifiedSpans.add(new Position[] {
doc.createPosition(e.getOffset(), Bias.Backward),
doc.createPosition(e.getOffset() + e.getLength(), Bias.Forward),
});
} catch (BadLocationException ex) {
LOG.log(Level.FINE, null, ex);
}
schedule();
}
项目:incubator-netbeans
文件:DrawEngineLineView.java
@Override
public int getNextVisualPositionFrom(int pos, Bias b, Shape a, int direction, Bias[] biasRet) throws BadLocationException {
switch (direction) {
case WEST:
{
pos = super.getNextVisualPositionFrom(pos, b, a, direction, biasRet);
if (Character.isLowSurrogate(org.netbeans.lib.editor.util.swing.DocumentUtilities.getText(getDocument()).charAt(pos))) {
// Supplementary character
return super.getNextVisualPositionFrom(pos, b, a, direction, biasRet);
}
}
break;
case EAST:
{
pos = super.getNextVisualPositionFrom(pos, b, a, direction, biasRet);
if (Character.isLowSurrogate(org.netbeans.lib.editor.util.swing.DocumentUtilities.getText(getDocument()).charAt(pos))) {
// Supplementary character
return super.getNextVisualPositionFrom(pos, b, a, direction, biasRet);
}
}
break;
default:
pos = super.getNextVisualPositionFrom(pos, b, a, direction, biasRet);
break;
}
return pos;
}
项目:incubator-netbeans
文件:HighlightURLs.java
static void ensureAttached(final BaseDocument doc) {
if (doc.getProperty(REGISTERED_KEY) != null) {
return;
}
final HighlightURLs h = new HighlightURLs(doc);
doc.putProperty(REGISTERED_KEY, true);
if (h.coloring == null) {
LOG.log(Level.WARNING, "'url' coloring cannot be found");
return;
}
doc.addDocumentListener(h);
doc.render(new Runnable() {
@Override
public void run() {
try {
h.modifiedSpans.add(new Position[] {
doc.createPosition(0, Bias.Backward),
doc.createPosition(doc.getLength(), Bias.Forward)
});
} catch (BadLocationException ex) {
Exceptions.printStackTrace(ex);
}
}
});
h.schedule();
}
项目:incubator-netbeans
文件:Mark.java
void insert(BaseDocument doc, int offset) throws InvalidMarkException, BadLocationException {
BaseDocument ldoc = this.doc;
if (ldoc != null) {
throw new InvalidMarkException("Mark already inserted: mark=" + this // NOI18N
+ ", class=" + this.getClass()); // NOI18N
}
this.doc = doc;
ldoc = this.doc;
synchronized (ldoc) {
if (pos != null) {
throw new IllegalStateException("Mark already inserted: mark=" + this // NOI18N
+ ", class=" + this.getClass()); // NOI18N
}
if (offset < 0 || offset > ldoc.getLength() + 1) { // doc.getEndPosition() is valid
throw new BadLocationException("Invalid offset", offset); // NOI18N
}
// Deal with supplementary characters #164820
if (offset <= ldoc.getLength() && Character.isLowSurrogate(org.netbeans.lib.editor.util.swing.DocumentUtilities.getText(ldoc).charAt(offset))) {
if (bias == Bias.Forward && offset < ldoc.getLength()) {
offset++;
} else if (bias == Bias.Backward && offset > 0) {
offset--;
}
// If there is still a low surrogate after recalculating,
// treat it as an invalid document, just ignore and pass through.
// Since there should be a surrogate pair in Java and Unicode to
// represent a supplementary character.
}
pos = doc.createPosition(offset, bias);
}
}
项目:incubator-netbeans
文件:WrappedTextView.java
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException {
Rectangle result = new Rectangle();
result.setBounds (0, 0, charWidth, charHeight);
OutputDocument od = odoc();
if (od != null) {
int line, start;
synchronized (od.getLines().readLock()) {
line = Math.max(0, od.getLines().getLineAt(pos));
start = od.getLineStart(line);
}
int column = pos - start;
column = od.getLines().getNumLogicalChars(start, column);
int row = od.getLines().getLogicalLineCountAbove(line, charsPerLine);
int end = getLineEnd(line, od.getLines());
int len = od.getLines().getNumLogicalChars(start, end - start);
//#104307
if ((column >= charsPerLine)
&& charsPerLine != 0) {
row += (column % charsPerLine == 0 && column == len)
? column / charsPerLine - 1
: column / charsPerLine;
column = (column % charsPerLine == 0 && column == len)
? charsPerLine
: column % charsPerLine;
}
result.y = (row * charHeight) + fontDescent;
result.x = margin() + (column * charWidth);
// System.err.println(pos + "@" + result.x + "," + result.y + " line " + line + " start " + start + " row " + row + " col " + column);
}
return result;
}
项目:incubator-netbeans
文件:Utilities.java
@Deprecated
public static int getNextWord(JTextComponent c, int offset)
throws BadLocationException {
int nextWordOffset = getNextWord((BaseDocument)c.getDocument(), offset);
int nextVisualPosition = -1;
if (nextWordOffset > 0){
nextVisualPosition = c.getUI().getNextVisualPositionFrom(c,
nextWordOffset - 1, Position.Bias.Forward, javax.swing.SwingConstants.EAST, null);
}
return (nextVisualPosition == -1) ? nextWordOffset : nextVisualPosition;
}
项目:incubator-netbeans
文件:Utilities.java
@Deprecated
public static int getPreviousWord(JTextComponent c, int offset)
throws BadLocationException {
int prevWordOffset = getPreviousWord((BaseDocument)c.getDocument(), offset);
int nextVisualPosition = c.getUI().getNextVisualPositionFrom(c,
prevWordOffset, Position.Bias.Forward, javax.swing.SwingConstants.WEST, null);
if (nextVisualPosition == 0 && prevWordOffset == 0){
return 0;
}
return (nextVisualPosition + 1 == prevWordOffset) ? prevWordOffset : nextVisualPosition + 1;
}
项目:incubator-netbeans
文件:BaseTextUI.java
/** Next visually represented model location where caret can be placed.
* This version works without placing read lock on the document.
*/
public @Override int getNextVisualPositionFrom(JTextComponent t, int pos,
Position.Bias b, int direction, Position.Bias[] biasRet)
throws BadLocationException{
if (biasRet == null) {
biasRet = new Position.Bias[1];
biasRet[0] = Position.Bias.Forward;
}
return super.getNextVisualPositionFrom(t, pos, b, direction, biasRet);
}
项目:incubator-netbeans
文件:DiffUtilities.java
public void writeTo(String s) throws IOException, BadLocationException {
ModificationResult.Difference diff = diffs.size() > 0 ? diffs.get(diffs.size() - 1) : null;
if (diff != null && diff.getKind() == ModificationResult.Difference.Kind.REMOVE && diff.getEndPosition().getOffset() == offset) {
diffs.remove(diffs.size() - 1);
diffs.add(JavaSourceAccessor.getINSTANCE().createDifference(ModificationResult.Difference.Kind.CHANGE, diff.getStartPosition(), diff.getEndPosition(), diff.getOldText(), s, diff.getDescription(), src));
} else {
int off = converter != null ? converter.getOriginalPosition(offset) : offset;
if (off >= 0) {
diffs.add(JavaSourceAccessor.getINSTANCE().createDifference(ModificationResult.Difference.Kind.INSERT, prp.createPosition(off, Bias.Forward), prp.createPosition(off, Bias.Backward), null, s, userInfo.get(offset), src));
}
}
}
项目:incubator-netbeans
文件:DiffUtilities.java
public void skipThrough(char[] in, int pos) throws IOException, BadLocationException {
String origText = new String(in, offset, pos - offset);
org.netbeans.api.java.source.ModificationResult.Difference diff = diffs.size() > 0 ? diffs.get(diffs.size() - 1) : null;
if (diff != null && diff.getKind() == org.netbeans.api.java.source.ModificationResult.Difference.Kind.INSERT && diff.getStartPosition().getOffset() == offset) {
diffs.remove(diffs.size() - 1);
diffs.add(JavaSourceAccessor.getINSTANCE().createDifference(ModificationResult.Difference.Kind.CHANGE, diff.getStartPosition(), diff.getEndPosition(), origText, diff.getNewText(), diff.getDescription(), src));
} else {
int off = converter != null ? converter.getOriginalPosition(offset) : offset;
if (off >= 0) {
diffs.add(JavaSourceAccessor.getINSTANCE().createDifference(ModificationResult.Difference.Kind.REMOVE, prp.createPosition(off, Bias.Forward), prp.createPosition(off + origText.length(), Bias.Backward), origText, null, userInfo.get(offset), src));
}
}
offset = pos;
}
项目:incubator-netbeans
文件:DocTreePathHandle.java
private static Position createPositionRef(FileObject file, int position, Position.Bias bias) {
try {
PositionRefProvider prp = PositionRefProvider.get(file);
Position positionRef = prp != null ? prp.createPosition(position, bias) : null;
if (positionRef != null) {
return positionRef;
}
} catch (IOException ex) {
Exceptions.printStackTrace(ex);
}
throw new IllegalStateException("Cannot create PositionRef for file " + file.getPath() + ". CloneableEditorSupport not found");
}
项目:incubator-netbeans
文件:TreePathHandle.java
private static Position createPositionRef(FileObject file, int position, Position.Bias bias) {
try {
PositionRefProvider prp = PositionRefProvider.get(file);
Position positionRef = prp != null ? prp.createPosition(position, bias) : null;
if (positionRef != null) {
return positionRef;
}
} catch (IOException ex) {
Exceptions.printStackTrace(ex);
}
throw new IllegalStateException("Cannot create PositionRef for file " + file.getPath() + ". CloneableEditorSupport not found");
}
项目:incubator-netbeans
文件:ModificationResultTest.java
private ModificationResult prepareInsertResult() throws Exception {
PositionRef start1 = ces.createPositionRef(5, Bias.Forward);
ModificationResult.Difference diff1 = new ModificationResult.Difference(ModificationResult.Difference.Kind.INSERT, start1, start1, "", "new-test1\n", Source.create(testFile));
PositionRef start2 = ces.createPositionRef(10, Bias.Forward);
ModificationResult.Difference diff2 = new ModificationResult.Difference(ModificationResult.Difference.Kind.INSERT, start2, start2, "", "new-test2\n", Source.create(testFile));
ModificationResult result = new ModificationResult();
result.diffs = new HashMap<FileObject, List<ModificationResult.Difference>>();
result.diffs.put(testFile, Arrays.asList(diff1, diff2));
return result;
}
项目:incubator-netbeans
文件:ModificationResultTest.java
private ModificationResult prepareInsertResultFiltered() throws Exception {
PositionRef start1 = ces.createPositionRef(4, Bias.Forward);
ModificationResult.Difference diff1 = new ModificationResult.Difference(ModificationResult.Difference.Kind.INSERT, start1, start1, "", "new-test1\n", Source.create(testFile));
PositionRef start2 = ces.createPositionRef(8, Bias.Forward);
ModificationResult.Difference diff2 = new ModificationResult.Difference(ModificationResult.Difference.Kind.INSERT, start2, start2, "", "new-test2\n", Source.create(testFile));
ModificationResult result = new ModificationResult();
result.diffs = new HashMap<FileObject, List<ModificationResult.Difference>>();
result.diffs.put(testFile, Arrays.asList(diff1, diff2));
return result;
}
项目:incubator-netbeans
文件:ModificationResultTest.java
private ModificationResult prepareRemoveResult() throws Exception {
PositionRef start1 = ces.createPositionRef(5, Bias.Forward);
PositionRef end1 = ces.createPositionRef(9, Bias.Forward);
ModificationResult.Difference diff1 = new ModificationResult.Difference(ModificationResult.Difference.Kind.REMOVE, start1, end1, "test", "", Source.create(testFile));
PositionRef start2 = ces.createPositionRef(11, Bias.Forward);
PositionRef end2 = ces.createPositionRef(12, Bias.Forward);
ModificationResult.Difference diff2 = new ModificationResult.Difference(ModificationResult.Difference.Kind.REMOVE, start2, end2, "e", "", Source.create(testFile));
ModificationResult result = new ModificationResult();
result.diffs = new HashMap<FileObject, List<ModificationResult.Difference>>();
result.diffs.put(testFile, Arrays.asList(diff1, diff2));
return result;
}
项目:incubator-netbeans
文件:ModificationResultTest.java
private ModificationResult prepareModificationResult1() throws Exception {
PositionRef start1 = ces.createPositionRef(5, Bias.Forward);
PositionRef end1 = ces.createPositionRef(9, Bias.Forward);
ModificationResult.Difference diff1 = new ModificationResult.Difference(ModificationResult.Difference.Kind.CHANGE, start1, end1, "test", "ab", Source.create(testFile));
PositionRef start2 = ces.createPositionRef(11, Bias.Forward);
PositionRef end2 = ces.createPositionRef(13, Bias.Forward);
ModificationResult.Difference diff2 = new ModificationResult.Difference(ModificationResult.Difference.Kind.CHANGE, start2, end2, "es", "a", Source.create(testFile));
ModificationResult result = new ModificationResult();
result.diffs = new HashMap<FileObject, List<ModificationResult.Difference>>();
result.diffs.put(testFile, Arrays.asList(diff1, diff2));
return result;
}
项目:incubator-netbeans
文件:ModificationResultTest.java
private ModificationResult prepareModificationResult2() throws Exception {
PositionRef start1 = ces.createPositionRef(5, Bias.Forward);
PositionRef end1 = ces.createPositionRef(9, Bias.Forward);
ModificationResult.Difference diff1 = new ModificationResult.Difference(ModificationResult.Difference.Kind.CHANGE, start1, end1, "test", "abcde", Source.create(testFile));
PositionRef start2 = ces.createPositionRef(11, Bias.Forward);
PositionRef end2 = ces.createPositionRef(13, Bias.Forward);
ModificationResult.Difference diff2 = new ModificationResult.Difference(ModificationResult.Difference.Kind.CHANGE, start2, end2, "es", "a", Source.create(testFile));
ModificationResult result = new ModificationResult();
result.diffs = new HashMap<FileObject, List<ModificationResult.Difference>>();
result.diffs.put(testFile, Arrays.asList(diff1, diff2));
return result;
}
项目:incubator-netbeans
文件:TabView.java
@Override
public int getNextVisualPositionFromChecked(int offset, Bias bias, Shape alloc, int direction, Bias[] biasRet) {
int startOffset = getStartOffset();
int endOffset = startOffset + getLength();
int retOffset = -1;
switch (direction) {
case EAST:
biasRet[0] = Bias.Forward;
if (offset == -1) {
retOffset = getStartOffset();
} else {
retOffset = offset + 1;
if (retOffset >= endOffset) {
retOffset = endOffset;
biasRet[0] = Bias.Backward;
}
}
break;
case WEST:
biasRet[0] = Bias.Forward;
if (offset == -1) {
retOffset = endOffset - 1;
} else {
retOffset = offset - 1;
if (retOffset < startOffset) {
retOffset = -1;
}
}
break;
case View.NORTH:
case View.SOUTH:
break; // Return -1
default:
throw new IllegalArgumentException("Bad direction: " + direction);
}
return retOffset;
}
项目:incubator-netbeans
文件:NewlineView.java
@Override
public int getNextVisualPositionFromChecked(int offset, Bias bias, Shape alloc, int direction, Bias[] biasRet) {
int retOffset;
biasRet[0] = Bias.Forward; // BaseCaret ignores bias
int viewStartOffset = getStartOffset();
switch (direction) {
case View.EAST:
if (offset == -1) {
retOffset = viewStartOffset;
} else {
retOffset = -1;
}
break;
case View.WEST:
if (offset == -1) {
retOffset = viewStartOffset;
} else if (offset == viewStartOffset) { // Regular offset
retOffset = -1;
} else {
retOffset = viewStartOffset;
}
break;
case View.NORTH:
case View.SOUTH:
retOffset = -1;
break;
default:
throw new IllegalArgumentException("Bad direction: " + direction);
}
return retOffset;
}
项目:incubator-netbeans
文件:DocumentView.java
@Override
public int getViewIndex(int offset, Position.Bias b) {
if (b == Position.Bias.Backward) {
offset--;
}
return getViewIndex(offset);
}
项目:incubator-netbeans
文件:DocumentView.java
@Override
public Shape modelToViewChecked(int offset, Shape alloc, Bias bias) {
if (lock()) {
try {
return modelToViewNeedsLock(offset, alloc, bias);
} finally {
unlock();
}
}
return null;
}