Grammalecte  Hex Artifact Content

Artifact ed480efba2247a18fc0e6d0ac10e33d7bccdef5f2c2217db16d45801cae87f3b:


0000: 2f 2f 20 4a 61 76 61 53 63 72 69 70 74 0a 0a 63  // JavaScript..c
0010: 6f 6e 73 74 20 43 63 20 3d 20 43 6f 6d 70 6f 6e  onst Cc = Compon
0020: 65 6e 74 73 2e 63 6c 61 73 73 65 73 3b 0a 63 6f  ents.classes;.co
0030: 6e 73 74 20 43 69 20 3d 20 43 6f 6d 70 6f 6e 65  nst Ci = Compone
0040: 6e 74 73 2e 69 6e 74 65 72 66 61 63 65 73 3b 0a  nts.interfaces;.
0050: 2f 2f 20 63 6f 6e 73 74 20 43 75 20 3d 20 43 6f  // const Cu = Co
0060: 6d 70 6f 6e 65 6e 74 73 2e 75 74 69 6c 73 3b 0a  mponents.utils;.
0070: 63 6f 6e 73 74 20 70 72 65 66 73 20 3d 20 43 63  const prefs = Cc
0080: 5b 22 40 6d 6f 7a 69 6c 6c 61 2e 6f 72 67 2f 70  ["@mozilla.org/p
0090: 72 65 66 65 72 65 6e 63 65 73 2d 73 65 72 76 69  references-servi
00a0: 63 65 3b 31 22 5d 2e 67 65 74 53 65 72 76 69 63  ce;1"].getServic
00b0: 65 28 43 69 2e 6e 73 49 50 72 65 66 53 65 72 76  e(Ci.nsIPrefServ
00c0: 69 63 65 29 2e 67 65 74 42 72 61 6e 63 68 28 22  ice).getBranch("
00d0: 65 78 74 65 6e 73 69 6f 6e 73 2e 67 72 61 6d 6d  extensions.gramm
00e0: 61 72 63 68 65 63 6b 65 72 2e 22 29 3b 0a 0a 0a  archecker.");...
00f0: 76 61 72 20 6f 4f 70 74 43 6f 6e 74 72 6f 6c 20  var oOptControl 
0100: 3d 20 7b 0a 20 20 20 20 6f 4f 70 74 69 6f 6e 73  = {.    oOptions
0110: 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 6c 6f 61 64  : null,.    load
0120: 3a 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a  : function () {.
0130: 20 20 20 20 20 20 20 20 74 68 69 73 2e 5f 73 65          this._se
0140: 74 44 69 61 6c 6f 67 4f 70 74 69 6f 6e 73 28 66  tDialogOptions(f
0150: 61 6c 73 65 29 3b 0a 20 20 20 20 7d 2c 0a 20 20  alse);.    },.  
0160: 20 20 5f 73 65 74 44 69 61 6c 6f 67 4f 70 74 69    _setDialogOpti
0170: 6f 6e 73 3a 20 66 75 6e 63 74 69 6f 6e 20 28 62  ons: function (b
0180: 44 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 3d 66  DefaultOptions=f
0190: 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20  alse) {.        
01a0: 74 72 79 20 7b 0a 20 20 20 20 20 20 20 20 20 20  try {.          
01b0: 20 20 73 4f 70 74 69 6f 6e 73 20 3d 20 62 44 65    sOptions = bDe
01c0: 66 61 75 6c 74 4f 70 74 69 6f 6e 73 20 3f 20 70  faultOptions ? p
01d0: 72 65 66 73 2e 67 65 74 43 68 61 72 50 72 65 66  refs.getCharPref
01e0: 28 22 73 47 43 44 65 66 61 75 6c 74 4f 70 74 69  ("sGCDefaultOpti
01f0: 6f 6e 73 22 29 20 3a 20 70 72 65 66 73 2e 67 65  ons") : prefs.ge
0200: 74 43 68 61 72 50 72 65 66 28 22 73 47 43 4f 70  tCharPref("sGCOp
0210: 74 69 6f 6e 73 22 29 3b 0a 20 20 20 20 20 20 20  tions");.       
0220: 20 20 20 20 20 74 68 69 73 2e 6f 4f 70 74 69 6f       this.oOptio
0230: 6e 73 20 3d 20 4a 53 4f 4e 2e 70 61 72 73 65 28  ns = JSON.parse(
0240: 73 4f 70 74 69 6f 6e 73 29 3b 0a 20 20 20 20 20  sOptions);.     
0250: 20 20 20 20 20 20 20 66 6f 72 20 28 6c 65 74 20         for (let 
0260: 73 50 61 72 61 6d 20 69 6e 20 74 68 69 73 2e 6f  sParam in this.o
0270: 4f 70 74 69 6f 6e 73 29 20 7b 0a 20 20 20 20 20  Options) {.     
0280: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 64             if (d
0290: 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65  ocument.getEleme
02a0: 6e 74 42 79 49 64 28 22 6f 70 74 69 6f 6e 5f 22  ntById("option_"
02b0: 2b 73 50 61 72 61 6d 29 20 21 3d 3d 20 6e 75 6c  +sParam) !== nul
02c0: 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  l) {.           
02d0: 20 20 20 20 20 20 20 20 20 64 6f 63 75 6d 65 6e           documen
02e0: 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64  t.getElementById
02f0: 28 22 6f 70 74 69 6f 6e 5f 22 2b 73 50 61 72 61  ("option_"+sPara
0300: 6d 29 2e 63 68 65 63 6b 65 64 20 3d 20 74 68 69  m).checked = thi
0310: 73 2e 6f 4f 70 74 69 6f 6e 73 5b 73 50 61 72 61  s.oOptions[sPara
0320: 6d 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  m];.            
0330: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20      }.          
0340: 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20    }.        }.  
0350: 20 20 20 20 20 20 63 61 74 63 68 20 28 65 29 20        catch (e) 
0360: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f  {.            co
0370: 6e 73 6f 6c 65 2e 65 72 72 6f 72 28 65 29 3b 0a  nsole.error(e);.
0380: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 43              // C
0390: 75 2e 72 65 70 6f 72 74 45 72 72 6f 72 28 65 29  u.reportError(e)
03a0: 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20  ;.        }.    
03b0: 7d 2c 0a 20 20 20 20 73 61 76 65 3a 20 66 75 6e  },.    save: fun
03c0: 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 20 20 20  ction () {.     
03d0: 20 20 20 74 72 79 20 7b 0a 20 20 20 20 20 20 20     try {.       
03e0: 20 20 20 20 20 66 6f 72 20 28 6c 65 74 20 78 4e       for (let xN
03f0: 6f 64 65 20 6f 66 20 64 6f 63 75 6d 65 6e 74 2e  ode of document.
0400: 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 43 6c 61  getElementsByCla
0410: 73 73 4e 61 6d 65 28 22 6f 70 74 69 6f 6e 22 29  ssName("option")
0420: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) {.            
0430: 20 20 20 20 74 68 69 73 2e 6f 4f 70 74 69 6f 6e      this.oOption
0440: 73 5b 78 4e 6f 64 65 2e 69 64 2e 73 6c 69 63 65  s[xNode.id.slice
0450: 28 37 29 5d 20 3d 20 78 4e 6f 64 65 2e 63 68 65  (7)] = xNode.che
0460: 63 6b 65 64 3b 0a 20 20 20 20 20 20 20 20 20 20  cked;.          
0470: 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20    }.            
0480: 70 72 65 66 73 2e 73 65 74 43 68 61 72 50 72 65  prefs.setCharPre
0490: 66 28 22 73 47 43 4f 70 74 69 6f 6e 73 22 2c 20  f("sGCOptions", 
04a0: 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 79 28 74  JSON.stringify(t
04b0: 68 69 73 2e 6f 4f 70 74 69 6f 6e 73 29 29 3b 0a  his.oOptions));.
04c0: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20          }.      
04d0: 20 20 63 61 74 63 68 20 28 65 29 20 7b 0a 20 20    catch (e) {.  
04e0: 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 6f 6c            consol
04f0: 65 2e 65 72 72 6f 72 28 65 29 3b 0a 20 20 20 20  e.error(e);.    
0500: 20 20 20 20 20 20 20 20 2f 2f 20 43 75 2e 72 65          // Cu.re
0510: 70 6f 72 74 45 72 72 6f 72 28 65 29 3b 0a 20 20  portError(e);.  
0520: 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 2c 0a 20        }.    },. 
0530: 20 20 20 72 65 73 65 74 3a 20 66 75 6e 63 74 69     reset: functi
0540: 6f 6e 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20  on () {.        
0550: 74 68 69 73 2e 5f 73 65 74 44 69 61 6c 6f 67 4f  this._setDialogO
0560: 70 74 69 6f 6e 73 28 74 72 75 65 29 3b 0a 20 20  ptions(true);.  
0570: 20 20 7d 0a 7d 0a 0a 6f 4f 70 74 43 6f 6e 74 72    }.}..oOptContr
0580: 6f 6c 2e 6c 6f 61 64 28 29 3b 0a                 ol.load();.