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; } }
boolean isNextEnabled() { if (currentDiff != null) { return currentIndex < treeView.getRowCount() - 1 || currentDifferenceIndex < currentDiff.getDifferenceCount() - 1; } else { return false; } }
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); } } });
if (currentSetup.getView().getDifferenceCount() < currentSetupDiffLengthChanged) { currentSetupDiffLengthChanged = -1; } else if (currentSetupDiffLengthChanged != -1) { currentSetupDiffLengthChanged = currentSetup.getView().getDifferenceCount(); if (currentSetup.getView().getDifferenceCount() > 0 && requestedRightLine != -1) { final int leftLine = requestedLeftLine; final int rightLine = requestedRightLine;
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); } }
currentSetupDiffLengthChanged = view.getDifferenceCount(); if (showingFileComponent()) { fileComponentSetSelectedIndexContext = true; displayDiffView(); if (location == -1) { location = view.getDifferenceCount() - 1; if (location >=0 && location < view.getDifferenceCount()) { view.setLocation(DiffController.DiffPane.Modified, DiffController.LocationType.DifferenceIndex, location);
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(); }
/** 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(); }
final int firstLine = diffView.getDifferenceCount() == 0 ? edits.firstLine(oldDoc) : -1; SwingUtilities.invokeLater(new Runnable() {
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); }