use of org.jetbrains.idea.svn.history.SvnChangeList in project intellij-community by JetBrains.
the class SvnSelectRevisionUtil method chooseCommittedChangeList.
@Nullable
public static SvnChangeList chooseCommittedChangeList(final Project project, final SvnRepositoryLocation location, final VirtualFile root) {
try {
final SvnCommittedChangesTableModel model = new SvnCommittedChangesTableModel(location, project, root, SvnVcs.getInstance(project).getCommittedChangesProvider().getColumns());
final ChangesBrowserDialog dlg = new ChangesBrowserDialog(project, model, ChangesBrowserDialog.Mode.Choose, null);
if (dlg.showAndGet()) {
return (SvnChangeList) dlg.getSelectedChangeList();
}
model.onBeforeClose();
} catch (VcsException e) {
Messages.showErrorDialog(e.getMessage(), SvnBundle.message("error.cannot.load.revisions"));
}
return null;
}
use of org.jetbrains.idea.svn.history.SvnChangeList in project intellij-community by JetBrains.
the class ToBeMergedDialog method refreshListStatus.
private void refreshListStatus(@NotNull final List<SvnChangeList> changeLists) {
if (myDisposed)
return;
ApplicationManager.getApplication().executeOnPooledThread(() -> {
int cnt = 10;
for (SvnChangeList list : changeLists) {
// at the moment we calculate only "merged" since we don;t have branch copy point
myStatusMap.put(list.getNumber(), toListMergeStatus(myMergeChecker.checkList(list)));
--cnt;
if (cnt <= 0) {
ApplicationManager.getApplication().invokeLater(() -> {
myRevisionsList.revalidate();
myRevisionsList.repaint();
});
cnt = 10;
}
}
myRevisionsList.revalidate();
myRevisionsList.repaint();
});
}
use of org.jetbrains.idea.svn.history.SvnChangeList in project intellij-community by JetBrains.
the class ToBeMergedDialog method addRevisionListListeners.
private void addRevisionListListeners() {
final int checkboxWidth = new JCheckBox().getPreferredSize().width;
new ClickListener() {
@Override
public boolean onClick(@NotNull MouseEvent e, int clickCount) {
final int idx = myRevisionsList.rowAtPoint(e.getPoint());
if (idx >= 0) {
final Rectangle baseRect = myRevisionsList.getCellRect(idx, 0, false);
baseRect.setSize(checkboxWidth, baseRect.height);
if (baseRect.contains(e.getPoint())) {
toggleInclusion(myRevisionsModel.getRowValue(idx));
myRevisionsList.repaint(baseRect);
}
}
return true;
}
}.installOn(myRevisionsList);
myRevisionsList.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
if (KeyEvent.VK_SPACE == e.getKeyCode()) {
List<SvnChangeList> selected = myRevisionsList.getSelectedObjects();
if (!selected.isEmpty()) {
selected.forEach(ToBeMergedDialog.this::toggleInclusion);
myRevisionsList.repaint();
e.consume();
}
}
}
});
}
use of org.jetbrains.idea.svn.history.SvnChangeList in project intellij-community by JetBrains.
the class ToBeMergedDialog method initUI.
private void initUI() {
final ListSelectionListener selectionListener = e -> {
List<SvnChangeList> changeLists = myRevisionsList.getSelectedObjects();
myAlreadyMerged.clear();
for (SvnChangeList changeList : changeLists) {
myAlreadyMerged.addAll(getAlreadyMergedPaths(changeList));
}
myRepositoryChangesBrowser.setChangesToDisplay(collectChanges(changeLists, false));
mySplitter.doLayout();
myRepositoryChangesBrowser.repaint();
};
final MyListCellRenderer listCellRenderer = new MyListCellRenderer();
myRevisionsList = new TableView<SvnChangeList>() {
@Override
public TableCellRenderer getCellRenderer(int row, int column) {
return listCellRenderer;
}
@Override
public void valueChanged(ListSelectionEvent e) {
super.valueChanged(e);
selectionListener.valueChanged(e);
}
};
myRevisionsList.setExpandableItemsEnabled(false);
new TableViewSpeedSearch<SvnChangeList>(myRevisionsList) {
@Override
protected String getItemText(@NotNull SvnChangeList element) {
return element.getComment();
}
};
myRevisionsList.setModelAndUpdateColumns(myRevisionsModel);
myRevisionsList.setTableHeader(null);
myRevisionsList.setShowGrid(false);
final AbstractBaseTagMouseListener mouseListener = new AbstractBaseTagMouseListener() {
@Override
public Object getTagAt(@NotNull MouseEvent e) {
JTable table = (JTable) e.getSource();
int row = table.rowAtPoint(e.getPoint());
int column = table.columnAtPoint(e.getPoint());
if (row == -1 || column == -1)
return null;
listCellRenderer.customizeCellRenderer(table, table.getValueAt(row, column), table.isRowSelected(row));
return listCellRenderer.myRenderer.getFragmentTagAt(e.getPoint().x - table.getCellRect(row, column, false).x);
}
};
mouseListener.installOn(myRevisionsList);
myMore100Action = new MoreXAction(100);
myMore500Action = new MoreXAction(500);
BorderLayoutPanel panel = JBUI.Panels.simplePanel().addToCenter(ScrollPaneFactory.createScrollPane(myRevisionsList)).addToTop(createToolbar().getComponent());
mySplitter = new Splitter(false, 0.7f);
mySplitter.setFirstComponent(panel);
myRepositoryChangesBrowser = new RepositoryChangesBrowser(myMergeContext.getProject(), Collections.<SvnChangeList>emptyList(), emptyList(), null);
myRepositoryChangesBrowser.getDiffAction().registerCustomShortcutSet(myRepositoryChangesBrowser.getDiffAction().getShortcutSet(), myRevisionsList);
setChangesDecorator();
mySplitter.setSecondComponent(myRepositoryChangesBrowser);
mySplitter.setDividerWidth(2);
addRevisionListListeners();
myPanel.add(mySplitter, BorderLayout.CENTER);
}
use of org.jetbrains.idea.svn.history.SvnChangeList in project intellij-community by JetBrains.
the class MergeCalculatorTask method loadChangeLists.
@NotNull
public static Pair<List<SvnChangeList>, Boolean> loadChangeLists(@NotNull MergeContext mergeContext, long beforeRevision, int size) throws VcsException {
ChangeBrowserSettings settings = new ChangeBrowserSettings();
if (beforeRevision > 0) {
settings.CHANGE_BEFORE = String.valueOf(beforeRevision);
settings.USE_CHANGE_BEFORE_FILTER = true;
}
List<SvnChangeList> changeLists = getChangeLists(mergeContext, settings, beforeRevision, size, (changeList, tree) -> changeList);
return Pair.create(changeLists.subList(0, min(size, changeLists.size())), changeLists.size() < size + 1);
}
Aggregations