Ignore:
Timestamp:
10/02/08 17:07:26 (11 years ago)
Author:
douglas
Message:

FIXED Ticket #1176 Merging new dialogs branch back to trunk.

Location:
trunk/modules/InsertTable
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/InsertTable/insert_table.js

    r1001 r1044  
    1313    --      This copyright notice MUST stay intact for use. 
    1414    -- 
    15     --  This is the standard implementation of the Xinha.prototype._insertTable method, 
    16     --  which provides the functionality to insert an image in the editor. 
     15    --  This is the Xinha standard implementation of a table insertion plugin 
    1716    -- 
    18     --  he file is loaded as a special plugin by the Xinha Core when no alternative method (plugin) is loaded. 
     17    --  The file is loaded by the Xinha Core when no alternative method (plugin) is loaded. 
    1918    -- 
    2019    -- 
     
    3635 
    3736function InsertTable(editor) { 
    38 }                                       
     37        this.editor = editor; 
     38        var cfg = editor.config; 
     39        var self = this; 
    3940 
    40 Xinha.prototype._insertTable = function() 
     41        editor.config.btnList.inserttable[3] = function() { self.show(); } 
     42      } 
     43 
     44InsertTable.prototype._lc = function(string) { 
     45        return Xinha._lc(string, 'Xinha'); 
     46}; 
     47 
     48 
     49InsertTable.prototype.onGenerateOnce = function() 
    4150{ 
    42   var sel = this.getSelection(); 
    43   var range = this.createRange(sel); 
    44   var editor = this;    // for nested functions 
    45   Dialog( 
    46     editor.config.URIs.insert_table, 
    47     function(param) 
    48     { 
    49       // user must have pressed Cancel 
    50       if ( !param ) 
    51       { 
    52         return false; 
    53       } 
    54       var doc = editor._doc; 
    55       // create the table element 
    56       var table = doc.createElement("table"); 
    57       // assign the given arguments 
     51        InsertTable.loadAssets(); 
     52}; 
     53InsertTable.loadAssets = function() 
     54{ 
     55        var self = InsertTable; 
     56        if (self.loading) return; 
     57        self.loading = true; 
     58        Xinha._getback(_editor_url + 'modules/InsertTable/dialog.html', function(getback) { self.html = getback; self.dialogReady = true; }); 
     59        Xinha._getback(_editor_url + 'modules/InsertTable/pluginMethods.js', function(getback) { eval(getback); self.methodsReady = true; }); 
     60}; 
    5861 
    59       for ( var field in param ) 
    60       { 
    61         var value = param[field]; 
    62         if ( !value ) 
    63         { 
    64           continue; 
    65         } 
    66         switch (field) 
    67         { 
    68           case "f_width": 
    69             table.style.width = value + param.f_unit; 
    70           break; 
    71           case "f_align": 
    72             table.align = value; 
    73           break; 
    74           case "f_border": 
    75             table.border = parseInt(value, 10); 
    76           break; 
    77           case "f_spacing": 
    78             table.cellSpacing = parseInt(value, 10); 
    79           break; 
    80           case "f_padding": 
    81             table.cellPadding = parseInt(value, 10); 
    82           break; 
    83         } 
    84       } 
    85       var cellwidth = 0; 
    86       if ( param.f_fixed ) 
    87       { 
    88         cellwidth = Math.floor(100 / parseInt(param.f_cols, 10)); 
    89       } 
    90       var tbody = doc.createElement("tbody"); 
    91       table.appendChild(tbody); 
    92       for ( var i = 0; i < param.f_rows; ++i ) 
    93       { 
    94         var tr = doc.createElement("tr"); 
    95         tbody.appendChild(tr); 
    96         for ( var j = 0; j < param.f_cols; ++j ) 
    97         { 
    98           var td = doc.createElement("td"); 
    99           // @todo : check if this line doesnt stop us to use pixel width in cells 
    100           if (cellwidth) 
    101           { 
    102             td.style.width = cellwidth + "%"; 
    103           } 
    104           tr.appendChild(td); 
    105           // Browsers like to see something inside the cell (&nbsp;). 
    106           td.appendChild(doc.createTextNode('\u00a0')); 
    107         } 
    108       } 
    109       if ( Xinha.is_ie ) 
    110       { 
    111         range.pasteHTML(table.outerHTML); 
    112       } 
    113       else 
    114       { 
    115         // insert the table 
    116         editor.insertNodeAtSelection(table); 
    117       } 
    118       return true; 
    119     }, 
    120     null 
    121   ); 
     62InsertTable.prototype.onUpdateToolbar = function() 
     63{  
     64  if (!(InsertTable.dialogReady && InsertTable.methodsReady)) 
     65        { 
     66          this.editor._toolbarObjects.inserttable.state("enabled", false); 
     67        } 
     68        else this.onUpdateToolbar = null; 
    12269}; 
     70 
     71InsertTable.prototype.prepareDialog = function() 
     72{ 
     73        var self = this; 
     74        var editor = this.editor; 
     75 
     76        var dialog = this.dialog = new Xinha.Dialog(editor, InsertTable.html, 'Xinha',{width:400}) 
     77        // Connect the OK and Cancel buttons 
     78        dialog.getElementById('ok').onclick = function() {self.apply();} 
     79        dialog.getElementById('cancel').onclick = function() { self.dialog.hide()}; 
     80   
     81        this.borderColorPicker = new Xinha.colorPicker.InputBinding(dialog.getElementById('border_color')); 
     82 
     83        this.dialog.onresize = function () 
     84        { 
     85                this.getElementById("layout_fieldset").style.width =(this.width / 2) + 50 + 'px'; 
     86    this.getElementById("spacing_fieldset").style.width =(this.width / 2) - 120 + 'px';  
     87        } 
     88 
     89        this.dialogReady = true; 
     90}; 
Note: See TracChangeset for help on using the changeset viewer.