二つのRDFをメモリー上で一緒にするスマートな方法ってありませんか?
一緒にするとは?
合成ってことです。
nsIRDFCompositeDataSourceはnsIRDFDataSourceから作れないようなので
var myCDS = Components.classes['@mozilla.org/rdf/datasource;1?name=composite-datasource'].createInstance(Components.interfaces.nsIRDFCompositeDataSource);
myCDS.AddDataSource(myDS1);
myCDS.AddDataSource(myDS2);
ではダメですか?
どちらかと言うと片方のRDFに別のRDFを合成して、OKを押したら合成後のRDFをflushさせて書き出したいんですよね。
まぁrdfのテンポラリファイルを作るか、すべてのリソースを移動すればいいんですけどね
RDFとして扱わずに単純なXMLとして操作してはどうだろう
うほっ良スレ!
>>949 それは昔やってました。
thunderbirdでdocument.evaluateが使えなくRDF化している最中でつまずきました
>>951 それを使えばできそうですね。
ありがとうございます
#というかこんな物があったなんてorz
#独自でラッピング(?)してました。
バリバリにグローバルつかってるのは、
overlayした時に不便だから、結局自分で手書きした方が楽なんだよねぇ。
もう一個質問いいですか?
Seqが削除できません。
Unassertで関連を切っても残ってしまいます。
何か方法ありませんか?
#それともこっちのミスかなぁ
>>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) {
}
}
みたいにすれば消えるはず
それしてるんですよね。
Seqの中身をすべて削除してunassertしても空のどことも関連がないSeqが残ってしまいます。
#やっぱコードのミスかなぁ
>>956 スクリプトのどこかにミスがあって二重にassertしてるのでは?
>>955の
value = ds.GetTarget(node, key, true);
の代わりに、GetTargetsで全てのノードを取り出してunassertすれば
より確実だと思うけど、野暮ったいから自分のスクリプトではやってない。
assertはしてないです。
元からあるRDFを関数再起呼び出しでunassertするだけなんですが…
GetTargetsでも一つしか帰ってこない気がします。
もしかして削除の順番とかが関係するんでしょうか?
>>959 え…
本当ですね。
でも最後のboolがないだけなので最後をtrueとしても問題はないですね。
>>959 コピペして書いたので間違えてましたorz
Firefoxのブックマークサイドバーにツールチップを表示する拡張を
作ろうとしているのですが、デフォルトで表示される表示領域より
ツールチップのラベルが長いときのツールチップを消せません。
デフォルトのツールチップはどこで表示されているのでしょうか?
訂正
×ツールチップのラベルが→○ブックマークのラベルが
む、ネイティブ側にあるのか
しかもそのコードが悪さをしてるのかtreecellにtooltip設定しても
まともに動作しない…
>>960 問題ないの? じゃあ直さないでいいや。
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);
.createInstance().QueryInterface(Components.interfaces.nsIMsgQuote);
->
.createInstance(Components.interfaces.nsIMsgQuote);
つーか、どこで死ぬのかわからないってことは、
これからも手探りでやるつもり?
自分には無理だ…
973 :
デフォルトの名無しさん:04/12/03 19:12:01
>>971 ありがとう。でも結果同じでやっぱり死んじゃう。・゚・(ノ∀`)・゚・。
QuoteMessage()の呼出し後に、onStartRequest()は実行されてるけど、
onDataAvailable()が実行されずにアプリケーションエラーで死亡(´・ω・`)
XULでプログラムしてる人って、xulplanet.comとMozillaのソースコード
だけで何とかなってるの?
>>973 あ、それは自分も経験がある。
引数のinputStreamをうそでも触っておいた方がいいみたい。
>xulplanet.comとMozillaのソースコードだけ
まあ、ない袖は振れないってやつですね。
Firefoxの拡張作る際の手順だけ誰か教えて下さい('A`)
>>974 >引数のinputStreamをうそでも触っておいた方がいいみたい。
ぜひ、詳しく(`・ω・´)
>>977 ありがとうございます。
そのページはすでに、すべて読みました。
私がやりたいのはFirefoxにメニュー項目を追加したりする、Firefoxの拡張を作る際の手順です。すんません('A`)
そういった親切なリファレンスはないので、
似たようなことをやってる拡張を探して中身を見るのがてっとりばやいのでは?
やっぱりそうですよね。どうもありがとうございました('A...
>>980 あなたが親切なリファレンスを書くとみんなが幸せになれる
>>981 今私もいつかそういう手順を説明した文章を書こうかなと思ってたところです。('...
RDFの個々の要素についての資料が全然見つからないんですが、
どこかにありますか?
個々の要素とは?
たとえば、他の人が書いたコードを読んでいて、
document.getElementById("messagepane").contentDocument;
document.getElementById("statusbar-icon");
とかあった場合に、messagepaneやstatusbar-iconが何なのか、
ググっても全然見つかりません。
RDFではなくXULではないでしょうか。
XULを見てそのidを探してみてください。
988 :
デフォルトの名無しさん:04/12/04 05:37:08
ありがとうございます。XULの中にありました。
___
| 安 |
| 倍 | チーン…
| ぬ |
| す |
| み |
,,,. | 之 | ,'"';,
、''゙゙;、). | 墓 | 、''゙゙;、),、
゙''!リ'' i二二二二!゙''l!リ'''゙
‖ `i二二二!´ ‖
昌 |: ̄ ̄ ̄ ̄:| 昌
| ̄:|_|;;;l"二二゙゙l;;|_| ̄:|
| :|::::::| |;;;;;;;;;;| |::::| :|
| :|::::::|┌─┐|::::| :|
./゙゙└‐┴ ┴l,,,,,,,,,,l┴┴‐┘゙゙゙゙\
某拡張のセキュリティホール見ておもったんですが
システムアクセスの権限を放棄するようなことはできないのでしょうか。
>>659にそれっぽいことが書いてるんですが肝心のプロパティやメソッドは
スクリプトからアクセスできないものばかり…
991 :
デフォルトの名無しさん:04/12/04 14:25:27
XULといえば
アフリカの、ジンバブエを首都に持つかつての勇猛な民族ズールー族を思い出す。
現在では国名もジンバブエ?
XULってエックスユーエルって読むんじゃねーのかよ!ヽ(`Д´)ノ
993 :
デフォルトの名無しさん:
XULの読みはズールじゃなくて、クスールだろ?
でも、Xylitolはキシリトールじゃなくて、ザイリトールだ。