ÀßÄê¥Ú¡¼¥¸ †org.eclipse.ui.IWorkbenchPreferencePage? ¤Ï¥¦¥£¥ó¥É¥¦ >> ÀßÄê ¤Ë¤¢¤ëÀßÄê¥Ú¡¼¥¸¤òɽ¤¹¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£ ¼ÂºÝ¤Ïorg.eclipse.jface.preference.FieldEditorPreferencePage? ¤òextends¤·¤Æ»È¤¦¤Î¤¬Â¿¤¤¤è¤¦¤Ç¤¹¡£ ÀßÄê¥Ú¡¼¥¸¤Î³ÈÄ¥¥Ý¥¤¥ó¥È †org.eclipse.ui.preferencePages plugin.xml¤Î¥µ¥ó¥×¥ë †<extension point="org.eclipse.ui.preferencePages"> <page class="nu.mine.kino.plugin.hsqldb.ui.HsqldbPreferencePage" id="nu.mine.kino.plugin.hsqldb.ui.HsqldbPreferencePage" name="HsqldbÀßÄê"/> </extension> ¥½¡¼¥¹ †¥¡¼ÃͤÎÄê¿ô¥¯¥é¥¹ public interface IConstants {
public static final String USER_ID = "user_id";
public static final String PASSWORD = "password";
public static final String PORT = "port";
}
²èÌÌ¥¯¥é¥¹ package nu.mine.kino.plugin.hsqldb.ui;
import org.apache.log4j.Logger;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
/**
* @author Masatomi KINO
* @version $Revision$
*/
public class HsqldbPreferencePage extends FieldEditorPreferencePage implements
IWorkbenchPreferencePage {
/**
* Logger for this class
*/
private static final Logger logger = Logger
.getLogger(HsqldbPreferencePage.class);
public HsqldbPreferencePage() {
super(FieldEditorPreferencePage.GRID);
setDescription("Hsqldb¤ËÀܳ¤¹¤ë¤¿¤á¤ÎÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£ÀßÄê¤òÊѹ¹¤·¤¿¾ì¹ç¡¢
µ¯Æ°¤·¤Æ¤¤¤ë¥µ¡¼¥Ð¤ÏÄä»ß¤µ¤ì¤Þ¤¹¡£");
setPreferenceStore(HsqldbUIPlugin.getDefault().getPreferenceStore());
¢¬ ¥×¥é¥°¥¤¥ó¤Î IPreferenceStore ¥Õ¥£¡¼¥ë¥É¤È´ØÏ¢¤Å¤±
}
protected void createFieldEditors() {
{
addField(new StringFieldEditor(IConstants.USER_ID, "&UserID",
getFieldEditorParent()));
¢¬¥¡¼ÃͤȲèÌ̤Υե£¡¼¥ë¥É¤ò´ØÏ¢¤Å¤±
}
{
addField(new StringFieldEditor(IConstants.PASSWORD, "&Password",
getFieldEditorParent()));
¢¬¥¡¼ÃͤȲèÌ̤Υե£¡¼¥ë¥É¤ò´ØÏ¢¤Å¤±
}
{
addField(new StringFieldEditor(IConstants.PORT, "P&ortÈÖ¹æ",
getFieldEditorParent()));
¢¬¥¡¼ÃͤȲèÌ̤Υե£¡¼¥ë¥É¤ò´ØÏ¢¤Å¤±
}
}
public void init(IWorkbench workbench) {
}
}
ÀßÄêÃͤ˥¢¥¯¥»¥¹¤¹¤ë †¾å¤Î¤è¤¦¤Ë¥¯¥é¥¹¤òÄêµÁ¤·¤Æ¤ª¤¯¤È¡¢¼ÂºÝ¤ËÀßÄê¥Ú¡¼¥¸¤ÇÀßÄꤷ¤¿Ãͤˤϰʲ¼¤Î¤è¤¦¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ String port = HsqldbUIPlugin.getDefault().getPreferenceStore()
.getString(IConstants.PORT);
½é´üÃͤòÀßÄꤹ¤ë †¤µ¤Æ¡¢½é´üÃÍ(²èÌ̤Îsa¤È¤«9001¤È¤«)¤ÎÀßÄê¤Ï¡¢Ê̤γÈÄ¥¥Ý¥¤¥ó¥È org.eclipse.core.runtime.preferences ¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤Î³ÈÄ¥¥Ý¥¤¥ó¥È¤ËÅÐÏ¿¤·¤¿¥¯¥é¥¹¤Ï¥×¥é¥°¥¤¥ó¤Î³èÀ²½»þ¤Ë¥í¡¼¥É¤µ¤ì¤ë¤Î¤Ç¡¢¤½¤ÎÃæ¤Ç½é´üÃͤò¥»¥Ã¥È¤¹¤ì¤Ð¤è¤¤¤ï¤±¤Ç¤¹¡£ ³ÈÄ¥¥Ý¥¤¥ó¥È¤Ï°Ê²¼¤Î¤è¤¦¤ËÀßÄꤷ¤Þ¤·¤¿¡£ <extension point="org.eclipse.core.runtime.preferences">
<initializer class="nu.mine.kino.plugin.hsqldb.ui.
HsqldbPreferenceInitializer"/>
</extension>
¤³¤Î³ÈÄ¥¥Ý¥¤¥ó¥È¤ÎJava¤Î¥¯¥é¥¹¤Ï org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; ¤Ç¤¹¡£¤³¤Î¥¯¥é¥¹¤ò³ÈÄ¥¤¹¤ë¡¢°Ê²¼¤Î¤è¤¦¤Ê¥¯¥é¥¹¤òºî¤ê¤Þ¤·¤¿¡£ package nu.mine.kino.plugin.hsqldb.ui;
import org.apache.log4j.Logger;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.jface.preference.IPreferenceStore;
public class HsqldbPreferenceInitializer extends AbstractPreferenceInitializer {
public void initializeDefaultPreferences() {
IPreferenceStore store = HsqldbUIPlugin.getDefault()
.getPreferenceStore();
store.setDefault(IConstants.USER_ID, "sa");
store.setDefault(IConstants.PASSWORD, "");
store.setDefault(IConstants.PORT, "9001");
}
}
¤³¤ì¤Ç¡¢¥×¥é¥°¥¤¥ó¤¬³èÀ²½¤µ¤ì¤ë¤È¤¤Ë¾å¤Î¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¡¢¥Õ¥£¡¼¥ë¥É¤Ë½é´üÃͤ¬ÀßÄꤵ¤ì¤Þ¤¹¡£¤³¤Î½é´üÃͤϤϤ¸¤á¤ÆÀßÄê¥Ú¡¼¥¸¤ò³«¤¤¤¿¤È¤¤Ëɽ¼¨¤µ¤ì¤ë¤Î¤Ï¤â¤Á¤í¤ó¡Ö¥Ç¥Õ¥©¥ë¥È¤ÎÉü¸µ¡×¤Ê¤É¤ò¥¯¥ê¥Ã¥¯¤·¤¿¤È¤¤â¤³¤Î½é´üÃͤËÌá¤ê¤Þ¤¹¡£ TIPS †OK¥Ü¥¿¥ó¤ò²¡¤·¤¿¤È¤¤Ë¡¢¤Ê¤ó¤«¤ä¤ë †IPreferencePage?#performOk()¤òOverride¤·¤Þ¤¹¡£ public boolean performOk() {
String port = HsqldbUIPlugin.getDefault().getPreferenceStore()
.getString(IConstants.PORT);
String userid = HsqldbUIPlugin.getDefault().getPreferenceStore()
.getString(IConstants.USER_ID);
String password = HsqldbUIPlugin.getDefault().getPreferenceStore()
.getString(IConstants.PASSWORD);
HsqldbUIPlugin.getDefault().stopHsqldb();
return super.performOk();
}
StringFieldEditor? ¤Î¾¤Î¥¨¥Ç¥£¥¿ †addField ¤ËÅϤ¹°ú¿ô FieldEditor?¤Î¥µ¥Ö¥¯¥é¥¹¤Ë¤Ï StringFieldEditor?¤Î¾¤Ë¤â°Ê²¼¤Î¤è¤¦¤Ê¥â¥Î¤¬¤¢¤ê¤Þ¤¹¡£ String[][] labelAndValue = new String[][] {
new String[] { "Select 1", "1" },
new String[] { "Select 2", "2" },
new String[] { "Select 3", "3" }, };
addField(new RadioGroupFieldEditor("radio1", "Radio Group",
labelAndValue.length, labelAndValue, getFieldEditorParent()));
addField(new PathEditor("HOGE", "Path", "Chooser",
getFieldEditorParent()));
addField(new FileFieldEditor("file1", "File", true,
getFieldEditorParent()));
addField(new DirectoryFieldEditor("directory1", "Directory",
getFieldEditorParent()));
addField(new FontFieldEditor("font1", "Font", "Preview",
getFieldEditorParent()));
addField(new ColorFieldEditor("color1", "Color", getFieldEditorParent()));
StringFieldEditor?¤Ê¤É¥¨¥Ç¥£¥¿¥¯¥é¥¹¤ò¼«ºî¤¹¤ë †Î㣱 package nu.mine.kino.plugin.google.ui.preferences;
import nu.mine.kino.plugin.google.ui.Utility;
import org.eclipse.jface.preference.StringButtonFieldEditor;
import org.eclipse.swt.widgets.Composite;
public class GoogleKeyFieldEditor extends StringButtonFieldEditor {
public GoogleKeyFieldEditor(String name, String labelText, Composite parent) {
super(name, labelText, parent);
setChangeButtonText("Key ¼èÆÀ");
}
/*
* (Èó Javadoc)
*
* @see org.eclipse.jface.preference.StringButtonFieldEditor#changePressed()
*/
protected String changePressed() {
Utility.executeBrowser("http://www.google.com/apis/");
// ¤³¤Î¥ê¥¿¡¼¥ó¤¹¤ëÃͤˡ¢¥Æ¥¥¹¥È¥Ü¥Ã¥¯¥¹¤òÊѹ¹¤¹¤ë¡£
// ¤¿¤À¤·¡¢null¤òÊÖ¤»¤Ð¡¢²¿¤â¤·¤Ê¤¤¤é¤·¤¤¡£
return null;
}
}
Î㣲 package nu.mine.kino.plugin.javadocsearch.pages;
import java.util.ArrayList;
import java.util.StringTokenizer;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.preference.ListEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class URLEditor extends ListEditor {
/**
* @param name
* ÀßÄê¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥¡¼
* @param labelText
* ¤³¤Î¥Õ¥£¡¼¥ë¥É¤Î¥é¥Ù¥ë
* @param parent
* ¿Æ¤ÎComposite
*/
public URLEditor(String name, String labelText, Composite parent) {
super(name, labelText, parent);
}
/**
* ¥æ¡¼¥¶ÆþÎÏÃͤò¼õ¤±¼è¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£ ¥À¥¤¥¢¥í¥°¤ò¥æ¡¼¥¶ÆþÎϤò¼õ¤±ÉÕ¤±¡¢
* ÆþÎϤµ¤ì¤¿Ê¸»úÎó¤òÊÖ¤·¤Þ¤¹¡£ ¥¥ã¥ó¥»¥ë¤·¤¿¤È¤¤Ê¤É¤Ïnull¤¬ÊÖ¤ê¤Þ¤¹¡£
*
* @return ÆþÎϤµ¤ì¤¿Ê¸»úÎó
* @see org.eclipse.jface.preference.ListEditor#getNewInputObject()
*/
protected String getNewInputObject() {
URLDialog dialog = new URLDialog(getShell());
int ret = dialog.open();
if (ret == IDialogConstants.OK_ID) {
String text = dialog.getText();
return text;
} else if (ret == IDialogConstants.CANCEL_ID) {
// [Cancel]¥Ü¥¿¥ó²¡²¼
return null;
}
return null;
}
/**
* ¥Ú¡¼¥¸Æâ¤Ç¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¤È¤¤ËString¤«¤éString[]¤ËÊÑ´¹¤·¤ÆÉ½¼¨Ê¸»úÎó¤ò¼èÆÀ¤¹¤ë¥á¥½¥Ã¥É¡£
*
* @param stringList
* Eclipse¤ËÊÝ»ý¤µ¤ì¤Æ¤¤¤ëʸ»úÎó
* @see org.eclipse.jface.preference.ListEditor#parseString(java.lang.String)
*/
protected String[] parseString(String stringList) {
StringTokenizer st = new StringTokenizer(stringList,
"\t" + "\n\r");
ArrayList v = new ArrayList();
while (st.hasMoreElements()) {
v.add(st.nextElement());
}
return (String[]) v.toArray(new String[v.size()]);
}
/**
* ¥×¥ê¥Õ¥¡¥ì¥ó¥¹¥Ú¡¼¥¸¤ÇÊݸ½èÍý¤¬¹Ô¤ï¤ì¤¿¤È¤¤Ë¸Æ¤Ð¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
*
* @param items
* ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥ê¥¹¥È¡£
* @see org.eclipse.jface.preference.ListEditor#createList(java.lang.String[])
*/
protected String createList(String[] items) {
StringBuffer path = new StringBuffer("");
for (int i = 0; i < items.length; i++) {
path.append(items[i]);
// path.append(File.pathSeparator);
path.append("\t");
}
return path.toString();
}
private class URLDialog extends Dialog {
/**
* ¥À¥¤¥¢¥í¥°¤Ç¥æ¡¼¥¶¤¬ÆþÎϤ·¤Æ¤¤¤ëʸ»úÎó(URL) <code>text</code> ¤Î¥³¥á¥ó¥È
*/
private String text;
public URLDialog(Shell parent) {
super(parent);
}
protected Point getInitialSize() {
return new Point(400, 150);
}
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText("URL¥À¥¤¥¢¥í¥°");
}
/**
* URL¤òÆþÎϤ¹¤ë¥À¥¤¥¢¥í¥°¤òÉÁ²è¤·¤Þ¤¹¡£
*
* @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
*/
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
// Text textBox = new Text(composite, SWT.MULTI | SWT.V_SCROLL
// | SWT.BORDER | SWT.WRAP);
Label label = new Label(composite, SWT.NONE);
label.setText("URL¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
Text textBox = new Text(composite, SWT.SINGLE | SWT.BORDER);
textBox.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
textBox.setText("");
textBox.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
Text source = (Text) e.getSource();
text = source.getText();
}
});
return composite;
}
public String getText() {
return text;
}
}
}
ÀßÄê²èÌ̤ÎÊѹ¹¤ò¥ê¥¹¥Ê¤ËÄÌÃΤ·¤¿¤¤¡£ †ÀßÄê²èÌ̤ÇÃͤòÊѹ¹¤¹¤ë¤È¡¢¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤Þ¤¹¡£¤½¤Î¥¤¥Ù¥ó¥È¤òListen¤¹¤ë¥ê¥¹¥Ê¡¼¤Ï org.eclipse.jface.util.IPropertyChangeListener ¤Ç¤¹¡£¥¤¥Ù¥ó¥È¤òȯÀ¸¤µ¤»¤ë¥¯¥é¥¹*1¤Ï org.eclipse.jface.preference.IPreferenceStore ¤Ç¤¹¡£½¾¤Ã¤Æ¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥Ç¥£¥ó¥°¤ÇÀßÄê²èÌ̤òListen¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ HogePlugin.getDefault().getPreferenceStore().addPropertyChangeListener(
new IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
System.out.println(event.getSource());
System.out.println(event.getNewValue());
System.out.println(event.getOldValue());
}
});
HogePlugin?¤ÏÀßÄê²èÌ̤òºîÀ®¤·¤¿¤È¤¤Ë¡¢ setPreferenceStore(HogePlugin.getDefault().getPreferenceStore()); ¤È¤¤¤¦¤è¤¦¤Ë¡¢¤½¤ÎÀßÄê²èÌ̤ȴØÏ¢¤Å¤±¤é¤ì¤¿¥×¥é¥°¥¤¥ó¥¯¥é¥¹¤Ç¤¹¡£ ȯÀ¸¤·¤¿¥¤¥Ù¥ó¥È¤Î¥¯¥é¥¹¤Ï org.eclipse.jface.util.PropertyChangeEvent ¤È¤¤¤¦¥â¥Î¤Ç¡¢¤³¤Î¥¤¥Ù¥ó¥È¥¯¥é¥¹¤«¤é¤Ï
¤Ê¤É¤Î¤è¤¦¤Ë¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤Á¤Ê¤ß¤Ë¤³¤Î¥¤¥Ù¥ó¥È¤Ï¡¢¥Õ¥£¡¼¥ë¥É¤´¤È¤ËȯÀ¸¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢Ê£¿ô¤Î¥Õ¥£¡¼¥ë¥É¤ÎÃͤòÊѹ¹¤·¤ÆÊݸ¤·¤¿¾ì¹ç¤Ï¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¿ôʬ¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤Þ¤¹¡£ ÀßÄê²èÌ̺¸¾å¤Î¥Õ¥£¥ë¥¿¤ò»È¤¦ †ÀßÄê²èÌ̤κ¸¾å¤Ë¥Æ¥¥¹¥È¤Ç¥Õ¥£¥ë¥¿¤¹¤ëµ¡Ç½¤Ï¡¢org.eclipse.ui.keywords ³ÈÄ¥¥Ý¥¤¥ó¥È¤ò»ÈÍѤ·¤Þ¤¹¡£ <extension point="org.eclipse.ui.keywords"> <keyword id="nu.mine.kino.plugin.google.ui.keywords.sitesearch" label="¤Û¤² hoge fuga" /> </extension> ¤È¤¤¤¦¤è¤¦¤Ë¥Õ¥£¥ë¥¿Ê¸»úÎó¤òÍåÎó¤·¤¿³ÈÄ¥¥Ý¥¤¥ó¥È¤òÄêµÁ¤·¤Æ¡¢ <extension point="org.eclipse.ui.preferencePages">
<page class="nu.mine.kino.plugin.google.ui.preferences.MainPreferencePage"
id="nu.mine.kino.plugin.google.ui.preferences.MainPreferencePage" name="ÀßÄê²èÌÌ¡£">
<keywordReference id="nu.mine.kino.plugin.google.ui.keywords.sitesearch" />
</page>¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¬keyword³ÈÄ¥¥Ý¥¤¥ó¥È¤Îid
</extension>
¤È¤·¤ÆÀßÄê²èÌ̤˴ØÏ¢¤Å¤±¤·¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï¥Õ¥£¥ë¥¿ÆþÎÏÍó¤Ë ¤Û¤² ¤È¤« hoge ¤È¤« fuga ¤È¤«Æþ¤ì¤Æ¥Õ¥£¥ë¥¿¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ´ØÏ¢¥ê¥ó¥¯ †
¤³¤Îµ»ö¤Ï
¸½ºß¤Î¥¢¥¯¥»¥¹:13667 |