Browse Source

update pbt.js

Cubees 7 năm trước cách đây
mục cha
commit
394619ee6a
1 tập tin đã thay đổi với 40 bổ sung0 xóa
  1. 40 0
      Playground/js/pbt.js

+ 40 - 0
Playground/js/pbt.js

@@ -2,6 +2,7 @@
 var PBT = function() {
     this.decorationStyles = new Array();
     this.decorations = new Array();
+    this.lineRanges = new Array();
     var advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
     
     this.clearDecorLines = function() {
@@ -41,12 +42,51 @@ var PBT = function() {
 
     this.hideLines = function(lineRanges) {
         var ranges = [];
+        this.lineRanges = lineRanges;
         for(var i = 0; i < lineRanges.length; i +=2) {
             ranges.push(new monaco.Range(lineRanges[i], 1, lineRanges[i + 1], 100000));                
         }
         jsEditor.setHiddenAreas(ranges);
     }
 
+    this.hideRange = function(lineRanges) {       
+        var ranges = [];
+        lineRanges = this.lineRanges.concat(lineRanges);
+        this.lineRanges = lineRanges;
+        for(var i = 0; i < lineRanges.length; i +=2) {
+            ranges.push(new monaco.Range(lineRanges[i], 1, lineRanges[i + 1], 100000));                
+        }
+        jsEditor.setHiddenAreas(ranges);
+    }
+
+    this.showRange = function(lineRanges) {
+        var rangePairs = [];
+        var linePairs = [];       
+        for(var i = 0; i < this.lineRanges.length; i +=2) {
+            rangePairs.push(this.lineRanges[i] + "=" + this.lineRanges[i + 1]);                
+        }        
+        for(var i = 0; i < lineRanges.length; i +=2) {
+            linePairs.push(lineRanges[i] + "=" + lineRanges[i + 1]);                
+        }       
+        var rangeString = rangePairs.join("-");         
+        for(var i = 0; i < linePairs.length; i++) {           
+            rangeString = rangeString.replace(linePairs[i]+"-", "");
+            rangeString = rangeString.replace("-" + linePairs[i], ""); //when last element
+        }        
+        rangeString = rangeString.replace(/-/g, ",");       
+        rangeString = rangeString.replace(/=/g, ",");       
+        lineRanges = rangeString.split(",");      
+        lineRanges = lineRanges.map(function(n){
+            return parseInt(n);
+        });       
+        var ranges = [];
+        for(var i = 0; i < lineRanges.length; i +=2) {
+            ranges.push(new monaco.Range(lineRanges[i], 1, lineRanges[i + 1], 100000));                
+        }
+        this.lineRanges = lineRanges;        
+        jsEditor.setHiddenAreas(ranges);
+    }
+
     this.editOn = function() {
         jsEditor.updateOptions({readOnly: false});
     }