ブログを作る※無料・簡単アフィリ    ブログトップ | 楽天市場
143536 ランダム
ブログ引越します。 (パソコン・家電)楽天ブログ 【ケータイで見る】 【ログイン】
ZIGENのプラグイン開発 for Eclipse
ホーム 日記 プロフィール オークション 掲示板 ブックマーク お買い物一覧
Eclipseプラグイン開発日記

<< 前のページへ一覧

2008.04.14 楽天プロフィール Add to Google XML

ブログ引越します。

気分を一新するために、ブログを引越すことにしました。

新しいブログは、http://dbviewer.blogspot.com/

です。

今後ともよろしくお願いします^^w

Last updated  2008.04.14 23:08:28
コメント(3) | コメントを書く


2008.03.25

新機能開発中「アウトラインの活用」
[ プラグイン開発日誌 ]    

現在1.0.8向けの新機能を開発中です。

まずは、アウトラインをせっかく表示できるようになったので、

1.「副問合せ」だけを実行できるように機能を開発中です。
 ※アウトラインのSelectStatementノードを右クリックし実行するイメージです。

2.SQLエディターの実行結果は、同エディターで表示されるように開発中です。
SQL実行ビューではなく、SQLエディターをメインに利用されている人は
使いやすくなるのと思います。

outline.gif

この開発中の画面は、予告なく変更されることがあります。


今回、以下点に苦労しました。

・OutlineViewのContextMenuが出ない
org.eclipse.ui.popupMenusに対して拡張するのですが、SQLをアウトライン表示すると
右クリックでContextMenu自体が出ないため、拡張ポイントを定義しても
何も表示されないのです。

対応
空のContextMenuが表示できるように実装して、上記拡張ポイントでメニューを
追加しました

参考
org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage(1095行目付近)


・CTRL+A(全て選択)がテキストの全選択になる。
エディター上に、TextViewerとTableViewerをSashを使って配置すると
TableViewerにフォーカスがある状態で、CTRL+Aを実行しても、テキストが全選択
になり、SQL実行結果の全レコードを選択してくれない。

# 再ターゲット可能なActionとして、任意のActionに入れ替えはできたのですが、
# キーバインドが入れ替わらない。という意味です。


対応
  CommandServiceからCommandを取得して、実行するAction(Handler)を上書き。

  void setGlobalActionForResultView(IActionBars bars) {

    bars.clearGlobalActionHandlers();
    copyAction.refresh();

    bars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
    bars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), selectAllRecordAction);
    bars.updateActionBars();

    // CTRL+C
    ICommandService commandService = (ICommandService) getSite().getService(ICommandService.class);
    Command copy = commandService.getCommand("org.eclipse.ui.edit.copy");
    copy.setHandler(new ActionHandler(copyAction));

    // CTRL+Aに対するコマンドの変更
    Command select = commandService.getCommand("org.eclipse.ui.edit.selectAll");
    select.setHandler(new ActionHandler(selectAllRecordAction));

  }


# 呼び出し側(フォーカスイベントに追加)
  public void createResultPartControl() {
    :
    table.addFocusListener(new FocusAdapter() {
      public void focusGained(FocusEvent e) {
        IActionBars bars = getEditorSite().getActionBars();
        setGlobalActionForResultView(bars);
        bars.updateActionBars();
      }
    });
 }

Last updated  2008.03.25 06:34:23
コメント(0) | コメントを書く

2008.03.20

あえて、推奨されないメソッドを使用することに。
[ プラグイン開発日誌 ]    

テーブル編集エディターのWhere条件フィールドでは、
CTRL+SPACEを押下すると、カラム名やキーワードの補完ができます。
# 実は、知らない人もいたりして・・・

以下がスクリーンショットです。
codeAssist1.0.7.gif

Eclipse3.2からは、テキストフィールドやコンボボックスに対して
比較的簡単に「コード補完」機能を実装できるようになりました。

カラム名の入力が非常に楽にはなるのですが、アイコンが付けられないが残念です。
# IContentProposalには画像を返すメソッドが無いためです。

しかし、Javaのクラス作成ウィザードなどでは、テキストフィールドに
アイコン付きの補完ができます。

調べてみると、そこで使っているAPIは、3.2や3.3では
推奨されないメソッドになっていました・・・・。

しかし、JDTが現在でも使っているAPIなので、そう簡単にはメソッドが廃止には
ならないだろうと思い、次のバージョンでは、
「あえて、推奨されないメソッド」で実装しようと思っています。

以下が、変更後のスクリーンショットです。
(カラムアイコンがあるで、以前より見やすいです)

codeAssist1.0.8.gif

将来、そのAPIが廃止になれば、アイコン無しの補完に
戻したいと思います^^。






Last updated  2008.03.20 22:06:56
コメント(0) | コメントを書く

2008.03.18

DBViewer 1.0.7.v20080318リリース!!

DBViewer 1.0.7をリリースしました。
ご利用の方はバージョンアップされることをお勧めします。

主な機能
1.SQLアウトライン表示(β版)
Select, Insert, Update, Delete 用です。
それ以外(ストアドなど)は・・・・。

2.DBツリービューのFilter設定
表示したくない要素やフォルダを設定できます。

3.データベース定義でのスキーマFilter設定
表示するスキーマのON/OFFを設定できます。

4.MySQL5のスキーマ表示(DBツリービュー)

など、です。

また、テーブル編集エディターの起動が以前よりも早くなっていますので、
ぜひ、最新バージョンを使ってみてください。

詳しくは、こちら

Last updated  2008.03.18 16:00:18
コメント(0) | コメントを書く

2008.03.13

DBViewer Formatterとblanco Formatterの性能差
[ プラグイン開発日誌 ]    

DBViewerには、2種類のSQLFormatterが搭載されています。

1つは、blancoSqlFormatter

もう1つは、DBViewer独自のFormatterです。
DBViewer独自といっても、私ではなく、会社の後輩が作っています。
※私には作れません^^w

今日はその2つのFormatterの性能差(あくまでも一例です)を書いておきたいと思います。


とあるプロジェクトで、整形すると4000行近くなる長いSELECT文を書いた
後輩がおりまして、、その整形の時間を計測してみてました。

------------------
計測環境
------------------
JDK1.4.2
DBViewer1.0.7(リリース前)
SQLFormatter 1.0.0v20080313(リリース前)
BlancoFormatter 0.0.3 (最新版ではありません)

------------------
性能結果
------------------
BlancoFormatter:約30秒~40秒
DBViewerFormatter(改良前):約10秒

想像以上に性能差があり、びっくりしました。

後輩は「もう少し性能向上できそう」と言って、改良版をくれました。
それで計測したところ、

DBViewerFormatter(改良後):約4秒~6秒

すばらしい!!、 やるな後輩!!

また、字句解析する際に、offsetやlength情報なども付与してもらっており、
今後の開発するかもしれない、「SQLのアウトライン表示」、「マーカー」機能など・・・
に重宝するはずです。

あとがき
そもそも、普通、4000行のSELECT文は書かないよね~
そんな長いSELECTが必要になるのは、テーブル構造が問題だね。
Viewとか、Functionに置き換えができないのか、見てみたのですが、
どうしても無理そうでした。(やっぱりテーブルの持ち方が悪い)
そもぞも、バッチで必要なデータに加工すればいいのに・・・
どうしてもオンラインでデータを抜きたいらしい・・・



Last updated  2008.03.13 20:17:09
コメント(4) | コメントを書く

2008.03.12

Eclipse Plugin jOra が0.9.2をリリース!!
[ プラグイン開発日誌 ]    

実は、最近注目しているDBフロントエンドがあります。

それは、「jOra」です。

http://jora.luenasoft.de/

Oracle専用のプラグインになりますが、かなりクールな感じです。

DataBase Explorerは、なかなか斬新なインターフィエスを採用しています。

http://jora.luenasoft.de/features.html#explorer

実は、jOraを触ったときに、まだまだDBViewerのレスポンスは改善できるぞ!
と思って、テーブル編集エディターの処理を大幅に見直したのです^^。



Last updated  2008.03.12 23:58:44
コメント(0) | コメントを書く

もうすぐ1.0.7をリリース
[ プラグイン開発日誌 ]    

1.0.7のリリース準備に入っています。

リリース準備で一番時間がかかるのが、海外向けのリリースノートです。

機能追加や障害修正内容を下手な英語で書くのが大変です^^
文書が苦手なので、スクリーンショットで表現します(^^)

「百聞は一見にしかず」ですから。

しかし、スクリーンショットは、日本語用と英語用の2パターン
作っていたりして、、、結構手間がかかります。

今回は、日本語のリリース予告を先に公開しました。
http://www.ne.jp/asahi/zigen/home/plugin/dbviewer/news_jp.html




Last updated  2008.03.12 23:41:36
コメント(0) | コメントを書く

2008.03.08

MYSQL5で、スキーマ一覧を表示
[ プラグイン開発日誌 ]    

DBViewerでは、DataBaseMetaDataを使って、
DBツリービューを作成しています。

MySQLでは、DataBaseMetaDataのgetSchemasメソッドではnullを返すため、
スキーマは表示せず、テーブルやViewのフォルダをDataBase要素の下に
作成するように実装しています。

つまり、スキーマ未対応のデータベースとして表示していました。

しかし、MySQL5からは、"information_schema"というデータベース(もしくはスキーマ?)
が新しく存在することを最近知り、次のバージョンでは、
スキーマとして一覧に表示できるようにしたいと思っています。

※開発中の画面の為、変更されることがあります。

MySQL5

また、Filterのインターフェイスを変更しました。

1.テーブル/カラムフィルターをそれぞれ持つように修正

2.複数キーワードに対応(AND条件になります)
カンマ(もしくは空白)で区切ります。




Last updated  2008.03.08 08:53:09
コメント(3) | コメントを書く

2008.02.29

フィルター設定ダイアログに検索機能を搭載
[ プラグイン開発日誌 ]    


Filter設定ダイアログ

テーブル編集エディターでは、カラムの表示・非表示を設定するダイアログです。

次期バージョン(1.0.7)では、必要なカラムを検索し、まとめてON/OFFできる
ような機能を考えています。

正規表現や、大/小文字の区別が可能になっているので、
特に、名前でのソート機能はつけていません。

ソートができると、テーブルエディターでのカラム表示順を変更したい・・・
という要望があると、ちょっと困るので(笑)

Last updated  2008.02.29 23:39:27
コメント(0) | コメントを書く

2008.02.28

Schemaフィルターの作成
[ プラグイン開発日誌 ]    

多くの要望がありました、「スキーマフィルター」機能を
データベース定義のオプションページ(ウィザードの3画面目)
に、DBツリーに表示するスキーマを複数選択できるように考えています。
schema-filter

100以上のスキーマでも検索できるように
Filter機能(正規表現可能、大/小文字区別可能)を搭載しました。

この機能によって、もともとあった「接続スキーマのみ表示する」機能は
廃止になります。

こんな感じでいかがでしょうか?



Last updated  2008.02.28 22:46:02
コメント(0) | コメントを書く


<< 前のページへ一覧一番上に戻る


PR

Calendar

March 2012
SMTWTFS
    123
45678910
11121314151617
18192021222324
25262728293031
<一覧へthis monthnext>

Keyword Search

Favorite Blog

松のページブログ 松-boolean さん

Category

Archives

Mobile

>>ケータイに
このブログの
URLを送信!

 

Powered By 楽天ブログは国内最大級の無料ブログサービスです。楽天・Infoseekと連動した豊富なコンテンツや簡単アフィリエイト機能、フォトアルバムも使えます。デザインも豊富・簡単カスタマイズが可能!

Copyright (c) 1997-2012 Rakuten, Inc. All Rights Reserved.