mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[git][hg] IDEA-101135 Install hg widget to the same place as in Git
Move installation to and removal from the status bar to a common utility class, reuse both in Git and Hg.
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.dvcs;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.wm.StatusBar;
|
||||
import com.intellij.openapi.wm.StatusBarWidget;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Kirill Likhodedov
|
||||
*/
|
||||
public class DvcsUtil {
|
||||
|
||||
public static void installStatusBarWidget(@NotNull Project project, @NotNull StatusBarWidget widget) {
|
||||
StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
|
||||
if (statusBar != null) {
|
||||
statusBar.addWidget(widget, "after " + (SystemInfo.isMac ? "Encoding" : "InsertOverwrite"), project);
|
||||
}
|
||||
}
|
||||
|
||||
public static void removeStatusBarWidget(@NotNull Project project, @NotNull StatusBarWidget widget) {
|
||||
StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
|
||||
if (statusBar != null) {
|
||||
statusBar.removeWidget(widget.ID());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package git4idea;
|
||||
|
||||
import com.intellij.dvcs.DvcsUtil;
|
||||
import com.intellij.execution.ui.ConsoleViewContentType;
|
||||
import com.intellij.notification.NotificationDisplayType;
|
||||
import com.intellij.notification.NotificationGroup;
|
||||
@@ -31,7 +32,6 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.MessageType;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.vcs.*;
|
||||
import com.intellij.openapi.vcs.changes.Change;
|
||||
import com.intellij.openapi.vcs.changes.ChangeProvider;
|
||||
@@ -49,8 +49,6 @@ import com.intellij.openapi.vcs.update.UpdateEnvironment;
|
||||
import com.intellij.openapi.vcs.versionBrowser.CommittedChangeList;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.wm.StatusBar;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.util.containers.ComparatorDelegate;
|
||||
import com.intellij.util.containers.Convertor;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
@@ -349,11 +347,8 @@ public class GitVcs extends AbstractVcs<CommittedChangeList> {
|
||||
GitProjectLogManager.getInstance(myProject).activate();
|
||||
|
||||
if (!ApplicationManager.getApplication().isHeadlessEnvironment()) {
|
||||
StatusBar statusBar = WindowManager.getInstance().getStatusBar(myProject);
|
||||
if (statusBar != null) {
|
||||
myBranchWidget = new GitBranchWidget(myProject);
|
||||
statusBar.addWidget(myBranchWidget, "after " + (SystemInfo.isMac ? "Encoding" : "InsertOverwrite"), myProject);
|
||||
}
|
||||
myBranchWidget = new GitBranchWidget(myProject);
|
||||
DvcsUtil.installStatusBarWidget(myProject, myBranchWidget);
|
||||
}
|
||||
if (myRepositoryForAnnotationsListener == null) {
|
||||
myRepositoryForAnnotationsListener = new GitRepositoryForAnnotationsListener(myProject);
|
||||
@@ -388,9 +383,8 @@ public class GitVcs extends AbstractVcs<CommittedChangeList> {
|
||||
NewGitUsersComponent.getInstance(myProject).deactivate();
|
||||
GitProjectLogManager.getInstance(myProject).deactivate();
|
||||
|
||||
StatusBar statusBar = WindowManager.getInstance().getStatusBar(myProject);
|
||||
if (statusBar != null && myBranchWidget != null) {
|
||||
statusBar.removeWidget(myBranchWidget.ID());
|
||||
if (myBranchWidget != null) {
|
||||
DvcsUtil.removeStatusBarWidget(myProject, myBranchWidget);
|
||||
myBranchWidget = null;
|
||||
}
|
||||
((GitCommitsSequentialIndex) ServiceManager.getService(GitCommitsSequentially.class)).deactivate();
|
||||
|
||||
@@ -15,15 +15,14 @@
|
||||
*/
|
||||
package org.zmlx.hg4idea.status.ui;
|
||||
|
||||
import com.intellij.dvcs.DvcsUtil;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManagerEvent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.wm.StatusBar;
|
||||
import com.intellij.openapi.wm.StatusBarWidget;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.openapi.wm.impl.status.EditorBasedWidget;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
@@ -164,17 +163,11 @@ public class HgStatusWidget extends EditorBasedWidget implements StatusBarWidget
|
||||
myBusConnection = project.getMessageBus().connect();
|
||||
myBusConnection.subscribe(HgVcs.STATUS_TOPIC, this);
|
||||
|
||||
StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
|
||||
if (null != statusBar) {
|
||||
statusBar.addWidget(this, project);
|
||||
}
|
||||
DvcsUtil.installStatusBarWidget(myProject, this);
|
||||
}
|
||||
|
||||
public void deactivate() {
|
||||
StatusBar statusBar = WindowManager.getInstance().getStatusBar(getProject());
|
||||
if (null != statusBar) {
|
||||
statusBar.removeWidget(ID());
|
||||
}
|
||||
DvcsUtil.removeStatusBarWidget(myProject, this);
|
||||
}
|
||||
|
||||
private void update() {
|
||||
|
||||
Reference in New Issue
Block a user