<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Olen Onnellinen 2 &#187; Eclipse</title>
	<atom:link href="http://blog.magellanic.net/archives/category/eclipse/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.magellanic.net</link>
	<description>さまようITエンジニア「こしあん」の日記です。システム開発から資格試験、ゲーム、ライトノベルまで何でもありの雑記。</description>
	<lastBuildDate>Fri, 30 Jul 2010 05:06:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>URLエンコード/デコード を行う Eclipse プラグインを公開</title>
		<link>http://blog.magellanic.net/archives/429</link>
		<comments>http://blog.magellanic.net/archives/429#comments</comments>
		<pubDate>Sat, 25 Apr 2009 19:30:23 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=429</guid>
		<description><![CDATA[				しました。
				Olen Onnellinen 2 &#8211; URLエンコード/デコードプラグイン
				Web の開発をしていると、たまに URLデコード をしたいときがあります。
				そんなと [...]]]></description>
			<content:encoded><![CDATA[				<p>しました。</p>
				<p><a href='http://blog.magellanic.net/url%e3%82%a8%e3%83%b3%e3%82%b3%e3%83%bc%e3%83%89%e3%83%87%e3%82%b3%e3%83%bc%e3%83%89%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3'>Olen Onnellinen 2 &#8211; URLエンコード/デコードプラグイン</a></p>
				<p>Web の開発をしていると、たまに URLデコード をしたいときがあります。</p>
				<p>そんなときには Web 上に公開されている無料のフォームを使うのですが、いくつか気になる点がありました。</p>
				<ol>
				<li>いちいち Web サイトを開かなくてはならない</li>
				<li>文字制限がある</li>
				<li>デコード時に文字コードを自動判定してしまうものが多く、テストに不向き</li>
				</ol>
				<p>これらの点を踏まえ、Eclipse のプラグインとして作成したものが URLエンコード/デコードプラグインになります。</p>
				<p>機能のわりに大仰な、という意見もあると思いますが、ちょっとした機能を追加していくことにより、より便利なツールセットになれば、と思いますので「こんな機能が欲しい」といった要望がありましたらぜひお知らせください。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/429/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipseの水平ルーラー</title>
		<link>http://blog.magellanic.net/archives/350</link>
		<comments>http://blog.magellanic.net/archives/350#comments</comments>
		<pubDate>Sun, 15 Mar 2009 08:34:40 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=350</guid>
		<description><![CDATA[				Eclipse のエディタに水平ルーラーをつけてみました。
				どうやって実装するかイメージがなかったのですが、 COBOL Editor なるものに水平ルーラーが実装されていたので、それを参考にしました。
 [...]]]></description>
			<content:encoded><![CDATA[				<p>Eclipse のエディタに水平ルーラーをつけてみました。</p>
				<p>どうやって実装するかイメージがなかったのですが、 <a href='http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.cobol.help/doc/opens01/opens041.html'>COBOL Editor</a> なるものに水平ルーラーが実装されていたので、それを参考にしました。</p>
				<p>簡単にいうと、SWTのコンポーネントを置いているだけですが、フォントやら日本語など、スクラッチじゃできなかっただろうなーと思います。</p>
				<p>で、<a href='http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.cobol.help/doc/opens01/opens041.html'>COBOL Editor</a> の中に気になる箇所を見つけた。</p>
				<p>■ スニペット<br />
				水平ルーラーのマーク位置を設定するところ。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span >char</span><span class="hl-brackets">[</span><span class="hl-brackets">]</span> <span class="hl-identifier">ch</span><span class="hl-code"> = </span><span class="hl-reserved">new</span> <span >char</span><span class="hl-brackets">[</span><span class="hl-brackets">]</span> <span class="hl-brackets">{</span><span class="hl-identifier">document</span><span class="hl-code">.</span><span class="hl-identifier">getChar</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-brackets">}</span><span class="hl-code">;</span></li>
				<li>&nbsp;<span >byte</span><span class="hl-brackets">[</span><span class="hl-brackets">]</span> <span class="hl-identifier">by</span><span class="hl-code"> = </span><span class="hl-reserved">new</span> <span class="hl-identifier">String</span><span class="hl-brackets">(</span><span class="hl-identifier">ch</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">getBytes</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li>&nbsp;<span class="hl-identifier">column</span><span class="hl-code"> += </span><span class="hl-identifier">by</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;</span></li>
				</ol>
				</div>
				<p>例えば、&#8221;ほげほげほ&#8221;というテキストの末尾にカーソルがある場合、全角は2文字分の幅を使うのでルーラーの目盛は10になるはずです。</p>
				<p>上記はその実装なのですが、UTF-8では全角日本語は3バイトだったりするのでバイト基準では、ずれてしまう…と思うのですがどうなんでしょう。</p>
				<p>現在のコントリビュータは日本の企業なので、気付いていないって事もなさそうなんですけど。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/350/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipseプラグイン開発：ハイパーリンクのスタイル指定</title>
		<link>http://blog.magellanic.net/archives/238</link>
		<comments>http://blog.magellanic.net/archives/238#comments</comments>
		<pubDate>Tue, 27 Jan 2009 13:09:38 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=238</guid>
		<description><![CDATA[				久しぶりに Eclipse のプラグイン開発の話を。
				テキストエディタ内にハイパーリンクを作ったときのスタイルを指定する。
				ハイパーリンクにカーソルをあわせたとき、「青字、下線付き」になることを期 [...]]]></description>
			<content:encoded><![CDATA[				<p>久しぶりに Eclipse のプラグイン開発の話を。</p>
				<p>テキストエディタ内にハイパーリンクを作ったときのスタイルを指定する。</p>
				<p>ハイパーリンクにカーソルをあわせたとき、「青字、下線付き」になることを期待しますよね。<br />
				ところがハイパーリンクは動くものの、「青字、下線付き」にならないという現象に遭遇。そして原因がわからずはまったのでメモ。</p>
				<p>まず、「青字、下線付き」となることを期待する根拠は SourceViewerConfiguration の実装です。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span class="hl-reserved">public</span> <span class="hl-identifier">IHyperlinkPresenter</span> <span class="hl-identifier">getHyperlinkPresenter</span><span class="hl-brackets">(</span><span class="hl-identifier">ISourceViewer</span> <span class="hl-identifier">sourceViewer</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-reserved">return</span> <span class="hl-reserved">new</span> <span class="hl-identifier">DefaultHyperlinkPresenter</span><span class="hl-brackets">(</span><span class="hl-reserved">new</span> <span class="hl-identifier">RGB</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li>&nbsp;<span class="hl-brackets">}</span></li>
				</ol>
				</div>
				<p>このようになっています。そのため、特別 Override しない限り、プレゼンテーションにはこの DefaultHyperlinkPresenter を使うことになります。<br />
				この DefaultHyperlinkPresenter には以下のコメントがあります。</p>
				<blockquote><p>The default hyperlink presenter underlines the link and colors the line and the text with the given color.</p></blockquote>
				<p>つまり、「青字、下線付き」ですよね。<br />
				それなのに、どうにも反応がありませんでした。<br />
				それでどうしたかというと、DefaultHyperlinkPresenter#applyTextPresentation 辺りにブレークポイントを設定してフィールド等を調べてみました。</p>
				<p>結果わかったことは、範囲（Region）がうまく設定されてないってことです。<br />
				IHyperlink の実装クラスで Region を返すのですが、この Region が正しい範囲を指定していなかったのです。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span class="hl-reserved">public</span> <span class="hl-identifier">IHyperlink</span><span class="hl-brackets">[</span><span class="hl-brackets">]</span> <span class="hl-identifier">detectHyperlinks</span><span class="hl-brackets">(</span><span class="hl-identifier">ITextViewer</span> <span class="hl-identifier">textViewer</span><span class="hl-code">, </span><span class="hl-identifier">IRegion</span> <span class="hl-identifier">region</span><span class="hl-code">, </span><span >boolean</span> <span class="hl-identifier">canShowMultipleHyperlinks</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> （略）</span></li>
				<li><span class="hl-code">&nbsp;   </span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> !! パラメータの region をそのまま渡しちゃってる !!</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment">&nbsp;&nbsp;&nbsp;&nbsp;  これはリンクを検出する前の範囲！</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-identifier">hyperLink</span><span class="hl-code"> = </span><span class="hl-reserved">new</span> <span class="hl-identifier">HogeHyperLink</span><span class="hl-brackets">(</span><span class="hl-identifier">region</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp;   </span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> （略）</span></li>
				<li>&nbsp;<span class="hl-brackets">}</span></li>
				</ol>
				</div>
				<p>IHyperlink の実装クラス（ここでは HogeHyperLink）に渡す範囲は検出時に計算したものじゃないとダメ（当たり前）。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span class="hl-reserved">public</span> <span class="hl-identifier">IHyperlink</span><span class="hl-brackets">[</span><span class="hl-brackets">]</span> <span class="hl-identifier">detectHyperlinks</span><span class="hl-brackets">(</span><span class="hl-identifier">ITextViewer</span> <span class="hl-identifier">textViewer</span><span class="hl-code">, </span><span class="hl-identifier">IRegion</span> <span class="hl-identifier">region</span><span class="hl-code">, </span><span >boolean</span> <span class="hl-identifier">canShowMultipleHyperlinks</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> （略）</span></li>
				<li><span class="hl-code">&nbsp;   </span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> 検出結果のリンク文字列に対応した範囲を渡す！</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-identifier">hyperLink</span><span class="hl-code"> = </span><span class="hl-reserved">new</span> <span class="hl-identifier">HogeHyperLink</span><span class="hl-brackets">(</span><span class="hl-reserved">new</span> <span class="hl-identifier">Region</span><span class="hl-brackets">(</span><span class="hl-identifier">linkOffset</span><span class="hl-code">, </span><span class="hl-identifier">linkOffsetLength</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp;   </span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> （略）</span></li>
				<li>&nbsp;<span class="hl-brackets">}</span></li>
				</ol>
				</div>
				<p>あとは HogeHyperLink#getHyperlinkRegion で渡されてきた Region をそのまま返せば OK です。</p>
				<p>単純なミスなのですけど、はまったので残しておきます。<br />
				げふ。</p>
				<p><a href="http://amazon.co.jp/o/ASIN/4839929726/koshian404-22/ref=nosim" ><img src="http://ecx.images-amazon.com/images/I/519ACuTD%2B%2BL._SL160_.jpg" width="124" height="160" alt="Eclipse 3.4 プラグイン開発 徹底攻略 Eclipse 3.4 Ganymede対応" /></a><br /><a href="http://amazon.co.jp/o/ASIN/4839929726/koshian404-22/ref=nosim" >Eclipse 3.4 プラグイン開発 徹底攻略 Eclipse 3.4 Ganymede対応</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/238/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDT2.0を使ってみた</title>
		<link>http://blog.magellanic.net/archives/236</link>
		<comments>http://blog.magellanic.net/archives/236#comments</comments>
		<pubDate>Sat, 24 Jan 2009 11:55:42 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PDT]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=236</guid>
		<description><![CDATA[				PDT2.0を使ってみたので、初期設定のメモだけ残しておきます。
				まずはダウンロードページからAll-In-Oneをダウンロードします。
				PHP Development Tools (PDT) &#038; [...]]]></description>
			<content:encoded><![CDATA[				<p>PDT2.0を使ってみたので、初期設定のメモだけ残しておきます。</p>
				<p>まずはダウンロードページからAll-In-Oneをダウンロードします。</p>
				<p><a href='http://www.eclipse.org/pdt/downloads/'>PHP Development Tools (PDT) &#8211; Downloads</a></p>
				<p>こしあんの環境では以下のパッケージをダウンロードしました。</p>
				<p>All-In-One PDT 2.0 (Windows 32-bit)</p>
				<p>他にはお好みでプラグインをインストールします。<br />
				こしあんは日本語化の Pleiades と空白文字の可視化の JStyle をインストールしました。</p>
				<p><a href='http://mergedoc.sourceforge.jp/'>Pleiades (Eclipse プラグイン日本語化プラグイン)</a></p>
				<p>で、Eclipseの設定をします。<br />
				PHPとしては[PHP]→[PHP実行可能ファイル]→[追加]でPHP、設定ファイルの場所を設定しておきます。</p>
				<p><img src="http://blog.magellanic.net/wp-content/uploads/2009/01/20090124.png" alt="20090124" title="20090124" width="384" height="214" /></p>
				<p>これでPHPスクリプトを作成し、右クリックで実行できます。</p>
				<div class="memo">※ デバッガの設定をしていない場合、PHPスクリプトを実行しようとすると&#8221;Launch Error &#8211; Session Terminated&#8221;エラーになることがあります。このときは、実行設定の&#8221;Display debug information when running&#8221;のチェックをはずしておけばOKです。</p>
				<p><img src="http://blog.magellanic.net/wp-content/uploads/2009/01/20090124a.png" alt="20090124a" title="20090124a" width="473" height="289" /></div>
				<p>おつかれちゃん。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/236/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipseのスニペットとテンプレート</title>
		<link>http://blog.magellanic.net/archives/160</link>
		<comments>http://blog.magellanic.net/archives/160#comments</comments>
		<pubDate>Tue, 02 Dec 2008 05:40:17 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipseプラグイン開発]]></category>
		<category><![CDATA[スニペット]]></category>
		<category><![CDATA[テンプレート]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=160</guid>
		<description><![CDATA[				前回Eclipseのスニペット(Snippet)を紹介したのですが、もろもろ紛らわしい機能でして、誤解を与えそうってことでもう少し解説します。
				貴方の思う&#8221;萌え&#8221;と、わたしの思う&#038; [...]]]></description>
			<content:encoded><![CDATA[				<p>前回Eclipseのスニペット(Snippet)を紹介したのですが、もろもろ紛らわしい機能でして、誤解を与えそうってことでもう少し解説します。</p>
				<p>貴方の思う&#8221;萌え&#8221;と、わたしの思う&#8221;萌え&#8221;は別なのよ、ということですね。わかりにくい！</p>
				<p>えっと、まずは <strong>Eclipse3.3</strong> のJDT(Java Development Tools)を前提として、機能を説明します。</p>
				<p>■ コード・テンプレート<br />
				EclipseでJava開発をしていると、以下のようなコードが自動生成されることがありますよね。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span class="hl-code">} </span><span class="hl-reserved">catch</span> <span class="hl-brackets">(</span><span class="hl-identifier">Exception</span> <span class="hl-identifier">e</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> TODO 自動生成された catch ブロック</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">printStackTrace</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li>&nbsp;<span class="hl-brackets">}</span></li>
				</ol>
				</div>
				<p>他にも新規にクラスファイルを作成したときなどに自動生成されるコードがあります。</p>
				<p>ここで自動生成される雛形はユーザが設定できるようになっています。<br />
				[設定]→[Java]→[コード・スタイル]→[コード・テンプレート]</p>
				<p>これが<strong>コード・テンプレート</strong>機能です。</p>
				<p>■ テンプレート<br />
				Javadocの中で文字列を選択し、Ctrl+Spaceを押すとその文字列をタグで囲むことができます。<br />
				&#8220;if&#8221;と入力してCtrl+Spaceと入力したときに&#8221;else if&#8221;ブロックなどの補完ができるのもテンプレートです。</p>
				<p><img src="http://blog.magellanic.net/wp-content/uploads/2008/12/20081202a.jpg" alt="20081202a" title="20081202a" width="405" height="251" class="size-full wp-image-159" /></p>
				<p>これは[設定]→[Java]→[エディター]→[テンプレート]から変更・追加が可能です。<br />
				これが<strong>テンプレート</strong>機能です。</p>
				<p>■ スニペット<br />
				前回こしあんが紹介したのが、これ。<br />
				コードの断片を&#8221;ビュー&#8221;から挿入することができます。</p>
				<p><strong>スニペットはビューです</strong>。スニペット・ビュー。大事なことなので2回い（ｒｙ</p>
				<p>と、いうわけで以上3つの機能を紹介しました。<br />
				どれもコードの断片を貼り付ける機能で同じではないかと思われるかもしれません。まったくその通りで、ユーザにとって機能名などどうでも良いことです。それなのに、わざわざこんな紹介をしたのは、Eclipseプラグイン開発の観点からの便宜上です。</p>
				<p>プラグイン開発の話に進む前にEclipse3.4について触れておきます。</p>
				<p>Eclipse3.4ではスニペット・ビューが標準で付属していません。これはおそらくですが、JDTに&#8221;テンプレート・ビュー&#8221;が実装されたためと思われます。<br />
				テンプレート・ビューとスニペット・ビューはほぼ役割が同じであるため、スニペット・ビューは付属しなくなったのでしょう。</p>
				<p>さて、やっとメイン。Eclipse3.4でスニペット・ビューと同じ機能を持つプラグインを作りたい。<br />
				方法は2つ考えられます。</p>
				<ol>
				<li>WST を同梱し、SnippetContributionsを拡張する</li>
				<li>AbstractTemplatesPage を実装したクラスを作成する</li>
				</ol>
				<p>3.4からは2つ目の方法をとりたいところ。</p>
				<p>■ 参考<br />
				<a href='http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/texteditor/templates/TemplatesView.html'>TemplatesView &#8211; Eclipse SDK</a></p>
				<p><a href='http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/texteditor/templates/ITemplatesPage.html'>ITemplatesPage &#8211; Eclipse SDK</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/160/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipseでスニペットを使ったり拡張したり</title>
		<link>http://blog.magellanic.net/archives/150</link>
		<comments>http://blog.magellanic.net/archives/150#comments</comments>
		<pubDate>Fri, 28 Nov 2008 12:07:28 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipseプラグイン開発]]></category>
		<category><![CDATA[WST]]></category>
		<category><![CDATA[スニペット]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=150</guid>
		<description><![CDATA[				スニペット（Snippet）は&#8221;断片&#8221;のことであり、一般的には、コピペで使えるコードサンプルなどのことを言いますが、Eclipseではエディタ上で定型文を挿入する機能のことを言います（とい [...]]]></description>
			<content:encoded><![CDATA[				<p>スニペット（Snippet）は&#8221;断片&#8221;のことであり、一般的には、コピペで使えるコードサンプルなどのことを言いますが、Eclipseではエディタ上で定型文を挿入する機能のことを言います（というかそう呼ぶことにします、面倒だから）。</p>
				<p>かなり便利な機能なのですが、そんなに活用している人を見かけないので紹介(゜-゜=)</p>
				<p>スニペットビューを表示するには[ウィンドウ]→[ビューの表示]→[その他]でダイアログを表示し、「一般」フォルダの中の「スニペット」をクリックします。</p>
				<p>ビュー上で右クリック→[カスタマイズ]でユーザが独自に&#8221;断片&#8221;を登録することができ、インポートやエクスポートも行えるのですが、このとき、ユーザが独自に登録したスニペットは以下のディレクトリにxmlファイルとして保存されます。</p>
				<div class="command">{$workspace}\.metadata\.plugins\org.eclipse.wst.common.snippets</div>
				<p>※ $workspace は各自のworkspace</p>
				<p>このディレクトリ名を見るとわかる通り、スニペットビューはWST(Web Standard Tools)によって提供されています。&#8221;Web&#8221;と言いつつ、ほぼすべてのEclipseパッケージに付属している（気がする）プラグインなので、 Eclipseプラットフォーム標準の機能であるかのように使えるわけですね。</p>
				<p>そしてさらに、このスニペットビューにはextension point「SnippetContributions」が定義してあるため、プラグイン開発者はスニペットビューを拡張することもできます。<br />
				この辺は以下のドキュメントを参照してください。単純に挿入したいテキストの設定ならplugin.xmlに書くだけでよいです。</p>
				<p><a href='http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.wst.doc.isv/html/plugin_descriptions_WST/wst.html'>Help &#8211; Eclipse SDK</a></p>
				<p>contenttypesとextensionsが思ったように動いてくれないよぅ…(´・ω・｀)</p>
				<p>■ 参考<br />
				<a href='http://www.eclipse.org/webtools/wst/components/common/overview/snippets/overview.html'>WST Common Snippets subcomponent Overview</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/150/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipseプラグイン開発：TreeViewerの状態管理</title>
		<link>http://blog.magellanic.net/archives/40</link>
		<comments>http://blog.magellanic.net/archives/40#comments</comments>
		<pubDate>Sun, 12 Oct 2008 09:24:41 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipseプラグイン開発]]></category>
		<category><![CDATA[TreeViewer]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=40</guid>
		<description><![CDATA[				TreeViewerのメモ。
				ツリーの展開状況の取得と設定
				ツリーの状態を保存しておくにはTreeViewer#getExpandedElements()を使います。
				
				
				 [...]]]></description>
			<content:encoded><![CDATA[				<p>TreeViewerのメモ。</p>
				<h3>ツリーの展開状況の取得と設定</h3>
				<p>ツリーの状態を保存しておくにはTreeViewer#getExpandedElements()を使います。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span class="hl-comment">//</span><span class="hl-comment"> 取得する</span></li>
				<li>&nbsp;<span class="hl-identifier">Object</span><span class="hl-brackets">[</span><span class="hl-brackets">]</span> <span class="hl-identifier">expandedNodes</span><span class="hl-code"> = </span><span class="hl-identifier">viewer</span><span class="hl-code">.</span><span class="hl-identifier">getExpandedElements</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp; </span></li>
				<li>&nbsp;<span class="hl-comment">//</span><span class="hl-comment"> なんか処理して</span></li>
				<li><span class="hl-code">&nbsp; </span></li>
				<li>&nbsp;<span class="hl-comment">//</span><span class="hl-comment"> 設定する</span></li>
				<li>&nbsp;<span class="hl-identifier">viewer</span><span class="hl-code">.</span><span class="hl-identifier">setExpandedElements</span><span class="hl-brackets">(</span><span class="hl-identifier">expandedNodes</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				</ol>
				</div>
				<p>TreeViewerのときは取得できるObjectはTreeNodeオブジェクトです。<br />
				TreeNodeはコンストラクタでObjectを引数に取り、このObjectのequalsによってTreeNodeの同位性も決まります。</p>
				<h3>ツリーの開閉時に実行されるリスナーの設定</h3>
				<p>TreeListenerなるものをviewerに設定しておきます。<br />
				ここで気をつけるのはイベントの各メソッドが呼ばれた時点ではツリーの状態は開いていない（閉じていない）ということです。<br />
				例えば、treeExpanded内でTreeViewer#getExpandedElements()をコールするとトリガとなったノードは取得できません。TreeExpansionEvent#getElement()で取得します。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span class="hl-identifier">viewer</span><span class="hl-code">.</span><span class="hl-identifier">addTreeListener</span><span class="hl-brackets">(</span><span class="hl-reserved">new</span> <span class="hl-identifier">ITreeViewerListener</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span class="hl-identifier">Override</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-reserved">public</span> <span >void</span> <span class="hl-identifier">treeCollapsed</span><span class="hl-brackets">(</span><span class="hl-identifier">TreeExpansionEvent</span> <span class="hl-identifier">event</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> 閉じるによばれる</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-brackets">}</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span class="hl-identifier">Override</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-reserved">public</span> <span >void</span> <span class="hl-identifier">treeExpanded</span><span class="hl-brackets">(</span><span class="hl-identifier">TreeExpansionEvent</span> <span class="hl-identifier">event</span><span class="hl-brackets">)</span> <span class="hl-brackets">{</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> 開くときによばれる</span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-brackets">}</span></li>
				<li>&nbsp;<span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				</ol>
				</div>
				<p>ユーザの操作だけではなく、内部でツリーを制御するタイミングでもコールされるようなので、データを操作するときは注意しておきましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/40/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipseプラグイン開発：F5でリフレッシュ</title>
		<link>http://blog.magellanic.net/archives/37</link>
		<comments>http://blog.magellanic.net/archives/37#comments</comments>
		<pubDate>Fri, 10 Oct 2008 13:19:37 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipseプラグイン開発]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=37</guid>
		<description><![CDATA[				Viewの更新タイミング。
				暫定的に右クリックメニューに「更新」アクションを追加してたのですが、F5で更新できないの？って話になりました。
				あー、そうですよねー、ってことで着手したものの結構ハマっ [...]]]></description>
			<content:encoded><![CDATA[				<p>Viewの更新タイミング。</p>
				<p>暫定的に右クリックメニューに「更新」アクションを追加してたのですが、F5で更新できないの？って話になりました。</p>
				<p>あー、そうですよねー、ってことで着手したものの結構ハマったのでメモです。<br />
				お忙しい方もいると思うので、例によって先に結果から。</p>
				<div class="src">
				<ol class="hl-main">
				<li>&nbsp;<span class="hl-identifier">IAction</span><span class="hl-code"> </span><span class="hl-identifier">action</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">HogeAction</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">getViewSite</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">getActionBars</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">setGlobalActionHandler</span><span class="hl-brackets">(</span><span class="hl-code"></span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-identifier">ActionFactory</span><span class="hl-code">.</span><span class="hl-identifier">REFRESH</span><span class="hl-code">.</span><span class="hl-identifier">getId</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-comment">//</span><span class="hl-comment"> for Eclipse3.4</span><span class="hl-comment"></span><span class="hl-code"></span></li>
				<li><span class="hl-code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="hl-identifier">action</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
				</ol>
				</div>
				<p>ざっくりだとこんな感じ。F5だのコピーだのペーストだと言った標準的な機能に乗せるときはGlobalActionHandlerに登録しとけってことです。<br />
				plugin.xmlで指定すべきなのかも…。</p>
				<p>ハマった理由っていうのは、最初&#8221;キーバインド&#8221;でやるのかにゃーと思い込んでいたからです。<br />
				F5 をバインドしてアクション呼び出そうとすると&#8221;!MESSAGE A conflict occurred for F5:&#8221;となり、かなりイケてないことになります。ログの&#8221;ActionHandler(RetargetAction(refresh))&#8221;などを頼りにretargetへ行き着くまでに大分時間がかかりました。疲れた！<br />
				この仕組みは&#8221;リターゲットアクション&#8221;でプラグイン開発者には通じるのでしょうか(￣~￣)</p>
				<p>Eclipseってヘルプが充実してるのですが、プラグイン開発は用語を知らないとそこまで辿りつけないのが難点ですね。こしあんだけですか。</p>
				<p>一度横断的におさえておかないと、と思い立ったので注文しちゃいました。Eclipse本。<br />
				ちなみに新版は2009-1-2に発売だそうですよ。慌てて買う必要ありませんでしたね。高いし！とても高いし！</p>
				<p><a href="http://amazon.co.jp/o/ASIN/032142672X/koshian404-22/ref=nosim" ><img src="http://ecx.images-amazon.com/images/I/51NNQ8PJFHL._SL160_.jpg" width="121" height="160" alt="Eclipse: Building Commercial-quality Plug-ins2006 (Eclipse)" /></a><br /><a href="http://amazon.co.jp/o/ASIN/032142672X/koshian404-22/ref=nosim" >Eclipse: Building Commercial-quality Plug-ins2006 (Eclipse)</a></p>
				<p>【参考】<br />
				<a href='http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/wrkAdv_retarget.htm'>Help &#8211; Eclipse SDK</a><br />
				<a href='http://www.masatom.in/pukiwiki/Eclipse/%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%B3%AB%C8%AF%A4%CETIPS%BD%B8/%BA%C6%A5%BF%A1%BC%A5%B2%A5%C3%A5%C8%B2%C4%C7%BD%A4%CA%A5%A2%A5%AF%A5%B7%A5%E7%A5%F3/'>Eclipse/プラグイン開発のTIPS集/再ターゲット可能なアクション &#8211; きのさいと</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/37/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse RAP (Rich AJAX Platform) をいまさら知る</title>
		<link>http://blog.magellanic.net/archives/14</link>
		<comments>http://blog.magellanic.net/archives/14#comments</comments>
		<pubDate>Tue, 30 Sep 2008 12:22:50 +0000</pubDate>
		<dc:creator>koshian</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse RAP]]></category>
		<category><![CDATA[Eclipse RCP]]></category>
		<category><![CDATA[Eclipseプラグイン開発]]></category>

		<guid isPermaLink="false">http://blog.magellanic.net/?p=14</guid>
		<description><![CDATA[				最近知りました。プラグインの開発とかしてるのに、存在すら知らなかったってのはどうなのでしょう。
				簡単に言うと、Eclipse RCPと同程度の機能をAjaxを使ってブラウザ上で動かす仕組み、でしょうか。
 [...]]]></description>
			<content:encoded><![CDATA[				<p>最近知りました。プラグインの開発とかしてるのに、存在すら知らなかったってのはどうなのでしょう。</p>
				<p>簡単に言うと、Eclipse RCPと同程度の機能をAjaxを使ってブラウザ上で動かす仕組み、でしょうか。<br />
				使えるAPIに制限があるようですが、どの程度の制限なのか調べてみてから場合によっては使ってみたいです。</p>
				<p>RCPがいまいち流行っていないように、RAPもあまり情報がなさそうです。<br />
				面白そうなんですけどね。</p>
				<p>今作ってるプラグインを無理やりRAPに載せてみたら面白いかもー。</p>
				<p>【参考】<br />
				<a href='http://journal.mycom.co.jp/articles/2007/11/06/012/menu.html'>Rich Ajax Platform</a><br />
				<a href='http://gihyo.jp/dev/column/01/java/2008/0709'>eclipse.orgが打ち出すRIAプラットフォーム「Eclipse RAP」</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.magellanic.net/archives/14/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
