Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import consulo.execution.debug.frame.XValue;
import consulo.execution.debug.frame.XValueNode;
import consulo.execution.debug.ui.XValueTree;
import consulo.ide.setting.ShowSettingsUtil;
import consulo.localize.LocalizeValue;
import consulo.ui.annotation.RequiredUIAccess;
import consulo.ui.ex.action.AnActionEvent;
Expand Down Expand Up @@ -75,7 +74,7 @@ public void actionPerformed(AnActionEvent e) {
//if (index > 0) {
// title = title + " " + label.substring(index);
//}
createNewRenderer(node, renderer, debuggerContext, LocalizeValue.ofNullable(node.getName())).doWhenDone(newRenderer -> setArrayRenderer(
createNewRenderer(node, renderer, debuggerContext, node.getName()).doWhenDone(newRenderer -> setArrayRenderer(
newRenderer,
node,
debuggerContext
Expand All @@ -89,8 +88,8 @@ protected abstract AsyncResult<ArrayRenderer> createNewRenderer(
LocalizeValue title
);

@RequiredUIAccess
@Override
@RequiredUIAccess
public void update(AnActionEvent e) {
boolean enable = false;
List<JavaValue> values = ViewAsGroup.getSelectedValues(e);
Expand Down Expand Up @@ -128,7 +127,7 @@ public static void setArrayRenderer(ArrayRenderer newRenderer, XValueNode node,
return;
}

ValueDescriptorImpl descriptor = ((JavaValue)container).getDescriptor();
ValueDescriptorImpl descriptor = ((JavaValue) container).getDescriptor();

DebugProcessImpl debugProcess = debuggerContext.getDebugProcess();
if (debugProcess != null) {
Expand All @@ -137,13 +136,13 @@ public static void setArrayRenderer(ArrayRenderer newRenderer, XValueNode node,
public void contextAction(SuspendContextImpl suspendContext) throws Exception {
Renderer lastRenderer = descriptor.getLastRenderer();
if (lastRenderer instanceof ArrayRenderer) {
((JavaValue)container).setRenderer(newRenderer, node);
((JavaValue) container).setRenderer(newRenderer, node);
Application.get().invokeLater(() -> node.getTree().expand(node));
}
else if (lastRenderer instanceof CompoundNodeRenderer compoundRenderer) {
if (compoundRenderer.getChildrenRenderer() instanceof ExpressionChildrenRenderer) {
ExpressionChildrenRenderer.setPreferableChildrenRenderer(descriptor, newRenderer);
((JavaValue)container).reBuild(node);
((JavaValue) container).reBuild(node);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import consulo.internal.com.sun.jdi.ObjectCollectedException;
import consulo.internal.com.sun.jdi.ObjectReference;
import consulo.internal.com.sun.jdi.Value;
import consulo.localize.LocalizeValue;
import consulo.ui.image.Image;
import org.jspecify.annotations.Nullable;

Expand Down Expand Up @@ -80,10 +81,10 @@ public void contextAction(SuspendContextImpl suspendContext) throws Exception {

List<ObjectReference> references;
try {
references = ((ObjectReference)value).referringObjects(MAX_REFERRING);
references = ((ObjectReference) value).referringObjects(MAX_REFERRING);
}
catch (ObjectCollectedException e) {
node.setErrorMessage(JavaDebuggerLocalize.evaluationErrorObjectCollected().get());
node.setErrorMessage(JavaDebuggerLocalize.evaluationErrorObjectCollected());
return;
}

Expand Down Expand Up @@ -169,10 +170,9 @@ public void renderValue(XValueTextRenderer renderer) {
public void setFullValueEvaluator(XFullValueEvaluator fullValueEvaluator) {
}

@Nullable
@Override
public String getName() {
return null;
public LocalizeValue getName() {
return LocalizeValue.empty();
}

@Nullable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,77 +25,69 @@
import com.intellij.java.debugger.impl.ui.impl.watch.NodeDescriptorProvider;
import com.intellij.java.debugger.impl.ui.impl.watch.NodeManagerImpl;
import com.intellij.java.debugger.impl.ui.impl.watch.StaticDescriptorImpl;
import consulo.application.AllIcons;
import consulo.execution.debug.frame.XCompositeNode;
import consulo.execution.debug.frame.XValueChildrenList;
import consulo.execution.debug.frame.XValueGroup;
import consulo.internal.com.sun.jdi.Field;
import consulo.internal.com.sun.jdi.ReferenceType;
import consulo.localize.LocalizeValue;
import consulo.platform.base.icon.PlatformIconGroup;
import consulo.ui.image.Image;
import org.jspecify.annotations.Nullable;

/**
* @author egor
*/
public class JavaStaticGroup extends XValueGroup implements NodeDescriptorProvider
{
private final StaticDescriptorImpl myStaticDescriptor;
private final EvaluationContextImpl myEvaluationContext;
private final NodeManagerImpl myNodeManager;
public class JavaStaticGroup extends XValueGroup implements NodeDescriptorProvider {
private final StaticDescriptorImpl myStaticDescriptor;
private final EvaluationContextImpl myEvaluationContext;
private final NodeManagerImpl myNodeManager;

public JavaStaticGroup(
StaticDescriptorImpl staticDescriptor, EvaluationContextImpl evaluationContext, NodeManagerImpl nodeManager)
{
super(staticDescriptor.getName());
myStaticDescriptor = staticDescriptor;
myEvaluationContext = evaluationContext;
myNodeManager = nodeManager;
}
public JavaStaticGroup(StaticDescriptorImpl staticDescriptor, EvaluationContextImpl evaluationContext, NodeManagerImpl nodeManager) {
super(LocalizeValue.localizeTODO(staticDescriptor.getName()));
myStaticDescriptor = staticDescriptor;
myEvaluationContext = evaluationContext;
myNodeManager = nodeManager;
}

@Override
public String getSeparator()
{
return "";
}
@Override
public String getSeparator() {
return "";
}

@Nullable
@Override
public Image getIcon()
{
return AllIcons.Nodes.Static;
}
@Nullable
@Override
public Image getIcon() {
return PlatformIconGroup.nodesStatic();
}

@Override
public NodeDescriptorImpl getDescriptor()
{
return myStaticDescriptor;
}
@Override
public NodeDescriptorImpl getDescriptor() {
return myStaticDescriptor;
}

@Override
public void computeChildren(final XCompositeNode node)
{
myEvaluationContext.getDebugProcess().getManagerThread().schedule(new SuspendContextCommandImpl(myEvaluationContext.getSuspendContext())
{
@Override
public void contextAction() throws Exception
{
final XValueChildrenList children = new XValueChildrenList();
@Override
public void computeChildren(final XCompositeNode node) {
myEvaluationContext.getDebugProcess()
.getManagerThread()
.schedule(new SuspendContextCommandImpl(myEvaluationContext.getSuspendContext()) {
@Override
public void contextAction() throws Exception {
XValueChildrenList children = new XValueChildrenList();

final ReferenceType refType = myStaticDescriptor.getType();
List<Field> fields = refType.allFields();
for(Field field : fields)
{
if(field.isStatic())
{
final FieldDescriptorImpl fieldDescriptor = myNodeManager.getFieldDescriptor(myStaticDescriptor, null, field);
children.add(JavaValue.create(fieldDescriptor, myEvaluationContext, myNodeManager));
//final DebuggerTreeNodeImpl node = myNodeManager.createNode(fieldDescriptor, myEvaluationContext);
//myChildren.add(node);
}
}
ReferenceType refType = myStaticDescriptor.getType();
List<Field> fields = refType.allFields();
for (Field field : fields) {
if (field.isStatic()) {
FieldDescriptorImpl fieldDescriptor = myNodeManager.getFieldDescriptor(myStaticDescriptor, null, field);
children.add(JavaValue.create(fieldDescriptor, myEvaluationContext, myNodeManager));
//final DebuggerTreeNodeImpl node = myNodeManager.createNode(fieldDescriptor, myEvaluationContext);
//myChildren.add(node);
}
}

node.addChildren(children, true);
}
});
}
node.addChildren(children, true);
}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,75 +15,66 @@
*/
package com.intellij.java.debugger.impl.memory.utils;

import consulo.application.AllIcons;
import consulo.execution.debug.frame.XValueChildrenList;
import consulo.execution.debug.frame.XValueGroup;
import consulo.execution.debug.frame.XCompositeNode;
import consulo.execution.debug.frame.XNamedValue;
import consulo.localize.LocalizeValue;
import consulo.platform.base.icon.PlatformIconGroup;
import consulo.ui.image.Image;

import org.jspecify.annotations.Nullable;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ErrorsValueGroup extends XValueGroup
{
private final Map<String, List<XNamedValue>> myErrorMessage2ValueMap = new HashMap<>();

public ErrorsValueGroup()
{
super("Errors");
}
public class ErrorsValueGroup extends XValueGroup {
private final Map<LocalizeValue, List<XNamedValue>> myErrorMessage2ValueMap = new HashMap<>();

public void addErrorValue(String message, XNamedValue value)
{
List<XNamedValue> lst;
if(!myErrorMessage2ValueMap.containsKey(message))
{
myErrorMessage2ValueMap.put(message, new ArrayList<>());
}
public ErrorsValueGroup() {
super(LocalizeValue.localizeTODO("Errors"));
}

lst = myErrorMessage2ValueMap.get(message);
lst.add(value);
}
public void addErrorValue(LocalizeValue message, XNamedValue value) {
List<XNamedValue> lst;
if (!myErrorMessage2ValueMap.containsKey(message)) {
myErrorMessage2ValueMap.put(message, new ArrayList<>());
}

public boolean isEmpty()
{
return myErrorMessage2ValueMap.isEmpty();
}
lst = myErrorMessage2ValueMap.get(message);
lst.add(value);
}

@Nullable
@Override
public Image getIcon()
{
return AllIcons.General.Error;
}
public boolean isEmpty() {
return myErrorMessage2ValueMap.isEmpty();
}

@Override
public void computeChildren(XCompositeNode node)
{
XValueChildrenList lst = new XValueChildrenList();
myErrorMessage2ValueMap.keySet().forEach(s -> lst.addTopGroup(new MyErrorsValueGroup(s)));
node.addChildren(lst, true);
}
@Nullable
@Override
public Image getIcon() {
return PlatformIconGroup.generalError();
}

private class MyErrorsValueGroup extends XValueGroup
{
@Override
public void computeChildren(XCompositeNode node) {
XValueChildrenList lst = new XValueChildrenList();
myErrorMessage2ValueMap.keySet().forEach(s -> lst.addTopGroup(new MyErrorsValueGroup(s)));
node.addChildren(lst, true);
}

@Override
public void computeChildren(XCompositeNode node)
{
XValueChildrenList lst = new XValueChildrenList();
String name = getName();
myErrorMessage2ValueMap.get(name).forEach(lst::add);
node.addChildren(lst, true);
}
private class MyErrorsValueGroup extends XValueGroup {
@Override
public void computeChildren(XCompositeNode node) {
XValueChildrenList lst = new XValueChildrenList();
LocalizeValue name = getName();
myErrorMessage2ValueMap.get(name).forEach(lst::add);
node.addChildren(lst, true);
}

MyErrorsValueGroup(String name)
{
super(name);
}
}
MyErrorsValueGroup(LocalizeValue name) {
super(name);
}
}
}
Loading
Loading