Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

Mole For Visual Studio - With Editing - Visualize All Project Types

, , , 29 Jan 2008 CPOL
New Silverlight Movies For Mole. Mole v4.2 has GREAT new features! Visualizer with property editing. Mole is a high performance, full featured, multifunction visualizer that allows detailed inspection of WPF, WCF, WF, ASP.NET, XBAP's and WinForm applications. Editing of properties is now support
mole4_2_pdf_manaul.zip
Mole v42.pdf
moleforvisualstudio_4_1_vs2005_sourceandtestbenches.zip
Mole For Visual Studio
Mole.Visualizer
bin
Custom Controls
Data Source
Image Processing
Data
Debugger Visualizer
Editors
Enums Constants
Event Args
Extended Controls
Images
Edit.ico
MoleVisualUnavailable.gif
Mole.Visualizer.csi
Mole.Visualizer.suo
Mole.Visualizer.vbproj.user
My Project
Application.myapp
Settings.settings
Settings
Visualizer UI
XSLT
Mole.WCF.TestBench
Client
My Project
Application.myapp
Settings.settings
HelloIndigo
My Project
Application.myapp
Settings.settings
Mole.WCF.TestBench.suo
ServiceHost
My Project
Application.myapp
Settings.settings
Mole.WinForms.TestBench
Mole.WinForms.TestBench.csi
Mole.WinForms.TestBench.suo
Mole.WinForms.TestBench.vbproj.user
My Project
Application.myapp
Settings.settings
Mole.WPF.TestBench
bach.jpg
mole.gif
Mole.TestBench.csi
Mole.WPF.TestBench.csi
Mole.WPF.TestBench.vbproj.user
My Project
Settings.settings
MoleASPNETTestBench
mole.gif
MoleASPNETTestBench.vbproj.user
My Project
Application.myapp
Settings.settings
moleforvisualstudio_4_1_vs2008_sourceandtestbenches.zip
Edit.ico
MoleVisualUnavailable.gif
Mole.Visualizer.csi
Mole.Visualizer.suo
Mole.Visualizer.vbproj.user
Application.myapp
Settings.settings
Application.myapp
Settings.settings
Application.myapp
Settings.settings
Mole.WCF.TestBench.suo
Application.myapp
Settings.settings
Mole.WinForms.TestBench.csi
Mole.WinForms.TestBench.suo
Mole.WinForms.TestBench.vbproj.user
Application.myapp
Settings.settings
bach.jpg
mole.gif
Mole.TestBench.csi
Mole.WPF.TestBench.csi
Mole.WPF.TestBench.vbproj.user
Settings.settings
mole.gif
MoleASPNETTestBench.vbproj.user
Application.myapp
Settings.settings
moleforvisualstudio_4_2_vs2005_sourceandtestbenches.zip
Edit.ico
MoleVisualUnavailable.gif
Mole.Visualizer.csi
Mole.Visualizer.suo
Mole.Visualizer.vbproj.user
Application.myapp
Settings.settings
Application.myapp
Settings.settings
Application.myapp
Settings.settings
Mole.WCF.TestBench.suo
Application.myapp
Settings.settings
Mole.WF. TestBench
Mole.WF. TestBench
Mole.WF.TestBench.vbproj.user
My Project
MySettings.settings
Mole.WF.TestBench.suo
Mole.WinForms.TestBench.csi
Mole.WinForms.TestBench.suo
Mole.WinForms.TestBench.vbproj.user
Application.myapp
Settings.settings
bach.jpg
mole.gif
Mole.TestBench.csi
Mole.WPF.TestBench.csi
Mole.WPF.TestBench.vbproj.user
Settings.settings
mole.gif
MoleASPNETTestBench.suo
MoleASPNETTestBench.vbproj.user
Application.myapp
Settings.settings
moleforvisualstudio_4_2_vs2008_sourceandtestbenches.zip
Edit.ico
MoleVisualUnavailable.gif
Mole.Visualizer.csi
Mole.Visualizer.suo
Mole.Visualizer.vbproj.user
Application.myapp
Settings.settings
Application.myapp
Settings.settings
Application.myapp
Settings.settings
Mole.WCF.TestBench.suo
Application.myapp
Settings.settings
Mole.WF.TestBench.vbproj.user
MySettings.settings
Mole.WF.TestBench.suo
Mole.WinForms.TestBench.csi
Mole.WinForms.TestBench.suo
Mole.WinForms.TestBench.vbproj.user
Application.myapp
Settings.settings
bach.jpg
mole.gif
Mole.TestBench.csi
Mole.WPF.TestBench.csi
Mole.WPF.TestBench.vbproj.user
Settings.settings
mole.gif
MoleASPNETTestBench.suo
MoleASPNETTestBench.vbproj.user
Application.myapp
Settings.settings
moleforvisualstudio_4_vs2005_sourceandtestbenches.zip
TransferDataRequest.vb.bak
Enums.vb.bak
Edit.ico
MoleVisualUnavailable.gif
Mole.Visualizer.csi
Mole.Visualizer.suo
Mole.Visualizer.vbproj.user
Application.myapp
Settings.settings
frmMole.vb.bak
Application.myapp
Settings.settings
Application.myapp
Settings.settings
Mole.WCF.TestBench.suo
Application.myapp
Settings.settings
Mole.WinForms.TestBench.csi
Mole.WinForms.TestBench.vbproj.user
Application.myapp
Settings.settings
bach.jpg
Mole.TestBench.csi
Mole.WPF.TestBench.csi
Mole.WPF.TestBench.vbproj.user
Settings.settings
mole.gif
MoleASPNETTestBench.vbproj.user
Application.myapp
Settings.settings
moleforvisualstudio_4_vs2008_sourceandtestbenches.zip
TransferDataRequest.vb.bak
Enums.vb.bak
Edit.ico
MoleVisualUnavailable.gif
Mole.Visualizer.csi
Mole.Visualizer.suo
Mole.Visualizer.vbproj.user
Application.myapp
Settings.settings
frmMole.vb.bak
Application.myapp
Settings.settings
Application.myapp
Settings.settings
Mole.WCF.TestBench.suo
Application.myapp
Settings.settings
Mole.WinForms.TestBench.csi
Mole.WinForms.TestBench.vbproj.user
Application.myapp
Settings.settings
bach.jpg
Mole.TestBench.csi
Mole.WPF.TestBench.csi
Mole.WPF.TestBench.vbproj.user
Settings.settings
mole.gif
MoleASPNETTestBench.vbproj.user
Application.myapp
Settings.settings
molev41_pdf_manual.zip
Mole v41.pdf
molev4pdfmanual.zip
Mole v4.pdf
molevisualizer_4_1_vs2005_release.zip
Mole.Visualizer.dll
molevisualizer_4_1_vs2008_release.zip
Mole.Visualizer.dll
molevisualizer_4_2_vs2005_release.zip
Mole.Visualizer.dll
molevisualizer_4_2_vs2008_release.zip
Mole.Visualizer.dll
molevisualizer_4_vs2005_release.zip
Mole.Visualizer.dll
molevisualizer_4_vs2008_release.zip
Mole.Visualizer.dll
mole_v41.zip
Mole v41.pdf
<!--
 |
 | XSLT REC Compliant Version of IE5 Default Stylesheet
 |
 | Original version by Jonathan Marsh (jmarsh@xxxxxxxxxxxxx)
 | http://msdn.microsoft.com/xml/samples/defaultss/defaultss.xsl
 |
 | Conversion to XSLT 1.0 REC Syntax by Steve Muench (smuench@xxxxxxxxxx)
 |
 +-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output indent="yes" method="html"/>

    <xsl:template match="/">
        <HTML>
            <HEAD>
                <SCRIPT>
                    <xsl:comment>
                        <![CDATA[
                  function f(e){
                     if (e.className=="ci") {
                       if (e.children(0).innerText.indexOf("\n")>0) fix(e,"cb");
                     }
                     if (e.className=="di") {
                       if (e.children(0).innerText.indexOf("\n")>0) fix(e,"db");
                     } e.id="";
                  }
                  function fix(e,cl){
                    e.className=cl;
                    e.style.display="block";
                    j=e.parentElement.children(0);
                    j.className="c";
                    k=j.children(0);
                    k.style.visibility="visible";
                    k.href="#";
                  }
                  function ch(e) {
                    mark=e.children(0).children(0);
                    if (mark.innerText=="+") {
                      mark.innerText="-";
                      for (var i=1;i<e.children.length;i++) {
                        e.children(i).style.display="block";
                      }
                    }
                    else if (mark.innerText=="-") {
                      mark.innerText="+";
                      for (var i=1;i<e.children.length;i++) {
                        e.children(i).style.display="none";
                      }
                    }
                  }
                  function ch2(e) {
                    mark=e.children(0).children(0);
                    contents=e.children(1);
                    if (mark.innerText=="+") {
                      mark.innerText="-";
                      if (contents.className=="db"||contents.className=="cb") {
                        contents.style.display="block";
                      }
                      else {
                        contents.style.display="inline";
                      }
                    }
                    else if (mark.innerText=="-") {
                      mark.innerText="+";
                      contents.style.display="none";
                    }
                  }
                  function cl() {
                    e=window.event.srcElement;
                    if (e.className!="c") {
                      e=e.parentElement;
                      if (e.className!="c") {
                        return;
                      }
                    }
                    e=e.parentElement;
                    if (e.className=="e") {
                      ch(e);
                    }
                    if (e.className=="k") {
                      ch2(e);
                    }
                  }
                  function ex(){}
                  function h(){window.status=" ";}
                  document.onclick=cl;
              ]]>
                    </xsl:comment>
                </SCRIPT>
                <STYLE>
                    BODY {font:x-small 'Courier New'; margin-right:1.5em}
                    .karl {color:blue; text-indent:1em;}
                    .karlm {text-indent:1em;}
                    .c  {cursor:hand}
                    .b  {color:red; font-family:'Courier New'; font-weight:bold; text-decoration:none}
                    .e  {margin-left:1em; text-indent:-1em; margin-right:1em}
                    .k  {margin-left:1em; text-indent:-1em; margin-right:1em}
                    .t  {color:#990000}
                    .xt {color:#990099}
                    .ns {color:red}
                    .dt {color:green}
                    .m  {color:blue}
                    .tx {font-weight:bold}
                    .db {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px;padding-left:.3em; border-left:1px solid #CCCCCC; font:small Courier}
                    .di {font:small Courier}
                    .d  {color:blue}
                    .pi {color:blue}
                    .cb {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px;padding-left:.3em; font:small Courier; color:#888888}
                    .ci {font:small Courier; color:#888888}
                    PRE {margin:0px; display:inline}
                </STYLE>
            </HEAD>
            <BODY class="st">
                <xsl:apply-templates/>
            </BODY>
        </HTML>
    </xsl:template>

    <xsl:template match="processing-instruction()">
        <DIV class="e">
            <SPAN class="b">
                <xsl:call-template name="entity-ref">
                    <xsl:with-param name="name">nbsp</xsl:with-param>
                </xsl:call-template>
            </SPAN>
            <SPAN class="m">
                <xsl:text>&lt;?</xsl:text>
            </SPAN>
            <SPAN class="pi">
                <xsl:value-of select="name(.)"/>
                <xsl:value-of select="."/>
            </SPAN>
            <SPAN class="m">
                <xsl:text>?> </xsl:text>
            </SPAN>
        </DIV>
    </xsl:template>

    <xsl:template match="processing-instruction('xml')">
        <DIV class="e">
            <SPAN class="b">
                <xsl:call-template name="entity-ref">
                    <xsl:with-param name="name">nbsp</xsl:with-param>
                </xsl:call-template>
            </SPAN>
            <SPAN class="m">
                <xsl:text>&lt;?</xsl:text>
            </SPAN>
            <SPAN class="pi">
                <xsl:text>xml </xsl:text>
                <xsl:for-each select="@*">
                    <xsl:value-of select="name(.)"/>
                    <xsl:text>="</xsl:text>
                    <xsl:value-of select="."/>
                    <xsl:text>" </xsl:text>
                </xsl:for-each>
            </SPAN>
            <SPAN class="m">
                <xsl:text>?></xsl:text>
            </SPAN>
        </DIV>
    </xsl:template>

    <xsl:template match="@*">
      <DIV>
        <SPAN>
            <xsl:attribute name="class">
                <xsl:if test="xsl:*/@*">
                    <xsl:text>x</xsl:text>
                </xsl:if>
                <xsl:text>t</xsl:text>
            </xsl:attribute>
            <xsl:value-of select="name(.)"/>
        </SPAN>
        <SPAN class="m">="</SPAN>
        <B>
            <xsl:value-of select="."/>
        </B>
        <SPAN class="m">"</SPAN>
    </DIV>
    </xsl:template>

    <xsl:template match="text()">
        <DIV class="e">
            <SPAN class="b"> </SPAN>
            <SPAN class="tx">
                <xsl:value-of select="."/>
            </SPAN>
        </DIV>
    </xsl:template>

    <xsl:template match="comment()">
        <DIV class="k">
            <SPAN>
                <A STYLE="visibility:hidden" class="b" onclick="return false"
                   onfocus="h()">-</A>
                <SPAN class="m">
                    <xsl:text>&lt;!--</xsl:text>
                </SPAN>
            </SPAN>
            <SPAN class="ci" id="clean">
                <PRE>
                    <xsl:value-of select="."/>
                </PRE>
            </SPAN>
            <SPAN class="b">
                <xsl:call-template name="entity-ref">
                    <xsl:with-param name="name">nbsp</xsl:with-param>
                </xsl:call-template>
            </SPAN>
            <SPAN class="m">
                <xsl:text>--></xsl:text>
            </SPAN>
            <SCRIPT>f(clean);</SCRIPT>
        </DIV>
    </xsl:template>

    <xsl:template match="*">
        <DIV class="e">
            <DIV STYLE="margin-left:1em;text-indent:-2em">
                <SPAN class="b">
                    <xsl:call-template name="entity-ref">
                        <xsl:with-param name="name">nbsp</xsl:with-param>
                    </xsl:call-template>
                </SPAN>
                <SPAN class="m">&lt;</SPAN>
                <SPAN>
                    <xsl:attribute name="class">
                        <xsl:if test="xsl:*">
                            <xsl:text>x</xsl:text>
                        </xsl:if>
                        <xsl:text>t</xsl:text>
                    </xsl:attribute>
                    <xsl:value-of select="name(.)"/>
                    <xsl:if test="@*">
                        <xsl:text> </xsl:text>
                    </xsl:if>
                </SPAN>
                <xsl:apply-templates select="@*"/>
                <SPAN class="karlm">
                    <xsl:text>/></xsl:text>
                </SPAN>
            </DIV>
        </DIV>
    </xsl:template>

    <xsl:template match="*[node()]">
        <DIV class="e">
            <DIV class="c">
                <A class="b" href="#" onclick="return false" onfocus="h()">-</A>
                <SPAN class="m">&lt;</SPAN>
                <SPAN>
                    <xsl:attribute name="class">
                        <xsl:if test="xsl:*">
                            <xsl:text>x</xsl:text>
                        </xsl:if>
                        <xsl:text>t</xsl:text>
                    </xsl:attribute>
                    <xsl:value-of select="name(.)"/>
                    <xsl:if test="@*">
                        <xsl:text> </xsl:text>
                    </xsl:if>
                </SPAN>
                <xsl:apply-templates select="@*"/>
                <SPAN class="karlm">
                    <xsl:text>></xsl:text>
                </SPAN>
            </DIV>
            <DIV>
                <xsl:apply-templates/>
                <DIV>
                    <SPAN class="b">
                        <xsl:call-template name="entity-ref">
                            <xsl:with-param name="name">nbsp</xsl:with-param>
                        </xsl:call-template>
                    </SPAN>
                    <SPAN class="m">
                        <xsl:text>&lt;/</xsl:text>
                    </SPAN>
                    <SPAN>
                        <xsl:attribute name="class">
                            <xsl:if test="xsl:*">
                                <xsl:text>x</xsl:text>
                            </xsl:if>
                            <xsl:text>t</xsl:text>
                        </xsl:attribute>
                        <xsl:value-of select="name(.)"/>
                    </SPAN>
                    <SPAN class="karlm">
                        <xsl:text>></xsl:text>
                    </SPAN>
                </DIV>
            </DIV>
        </DIV>
    </xsl:template>

    <xsl:template match="*[text() and not (comment() or processing-instruction())]">
        <DIV class="e">
            <DIV STYLE="margin-left:1em;text-indent:-2em">
                <SPAN class="b">
                    <xsl:call-template name="entity-ref">
                        <xsl:with-param name="name">nbsp</xsl:with-param>
                    </xsl:call-template>
                </SPAN>
                <SPAN class="m">
                    <xsl:text>&lt;</xsl:text>
                </SPAN>
                <SPAN>
                    <xsl:attribute name="class">
                        <xsl:if test="xsl:*">
                            <xsl:text>x</xsl:text>
                        </xsl:if>
                        <xsl:text>t</xsl:text>
                    </xsl:attribute>
                    <xsl:value-of select="name(.)"/>
                    <xsl:if test="@*">
                        <xsl:text> </xsl:text>
                    </xsl:if>
                </SPAN>
                <xsl:apply-templates select="@*"/>
                <SPAN class="karlm">
                    <xsl:text>></xsl:text>
                </SPAN>
                <SPAN class="tx">
                    <xsl:value-of select="."/>
                </SPAN>
                <SPAN class="m">&lt;/</SPAN>
                <SPAN>
                    <xsl:attribute name="class">
                        <xsl:if test="xsl:*">
                            <xsl:text>x</xsl:text>
                        </xsl:if>
                        <xsl:text>t</xsl:text>
                    </xsl:attribute>
                    <xsl:value-of select="name(.)"/>
                </SPAN>
                <SPAN class="karlm">
                    <xsl:text>></xsl:text>
                </SPAN>
            </DIV>
        </DIV>
    </xsl:template>

    <xsl:template match="*[*]" priority="20">
        <DIV class="e">
            <DIV STYLE="margin-left:1em;text-indent:-2em" class="c">
                <A class="b" href="#" onclick="return false" onfocus="h()">-</A>
                <SPAN class="m">&lt;</SPAN>
                <SPAN>
                    <xsl:attribute name="class">
                        <xsl:if test="xsl:*">
                            <xsl:text>x</xsl:text>
                        </xsl:if>
                        <xsl:text>t</xsl:text>
                    </xsl:attribute>
                    <xsl:value-of select="name(.)"/>
                    <xsl:if test="@*">
                        <xsl:text> </xsl:text>
                    </xsl:if>
                </SPAN>
                <xsl:apply-templates select="@*"/>
                <SPAN class="karlm">
                    <xsl:text>></xsl:text>
                </SPAN>
            </DIV>
            <DIV>
                <xsl:apply-templates/>
                <DIV>
                    <SPAN class="b">
                        <xsl:call-template name="entity-ref">
                            <xsl:with-param name="name">nbsp</xsl:with-param>
                        </xsl:call-template>
                    </SPAN>
                    <SPAN class="m">
                        <xsl:text>&lt;/</xsl:text>
                    </SPAN>
                    <SPAN>
                        <xsl:attribute name="class">
                            <xsl:if test="xsl:*">
                                <xsl:text>x</xsl:text>
                            </xsl:if>
                            <xsl:text>t</xsl:text>
                        </xsl:attribute>
                        <xsl:value-of select="name(.)"/>
                    </SPAN>
                    <SPAN class="karlm">
                        <xsl:text>></xsl:text>
                    </SPAN>
                </DIV>
            </DIV>
        </DIV>
    </xsl:template>

    <xsl:template name="entity-ref">
        <xsl:param name="name"/>
        <xsl:text disable-output-escaping="yes">&amp;</xsl:text>
        <xsl:value-of select="$name"/>
        <xsl:text>;</xsl:text>
    </xsl:template>

</xsl:stylesheet>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Authors

Andrew Smith
Architect Infragistics, Inc.
United States United States
Andrew currently works as an architect for Infragistics working with windows forms and WPF. You can check out his blog here.

Josh Smith
Software Developer (Senior) Cynergy Systems
United States