report action usage statistics for package management UI (FUS-601)

GitOrigin-RevId: 094f509304244622e4c57c2289d2d36a56544857
This commit is contained in:
Sergey Simonchik
2019-12-18 18:31:49 +00:00
committed by intellij-monorepo-bot
parent d3d1e5941d
commit fac10bba0c
3 changed files with 51 additions and 0 deletions
@@ -86,12 +86,14 @@ public class InstalledPackagesPanel extends JPanel {
myUpgradeButton = new DumbAwareActionButton("Upgrade", IconUtil.getMoveUpIcon()) {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
PackageManagementUsageCollector.triggerUpgradePerformed(myProject, myPackageManagementService);
upgradeAction();
}
};
myInstallButton = new DumbAwareActionButton("Install", IconUtil.getAddIcon()) {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
PackageManagementUsageCollector.triggerInstallPerformed(myProject, myPackageManagementService);
if (myPackageManagementService != null) {
ManagePackagesDialog dialog = createManagePackagesDialog();
dialog.show();
@@ -102,6 +104,7 @@ public class InstalledPackagesPanel extends JPanel {
myUninstallButton = new DumbAwareActionButton("Uninstall", IconUtil.getRemoveIcon()) {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
PackageManagementUsageCollector.triggerUninstallPerformed(myProject, myPackageManagementService);
uninstallAction();
}
};
@@ -0,0 +1,47 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.webcore.packaging;
import com.intellij.internal.statistic.eventLog.FeatureUsageData;
import com.intellij.internal.statistic.service.fus.collectors.FUCounterUsageLogger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Pair;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Map;
public class PackageManagementUsageCollector {
private static final Map<String, String> CLASS_TO_NAME = ContainerUtil.newHashMap(
Pair.create("com.intellij.javascript.nodejs.settings.NodePackageManagementService", "Node.js"),
Pair.create("com.jetbrains.python.packaging.ui.PyPackageManagementService", "Python")
);
private PackageManagementUsageCollector() {}
public static void triggerInstallPerformed(@NotNull Project project, @Nullable PackageManagementService service) {
trigger(project, service, "install");
}
public static void triggerUpgradePerformed(@NotNull Project project, @Nullable PackageManagementService service) {
trigger(project, service, "upgrade");
}
public static void triggerUninstallPerformed(@NotNull Project project, @Nullable PackageManagementService service) {
trigger(project, service, "uninstall");
}
private static void trigger(@NotNull Project project, @Nullable PackageManagementService service, @NotNull String actionName) {
String serviceName = toKnownServiceName(service);
if (serviceName != null) {
FeatureUsageData data = new FeatureUsageData().addData("action", actionName);
FUCounterUsageLogger.getInstance().logEvent(project, "package.management.ui", serviceName, data);
}
}
@Nullable
private static String toKnownServiceName(@Nullable PackageManagementService service) {
return service != null ? CLASS_TO_NAME.get(service.getClass().getName()) : null;
}
}
@@ -919,6 +919,7 @@
<statistics.counterUsagesCollector groupId="tooltip.action.events" version="1"/>
<statistics.counterUsagesCollector groupId="rename.refactoring" version="1"/>
<statistics.counterUsagesCollector groupId="package.management.ui" version="1"/>
<statistics.projectUsagesCollector implementation="com.intellij.internal.statistic.collectors.fus.fileTypes.FileTypeUsagesCollector"/>
<statistics.validation.customWhiteListRule implementation="com.intellij.internal.statistic.collectors.fus.actions.persistence.ToolWindowCollector$ToolWindowUtilValidator" />