Mozillaでプログラミング(XUL)

このエントリーをはてなブックマークに追加
944デフォルトの名無しさん:04/11/24 21:40:10
二つのRDFをメモリー上で一緒にするスマートな方法ってありませんか?
945デフォルトの名無しさん:04/11/24 22:40:56
一緒にするとは?
946デフォルトの名無しさん:04/11/24 23:01:10
合成ってことです。
nsIRDFCompositeDataSourceはnsIRDFDataSourceから作れないようなので
947デフォルトの名無しさん:04/11/24 23:18:19
var myCDS = Components.classes['@mozilla.org/rdf/datasource;1?name=composite-datasource'].createInstance(Components.interfaces.nsIRDFCompositeDataSource);
myCDS.AddDataSource(myDS1);
myCDS.AddDataSource(myDS2);
ではダメですか?
948デフォルトの名無しさん:04/11/25 16:39:45
どちらかと言うと片方のRDFに別のRDFを合成して、OKを押したら合成後のRDFをflushさせて書き出したいんですよね。
まぁrdfのテンポラリファイルを作るか、すべてのリソースを移動すればいいんですけどね
949デフォルトの名無しさん:04/11/25 17:59:38
RDFとして扱わずに単純なXMLとして操作してはどうだろう
950デフォルトの名無しさん:04/11/25 18:00:49
うほっ良スレ!
951デフォルトの名無しさん:04/11/25 18:43:31
http://xulplanet.com/downloads/rdfds/rdfds.js
の copyAllToDataSource とかかな。
952デフォルトの名無しさん:04/11/25 20:12:21
>>949
それは昔やってました。
thunderbirdでdocument.evaluateが使えなくRDF化している最中でつまずきました

>>951
それを使えばできそうですね。
ありがとうございます
#というかこんな物があったなんてorz
#独自でラッピング(?)してました。
953デフォルトの名無しさん:04/11/25 21:16:34
バリバリにグローバルつかってるのは、
overlayした時に不便だから、結局自分で手書きした方が楽なんだよねぇ。
954デフォルトの名無しさん:04/11/26 20:51:28
もう一個質問いいですか?
Seqが削除できません。
Unassertで関連を切っても残ってしまいます。
何か方法ありませんか?
#それともこっちのミスかなぁ
955デフォルトの名無しさん:04/11/26 21:43:30
>>954
var ds = RDFContainer.DataSource;
var node = RDFContainer.Resource;

var keys = ds.ArcLabelsOut(node),
key,
value;
while (keys.hasMoreElements())
{
try {
key = keys.getNext().QueryInterface(Components.interfaces.nsIRDFResource);
value = ds.GetTarget(node, key, true);
ds.Unassert(node, key, value);
}
catch(e) {
}
}
みたいにすれば消えるはず
956デフォルトの名無しさん:04/11/26 22:00:40
それしてるんですよね。
Seqの中身をすべて削除してunassertしても空のどことも関連がないSeqが残ってしまいます。
#やっぱコードのミスかなぁ
957デフォルトの名無しさん:04/11/27 00:12:33
>>956
スクリプトのどこかにミスがあって二重にassertしてるのでは?
>>955
value = ds.GetTarget(node, key, true);
の代わりに、GetTargetsで全てのノードを取り出してunassertすれば
より確実だと思うけど、野暮ったいから自分のスクリプトではやってない。
958デフォルトの名無しさん:04/11/27 11:10:21
assertはしてないです。
元からあるRDFを関数再起呼び出しでunassertするだけなんですが…
GetTargetsでも一つしか帰ってこない気がします。
もしかして削除の順番とかが関係するんでしょうか?
959デフォルトの名無しさん:04/11/27 15:34:04
>>955 とか idl 見て今気づいたんだけど、Unassert って引数 3 個だったんだ。

http://piro.sakura.ne.jp/xul/tips/x0025.html
を見てRDFの操作方法を憶えたから、Unassert(aResource,aProperty,aTarget,true);と使ってしまっている。
960デフォルトの名無しさん:04/11/27 17:40:04
>>959
え…
本当ですね。
でも最後のboolがないだけなので最後をtrueとしても問題はないですね。
961デフォルトの名無しさん:04/11/27 18:28:33
>>959
コピペして書いたので間違えてましたorz
962デフォルトの名無しさん:04/11/29 12:38:04
Firefoxのブックマークサイドバーにツールチップを表示する拡張を
作ろうとしているのですが、デフォルトで表示される表示領域より
ツールチップのラベルが長いときのツールチップを消せません。
デフォルトのツールチップはどこで表示されているのでしょうか?
963デフォルトの名無しさん:04/11/29 12:38:38
訂正
×ツールチップのラベルが→○ブックマークのラベルが
964デフォルトの名無しさん:04/11/29 15:47:08
https://bugzilla.mozilla.org/show_bug.cgi?id=32157
消すのはちょいと難しそう
965デフォルトの名無しさん:04/11/29 17:04:35
む、ネイティブ側にあるのか
しかもそのコードが悪さをしてるのかtreecellにtooltip設定しても
まともに動作しない…
966955:04/11/30 17:59:31
>>960
問題ないの? じゃあ直さないでいいや。

967966:04/11/30 18:01:32
955じゃなくて>>959だった。
968デフォルトの名無しさん:04/11/30 18:16:55
XULWiki 発見!
http://wiki.fdiary.net/xul/
969デフォルトの名無しさん:04/12/01 00:26:59
GJ
970デフォルトの名無しさん:04/12/03 00:38:10
Thunderbirdの返信ヘッダカスタマイズ拡張を作ろうと思ったんだけど、
このコードでThunderbirdが即死する。
XULのプログラムは初めてなんですが、どこが間違ってるんでしょうか…

var quoteListener = {
onStartRequest: function(request , context) {
},

onStopRequest: function(request, context , statusCode) {
},

onDataAvailable: function(request, context, inputStream, offset, count) {
},

QueryInterface: function(iid) {
if (iid.equals(Components.interfaces.nsISupports) ||
iid.equals(Components.interfaces.nsIRequestObserver) ||
iid.equals(Components.interfaces.nsIStreamListener))
return this;

throw Components.results.NS_NOINTERFACE;
}
};

var msgQuote = Components.classes['@mozilla.org/messengercompose/quoting;1'].createInstance().QueryInterface(Components.interfaces.nsIMsgQuote);

if (msgQuote)
msgQuote.QuoteMessage(params.originalMsgURI, false, quoteListener, null, false);
971デフォルトの名無しさん:04/12/03 17:24:09
.createInstance().QueryInterface(Components.interfaces.nsIMsgQuote);
->
.createInstance(Components.interfaces.nsIMsgQuote);
972デフォルトの名無しさん:04/12/03 17:26:20
つーか、どこで死ぬのかわからないってことは、
これからも手探りでやるつもり?
自分には無理だ…
973デフォルトの名無しさん:04/12/03 19:12:01
>>971
ありがとう。でも結果同じでやっぱり死んじゃう。・゚・(ノ∀`)・゚・。

QuoteMessage()の呼出し後に、onStartRequest()は実行されてるけど、
onDataAvailable()が実行されずにアプリケーションエラーで死亡(´・ω・`)

XULでプログラムしてる人って、xulplanet.comとMozillaのソースコード
だけで何とかなってるの?
974デフォルトの名無しさん:04/12/03 22:59:02
>>973
あ、それは自分も経験がある。
引数のinputStreamをうそでも触っておいた方がいいみたい。

>xulplanet.comとMozillaのソースコードだけ
まあ、ない袖は振れないってやつですね。
975デフォルトの名無しさん:04/12/03 23:00:19
Firefoxの拡張作る際の手順だけ誰か教えて下さい('A`)
976デフォルトの名無しさん:04/12/03 23:06:43
>>974
>引数のinputStreamをうそでも触っておいた方がいいみたい。

ぜひ、詳しく(`・ω・´)
977デフォルトの名無しさん:04/12/04 00:22:49
>>975
http://www.mozilla.gr.jp/~kazhik/xul/tutorial.html
とか見てみたらどうでしょう。5のインストーラのとこはもはや古くてダメですが。
978デフォルトの名無しさん:04/12/04 02:47:40
>>977
ありがとうございます。
そのページはすでに、すべて読みました。
私がやりたいのはFirefoxにメニュー項目を追加したりする、Firefoxの拡張を作る際の手順です。すんません('A`)

979デフォルトの名無しさん:04/12/04 02:52:36
そういった親切なリファレンスはないので、
似たようなことをやってる拡張を探して中身を見るのがてっとりばやいのでは?
980デフォルトの名無しさん:04/12/04 02:55:03
やっぱりそうですよね。どうもありがとうございました('A...
981デフォルトの名無しさん:04/12/04 02:56:45
>>980
あなたが親切なリファレンスを書くとみんなが幸せになれる
982デフォルトの名無しさん:04/12/04 02:58:12
>>981
今私もいつかそういう手順を説明した文章を書こうかなと思ってたところです。('...
983975:04/12/04 03:49:31
ここがなかなか参考になりそうな予感がします。
http://www.mozilla-japan.org/docs/tutorials/tinderstatus/
984デフォルトの名無しさん:04/12/04 04:40:36
RDFの個々の要素についての資料が全然見つからないんですが、
どこかにありますか?
985デフォルトの名無しさん:04/12/04 04:56:43
個々の要素とは?
986デフォルトの名無しさん:04/12/04 05:07:28
たとえば、他の人が書いたコードを読んでいて、

document.getElementById("messagepane").contentDocument;
document.getElementById("statusbar-icon");

とかあった場合に、messagepaneやstatusbar-iconが何なのか、
ググっても全然見つかりません。
987デフォルトの名無しさん:04/12/04 05:25:44
RDFではなくXULではないでしょうか。
XULを見てそのidを探してみてください。
988デフォルトの名無しさん:04/12/04 05:37:08
ありがとうございます。XULの中にありました。
           ___
         | 安 |
         | 倍 |    チーン…
         | ぬ |
         | す |         
         | み |
      ,,,.   | 之 |  ,'"';,
    、''゙゙;、).  | 墓 | 、''゙゙;、),、
     ゙''!リ'' i二二二二!゙''l!リ'''゙
     ‖  `i二二二!´ ‖
     昌 |: ̄ ̄ ̄ ̄:| 昌
    | ̄:|_|;;;l"二二゙゙l;;|_| ̄:|
    |  :|::::::| |;;;;;;;;;;| |::::|  :|
    |  :|::::::|┌─┐|::::|  :|
 ./゙゙└‐┴ ┴l,,,,,,,,,,l┴┴‐┘゙゙゙゙\

990デフォルトの名無しさん:04/12/04 14:20:36
某拡張のセキュリティホール見ておもったんですが
システムアクセスの権限を放棄するようなことはできないのでしょうか。
>>659にそれっぽいことが書いてるんですが肝心のプロパティやメソッドは
スクリプトからアクセスできないものばかり…
991デフォルトの名無しさん:04/12/04 14:25:27
XULといえば

アフリカの、ジンバブエを首都に持つかつての勇猛な民族ズールー族を思い出す。
現在では国名もジンバブエ?



992デフォルトの名無しさん:04/12/04 17:24:29
XULってエックスユーエルって読むんじゃねーのかよ!ヽ(`Д´)ノ
993デフォルトの名無しさん
XULの読みはズールじゃなくて、クスールだろ?
でも、Xylitolはキシリトールじゃなくて、ザイリトールだ。