summaryrefslogtreecommitdiff
path: root/swat/esptest/registry.esp
blob: 85843c41d9caddbaa1ca9bdda88b6daa9011b8e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<% 
  page_header("columns", "ESP registry edit", "esptest"); 
%>

<script type="text/javascript" src="/scripting/client/encoder.js"></script>
<script type="text/javascript" src="/scripting/client/call.js"></script>

<h1>Registry Editor</h1>

  <script type="text/javascript">

function folder_list(t, list) {
	var i;
	t.populated = true;
	t.reg_list = new Object();
	for (i=0;i<list.length;i++) {
		var te;
		if (t.reg_list.working != undefined) {
			te = t.reg_list.working;
			t.reg_list = new Object();
			te.label = list[i];
		} else {
			te = new QxTreeFolder(list[i]);
			t.add(te);
		}
		te.binding = t.binding;
		if (t.reg_path == '\\\\') {
			te.reg_path = list[i];
		} else {
			te.reg_path = t.reg_path + '\\\\' + list[i];
		}
		te.reg_list = new Object();
		te.reg_list.working = new QxTreeFolder('Working ...');
		te.add(te.reg_list.working);
		t.reg_list[list[i]] = te;
		te.addEventListener("click", function() { 
			var el = this; folder_click(el); 
		});
		te.setOverflow("auto");
		t.setOpen(1);
	}
}

function folder_click(t) {
	if (!t.populated) {
		server_call("registry_calls.esp", 'enum_path', 
			    function(list) { folder_list(t, list); }, 
			    t.binding, t.reg_path);
	}
}

/* return a registry tree for the given server */
function registry_tree(binding) {
      var t = new QxTree("registry: " + binding);
      t.binding = binding;
      t.reg_path = "\\\\";
      t.reg_list = new Object();
      t.populated = false;
      with(t)
      {
        setBackgroundColor(255);
        setBorder(QxBorder.presets.inset);
        setOverflow("auto");
        setStyleProperty("padding", "2px");
        setWidth(200);
        setHeight("100%");
        setTop(20);
	addEventListener("click", function() { folder_click(t); });
      }
      return t;
}

  window.application.main = function()
  {
    var inlineWidget = new QxInline;
    var fieldSet = new QxFieldSet("Registry");
    var binding = "ncacn_np:win2003";

    with(fieldSet)
    {
	    setWidth("40%");
	    setMinHeight(500);
	    setBottom(48);
	    setMinWidth(500);
    };

    var gl = new QxGridLayout("auto,auto,auto,auto,auto", "100%");
    gl.setEdge(0);
    gl.setCellPaddingTop(3);
    gl.setCellPaddingBottom(3);

    inlineWidget.add(fieldSet);

    var t = registry_tree(binding);

    function change_binding(e) {
	    binding = e.getNewValue();
    	    srv_printf("changed binding to %s\\n", binding);
	    gl.remove(t);
	    t = registry_tree(binding);
	    gl.add(t, { row : 2, col : 1 });
    }

    var b = new QxTextField(binding);
    b.addEventListener("changeText", change_binding);

    gl.add(b, { row : 1, col : 1 });
    gl.add(t, { row : 2, col : 1 });

    fieldSet.add(gl);
    inlineWidget.add(fieldSet);
    this.getClientWindow().getDocument().add(inlineWidget, "canvas");
  };

  </script>


 <div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>

<% page_footer(); %>