[vcs-log] move id field to the VcsLogWindow

GitOrigin-RevId: 23f6686ad8e604913906a7910f335cad04d4385a
This commit is contained in:
Julia Beliaeva
2019-11-12 18:11:52 +00:00
committed by intellij-monorepo-bot
parent 7644ed2f6b
commit 3c78abeae5
3 changed files with 18 additions and 24 deletions
@@ -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);