mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-180874 Set click counters for New, Open and Import Project actions
ability to track actions not registered in xml
This commit is contained in:
@@ -28,10 +28,14 @@ import java.io.File;
|
||||
|
||||
public class NewProjectFromVCSGroup extends CheckoutActionGroup {
|
||||
|
||||
public NewProjectFromVCSGroup() {
|
||||
super("NewProjectFromVCS");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected AnAction createAction(CheckoutProvider provider) {
|
||||
return new CheckoutAction(provider) {
|
||||
return new CheckoutAction(provider, myIdPrefix) {
|
||||
@Override
|
||||
protected CheckoutProvider.Listener getListener(Project project) {
|
||||
return new CheckoutProvider.Listener() {
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
* Copyright 2000-2017 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.internal.statistic.customUsageCollectors.actions;
|
||||
|
||||
public interface ActionIdProvider {
|
||||
String getId();
|
||||
}
|
||||
+4
@@ -24,6 +24,7 @@ import com.intellij.ide.plugins.IdeaPluginDescriptor;
|
||||
import com.intellij.ide.plugins.PluginManager;
|
||||
import com.intellij.ide.plugins.PluginManagerCore;
|
||||
import com.intellij.idea.IdeaLogger;
|
||||
import com.intellij.internal.statistic.customUsageCollectors.actions.ActionIdProvider;
|
||||
import com.intellij.internal.statistic.customUsageCollectors.actions.ActionsCollector;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
@@ -1170,6 +1171,9 @@ public final class ActionManagerImpl extends ActionManagerEx implements Disposab
|
||||
if (action != null) {
|
||||
myPrevPerformedActionId = myLastPreformedActionId;
|
||||
myLastPreformedActionId = getId(action);
|
||||
if (myLastPreformedActionId == null && action instanceof ActionIdProvider) {
|
||||
myLastPreformedActionId = ((ActionIdProvider)action).getId();
|
||||
}
|
||||
//noinspection AssignmentToStaticFieldFromInstanceMethod
|
||||
IdeaLogger.ourLastActionId = myLastPreformedActionId;
|
||||
ActionsCollector.getInstance().record(myLastPreformedActionId);
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.openapi.vcs.checkout;
|
||||
|
||||
import com.intellij.internal.statistic.customUsageCollectors.actions.ActionIdProvider;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
@@ -22,12 +23,14 @@ import com.intellij.openapi.project.*;
|
||||
import com.intellij.openapi.vcs.CheckoutProvider;
|
||||
import com.intellij.openapi.vcs.ProjectLevelVcsManager;
|
||||
|
||||
public class CheckoutAction extends AnAction implements DumbAware {
|
||||
public class CheckoutAction extends AnAction implements DumbAware, ActionIdProvider {
|
||||
private final CheckoutProvider myProvider;
|
||||
private final String myIdPrefix;
|
||||
|
||||
public CheckoutAction(final CheckoutProvider provider) {
|
||||
public CheckoutAction(CheckoutProvider provider, String idPrefix) {
|
||||
super(provider.getVcsName());
|
||||
myProvider = provider;
|
||||
myIdPrefix = idPrefix;
|
||||
}
|
||||
|
||||
public void actionPerformed(final AnActionEvent e) {
|
||||
@@ -39,4 +42,9 @@ public class CheckoutAction extends AnAction implements DumbAware {
|
||||
protected CheckoutProvider.Listener getListener(Project project) {
|
||||
return ProjectLevelVcsManager.getInstance(project).getCompositeCheckoutListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return myIdPrefix + "." + myProvider.getVcsName().replaceAll("_", "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,17 @@ import org.jetbrains.annotations.NotNull;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class CheckoutActionGroup extends ComputableActionGroup.Simple {
|
||||
protected final String myIdPrefix;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public CheckoutActionGroup() {
|
||||
this("Vcs.Checkout");
|
||||
}
|
||||
|
||||
public CheckoutActionGroup(String idPrefix) {
|
||||
myIdPrefix = idPrefix;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected AnAction[] computeChildren(@NotNull ActionManager manager) {
|
||||
@@ -43,6 +54,6 @@ public class CheckoutActionGroup extends ComputableActionGroup.Simple {
|
||||
|
||||
@NotNull
|
||||
protected AnAction createAction(CheckoutProvider provider) {
|
||||
return new CheckoutAction(provider);
|
||||
return new CheckoutAction(provider, myIdPrefix);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-8
@@ -19,19 +19,13 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.DefaultActionGroup;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.vcs.CheckoutProvider;
|
||||
import com.intellij.openapi.vcs.checkout.CheckoutAction;
|
||||
import com.intellij.openapi.vcs.checkout.CheckoutActionGroup;
|
||||
import com.intellij.ui.UIBundle;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class GetFromVcsAction extends WelcomePopupAction{
|
||||
|
||||
protected void fillActions(DefaultActionGroup group) {
|
||||
final CheckoutProvider[] providers = Extensions.getExtensions(CheckoutProvider.EXTENSION_POINT_NAME);
|
||||
Arrays.sort(providers, new CheckoutProvider.CheckoutProviderComparator());
|
||||
for (CheckoutProvider provider : providers) {
|
||||
group.add(new CheckoutAction(provider));
|
||||
}
|
||||
group.addAll(new CheckoutActionGroup("WelcomeScreen.GetFromVcs"));
|
||||
}
|
||||
|
||||
protected String getCaption() {
|
||||
|
||||
Reference in New Issue
Block a user