プログラマメモ2 - programmer no memo2

コードアシストしてくれるアプリケーションを作るための手習い - eclipse,JFace,swt 2008/09/06
2008/09/06

Javaです。

身近にコードアシストを使ったアプリケーションを作っている方がいて、それを見ていいなxと思ったので練習です。
コードアシストって、いろいろ応用範囲がありそうですね。

話変わって、個人的には、あと、別に文字から文字へ変換させるのではなく、絵がでて絵から選択して文字列にするとかでもおもしろそうです。

参考



使用したeclipseのバージョン3.2.2
ライブラリは、


テキストフィールドで$と入力すると補完候補がでてきます。

以下コードです。
import org.eclipse.jface.fieldassist.ContentProposalAdapter;
import org.eclipse.jface.fieldassist.IContentProposalProvider;
import org.eclipse.jface.fieldassist.IControlContentAdapter;
import org.eclipse.jface.fieldassist.SimpleContentProposalProvider;
import org.eclipse.jface.fieldassist.TextContentAdapter;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;

public class Main extends ApplicationWindow {
public Main() {
super(null);
}

public static void main(String[] args) {

Main window = new Main();
window.setBlockOnOpen(true);
window.open();
Display.getCurrent().dispose();
}

protected Control createContents(Composite parent) {

Text text = new Text(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
IControlContentAdapter contentAdapter = new TextContentAdapter();
// IContentProposalProvider provider = new IContentProposalProvider() {
//
// public IContentProposal[] getProposals(String arg0, int arg1) {
// return null;
// }
//
// };

IContentProposalProvider provider = new SimpleContentProposalProvider(
new String[] { "1", "2", "o_o!" });

ContentProposalAdapter contentProposalAdapter = new ContentProposalAdapter(
text, contentAdapter, provider, null, new char[] { '$' });

// contentProposalAdapter
// .setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);

return parent;
}
}

: