зеркало из https://github.com/mozilla/pjs.git
120 строки
3.6 KiB
JavaScript
120 строки
3.6 KiB
JavaScript
/* -*- Mode: Java; tab-width: 4; c-basic-offset: 4; -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is mozilla.org code.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
* Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*/
|
|
|
|
/*
|
|
|
|
Script for the registry viewer window
|
|
|
|
*/
|
|
|
|
var RDF = Components.classes['component://netscape/rdf/rdf-service'].getService();
|
|
RDF = RDF.QueryInterface(Components.interfaces.nsIRDFService);
|
|
|
|
var Registry;
|
|
var REGISTRY_NAMESPACE_URI = 'urn:mozilla-registry:'
|
|
var REGISTRY_VALUE_PREFIX = REGISTRY_NAMESPACE_URI + 'value:';
|
|
var kRegistry_Subkeys = RDF.GetResource(REGISTRY_NAMESPACE_URI + 'subkeys');
|
|
|
|
function debug(msg)
|
|
{
|
|
//dump(msg + '\n');
|
|
}
|
|
|
|
function OnLoad()
|
|
{
|
|
Registry = Components.classes['component://netscape/registry-viewer'].createInstance();
|
|
Registry = Registry.QueryInterface(Components.interfaces.nsIRegistryDataSource);
|
|
|
|
Registry.openWellKnownRegistry(Registry.ApplicationComponentRegistry);
|
|
|
|
Registry = Registry.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
|
|
|
var tree = document.getElementById('tree');
|
|
tree.database.AddDataSource(Registry);
|
|
|
|
tree.setAttribute('ref', 'urn:mozilla-registry:key:/');
|
|
}
|
|
|
|
function OnSelect(event)
|
|
{
|
|
var tree = event.target;
|
|
var items = tree.selectedItems;
|
|
|
|
var properties = document.getElementById('properties');
|
|
if (properties.firstChild) {
|
|
properties.removeChild(properties.firstChild);
|
|
}
|
|
|
|
if (items.length == 1) {
|
|
// Exactly one item is selected. Show as much information as we
|
|
// can about it.
|
|
var table = document.createElement('html:table');
|
|
|
|
debug('selected item = ' + items[0].getAttribute('id'));
|
|
var uri = items[0].getAttribute('id');
|
|
|
|
var source = RDF.GetResource(uri);
|
|
var arcs = Registry.ArcLabelsOut(source);
|
|
while (arcs.HasMoreElements()) {
|
|
var property = arcs.GetNext().QueryInterface(Components.interfaces.nsIRDFResource);
|
|
if (property == kRegistry_Subkeys)
|
|
continue;
|
|
|
|
var propstr = property.Value.substr(REGISTRY_VALUE_PREFIX.length);
|
|
debug('propstr = ' + propstr);
|
|
|
|
var target = Registry.GetTarget(source, property, true);
|
|
var targetstr;
|
|
|
|
var literal;
|
|
literal = target.QueryInterface(Components.interfaces.nsIRDFLiteral);
|
|
if (literal) {
|
|
targetstr = literal.Value;
|
|
}
|
|
else {
|
|
literal = target.QueryInterface(Components.interfaces.nsIRDFInt)
|
|
if (literal) {
|
|
targetstr = literal.Value;
|
|
}
|
|
else {
|
|
// Hmm. Not sure!
|
|
}
|
|
}
|
|
|
|
debug('targetstr = ' + targetstr);
|
|
|
|
var tr = document.createElement('html:tr');
|
|
table.appendChild(tr);
|
|
|
|
var td1 = document.createElement('html:td');
|
|
td1.appendChild(document.createTextNode(propstr));
|
|
tr.appendChild(td1);
|
|
|
|
var td2 = document.createElement('html:td');
|
|
td2.appendChild(document.createTextNode(targetstr));
|
|
tr.appendChild(td2);
|
|
}
|
|
|
|
properties.appendChild(table);
|
|
}
|
|
}
|