public void run() { if (firstLine != -1) { diffView.setLocation(DiffController.DiffPane.Base, DiffController.LocationType.LineNumber, firstLine); } else if (diffView.getDifferenceCount() > 0) { diffView.setLocation(DiffController.DiffPane.Base, DiffController.LocationType.DifferenceIndex, index); } } });
@Override public boolean isPatch(File patchFile) throws IOException { return PatchUtils.isPatch(patchFile); }
@Override public void run () { view.setLocation(DiffController.DiffPane.Modified, DiffController.LocationType.LineNumber, rightLine); if (leftLine != -1) { view.getJComponent().putClientProperty("diff.smartScrollDisabled", Boolean.TRUE); view.setLocation(DiffController.DiffPane.Base, DiffController.LocationType.LineNumber, leftLine); } } });
private void onPrevButton() { DiffController view = currentSetup.getView(); DiffNode prev = showingFileComponent() ? getActiveFileComponent().getPreviousNode(currentSetup.getNode()) : null; if (view != null) { int currentDifferenceIndex = view.getDifferenceIndex(); if (currentSetupDiffLengthChanged >= 0) { // jump to the previous difference only when the diffs did not change (no difference was removed) // otherwise the previous difference might be missed --currentDifferenceIndex; } currentSetupDiffLengthChanged = view.getDifferenceCount(); if (currentDifferenceIndex < 0) { if (prev != null) { setDiffIndex(prev.getSetup(), -1, true); } } else if (currentDifferenceIndex < view.getDifferenceCount()) { view.setLocation(DiffController.DiffPane.Modified, DiffController.LocationType.DifferenceIndex, currentDifferenceIndex); } } else { if (prev != null) { setDiffIndex(prev.getSetup(), -1, true); } } refreshComponents(); }
@Override public void run() { try { if (isCanceled()) { showDiffError(NbBundle.getMessage(DiffResultsView.class, "MSG_DiffPanel_NoRevisions")); // NOI18N return; } final DiffController view = DiffController.createEnhanced(leftSource, rightSource); int leftMaxLineNumber = getLastLineIndex(leftSource); int rightMaxLineNumber = getLastLineIndex(rightSource); if (currentTask == ShowDiffTask.this) { currentDiff = view; setBottomComponent(currentDiff.getJComponent()); if (leftMaxLineNumber != -1) { setLocation(Math.min(leftMaxLineNumber, lineNumber), false); } if (rightMaxLineNumber != -1) { setLocation(Math.min(rightMaxLineNumber, lineNumber), true); } parent.refreshComponents(false); } } catch (IOException e) { Mercurial.LOG.log(Level.INFO, null, e); } } });
private void refreshComponents() { if (currentSetup == null) { nextAction.setEnabled(false); prevAction.setEnabled(false); return; } DiffController view = currentSetup.getView(); int currentDifferenceIndex = view != null ? view.getDifferenceIndex() : -1; if (view != null) { nextAction.setEnabled(showingFileComponent() && getActiveFileComponent().hasNextNode(currentSetup.getNode()) || currentDifferenceIndex < view.getDifferenceCount() - 1); } else { nextAction.setEnabled(false); } prevAction.setEnabled(showingFileComponent() && getActiveFileComponent().hasPreviousNode(currentSetup.getNode()) || currentDifferenceIndex > 0); }
boolean isNextEnabled() { if (currentDiff != null) { return currentIndex < treeView.getRowCount() - 1 || currentDifferenceIndex < currentDiff.getDifferenceCount() - 1; } else { return false; } }
private void writeConflict(Difference conflict) throws IOException { super.write(CHANGE_LEFT + leftName + "\n"); // NOI18N super.write(conflict.getFirstText()); super.write(CHANGE_DELIMETER + "\n"); // NOI18N super.write(conflict.getSecondText()); super.write(CHANGE_RIGHT + rightName + "\n"); // NOI18N }
public MergeConflictFileWriter(Writer delegate, FileObject fo, Difference[] conflicts, String leftName, String rightName) throws IOException { super(delegate); this.conflicts = conflicts; this.leftName = leftName; this.rightName = rightName; this.lineNumber = 1; this.currentConflict = 0; if (lineNumber == conflicts[currentConflict].getFirstStart()) { writeConflict(conflicts[currentConflict]); currentConflict++; } this.fo = fo; }
private int getMatchingLine (StreamSource ss2, StreamSource ss1, int requestedRightLine) { Reader currentReader = null, previousReader = null; try { currentReader = ss2.createReader(); previousReader = ss1.createReader(); return DiffUtils.getMatchingLine(currentReader, previousReader, requestedRightLine); } catch (IOException ex) { return -1; } finally { if (currentReader != null) { try { currentReader.close(); } catch (IOException ex) {} } if (previousReader != null) { try { previousReader.close(); } catch (IOException ex) {} } } } }
@Override public void applyPatch(final File patchFile) { final File context = selectPatchContext(); if (context != null) { try { PatchUtils.applyPatch(patchFile, context); } catch (IOException ex) { LOG.log(Level.INFO, ex.getMessage(), ex); } } }
private Document getSourceDocument(StreamSource ss) { Document sdoc = null; FileObject fo = ss.getLookup().lookup(FileObject.class); if (fo != null) { try { DataObject dao = DataObject.find(fo); if (dao.getPrimaryFile() == fo) { EditorCookie ec = dao.getCookie(EditorCookie.class); if (ec != null) { sdoc = ec.openDocument(); } } } catch (Exception e) { // fallback to other means of obtaining the source } } else { sdoc = ss.getLookup().lookup(Document.class); } return sdoc; }
private boolean setLocation (DiffController view) { boolean locationSet = false; if (view == currentDiff && view.getDifferenceCount() > 0) { locationSet = true; currentDifferenceIndex = showLastDifference ? view.getDifferenceCount() - 1 : 0; view.setLocation(DiffController.DiffPane.Base, DiffController.LocationType.DifferenceIndex, currentDifferenceIndex); } return locationSet; } }
private void setLocation (final int lineNumber, final boolean showLineInLocal) { if (currentDiff == null) { return; } if (showLineInLocal) { currentDiff.setLocation(DiffController.DiffPane.Modified, DiffController.LocationType.LineNumber, lineNumber); } else { currentDiff.getJComponent().putClientProperty("diff.smartScrollDisabled", Boolean.TRUE); currentDiff.setLocation(DiffController.DiffPane.Base, DiffController.LocationType.LineNumber, lineNumber); } }
/** Next that is driven by visibility. It continues to next not yet visible difference. */ private void onNextButton() { DiffController view = currentSetup.getView(); DiffNode next = showingFileComponent() ? getActiveFileComponent().getNextNode(currentSetup.getNode()) : null; if (view != null) { int currentDifferenceIndex = view.getDifferenceIndex(); if (currentSetupDiffLengthChanged >= 0) { // jump to the next difference only when the diffs did not change (no difference was removed) // otherwise the next difference might be missed ++currentDifferenceIndex; } currentSetupDiffLengthChanged = view.getDifferenceCount(); if (currentDifferenceIndex >= view.getDifferenceCount()) { // also passes for view.getDifferenceCount() == 0 if (next != null) { setDiffIndex(next.getSetup(), 0, true); } } else { view.setLocation(DiffController.DiffPane.Modified, DiffController.LocationType.DifferenceIndex, currentDifferenceIndex); } } else { if (next != null) { setDiffIndex(next.getSetup(), 0, true); } } refreshComponents(); }
@Override public void close () { if (start) { // not yet initialized return; } EditorCookie.Observable ec = getEditableCookie(remoteFile); if (ec != null && ec.getOpenedPanes() == null && !ec.isModified()) { ec.close(); } super.close(); }
public void write(String str) throws IOException { super.write(str); lineNumber += numChars('\n', str); if (currentConflict < conflicts.length && lineNumber >= conflicts[currentConflict].getFirstStart()) { writeConflict(conflicts[currentConflict]); currentConflict++; } }
void onNextButton() { if (currentDiff != null) { if (++currentDifferenceIndex >= currentDiff.getDifferenceCount()) { if (++currentIndex >= treeView.getRowCount()) currentIndex = 0; setDiffIndex(currentIndex, false); } else { currentDiff.setLocation(DiffController.DiffPane.Modified, DiffController.LocationType.DifferenceIndex, currentDifferenceIndex); parent.updateActions(); } } else { if (++currentIndex >= treeView.getRowCount()) currentIndex = 0; setDiffIndex(currentIndex, false); } }
void onPrevButton() { if (currentDiff != null) { if (--currentDifferenceIndex < 0) { if (--currentIndex < 0) currentIndex = treeView.getRowCount() - 1; setDiffIndex(currentIndex, true); } else if (currentDifferenceIndex < currentDiff.getDifferenceCount()) { currentDiff.setLocation(DiffController.DiffPane.Modified, DiffController.LocationType.DifferenceIndex, currentDifferenceIndex); parent.updateActions(); } } else { if (--currentIndex < 0) currentIndex = treeView.getRowCount() - 1; setDiffIndex(currentIndex, true); } }