IDEA-163208: more verbose logging

always log action ID when can't find AnAction
This commit is contained in:
Artem Bochkarev
2018-05-04 17:40:24 +07:00
parent 8b638f658d
commit 8dba1180dd
5 changed files with 38 additions and 31 deletions
@@ -17,6 +17,7 @@ import com.intellij.ui.components.JBOptionButton;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.messages.MessageBus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
import java.util.List;
@@ -60,28 +61,30 @@ public class TouchBarActionBase extends TouchBarProjectBase implements Execution
public void onHide() { ActionManager.getInstance().removeTransparentTimerListener(myTimerListener); }
TBItemAnActionButton addAnActionButton(String actId) {
return addAnActionButton(ActionManager.getInstance().getAction(actId), true, TBItemAnActionButton.SHOWMODE_IMAGE_ONLY, myComponent, null);
final AnAction act = _getActionById(actId);
if (act == null)
return null;
return _addAnActionButton(act, true, TBItemAnActionButton.SHOWMODE_IMAGE_ONLY, myComponent, null);
}
TBItemAnActionButton addAnActionButton(String actId, boolean hiddenWhenDisabled) {
final AnAction act = ActionManager.getInstance().getAction(actId);
if (act == null) {
LOG.error("can't find action by id: " + actId);
final AnAction act = _getActionById(actId);
if (act == null)
return null;
}
return addAnActionButton(act, hiddenWhenDisabled, TBItemAnActionButton.SHOWMODE_IMAGE_ONLY, myComponent, null);
return _addAnActionButton(act, hiddenWhenDisabled, TBItemAnActionButton.SHOWMODE_IMAGE_ONLY, myComponent, null);
}
TBItemAnActionButton addAnActionButton(AnAction act, boolean hiddenWhenDisabled, int showMode) {
return addAnActionButton(act, hiddenWhenDisabled, showMode, myComponent, null);
TBItemAnActionButton addAnActionButton(String actId, boolean hiddenWhenDisabled, int showMode) {
final AnAction act = _getActionById(actId);
if (act == null)
return null;
return _addAnActionButton(act, hiddenWhenDisabled, showMode, myComponent, null);
}
TBItemAnActionButton addAnActionButton(AnAction act, boolean hiddenWhenDisabled, int showMode, Component component, ModalityState modality) {
if (act == null) {
LOG.error("can't create action-button with null action");
return null;
}
private TBItemAnActionButton _addAnActionButton(@NotNull AnAction act, boolean hiddenWhenDisabled, int showMode, Component component, ModalityState modality) {
final String uid = String.format("%s.anActionButton.%d.%s", myName, myCounter++, ActionManager.getInstance().getId(act));
final TBItemAnActionButton butt = new TBItemAnActionButton(uid, act, hiddenWhenDisabled, showMode, component, modality);
myItems.add(butt);
@@ -93,10 +96,10 @@ public class TouchBarActionBase extends TouchBarProjectBase implements Execution
List<AnAction> visibleActions = ContainerUtil.newArrayListWithCapacity(10);
Utils.expandActionGroup(false, actionGroup, visibleActions, myPresentationFactory, dctx, ActionPlaces.UNKNOWN, ActionManager.getInstance());
for (AnAction act: visibleActions) {
if (act instanceof Separator)
if (act == null || act instanceof Separator)
continue;
addAnActionButton(act, false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY, forCtx, modality);
_addAnActionButton(act, false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY, forCtx, modality);
}
}
@@ -134,4 +137,12 @@ public class TouchBarActionBase extends TouchBarProjectBase implements Execution
if (layoutChanged)
selectVisibleItemsToShow();
}
private static @Nullable AnAction _getActionById(String actId) {
final AnAction act = ActionManager.getInstance().getAction(actId);
if (act == null)
LOG.error("can't find action by id: " + actId);
return act;
}
}
@@ -1,7 +1,6 @@
// Copyright 2000-2018 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.ui.mac.touchbar;
import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
@@ -12,6 +11,6 @@ public class TouchBarEditorAlt extends TouchBarActionBase {
super("editor_alt", project, component);
addFlexibleSpacing();
addAnActionButton(ActionManager.getInstance().getAction("Terminal.OpenInTerminal"), false, TBItemAnActionButton.SHOWMODE_IMAGE_TEXT);
addAnActionButton("Terminal.OpenInTerminal", false, TBItemAnActionButton.SHOWMODE_IMAGE_TEXT);
}
}
@@ -1,7 +1,6 @@
// Copyright 2000-2018 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.ui.mac.touchbar;
import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
@@ -17,10 +16,10 @@ public class TouchBarEditorCmd extends TouchBarActionBase {
addAnActionButton("Forward", false);
addSpacing(true);
addAnActionButton(ActionManager.getInstance().getAction("ToggleBookmark"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY); // TODO: make with custom icon (doesn't defined in template presentation)
addAnActionButton(ActionManager.getInstance().getAction("ToggleLineBreakpoint"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY); // TODO: make with custom icon (doesn't defined in template presentation)
addAnActionButton("ToggleBookmark", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY); // TODO: make with custom icon (doesn't defined in template presentation)
addAnActionButton("ToggleLineBreakpoint", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY); // TODO: make with custom icon (doesn't defined in template presentation)
addFlexibleSpacing();
addAnActionButton(ActionManager.getInstance().getAction("FindUsages"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton("FindUsages", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
}
}
@@ -1,7 +1,6 @@
// Copyright 2000-2018 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.ui.mac.touchbar;
import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
@@ -12,8 +11,8 @@ public class TouchBarEditorCmdAlt extends TouchBarActionBase {
super("editor_cmd_alt", project, component);
addFlexibleSpacing();
addAnActionButton(ActionManager.getInstance().getAction("SwitchCoverage"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton("SwitchCoverage", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addSpacing(true);
addAnActionButton(ActionManager.getInstance().getAction("FindUsages"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton("FindUsages", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
}
}
@@ -1,7 +1,6 @@
// Copyright 2000-2018 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.ui.mac.touchbar;
import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
@@ -12,12 +11,12 @@ public class TouchBarEditorShift extends TouchBarActionBase {
super("editor_shift", project, component);
// Use Shift to show Refactor actions
addAnActionButton(ActionManager.getInstance().getAction("RenameElement"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton(ActionManager.getInstance().getAction("ChangeSignature"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton(ActionManager.getInstance().getAction("ChangeTypeSignature"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton("RenameElement", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton("ChangeSignature", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton("ChangeTypeSignature", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addFlexibleSpacing();
addAnActionButton(ActionManager.getInstance().getAction("CopyElement"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton(ActionManager.getInstance().getAction("Move"), false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton("CopyElement", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
addAnActionButton("Move", false, TBItemAnActionButton.SHOWMODE_TEXT_ONLY);
}
}