/*
 * Copyright 2011 Jon S Akhtar (Sylvanaar)
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */

package com.sylvanaar.idea.Lua.debugger;

import com.intellij.openapi.diagnostic.Logger;
import com.intellij.xdebugger.frame.XNavigatable;
import com.intellij.xdebugger.frame.XValue;
import com.intellij.xdebugger.frame.XValueModifier;
import com.intellij.xdebugger.frame.XValueNode;
import com.intellij.xdebugger.ui.DebuggerIcons;
import org.jetbrains.annotations.NotNull;

/**
 * Created by IntelliJ IDEA.
 * User: Jon S Akhtar
 * Date: 5/15/11
 * Time: 5:34 AM
 */
public class LuaDebugValue extends XValue {
    private static final Logger log = Logger.getInstance("Lua.LuaDebuggerController");

    String myValueAsString;
    String myTypeName;

    LuaDebugValue(String typeName, String stringValue) {
        myValueAsString = stringValue;
        myTypeName = typeName;
    }

    @Override
    public void computePresentation(@NotNull XValueNode node) {
        node.setPresentation(DebuggerIcons.VALUE_ICON, myTypeName, myValueAsString, false);
    }

    @Override
    public XValueModifier getModifier() {
        return super.getModifier();    //To change body of overridden methods use File | Settings | File Templates.
    }

    @Override
    public void computeSourcePosition(@NotNull XNavigatable navigatable) {
        super.computeSourcePosition(
                navigatable);    //To change body of overridden methods use File | Settings | File Templates.
    }
}

@@ -700,280 +700,98 @@
 lij.
-openapi.diagnostic.Logger;%0D%0Aimport com.intellij.xdebugger.frame.XNavigatable;%0D%0Aimport com.intellij.xdebugger.frame.XValue;%0D%0Aimport com.intellij.xdebugger.frame.XValueModifier;%0D%0Aimport com.intellij.xdebugger.frame.XValueNode;%0D%0Aimport com.intellij.xdebugger.ui.DebuggerIcons
+icons.*;%0D%0Aimport com.intellij.openapi.diagnostic.*;%0D%0Aimport com.intellij.xdebugger.frame.*
 ;%0D%0Ai
@@ -822,23 +822,17 @@
 tations.
-NotNull
+*
 ;%0D%0A%0D%0A/**
@@ -1369,32 +1369,31 @@
 ion(
-DebuggerIcons.VALUE_ICON
+AllIcons.Debugger.Value
 , my
@@ -1467,155 +1467,284 @@
 lic 
+void computePresentation(@NotNull 
 XValue
-Modifier getModifier() %7B%0D%0A        return super.getModifier();    //To change body of overridden methods use File %7C Settings %7C File Templates.
+Node node, @NotNull XValuePlace place) %7B%0D%0A        node.setPresentation(AllIcons.Debugger.Value, myTypeName, myValueAsString, false);%0D%0A    %7D%0D%0A%0D%0A    @Override%0D%0A    public XValueModifier getModifier() %7B%0D%0A        return super.getModifier();
 %0D%0A  
@@ -1912,88 +1912,8 @@
 le);
-    //To change body of overridden methods use File %7C Settings %7C File Templates.
 %0D%0A  

update icon usage location