[app] Select 'transfer.toFlow'
[abstract.git] / app / chrome / content / transfer.js
blob70e0533235fd1f52bbbd35a4ca726f700a6aa75f
1 /* vim:set ts=2 sw=2 sts=2 et cindent tw=79 ft=javascript: */
2 /*
3  * Copyright (C) 2007 Sergey Yanovich <ynvich@gmail.com>
4  *
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.
9  *
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.
14  *
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.
19  */
21 const nsCI = Components.interfaces;
23 function jsdump(str)
25     Components.classes['@mozilla.org/consoleservice;1']
26       .getService(Components.interfaces.nsIConsoleService)
27       .logStringMessage(str);
30 function objdump(obj)
32   dump(obj + "\n");
33   for (var prop in obj) {
34     try {
35       dump(prop + ": " + obj[prop] + "\n");
36     } catch (e) {
37       dump(prop + ": error: " + e.message + "\n");
38     }
39   }
42 function session()
44   return document.defaultView.QueryInterface(nsCI.nsIInterfaceRequestor)
45     .getInterface(nsCI.nsIWebNavigation)
46     .sessionHistory.QueryInterface(nsCI.nsIInterfaceRequestor)
47     .getInterface(nsCI.aaISession);
50 function loadURI(uri)
51
52   document.defaultView.QueryInterface(nsCI.nsIInterfaceRequestor)
53     .getInterface(nsCI.nsIWebNavigation)
54     .loadURI(uri,nsCI.nsIWebNavigation.LOAD_FLAGS_NONE,null,null,null);
57 var gFact = null;
59 function transferPageLoad()
61   gFact = Components.classes["@aasii.org/base/fact;1"].
62     createInstance(nsCI.aaIFact);
65 function openFlow(side)
67   session().beginQuery();
68   if (! side)
69     addEventListener("pageshow", chosenFrom, true);
70   else
71     addEventListener("pageshow", chosenTo, true);
72   loadURI("chrome://abstract/content/flow.xul");
75 function chosenFrom()
77   removeEventListener("pageshow", chosenFrom, true);
78   var buffer = session().queryBuffer;
79   session().queryBuffer = null;
80   if (buffer)
81     gFact.takeFrom = buffer.QueryInterface(nsCI.aaIFlow);
83   updateFromFlow();
86 function chosenTo()
88   removeEventListener("pageshow", chosenTo, true);
89   var buffer = session().queryBuffer;
90   session().queryBuffer = null;
91   if (buffer)
92     gFact.giveTo = buffer.QueryInterface(nsCI.aaIFlow);
94   updateToFlow();
97 function updateFromFlow()
99   if (gFact && gFact.takeFrom)
100     document.getElementById("transfer.fromFlow").value = gFact.takeFrom.tag;
101   else
102     document.getElementById("transfer.fromFlow").value = document.
103       getElementById("bundle_abstract").getString("link.choose");
106 function updateToFlow()
108   if (gFact && gFact.giveTo)
109     document.getElementById("transfer.toFlow").value = gFact.giveTo.tag;
110   else
111     document.getElementById("transfer.toFlow").value = document.
112       getElementById("bundle_abstract").getString("link.choose");