トップ «前の日(06-28) 最新 次の日(06-30)» 追記

おいぬま日報(不定期)

カテゴリ | 技術情報まとめWiki | 検索エンジンから来た人向け | RSS

2003年
6月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30



2003-06-29

@ [work] 昇給

茄子は少なかったけど、昇給はそれなりだった。飴とムチだろうか。

@ [jface] TitleAreaDialog

テキストが入力されていない場合に、自動的にOKボタンを非活性にするのはこんな感じかな?

package demo;
 
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
 
/**
 * TitleAreaDialogのサンプル。 
 */
public class MyTitleAreaDialog extends TitleAreaDialog {
 
    private Text messageText;
    
    public MyTitleAreaDialog(Shell shell) {
        super(shell);
    }
 
    /**
     * Shellの設定。
     */
    protected void configureShell(Shell newShell) {
        final String title = "TitleAreaDialogサンプル";
        newShell.setText(title);
        // Shellが活性化されたときにメッセージを表示
        newShell.addShellListener(new ShellAdapter() {
            public void shellActivated(ShellEvent ev) {
                setDialogComplete(false);
                setTitle(title);
                setMessage("メッセージを入力して下さい");
                
            }
        });
        super.configureShell(newShell);
    }
    
    /**
     * ダイアローグ表示部分の描画の設定。
     */
    protected Control createDialogArea(Composite parent) {
        Composite parentComposite = (Composite)super.createDialogArea(parent);
        Composite container = new Composite(parentComposite, SWT.NONE);
        GridLayout layout = new GridLayout();
        container.setLayout(layout);
        layout.numColumns = 2;
        layout.verticalSpacing = 9;
        Label label = new Label(container, SWT.NULL);
        label.setText("メッセージ");
        messageText = new Text(container, SWT.BORDER | SWT.SINGLE);
        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.widthHint = 200;
        messageText.setLayoutData(gd);
        messageText.addModifyListener(new ModifyListener() {
            public void modifyText(ModifyEvent ev) {
                validateInput();
            }
        });
        return parentComposite;
    }
    
    /**
     * OKボタンを活性化する。 
     */
    protected void setDialogComplete(boolean complete) {
        Button ok = getButton(IDialogConstants.OK_ID);
        if (ok != null) {
            ok.setEnabled(complete);
        }
    }
    
    /**
     * 入力されたテキストをチェックする。
     */
    private void validateInput() {
        if (messageText.getText().length() == 0) {
            updateStatus("メッセージが空です");
            return;
        }
        updateStatus(null);
    }
    
    /**
     * ステータスを更新する。 
     */
    private void updateStatus(String message) {
        setErrorMessage(message);
        setDialogComplete(false);
    }
}

実行イメージはこんな感じ。もちろんテキストボックスに何か入力されるとOKボタンが活性化される。参考文献としてはdeveloperWorksのDeveloping JFace wizards。これはウィザードの話だけど。

@ それにしても

やっぱりGUIアプリってのはコーディングが面倒ですねぇ。こんなん手でコーディングしてたらたまんねぇっすよ。


2008-06-29

@ [emacs][tokyo-emacs] tokyo-emacsに参加してきました

hayamizさん主催のemacsの勉強会に行ってきました。emacsって息は長いけどこういう表立った集会は初めてだった気がします。とても新鮮でした。また、会場のMiracle Linuxのセミナールームは電源もあり非常によいところでした。ちょっと早くついてしまったのですが、アイスブレイク的に自己紹介をやろうということで早く行ってよかったです。思った以上に若い人(学生さん)が多くてびっくりです。

ちなみに懇親会にも行ったのですが、普通であれば話すことのない86世代の方々や吉岡さんと話せてとてもよい刺激になりました。ぜひ#x02も参加したいと思います。皆さんお疲れ様でした!

Emacsの基本を勉強しなおそう (吉岡さん)
  • 何年もemacsを使っているけど使いこなせている感じがしない
  • emacsの基本を勉強しなおそう市民連合発足
  • 勉強会のススメ
    • IT勉強会カレンダーをみれば山のように勉強会がある
    • 勉強会はブログでレポートを書くまでが勉強会
.emacsコピペ厨のためのEmacs Lisp講座 (hayamizさん)
  • 想定ターゲット: ネット上に転がっている.emacsをコピペしているような人たち
  • Lesson1: Emacs Lispは怖くない
    • Lisp的な難しいものはEmacs Lispには全部ないよ
    • 継続とか末尾再帰とか
  • Lesson2: カッコは空気w
    • 括弧:見た目が馴染みの言語と違う
    • Emacs Lisp: 括弧を除いたら普通の言語。C言語のように考えよう
  • Lesson3: EmacsのことはEmacsに聞け
    • M-x describe-bindingsでキーバインドがわかる
    • C-h fで関数の説明が出る
    • apropos系コマンド:いろんな項目の部分一致検索
  • Lesson4: Lispは単純
    • (<何か> <引数1> <引数2>...)→普通のプログラムだと <何か>(<引数1>,<引数2>, ...)
    • letは代入。while:ループ、if:条件みたいな感じ
    • macroと関数の違いは?:macroはCのマクロみたいなもの。文法を自分で拡張することができる
  • .emacs分ける派?分けない派?
    • 20個以上に分ける派:二人ぐらい
  • Lesson5: List
    • いろんな表現ができる
      • '(1 2 3)
      • (list 1 2 3)
      • (cons 1 '(2 3))
      • (cons 1 (cons 2 (cons3 ())))
    • よくあるidiom
      • (setq load-path (cons "/home" load-path)
      • → load-pathに"/home"を追加
      • → add-to-listの方がよい
    • ドット対
      • 連想リスト(alist): key, valueのペアのリスト
      • ペア=ドット対をリストにすればいいじゃん
      • (setq auto-mode-alist (cons '("\\.rb$" . ruby-mode) auto-mode-alist))
    • Q.デバッグはどうやるの?
      • (prin1-to-string)
      • message関数を使うとメッセージバッファに出力される
    • まとめ
      • Lesson1〜5までのことがわかれば.emacsは読める!
      • わからない関数があればhelpを見ればわかる
    • 実際に.emacsを眺めてみよう
      • (setq debug-on-error t):落ちたときにデバッガが起動される
      • x-display-list: X経由で起動しているかわかる
      • browse-url-browser-function
      • skk-show-tooltip: 変換候補をツールティップ的に表示
      • sdic: 辞書
      • defun upcase-backward-sexp:直前のS式をすべて大文字にする関数
      • defun shellモード→ansi-termというShellモードのいい版もあるよ
    • もっとEmacsを勉強したい
      • Emacs Lisp以外のLispを勉強しましょうw
      • Emacs Lispはクソです。
      • Schemeを勉強するとよいです
        • もうひとつのScheme入門(Web)
        • 独習Scheme三週間(Web)
        • プログラミングGauche(書籍)
files.elを読んでみる(hayamizさん)
  • 標準添付のelispはドキュメントが充実している
  • ソース(実装)の前にドキュメントを読もう
  • ソースを読んでいくと、C-x C-f *.elでファイルが開けることを知った(これは知らなかった!)
  • interpreter-mode-alist:shebangをみてメジャーモードを判断する
emacs lisp紹介(k1LoWさん)
  • moz.el
    • Firefoxの遠隔対話的操作がEmacsからできる
    • .htmlや.jsファイルを保存したときに自動でブラウザをリロード、みたいなこともできる
  • pabbrev.pl
    • いわゆるテキスト補完
    • 動的に略語を登録し動的に略語を表示する
    • アイドリング中に単語を収集(自動)
  • drill-instructor.el(鬼軍曹.el)
    • 不便ですw
    • 小指が痛くなりますw
    • マイナーモードを作るにはよいサンプル
  • sense-region.el
    • 矩形選択をよりやりやすくする
yasnippet(yuki_neko_nyanさん)
  • "once"と入力するとCのインクルードガードが!すごい!
  • snippetを登録して呼び出す仕組み
  • snippet.elだとコードテンプレートの記述がS式のみで使いにくい
  • yasnippet.elはもうちょっと記述方法が楽
  • codereposでsnippetが公開されている
color-theme.el(jj1bdxさん)
  • 存在意義:faceをいちいち手で設定するのが面倒
  • Themeえらびのtips:Themeテストのページがある
anything.el(IMAKADOさん)
  • Emacsは忘れたほうがいい→すいません、忘れません
  • perl-completion.el を作ったりしています
  • anythingはフレームワーク
  • perl-completion.elもanything.elのインタフェースを使っている→補完がすごい

@ yatex.el+reftex.el(Mishoさん)

yatexの補完、プレビュー

Lightning Talk
  • pdic-mode
  • .emacs晒し

Bookmark: あんてな | ぶっくまーく | 覚え書き | Project Amateras | ExcelPettyCashBook | FreeStyle Wiki

2002|10|11|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|11|12|
2008|01|02|03|04|05|06|07|08|10|11|
人気ブログランキング - おいぬま日報(不定期)