mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[vcs-log] move id field to the VcsLogWindow
GitOrigin-RevId: 23f6686ad8e604913906a7910f335cad04d4385a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7644ed2f6b
commit
3c78abeae5
@@ -44,8 +44,8 @@ public class PostponableLogRefresher implements VcsLogRefresher {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Disposable addLogWindow(@NotNull VisiblePackRefresher refresher) {
|
||||
return addLogWindow(new VcsLogWindow(refresher));
|
||||
public Disposable addLogWindow(@NotNull String id, @NotNull VisiblePackRefresher refresher) {
|
||||
return addLogWindow(new VcsLogWindow(id, refresher));
|
||||
}
|
||||
|
||||
public static boolean keepUpToDate() {
|
||||
@@ -109,9 +109,11 @@ public class PostponableLogRefresher implements VcsLogRefresher {
|
||||
}
|
||||
|
||||
public static class VcsLogWindow {
|
||||
@NotNull private final String myId;
|
||||
@NotNull private final VisiblePackRefresher myRefresher;
|
||||
|
||||
public VcsLogWindow(@NotNull VisiblePackRefresher refresher) {
|
||||
public VcsLogWindow(@NotNull String id, @NotNull VisiblePackRefresher refresher) {
|
||||
myId = id;
|
||||
myRefresher = refresher;
|
||||
}
|
||||
|
||||
@@ -124,9 +126,14 @@ public class PostponableLogRefresher implements VcsLogRefresher {
|
||||
return true;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getId() {
|
||||
return myId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "VcsLogWindow '" + myRefresher + "'";
|
||||
return "VcsLogWindow '" + myId + "'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ public class VcsLogManager implements Disposable {
|
||||
disposable = myTabsLogRefresher.addTabToWatch(ui.getId(), ui.getRefresher(), isClosedOnDispose);
|
||||
}
|
||||
else {
|
||||
disposable = myPostponableRefresher.addLogWindow(ui.getRefresher());
|
||||
disposable = myPostponableRefresher.addLogWindow(ui.getId(), ui.getRefresher());
|
||||
}
|
||||
Disposer.register(ui, disposable);
|
||||
return ui;
|
||||
|
||||
@@ -46,7 +46,7 @@ public class VcsLogTabsWatcher implements Disposable {
|
||||
|
||||
@NotNull
|
||||
public Disposable addTabToWatch(@NotNull String tabId, @NotNull VisiblePackRefresher refresher, boolean isClosedOnDispose) {
|
||||
return myRefresher.addLogWindow(new VcsLogTab(refresher, tabId, isClosedOnDispose));
|
||||
return myRefresher.addLogWindow(new VcsLogTab(tabId, refresher, isClosedOnDispose));
|
||||
}
|
||||
|
||||
private void installContentListeners() {
|
||||
@@ -78,7 +78,7 @@ public class VcsLogTabsWatcher implements Disposable {
|
||||
return StreamEx.of(myRefresher.getLogWindows())
|
||||
.select(VcsLogTab.class)
|
||||
.filter(VcsLogTab::isClosedOnDispose)
|
||||
.map(VcsLogTab::getTabId)
|
||||
.map(VcsLogTab::getId)
|
||||
.toList();
|
||||
}
|
||||
|
||||
@@ -117,34 +117,22 @@ public class VcsLogTabsWatcher implements Disposable {
|
||||
}
|
||||
|
||||
private class VcsLogTab extends VcsLogWindow {
|
||||
@NotNull private final String myTabId;
|
||||
private final boolean myIsClosedOnDispose;
|
||||
|
||||
private VcsLogTab(@NotNull VisiblePackRefresher refresher, @NotNull String tabId, boolean isClosedOnDispose) {
|
||||
super(refresher);
|
||||
myTabId = tabId;
|
||||
private VcsLogTab(@NotNull String tabId, @NotNull VisiblePackRefresher refresher, boolean isClosedOnDispose) {
|
||||
super(tabId, refresher);
|
||||
myIsClosedOnDispose = isClosedOnDispose;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
String selectedTab = getSelectedTabId(getToolWindow());
|
||||
return selectedTab != null && myTabId.equals(selectedTab);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getTabId() {
|
||||
return myTabId;
|
||||
return selectedTab != null && getId().equals(selectedTab);
|
||||
}
|
||||
|
||||
public boolean isClosedOnDispose() {
|
||||
return myIsClosedOnDispose;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "VcsLogTab '" + myTabId + '\'';
|
||||
}
|
||||
}
|
||||
|
||||
private class MyToolWindowManagerListener implements ToolWindowManagerListener {
|
||||
@@ -170,8 +158,7 @@ public class VcsLogTabsWatcher implements Disposable {
|
||||
|
||||
@Override
|
||||
protected void selectionChanged(@NotNull String tabId) {
|
||||
VcsLogWindow logWindow = ContainerUtil.find(myRefresher.getLogWindows(),
|
||||
window -> window instanceof VcsLogTab && ((VcsLogTab)window).myTabId.equals(tabId));
|
||||
VcsLogWindow logWindow = ContainerUtil.find(myRefresher.getLogWindows(), window -> window.getId().equals(tabId));
|
||||
if (logWindow != null) {
|
||||
LOG.debug("Selected log window '" + logWindow + "'");
|
||||
VcsLogUsageTriggerCollector.triggerUsage(VcsLogUsageTriggerCollector.VcsLogEvent.TAB_NAVIGATED, null);
|
||||
|
||||
Reference in New Issue
Block a user