コードアシストしてくれるアプリケーションを作るための手習い - eclipse,JFace,swt
2008/09/06
2008/09/06
eclipse
java
jface
swt
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;
}
}
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;
}
}
: