twingle/twingle/content/workspace editorbindings.xml,NONE,1.1 genericviewer.xml,NONE,1.1 midasbindings.xml,NONE,1.1 bindings.xml,1.1.1.1,1.2

[email protected] Sun, 9 Mar 2003 11:58:40 -0700 (MST)
Newsgroups gmane.comp.cms.oscom.twingle.cvs
Message-ID <[email protected]>
Update of /cvs/root/twingle/twingle/content/workspace
In directory alpha.oscom.org:/tmp/cvs-serv20073/content/workspace

Modified Files:
	bindings.xml 
Added Files:
	editorbindings.xml genericviewer.xml midasbindings.xml 
Log Message:
First prototype of Midaseditor
- Saving does not work
- Switching from Source-edit to Midas-edit neither
- It's just a prototype, doesn't have much architecture thoughts behind it


--- NEW FILE: editorbindings.xml ---
<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl"
    xmlns:xbl="http://www.mozilla.org/xbl"
    xmlns:html="http://www.w3.org/1999/xhtml"
    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    
    
    <binding id="articleviewerbinding" extends="genericviewer.xml#genericviewerbinding">
        <content>
            <xul:tabbox flex="1">
                <xul:tabs>
                    <xul:tab label="Contents"/>
                    <xul:tab label="Preview" oncommand="
                        var articleviewer = document.getAnonymousNodes(this)[0].parentNode.parentNode.parentNode.parentNode;

                        var ifr = document.getAnonymousNodes(this)[0].parentNode.parentNode.parentNode.getElementsByTagNameNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul','iframe')[0];

                        if (!ifr.getAttribute('src')) {
                            ifr.setAttribute('src',articleviewer.previewurl);
                        } else {
                            ifr.webNavigation.reload(ifr.webNavigation.LOAD_FLAGS_NONE);;
                        }
                        
                    "/>
                    <xul:tab label="Properties"/>
                    <xul:tab label="Web Manage"/>
                </xul:tabs>
                <xul:tabpanels>
                    <xul:tabpanel flex="1">
<!--                        <xul:articleeditor flex="1" id="bla"/> -->
<xul:midaseditor flex="1" id="bla"/>
                    </xul:tabpanel>
                    <xul:tabpanel>
                        <xul:iframe id="iframe" flex="1" src=""/>
                    </xul:tabpanel>
                    <xul:tabpanel>
                        <xul:label value="some properties"/>
                    </xul:tabpanel>
                    <xul:tabpanel>
                        <xul:label value="some web manage"/>
                    </xul:tabpanel>
                </xul:tabpanels>
            </xul:tabbox>
        </content>
        <implementation>
            <constructor>
            <![CDATA[
dump("\narticleviewer constructor start");
                var articleeditor = document.getAnonymousNodes(this)[0].getElementsByTagNameNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","midaseditor")[0];
dump("\narticleviewer constructor end");                
                ]]>
             </constructor>

<!--            <field name="resourcetitle"/>
            <field name="sourceurl"></field>
    -->    </implementation>
        
    </binding>
    
    <binding id="articleeditorbinding">
        <content>
            <xul:vbox flex="1">
                <xul:hbox>
                    <xul:button label="ReLoad (not working..)" 
                    oncommand="document.getBindingParent(this).loadHTML();"/>
                    <xul:spacer flex="1"/>
                </xul:hbox>
                <xul:textbox name="editor" xbl:inherits="value,flex" 
                value="in articleeditorbinding" height="300px" flex="1"/>
            </xul:vbox>
        </content>
        <implementation>
            <method name="loadHTML">
                <body><![CDATA[ 
                
        var textbox = document.getAnonymousNodes(this)[0].getElementsByTagNameNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","textbox")[0];
        var p = new XMLHttpRequest();
        p.textbox = textbox;
        p.onload = function(e)  {p = e.target;  p.textbox.setAttribute("value",p.responseText);}

        p.open("GET",this.parentNode.parentNode.parentNode.parentNode.sourceurl );
        p.send("",true);
              ]]></body>
            </method>
        </implementation>
    </binding>

</bindings>

--- NEW FILE: genericviewer.xml ---
<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl"
    xmlns:xbl="http://www.mozilla.org/xbl"
    xmlns:html="http://www.w3.org/1999/xhtml"
    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    
    
    <binding id="genericviewerbinding" extends="xul:tabpanel">
        <content>
            <xul:tabbox flex="1">
                <xul:tabs>
                    <xul:tab label="Contents"/>
                    <xul:tab label="Preview"/>
                    <xul:tab label="Properties"/>
                    <xul:tab label="Web Manage"/>
                </xul:tabs>
                <xul:tabpanels>
                    <xul:tabpanel flex="1">
                        <xul:textbox value="Some sample text" flex="1"/>
                    </xul:tabpanel>
                    <xul:tabpanel>
                        <xul:iframe flex="1" src=""/>
                    </xul:tabpanel>
                    <xul:tabpanel>
                        <xul:label/>
                    </xul:tabpanel>
                    <xul:tabpanel>
                        <xul:label/>
                        
                    </xul:tabpanel>
                </xul:tabpanels>
            </xul:tabbox>
        </content>
        <implementation>
            <field name="resourcetitle"/>
            <field name="sourceurl"></field>
            <field name="previewurl"/>
            <constructor>
                
                var folderviewer = document.getAnonymousNodes(this)[0].parentNode;

                var parent = folderviewer.parentNode.parentNode;
                var tabs = parent.getElementsByTagName("tabs")[0];
                var rt = this.resourcetitle;
                
                var thistab = document.createElement("tab");
                thistab.setAttribute("label",rt);
                thistab.setAttribute("id",rt + "-tab");
                tabs.appendChild(thistab);
                tabs.selectedItem = thistab;
            </constructor>
        </implementation>
    </binding>
</bindings>

--- NEW FILE: midasbindings.xml ---
<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl"
    xmlns:xbl="http://www.mozilla.org/xbl"
    xmlns:html="http://www.w3.org/1999/xhtml"
    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    
    
    
    <binding id="midaseditorbinding">
        <content>
            <xul:tabbox flex="1">
                <xul:tabs>
                    <xul:tab label="Midas" 
                    />
                    <xul:tab label="Source" oncommand="document.getAnonymousNodes(this)[0].parentNode.parentNode.parentNode.getElementsByAttribute('name','sourceedit')[0].setAttribute('value',document.getBindingParent(this).dataSource)"/>
                </xul:tabs>
                <xul:tabpanels>
                    <xul:tabpanel>
                    <xul:vbox flex="1">
                        <xul:hbox>
                            <xul:button label="bold" oncommand='document.getBindingParent(this).midasCommand("Bold");'/>
                            <xul:button label="italics" oncommand='document.getBindingParent(this).midasCommand("Italic");'/>                            
                        </xul:hbox>
                        <xul:iframe src="" height="300px" flex="1"/>
                        </xul:vbox> 
                    </xul:tabpanel>
                    <xul:tabpanel>
                           <xul:textbox name="sourceedit" height="300px" flex="1"/>
                    </xul:tabpanel>
                </xul:tabpanels>
            </xul:tabbox>
        </content>
        <implementation>
            <constructor>
                this.loadHTML();    
            </constructor>
            
            <fields name="editFrame"/>

            <property readonly="true" name="dataSource">
                <getter>
                        var ser = new XMLSerializer();
                        return ser.serializeToString(this.editFrame.contentDocument);
                </getter>
                
            </property>


            <method name="setEditFrame">
                <body>
                    <![CDATA[ 
              this.editFrame = document.getAnonymousNodes(this)[0].getElementsByTagNameNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","iframe")[0];
            ]]>              
                </body>
            </method>
            <method name="enableDesignMode">
                <parameter name="event"/>
                <body>
                    <![CDATA[ 
        // this = iframe here, since it's called from the onload event of the iframe
            this.contentDocument.designMode = "on";
        ]]>
                </body>
            </method>
            <method name="loadHTML">
                <body><![CDATA[ 

                    this.setEditFrame();

                    this.editFrame.onload = this.enableDesignMode;
                    if (this.editFrame.getAttribute("src") == "" ) {
                        this.editFrame.setAttribute("src", this.parentNode.parentNode.parentNode.parentNode.sourceurl );
                    }
              ]]></body>
            </method>
            <method name="midasCommand">
                <parameter name="commandName"/>
                <body><![CDATA[ 
                    this.editFrame.contentDocument.execCommand(commandName, false, null);
              ]]></body>
            </method>

            
        </implementation>
    </binding>
    
    
    
</bindings>

Index: bindings.xml
===================================================================
RCS file: /cvs/root/twingle/twingle/content/workspace/bindings.xml,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** bindings.xml	5 Mar 2003 19:30:32 -0000	1.1.1.1
--- bindings.xml	9 Mar 2003 18:58:38 -0000	1.2
***************
*** 38,71 ****
      <constructor>
  
-   /* Grab the tabbox and add a tab */
-   var folderviewer = document.getAnonymousNodes(this)[0].parentNode;
-   var parent = folderviewer.parentNode.parentNode;
-   var tabs = parent.getElementsByTagName("tabs")[0];
-   var rt = this.getAttribute("resourcetitle");
- 
-   var thistab = document.createElement("tab");
-   thistab.setAttribute("label",rt);
-   thistab.setAttribute("id",rt + "-tab");
-   tabs.appendChild(thistab);
- 
-   // Fetch the source and put it in the editor
-   var p = new XMLHttpRequest();
-   function myfunc (e) {
-     if (p.responseXML) {
-     var t = document.getAnonymousNodes(this)[0]
-     var xulns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-     // Set the edit widget source
-     t.childNodes[1].childNodes[0]
-           .getElementsByTagNameNS(xulns,"textbox")[0]
- 	  .setProperty("value","ieieei");
-     }
-   }
- 
-   // p.onload = myfunc;
-   // var sourceurl = this.getAttribute("sourceurl");
-   // dump("\n this.sourceurl is " + sourceurl);
-   // p.open("GET", sourceurl, false);
-   // p.send(null);
- 
      </constructor>
    </implementation>
--- 38,41 ----