Eclipse Plugin Development Part 4 Preferences 1232020 Soyatec

  • Slides: 16
Download presentation
Eclipse Plug-in Development Part 4 Preferences 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu

Eclipse Plug-in Development Part 4 Preferences 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Contents § Overview § Preference Store § Preference Pages v Preference. Page v Field.

Contents § Overview § Preference Store § Preference Pages v Preference. Page v Field. Editor. Preference. Page § Preference Runtime v Scope v Initializer v Modify § Preference Dialog 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Overview 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin.

Overview 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Store § IPreference. Store v Key: String v Value: Primitive Types § Preference.

Preference Store § IPreference. Store v Key: String v Value: Primitive Types § Preference. Converter (org. eclipse. jface. preference) v RGB, Font. Data, Rectangle, Point IPreference. Store preference. Store = Activator. get. Default(). get. Preference. Store(); //Get value from store boolean. Value = preference. Store. get. Boolean(Preference. Constants. P_BOOLEAN); //Set new value to store preference. Store. set. Value(Preference. Constants. P_BOOLEAN, false); 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Pages § org. eclipse. ui. preference. Pages v id v name v class

Preference Pages § org. eclipse. ui. preference. Pages v id v name v class v category 12/3/2020 <extension point="org. eclipse. ui. preference. Pages"> <page name="Ecsoya Tutorial" class="org. ecsoya. eclipse. tutorial. preferences. Sample. Preference. Page" id="org. ecsoya. eclipse. tutorial. preferences. Sample. Preference. Page"> </page> </extension> Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Pages § org. eclipse. ui. IWorkbench. Preference. Page v org. eclipse. jface. preference.

Preference Pages § org. eclipse. ui. IWorkbench. Preference. Page v org. eclipse. jface. preference. Page public class Sample. Preference. Page 2 extends Preference. Page implements IWorkbench. Preference. Page { public Sample. Preference. Page 2() { set. Preference. Store(Activator. get. Default(). get. Preference. Store()); } public void init(IWorkbench workbench) { } protected Control create. Contents(Composite parent) { Label label = new Label(parent, SWT. NONE); label. set. Text("Page 2"); return label; } } 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Pages § org. eclipse. ui. IWorkbench. Preference. Page v org. eclipse. jface. preference.

Preference Pages § org. eclipse. ui. IWorkbench. Preference. Page v org. eclipse. jface. preference. Field. Editor. Preference. Page public class Sample. Preference. Page extends Field. Editor. Preference. Page implements IWorkbench. Preference. Page { public Sample. Preference. Page() { super(GRID); set. Preference. Store(Activator. get. Default(). get. Preference. Store()); } public void create. Field. Editors() { add. Field(new Directory. Field. Editor(Preference. Constants. P_PATH, "&Directory preference: ", get. Field. Editor. Parent())); add. Field(new Boolean. Field. Editor(Preference. Constants. P_BOOLEAN, "&An example of a boolean preference" , get. Field. Editor. Parent())); add. Field(new Radio. Group. Field. Editor(Preference. Constants. P_CHOICE, "An example of a multiple-choice preference" , 1, new String[][] { { "&Choice 1", "choice 1" }, { "C&hoice 2", "choice 2" } }, get. Field. Editor. Parent())); add. Field(new String. Field. Editor(Preference. Constants. P_STRING, "A &text preference: ", get. Field. Editor. Parent())); } public void init(IWorkbench workbench) { } } 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Pages § Field. Editors v Boolean. Field. Editor v Integer. Field. Editor v

Preference Pages § Field. Editors v Boolean. Field. Editor v Integer. Field. Editor v String. Field. Editor v Radio. Group. Field. Editor v Color. Field. Editor v Font. Field. Editor v Directory. Field. Editor v File. Field. Editor v Path. Editor 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Runtime § org. eclipse. core. runtime. preferences v Scope – store and change

Preference Runtime § org. eclipse. core. runtime. preferences v Scope – store and change q Eclipse preference scopes ü ü Configuration scope – all workspace Instance scope – single workspace Default scope – default values Bundle. Defaults. Scope – preferences. ini q Project scope in org. eclipse. core. resource 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Runtime § org. eclipse. core. runtime. preferences v Initializer - Abstract. Preference. Initializer

Preference Runtime § org. eclipse. core. runtime. preferences v Initializer - Abstract. Preference. Initializer public void initialize. Default. Preferences() { IPreference. Store store = Activator. get. Default(). get. Preference. Store(); store. set. Default(Preference. Constants. P_BOOLEAN, true); store. set. Default(Preference. Constants. P_CHOICE, "choice 2"); store. set. Default(Preference. Constants. P_STRING, "Default value"); } 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Runtime § org. eclipse. core. runtime. preferences v Modify - Preference. Modify. Listener

Preference Runtime § org. eclipse. core. runtime. preferences v Modify - Preference. Modify. Listener public class Preference. Modify. Listener 1 extends Preference. Modify. Listener { public IEclipse. Preferences pre. Apply(IEclipse. Preferences node) { return super. pre. Apply(node); } } 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Runtime § Reacting to changes in the preferences v IProperty. Change. Listener Activator.

Preference Runtime § Reacting to changes in the preferences v IProperty. Change. Listener Activator. get. Default(). get. Preference. Store(). add. Property. Change. Listener(new IProperty. Change. Listener() { public void property. Change(Property. Change. Event event) { if (Preference. Constants. P_BOOLEAN. equals(event. get. Property())) { System. out. println("Changed"); } } }); 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Dialog § Filter and Open Preference. Dialog dialog = Preferences. Util. create. Preference.

Preference Dialog § Filter and Open Preference. Dialog dialog = Preferences. Util. create. Preference. Dialog. On( shell, //Show current page. "org. ecsoya. eclipse. tutorial. preferences. Sample. Preference. Page", //Filtered to show pages (null to show all) new String[] { "org. ecsoya. eclipse. tutorial. preferences. Sample. Preference. Page", "org. ecsoya. eclipse. tutorial. preferences. Sample. Preference. Page 2" }, null); 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Preference Dialog 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype:

Preference Dialog 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Any Questions? Skype: jin. liu. soyatec Email: jin. liu@soyatec. com 12/3/2020 Soyatec (http: //www.

Any Questions? Skype: jin. liu. soyatec Email: jin. liu@soyatec. com 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

The end 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype:

The end 12/3/2020 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec