зеркало из https://github.com/mozilla/gecko-dev.git
Adding tooltip to sidebar for search. r=samir sr=hewitt bug 77624
This commit is contained in:
Родитель
2ab84a7de2
Коммит
a5873e0f13
|
@ -292,9 +292,9 @@ function ensureDefaultEnginePrefs(aRDF,aDS)
|
|||
|
||||
mPrefs = Components.classes["@mozilla.org/preferences;1"].getService(Components.interfaces.nsIPrefBranch);
|
||||
var defaultName = mPrefs.getComplexValue("browser.search.defaultenginename" , Components.interfaces.nsIPrefLocalizedString);
|
||||
kNC_Root = aRDF.GetResource("NC:SearchEngineRoot");
|
||||
kNC_child = aRDF.GetResource("http://home.netscape.com/NC-rdf#child");
|
||||
kNC_Name = aRDF.GetResource("http://home.netscape.com/NC-rdf#Name");
|
||||
var kNC_Root = aRDF.GetResource("NC:SearchEngineRoot");
|
||||
var kNC_child = aRDF.GetResource("http://home.netscape.com/NC-rdf#child");
|
||||
var kNC_Name = aRDF.GetResource("http://home.netscape.com/NC-rdf#Name");
|
||||
|
||||
var arcs = aDS.GetTargets(kNC_Root, kNC_child, true);
|
||||
while (arcs.hasMoreElements()) {
|
||||
|
@ -974,3 +974,70 @@ function doEnabling()
|
|||
var sidebarSearchText = document.getElementById("sidebar-search-text");
|
||||
searchButton.disabled = !sidebarSearchText.value;
|
||||
}
|
||||
|
||||
//Step up the dom until getting the desired node.
|
||||
function getItemNode(aNode,nodeName)
|
||||
{
|
||||
var node = aNode;
|
||||
while (node.localName != nodeName) {
|
||||
node = node.parentNode;
|
||||
}
|
||||
return node ? node : null;
|
||||
}
|
||||
|
||||
//Fill in tooltip in teh search results panel
|
||||
function FillInDescTooltip(tipElement)
|
||||
{
|
||||
var retValue = false;
|
||||
|
||||
//Get the cell node and the tree item node of
|
||||
//moused over sherlock result
|
||||
var nodeTreeCell = getItemNode(tipElement, "treecell");
|
||||
var nodeTreeitem = getItemNode(tipElement, "treeitem");
|
||||
|
||||
//Get the Name of the tree cell for first item in the tooltip
|
||||
var nodeLabel = nodeTreeCell.getAttribute("label");
|
||||
var nodeID = nodeTreeitem.id;
|
||||
|
||||
//Query RDF to get URL of tree item
|
||||
if (nodeID)
|
||||
try {
|
||||
var ds = document.getElementById("Tree").database;
|
||||
if (ds) {
|
||||
var rdf = Components.classes[RDFSERVICE_CONTRACTID].getService(nsIRDFService);
|
||||
var src = rdf.GetResource(nodeID, true);
|
||||
var prop = rdf.GetResource("http://home.netscape.com/NC-rdf#URL", true);
|
||||
var url = ds.GetTarget(src, prop, true);
|
||||
if (url)
|
||||
url = url.QueryInterface(nsIRDFLiteral).Value;
|
||||
}
|
||||
} catch (ex) {
|
||||
}
|
||||
|
||||
//Fill in the the text nodes
|
||||
//collapse them if there is not a node
|
||||
if (nodeLabel || url) {
|
||||
var tooltipTitle = document.getElementById("titleText");
|
||||
var tooltipUrl = document.getElementById("urlText");
|
||||
if (nodeLabel) {
|
||||
if (tooltipTitle.getAttribute("hidden") == "true")
|
||||
tooltipTitle.removeAttribute("hidden");
|
||||
tooltipTitle.setAttribute("value",nodeLabel);
|
||||
}
|
||||
else {
|
||||
tooltipTitle.setAttribute("hidden", "true");
|
||||
}
|
||||
if (url) {
|
||||
if (tooltipUrl.getAttribute("hidden") == "true")
|
||||
tooltipUrl.removeAttribute("hidden");
|
||||
if (url.length > 100)
|
||||
url = url.substr(0,100) + "...";
|
||||
tooltipUrl.setAttribute("value",url);
|
||||
}
|
||||
else {
|
||||
tooltipUrl.setAttribute("hidden", "true");
|
||||
}
|
||||
retValue = true;
|
||||
}
|
||||
return retValue;
|
||||
}
|
||||
|
|
|
@ -47,6 +47,15 @@
|
|||
<menu />
|
||||
</popup>
|
||||
</popupset>
|
||||
|
||||
<popupset id="descTooltipSet">
|
||||
<tooltip id="descTooltip" noautohide="true" onpopupshowing="return FillInDescTooltip(document.tooltipNode)">
|
||||
<vbox id="tipTextBox" flex="1">
|
||||
<text id="titleText" />
|
||||
<text id="urlText" />
|
||||
</vbox>
|
||||
</tooltip>
|
||||
</popupset>
|
||||
|
||||
<vbox flex="1">
|
||||
<vbox class="box-padded outset-top-bottom">
|
||||
|
@ -140,7 +149,8 @@
|
|||
<treerow class="searchresult">
|
||||
<treecell class="treecell-iconic searchresult-cell"
|
||||
src="rdf:http://home.netscape.com/NC-rdf#Icon"
|
||||
label="rdf:http://home.netscape.com/NC-rdf#Name"/>
|
||||
label="rdf:http://home.netscape.com/NC-rdf#Name"
|
||||
tooltip="descTooltip"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
|
|
Загрузка…
Ссылка в новой задаче