mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
git: show an explanation bar in Compare with Current, describing what commits are currently shown: IDEA-216382
GitOrigin-RevId: 367cdce22e0633a6e8e793d1457945e4332f6250
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bd35d5db17
commit
425e369e6a
@@ -15,14 +15,13 @@ import com.intellij.openapi.vcs.VcsDataKeys;
|
||||
import com.intellij.openapi.vcs.changes.Change;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import com.intellij.ui.OnePixelSplitter;
|
||||
import com.intellij.ui.PopupHandler;
|
||||
import com.intellij.ui.SideBorder;
|
||||
import com.intellij.ui.*;
|
||||
import com.intellij.ui.components.JBLoadingPanel;
|
||||
import com.intellij.ui.components.panels.Wrapper;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.JBUI;
|
||||
import com.intellij.util.ui.StatusText;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.util.ui.table.ComponentsListFocusTraversalPolicy;
|
||||
import com.intellij.vcs.log.CommitId;
|
||||
import com.intellij.vcs.log.VcsFullCommitDetails;
|
||||
@@ -80,6 +79,7 @@ public class MainFrame extends JPanel implements DataProvider, Disposable {
|
||||
|
||||
@NotNull private final VcsLogCommitDetailsListPanel myDetailsPanel;
|
||||
@NotNull private final Splitter myDetailsSplitter;
|
||||
@NotNull private final EditorNotificationPanel myNotificationLabel;
|
||||
|
||||
public MainFrame(@NotNull VcsLogData logData,
|
||||
@NotNull AbstractVcsLogUi logUi,
|
||||
@@ -125,8 +125,14 @@ public class MainFrame extends JPanel implements DataProvider, Disposable {
|
||||
myDetailsPanel.installCommitSelectionListener(myGraphTable);
|
||||
VcsLogUiUtil.installDetailsListeners(myGraphTable, myDetailsPanel, myLogData, this);
|
||||
|
||||
myNotificationLabel = new EditorNotificationPanel(UIUtil.getPanelBackground());
|
||||
myNotificationLabel.setVisible(false);
|
||||
JPanel notificationBar = JBUI.Panels.simplePanel(myNotificationLabel);
|
||||
notificationBar.setBorder(JBUI.Borders.customLine(JBColor.border(), 1, 0, 0, 0));
|
||||
|
||||
JComponent toolbars = new JPanel(new BorderLayout());
|
||||
toolbars.add(myToolbar, BorderLayout.NORTH);
|
||||
toolbars.add(notificationBar, BorderLayout.CENTER);
|
||||
JComponent toolbarsAndTable = new JPanel(new BorderLayout());
|
||||
toolbarsAndTable.add(toolbars, BorderLayout.NORTH);
|
||||
toolbarsAndTable.add(VcsLogUiUtil.installProgress(VcsLogUiUtil.setupScrolledGraph(myGraphTable, SideBorder.TOP),
|
||||
@@ -154,6 +160,11 @@ public class MainFrame extends JPanel implements DataProvider, Disposable {
|
||||
setFocusTraversalPolicy(new MyFocusPolicy());
|
||||
}
|
||||
|
||||
public void setExplanationHtml(@Nullable String text) {
|
||||
myNotificationLabel.setText(text);
|
||||
myNotificationLabel.setVisible(text != null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Informs components that the actual DataPack has been updated (e.g. due to a log refresh). <br/>
|
||||
* Components may want to update their fields and/or rebuild.
|
||||
|
||||
@@ -86,6 +86,12 @@ class GitCompareBranchesUi(private val project: Project, private val repositorie
|
||||
parentDisposable: Disposable): VcsLogFilterUiEx {
|
||||
return MyFilterUi(logData, filterConsumer, properties, colorManager, filters, parentDisposable)
|
||||
}
|
||||
|
||||
override fun applyFiltersAndUpdateUi(filters: VcsLogFilterCollection) {
|
||||
super.applyFiltersAndUpdateUi(filters)
|
||||
val (start, end) = filters.get(VcsLogFilterCollection.RANGE_FILTER).getRange()
|
||||
mainFrame.setExplanationHtml(getExplanationText(start, end));
|
||||
}
|
||||
}
|
||||
|
||||
private class MyFilterUi(data: VcsLogData, filterConsumer: Consumer<VcsLogFilterCollection>, properties: MainVcsLogUiProperties,
|
||||
@@ -162,3 +168,6 @@ private fun VcsLogRangeFilter.asReversed(): VcsLogRangeFilter {
|
||||
val (start, end) = getRange()
|
||||
return fromRange(end, start)
|
||||
}
|
||||
|
||||
private fun getExplanationText(dontExist: String, existIn: String): String =
|
||||
"<html>Commits that exist in <code><b>$existIn</b></code> but don't exist in <code><b>$dontExist</b></code></html>"
|
||||
|
||||
Reference in New Issue
Block a user