mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
convert CustomPropertiesValuePresentation to kotlin
This commit is contained in:
+32
-57
@@ -13,79 +13,54 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.debugger;
|
||||
package org.jetbrains.debugger
|
||||
|
||||
import com.intellij.xdebugger.XDebuggerBundle;
|
||||
import com.intellij.xdebugger.frame.XValueNode;
|
||||
import com.intellij.xdebugger.frame.presentation.XValuePresentation;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.debugger.values.ObjectValue;
|
||||
import org.jetbrains.debugger.values.StringValue;
|
||||
import org.jetbrains.debugger.values.Value;
|
||||
import com.intellij.openapi.editor.DefaultLanguageHighlighterColors
|
||||
import com.intellij.xdebugger.XDebuggerBundle
|
||||
import com.intellij.xdebugger.frame.XValueNode
|
||||
import com.intellij.xdebugger.frame.presentation.XValuePresentation
|
||||
import org.jetbrains.debugger.values.ObjectValue
|
||||
import org.jetbrains.debugger.values.StringValue
|
||||
import org.jetbrains.debugger.values.ValueType
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CustomPropertiesValuePresentation extends XValuePresentation {
|
||||
private final ObjectValue value;
|
||||
private final List<Variable> properties;
|
||||
|
||||
public CustomPropertiesValuePresentation(@NotNull ObjectValue value, @NotNull List<Variable> properties) {
|
||||
this.value = value;
|
||||
this.properties = properties;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderValue(@NotNull XValueTextRenderer renderer) {
|
||||
renderer.renderComment(VariableViewKt.getObjectValueDescription(value));
|
||||
renderer.renderSpecialSymbol(" {");
|
||||
boolean isFirst = true;
|
||||
for (Variable property : properties) {
|
||||
class CustomPropertiesValuePresentation(private val value: ObjectValue, private val properties: List<Variable>) : XValuePresentation() {
|
||||
override fun renderValue(renderer: XValuePresentation.XValueTextRenderer) {
|
||||
renderer.renderComment(getObjectValueDescription(value))
|
||||
renderer.renderSpecialSymbol(" {")
|
||||
var isFirst = true
|
||||
for (property in properties) {
|
||||
if (isFirst) {
|
||||
isFirst = false;
|
||||
isFirst = false
|
||||
}
|
||||
else {
|
||||
renderer.renderSpecialSymbol(", ");
|
||||
renderer.renderSpecialSymbol(", ")
|
||||
}
|
||||
|
||||
renderer.renderValue(property.getName());
|
||||
renderer.renderSpecialSymbol(": ");
|
||||
renderer.renderValue(property.name, DefaultLanguageHighlighterColors.INSTANCE_FIELD)
|
||||
renderer.renderSpecialSymbol(": ")
|
||||
|
||||
Value value = property.getValue();
|
||||
assert value != null;
|
||||
val value = property.value!!
|
||||
when (value.type) {
|
||||
ValueType.BOOLEAN, ValueType.NULL, ValueType.UNDEFINED, ValueType.SYMBOL -> renderer.renderKeywordValue(value.valueString!!)
|
||||
|
||||
switch (value.getType()) {
|
||||
case BOOLEAN:
|
||||
case NULL:
|
||||
case UNDEFINED:
|
||||
case SYMBOL:
|
||||
renderer.renderKeywordValue(value.getValueString());
|
||||
break;
|
||||
ValueType.NUMBER -> renderer.renderNumericValue(value.valueString!!)
|
||||
|
||||
case NUMBER:
|
||||
renderer.renderNumericValue(value.getValueString());
|
||||
break;
|
||||
|
||||
case STRING:
|
||||
String string = value.getValueString();
|
||||
renderer.renderStringValue(string, "\"\\", XValueNode.MAX_VALUE_LENGTH);
|
||||
int actualStringLength = value instanceof StringValue ? ((StringValue)value).getLength() : string.length();
|
||||
ValueType.STRING -> {
|
||||
val string = value.valueString
|
||||
renderer.renderStringValue(string!!, "\"\\", XValueNode.MAX_VALUE_LENGTH)
|
||||
val actualStringLength = (value as? StringValue)?.length ?: string.length
|
||||
if (actualStringLength > XValueNode.MAX_VALUE_LENGTH) {
|
||||
renderer.renderComment(XDebuggerBundle.message("node.text.ellipsis.truncated", actualStringLength));
|
||||
renderer.renderComment(XDebuggerBundle.message("node.text.ellipsis.truncated", actualStringLength))
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case FUNCTION:
|
||||
renderer.renderComment(VariableViewKt.trimFunctionDescription(value));
|
||||
break;
|
||||
ValueType.FUNCTION -> renderer.renderComment(trimFunctionDescription(value))
|
||||
|
||||
case OBJECT:
|
||||
renderer.renderComment(VariableViewKt.getObjectValueDescription((ObjectValue)value));
|
||||
break;
|
||||
ValueType.OBJECT -> renderer.renderComment(getObjectValueDescription(value as ObjectValue))
|
||||
|
||||
default:
|
||||
renderer.renderValue(value.getValueString());
|
||||
else -> renderer.renderValue(value.valueString!!)
|
||||
}
|
||||
}
|
||||
renderer.renderSpecialSymbol("}");
|
||||
renderer.renderSpecialSymbol("}")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user