1 /* vim:set ts=2 sw=2 sts=2 et cindent tw=79 ft=javascript: */
3 * Copyright (C) 2007 Sergey Yanovich <ynvich@gmail.com>
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation; either version 2 of the
8 * License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
15 * You should have received a copy of the GNU General Public
16 * License along with this program; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA.
21 const nsCI = Components.interfaces;
22 const dataSetContract = "@aasii.org/storage/load-quote;1";
26 Components.classes['@mozilla.org/consoleservice;1']
27 .getService(Components.interfaces.nsIConsoleService)
28 .logStringMessage(str);
34 for (var prop in obj) {
36 dump(prop + ": " + obj[prop] + "\n");
38 dump(prop + ": error: " + e.message + "\n");
45 return document.defaultView.QueryInterface(nsCI.nsIInterfaceRequestor)
46 .getInterface(nsCI.nsIWebNavigation).sessionHistory;
51 document.defaultView.QueryInterface(nsCI.nsIInterfaceRequestor)
52 .getInterface(nsCI.nsIWebNavigation)
53 .loadURI(uri,nsCI.nsIWebNavigation.LOAD_FLAGS_NONE,null,null,null);
59 function chartPageLoad()
61 var quotes = session().createQuery(dataSetContract)
62 .QueryInterface(nsCI.aaILoadQuery);
65 if (quotes.length > 0) {
66 gView.quote = quotes.queryElementAt(0, nsCI.aaIQuote);
67 document.getElementById("chart.date").dateValue =
68 new Date(gView.quote.time / 1000);
69 document.getElementById("chart.resource").value =
70 gView.quote.resource.tag;
73 gView.quote = Components.classes["@aasii.org/base/quote;1"]
74 .createInstance(nsCI.aaIQuote);
76 gView.quote.rate = 1.0;
79 document.getElementById("chart.date").addEventListener("change",
81 var broadcaster = Components.classes["@mozilla.org/observer-service;1"].
82 getService(nsCI.nsIObserverService);
83 broadcaster.addObserver(gView, "quote-resource-change", true);
88 var date = document.getElementById("chart.date").dateValue;
90 gView.quote.time = date.getTime() * 1000;
93 function openResource(side)
95 if (! document.getElementById("canSet").hasAttribute("disabled")) {
96 session().beginQuery();
97 addEventListener("pageshow", chosenResource, true);
99 loadURI("chrome://abstract/content/resource.xul");
102 function chosenResource()
104 removeEventListener("pageshow", chosenResource, true);
105 var buffer = session().queryBuffer;
106 if (buffer && gView && gView.quote)
107 gView.quote.resource = buffer.QueryInterface(nsCI.aaIResource);
110 function updateResource()
112 if (gView.quote.resource)
113 document.getElementById("chart.resource").value = gView.quote.resource.tag;
115 document.getElementById("chart.resource").value = "";
118 function setResource()
120 session().save(gView.quote, null);
124 function notifyReady()
127 document.getElementById("canSet").setAttribute("disabled", "true");
128 document.getElementById("canSet").setAttribute("collapsed", "true");
129 document.getElementById("isSet").removeAttribute("disabled");
130 document.getElementById("isSet").removeAttribute("collapsed");
139 QueryInterface : function aaViewQI(iid)
141 if (iid.equals(nsCI.nsIObserver) ||
142 iid.equals(nsCI.nsISupportsWeakReference) ||
143 iid.equals(nsCI.nsISupports))
146 throw Components.results.NS_ERROR_NO_INTERFACE;
151 observe: function aaViewObserve(aSubject, aTopic, aData)
153 if (this.quote && aSubject == this.quote) {
154 if (aTopic == "quote-resource-change")