Eclipse Plugin Development SWTJFace Development Part 1 Controls

  • Slides: 48
Download presentation
Eclipse Plug-in Development SWT/JFace Development Part 1 Controls 2/20/2021 Soyatec (http: //www. soyatec. com)

Eclipse Plug-in Development SWT/JFace Development Part 1 Controls 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Contents § § § Introducing the Widget and Control classes Labels Involving the user

Contents § § § Introducing the Widget and Control classes Labels Involving the user with buttons Editing text with SWT Combo and List Sash and Sash. Form Tool. Bar and Cool. Bar Slider, Scale and Spinner Progress. Bar and Tool. Tip Menus Tray and Task. Bar Working with events 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Introducing the Widget and Control classes § Widget v Superclass of all user interface

Introducing the Widget and Control classes § Widget v Superclass of all user interface objects v Constructor: parent and style v Issue notification to listeners v Holding Data v Dispose § Control v Superclass of all windowed user interface classes v Size, Location and Region v Color, Font and Image v. Visible and Enable 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Label § Text or Image Label text. Label= new Label(shell, SWT. NONE); text. Label.

Label § Text or Image Label text. Label= new Label(shell, SWT. NONE); text. Label. set. Text("Hello, I am a Label. "); Label image. Label = new Label(shell, SWT. BORDER); image. Label. set. Image(display. get. System. Image(SWT. ICON_QUESTION)); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Label § Separator v SWT. SEPARATOR v SWT. HORIZONTAL, SWT. VERTICAL new Label(shell, SWT.

Label § Separator v SWT. SEPARATOR v SWT. HORIZONTAL, SWT. VERTICAL new Label(shell, SWT. SEPARATOR | SWT. HORIZONTAL); new Label(shell, SWT. SEPARATOR | SWT. VERTICAL); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Label § Label Alignment v. SWT. LEFT v. SWT. RIGHT v. SWT. CENTER Label

Label § Label Alignment v. SWT. LEFT v. SWT. RIGHT v. SWT. CENTER Label left. Label = new Label(shell, SWT. LEFT|SWT. BORDER); left. Label. set. Text("Left"); Label center. Label = new Label(shell, SWT. CENTER | SWT. BORDER); center. Label. set. Text("Center"); Label right. Label = new Label(shell, SWT. BORDER); right. Label. set. Text("Right"); right. Label. set. Alignment(SWT. RIGHT); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Label § Auto Wrap v. SWT. WRAP Label no. Wrap. Label = new Label(shell,

Label § Auto Wrap v. SWT. WRAP Label no. Wrap. Label = new Label(shell, SWT. BORDER); no. Wrap. Label. set. Text("This is a long Text on label, but no WRAP style set. "); Label wrap. Label = new Label(shell, SWT. WRAP | SWT. BORDER); wrap. Label. set. Text("This is a long Text on label, and the WRAP style is set. "); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Involving the user with buttons § Normal Button v SWT. NONE v SWT. PUSH

Involving the user with buttons § Normal Button v SWT. NONE v SWT. PUSH //Button new Button(shell, SWT. PUSH). set. Text("Button 1"); new Button(shell, SWT. PUSH). set. Text("Button 2"); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Involving the user with buttons § Check Box v SWT. CHECK //Check. Box new

Involving the user with buttons § Check Box v SWT. CHECK //Check. Box new Button(shell, SWT. CHECK). set. Text("Check. Box 1"); Button check. Box = new Button(shell, SWT. CHECK); check. Box. set. Text("Check. Box 2"); check. Box. set. Selection(true); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Involving the user with buttons § Radio Box v SWT. RADIO //Radio. Box new

Involving the user with buttons § Radio Box v SWT. RADIO //Radio. Box new Button(shell, SWT. RADIO). set. Text("Radio. Box 1"); Button radio. Box = new Button(shell, SWT. RADIO); radio. Box. set. Text("Radio. Box 2"); radio. Box. set. Selection(true); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Involving the user with buttons § Toggle Buttons v SWT. TOGGLE //Toggle new Button(shell,

Involving the user with buttons § Toggle Buttons v SWT. TOGGLE //Toggle new Button(shell, SWT. TOGGLE). set. Text("Toggle 1"); Button toggle = new Button(shell, SWT. TOGGLE); toggle. set. Text("Toggle 2"); toggle. set. Selection(true); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Involving the user with buttons § Arrows v SWT. ARROW v SWT. LEFT, SWT.

Involving the user with buttons § Arrows v SWT. ARROW v SWT. LEFT, SWT. RIGHT, SWT. TOP and SWT. BOTTOM //Arrow new Button(shell, SWT. ARROW|SWT. LEFT); new Button(shell, SWT. ARROW|SWT. RIGHT); new Button(shell, SWT. ARROW|SWT. TOP); new Button(shell, SWT. ARROW|SWT. BOTTOM); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Involving the user with buttons § Selection Listener v SWT. Default. Selection v SWT.

Involving the user with buttons § Selection Listener v SWT. Default. Selection v SWT. Selection button. add. Selection. Listener(new Selection. Listener() { public void widget. Selected(Selection. Event e) { // Handle selection event. } public void widget. Default. Selected(Selection. Event e) { // is not called } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Editing text with SWT § Text v SWT. SINGLE v SWT. MULTI v SWT.

Editing text with SWT § Text v SWT. SINGLE v SWT. MULTI v SWT. WRAP v SWT. PASSWORD v SWT. SEARCH Text text 1 = new Text(shell, SWT. NONE); text 1. set. Text("Default Text"); Text text 2 = new Text(shell, SWT. BORDER); text 2. set. Text("Text with border"); Text text 3 = new Text(shell, SWT. MULTI |SWT. BORDER); text 3. set. Text("Text with multi linesn. Auto wrapped. "); Text text 4 = new Text(shell, SWT. PASSWORD |SWT. BORDER); text 4. set. Text("123456"); Text text 5 = new Text(shell, SWT. READ_ONLY | SWT. BORDER); text 5. set. Text("Read only Text"); Text text 6 = new Text(shell, SWT. SEARCH | SWT. BORDER); text 6. set. Text("Search Text"); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Editing text with SWT § Text Default Selection Listener v SWT. Default. Selection text

Editing text with SWT § Text Default Selection Listener v SWT. Default. Selection text 1. add. Selection. Listener(new Selection. Listener() { public void widget. Selected(Selection. Event e) { // Never called for text. } public void widget. Default. Selected(Selection. Event e) { // Called when “Enter” pressed } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Editing text with SWT § Text Modify Listener v SWT. Modify text. add. Modify.

Editing text with SWT § Text Modify Listener v SWT. Modify text. add. Modify. Listener(new Modify. Listener() { public void modify. Text(Modify. Event e) { // Called when text changed } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Editing text with SWT § Text Verify Listener v SWT. Verify text. add. Verify.

Editing text with SWT § Text Verify Listener v SWT. Verify text. add. Verify. Listener(new Verify. Listener() { public void verify. Text(Verify. Event e) { int start = e. start; // Change start index int end = e. end; // Change end index String new. Value = e. text; // Changed value if ("d". ends. With(new. Value)){ e. doit = false; // Refused changes } } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Combo and List § Combo v SWT. SIMPLE v SWT. DROP_DOWN (default) v SWT.

Combo and List § Combo v SWT. SIMPLE v SWT. DROP_DOWN (default) v SWT. READ_ONLY Combo drop. Down = new Combo(shell, SWT. DROP_DOWN); for (int i = 0; i < 5; i++) { drop. Down. add("drop-down -" + i); } drop. Down. select(2); Combo simple = new Combo(shell, SWT. SIMPLE); for (int i = 0; i < 5; i++) { simple. add("simpe-item-" + i); } simple. select(3); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Combo and List § Combo Text Listeners v SWT. Default. Selection v SWT. Verify

Combo and List § Combo Text Listeners v SWT. Default. Selection v SWT. Verify v SWT. Modify § Combo Selection Listener v. SWT. Selection Combo drop. Down = new Combo(shell, SWT. DROP_DOWN); for (int i = 0; i < 5; i++) { drop. Down. add("drop-down -" + i); } drop. Down. select(2); drop. Down. add. Selection. Listener(new Selection. Adapter() { public void widget. Selected(Selection. Event e) { //String item = drop. Down. get. Item(drop. Down. get. Selection. Index()); } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Combo and List § List v SWT. SINGLE v SWT. MULTI v SWT. READ_ONLY

Combo and List § List v SWT. SINGLE v SWT. MULTI v SWT. READ_ONLY List list 1 = new List(shell, SWT. SINGLE | SWT. BORDER); for (int i = 0; i < 5; i++) { list 1. add("single-selection-" + i); } list 1. select(2); // Selection List list 2 = new List(shell, SWT. MULTI | SWT. BORDER | SWT. V_SCROLL); list 2. set. Layout. Data(new Row. Data(SWT. DEFAULT, 60)); for (int i = 0; i < 5; i++) { list 2. add("multi-selection-" + i); } list 2. select(2, 3); // Selection 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Combo and List § List Selection Listeners v SWT. Default. Selection v SWT. Selection

Combo and List § List Selection Listeners v SWT. Default. Selection v SWT. Selection list. add. Selection. Listener(new Selection. Listener() { public void widget. Selected(Selection. Event e) { // Selection changed } public void widget. Default. Selected(Selection. Event e) { // Double clicked } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Sash and Sash. Form § Sash v SWT. VERTICAL v SWT. HORIZONTAL v SWT.

Sash and Sash. Form § Sash v SWT. VERTICAL v SWT. HORIZONTAL v SWT. SMOOTH final Sash h. Sash = new Sash(group 1, SWT. HORIZONTAL | SWT. SMOOTH); Rectangle rect = group 1. get. Client. Area(); h. Sash. set. Bounds(rect. x, 40, 315, 10); h. Sash. set. Background(display. get. System. Color(SWT. COLOR_RED)); final Sash v. Sash = new Sash(group 2, SWT. VERTICAL); Rectangle r = group 2. get. Client. Area(); v. Sash. set. Bounds(150, r. y, 20, 100); v. Sash. add. Listener(SWT. Selection, new Listener() { public void handle. Event(Event e) { v. Sash. set. Bounds(e. x, e. y, e. width, e. height); } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Sash and Sash. Form § Sash. From v set. Weights(int[]) Sash. Form form =

Sash and Sash. Form § Sash. From v set. Weights(int[]) Sash. Form form = new Sash. Form(shell, SWT. HORIZONTAL | SWT. SMOOTH); form. set. Sash. Width(2); form. set. Background(display. get. System. Color(SWT. COLOR_RED)); Composite child 1 = new Composite(form, SWT. NONE); child 1. set. Layout(new Fill. Layout()); new Label(child 1, SWT. NONE). set. Text("Label in pane 1"); Composite child 2 = new Composite(form, SWT. NONE); child 2. set. Layout(new Fill. Layout()); new Button(child 2, SWT. PUSH). set. Text("Button in pane 2"); Composite child 3 = new Composite(form, SWT. NONE); child 3. set. Layout(new Fill. Layout()); new Label(child 3, SWT. PUSH). set. Text("Label in pane 3"); form. set. Weights(new int[] { 30, 40, 30 }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Tool. Bar and Cool. Bar § Tool. Bar and Tool. Item v Tool. Bar

Tool. Bar and Cool. Bar § Tool. Bar and Tool. Item v Tool. Bar q SWT. VERTICAL q SWT. HORIZONTAL q SWT. FLAT q SWT. RIGHT q SWT. WRAP v Tool. Item q SWT. PUSH q SWT. CHECK q SWT. RADIO q SWT. CHECK q SWT. DROP_DOWN q SWT. SEPARATOR 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Tool. Bar and Cool. Bar § Tool. Bar and Tool. Item // Create a

Tool. Bar and Cool. Bar § Tool. Bar and Tool. Item // Create a horizontal Tool. Bar. final Tool. Bar h. Tool. Bar = new Tool. Bar(group 1, SWT. HORIZONTAL | SWT. FLAT | SWT. SHADOW_OUT); new Tool. Item(h. Tool. Bar, SWT. PUSH). set. Text("Push"); // Push style item. new Tool. Item(h. Tool. Bar, SWT. SEPARATOR); // Separator, show only parent style contains 'SWT. FLAT' new Tool. Item(h. Tool. Bar, SWT. CHECK). set. Text("Check 1"); // Check style item new Tool. Item(h. Tool. Bar, SWT. CHECK). set. Text("Check 2"); // Check style item new Tool. Item(h. Tool. Bar, SWT. SEPARATOR); new Tool. Item(h. Tool. Bar, SWT. RADIO). set. Text("Radio 1"); // Radio style item new Tool. Item(h. Tool. Bar, SWT. RADIO). set. Text("Radio 2"); // Radop style item new Tool. Item(h. Tool. Bar, SWT. SEPARATOR); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Tool. Bar and Cool. Bar § Add Drop Down Tools final Tool. Item drop.

Tool. Bar and Cool. Bar § Add Drop Down Tools final Tool. Item drop. Down = new Tool. Item(h. Tool. Bar, SWT. DROP_DOWN); drop. Down. set. Text("Drop Down"); final Menu menu = new Menu(shell, SWT. POP_UP); for (int i = 0; i < 5; i++) { Menu. Item menu. Item = new Menu. Item(menu, SWT. NONE); menu. Item. set. Image(task. Image); menu. Item. set. Text("Item " + i); } // Add listener to show the menu for drop down item. drop. Down. add. Listener(SWT. Selection, new Listener() { public void handle. Event(Event event) { if (SWT. ARROW == event. detail) { Rectangle rect = drop. Down. get. Bounds(); Point pt = new Point(rect. x, rect. y + rect. height); pt = h. Tool. Bar. to. Display(pt); menu. set. Location(pt. x, pt. y); menu. set. Visible(true); } } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Tool. Bar and Cool. Bar § Cool. Bar and Cool. Item v Cool. Bar

Tool. Bar and Cool. Bar § Cool. Bar and Cool. Item v Cool. Bar q SWT. VERTICAL q SWT. HORIZONTAL q SWT. FLAT q set. Lock() q set. Wrap. Indices() v Cool. Item q Size q SWT. DROP_DOWN 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Tool. Bar and Cool. Bar § Cool. Bar and Cool. Item final Cool. Bar

Tool. Bar and Cool. Bar § Cool. Bar and Cool. Item final Cool. Bar cool. Bar = new Cool. Bar(shell, SWT. HORIZONTAL | SWT. FLAT); for (int i = 0; i < 5; i++) { Cool. Item item = new Cool. Item(cool. Bar, SWT. DROP_DOWN); Button control = new Button(cool. Bar, SWT. NONE); control. set. Image(task. Image); control. set. Text("Button - " + i); item. set. Control(control); Point size = control. compute. Size(SWT. DEFAULT, SWT. DEFAULT); item. set. Preferred. Size(item. compute. Size(size. x, size. y)); } cool. Bar. set. Wrap. Indices(new int[] { 1, 3 }); cool. Bar. pack(); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Slider, Scale and Spinner § Slider v SWT. VERTICAL v SWT. HORIZONTAL v Thumb

Slider, Scale and Spinner § Slider v SWT. VERTICAL v SWT. HORIZONTAL v Thumb Slider v. Slider = new Slider(shell, SWT. VERTICAL); v. Slider. set. Maximum(100); v. Slider. set. Thumb(20); Slider h. Slider = new Slider(shell, SWT. HORIZONTAL); h. Slider. set. Maximum(100); h. Slider. set. Selection(50); h. Slider. set. Thumb(10); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Slider, Scale and Spinner § Scale v SWT. VERTICAL v SWT. HORIZONTAL Scale v.

Slider, Scale and Spinner § Scale v SWT. VERTICAL v SWT. HORIZONTAL Scale v. Scale = new Scale(shell, SWT. VERTICAL); Scale h. Scale = new Scale(shell, SWT. HORIZONTAL); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Slider, Scale and Spinner § Spinner v SWT. READ_ONLY v Digits final Spinner spinner

Slider, Scale and Spinner § Spinner v SWT. READ_ONLY v Digits final Spinner spinner = new Spinner(shell, SWT. BORDER); spinner. set. Minimum(-10000); spinner. set. Maximum(10000); spinner. set. Digits(2); spinner. set. Selection(-248); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Slider, Scale and Spinner § Slider, Scale and Spinner v Maximum v Minimum v

Slider, Scale and Spinner § Slider, Scale and Spinner v Maximum v Minimum v Selection v Page. Increment v Increment 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Progress. Bar, Tray and Tool. Tip § Progress. Bar v SWT. SMOOTH v SWT.

Progress. Bar, Tray and Tool. Tip § Progress. Bar v SWT. SMOOTH v SWT. INDETERMINATE // SWT. DEFAULT | SWT. SMOOTH final Progress. Bar smooth. Bar = new Progress. Bar(shell, SWT. SMOOTH); smooth. Bar. set. Maximum(100); smooth. Bar. set. Selection(30); new Label(shell, SWT. NONE). set. Text("SWT. SMOOTH"); // SWT. INDETERMINATE new Progress. Bar(shell, SWT. INDETERMINATE); new Label(shell, SWT. NONE). set. Text("SWT. INDETERMINATE"); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Progress. Bar, Tray and Tool. Tip § Tool. Tip v Tooltip for control shell.

Progress. Bar, Tray and Tool. Tip § Tool. Tip v Tooltip for control shell. set. Tool. Tip. Text("Tool. Tip Tutorial: this is a simple tooltip text for Shell. "); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Progress. Bar and Tool. Tip § Tool. Tip v Normal tooltip final Tool. Tip

Progress. Bar and Tool. Tip § Tool. Tip v Normal tooltip final Tool. Tip tip = new Tool. Tip(shell, SWT. NONE); tip. set. Text("Foxes vs. Dogs"); tip. set. Message("The quick brown fox jumps over the lazy dog. "); tip. set. Auto. Hide(false); final Button show. Tip. Button = new Button(shell, SWT. NONE); show. Tip. Button. set. Text("Show Tool. Tip"); show. Tip. Button. add. Listener(SWT. Selection, new Listener() { public void handle. Event(Event event) { if (tip. is. Visible() || tip. is. Disposed()) { return; } Rectangle r = show. Tip. Button. get. Bounds(); Point pt = show. Tip. Button. to. Display(r. x + r. width + 50, r. y); tip. set. Location(pt); tip. set. Visible(true); } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Progress. Bar and Tool. Tip § Tool. Tip v Tooltip like balloon final Tool.

Progress. Bar and Tool. Tip § Tool. Tip v Tooltip like balloon final Tool. Tip balloon = new Tool. Tip(shell, SWT. BALLOON | SWT. ICON_INFORMATION); balloon. set. Text("Foxes vs. Dogs"); balloon. set. Message("The quick brown fox jumps over the lazy dog. " ); balloon. set. Auto. Hide(true); final Button show. Tip. Button 2 = new Button(shell, SWT. NONE); show. Tip. Button 2. set. Text("Show Balloon Tool. Tip" ); show. Tip. Button 2. add. Listener(SWT. Selection, new Listener() { public void handle. Event(Event event) { if (balloon. is. Visible() || balloon. is. Disposed()) { return; } Rectangle r = show. Tip. Button 2. get. Bounds(); Point pt = show. Tip. Button 2. to. Display(r. x + r. width, r. y); balloon. set. Location(pt); balloon. set. Visible(true); } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Menus § Menu. Bar v SWT. BAR // Menu. Bar Menu menu. Bar =

Menus § Menu. Bar v SWT. BAR // Menu. Bar Menu menu. Bar = new Menu(shell, SWT. BAR); Menu. Item file. Item = new Menu. Item(menu. Bar, SWT. CASCADE); file. Item. set. Text("File"); file. Item. set. Accelerator('F'); file. Item. set. Image(image); // Drop_Down menu will be set as submenu for File menu. Menu file. Item. Menu = new Menu(file. Item); new Menu. Item(file. Item. Menu, SWT. PUSH). set. Text("Open. . . "); new Menu. Item(file. Item. Menu, SWT. PUSH). set. Text("Exit"); file. Item. set. Menu(file. Item. Menu); shell. set. Menu. Bar(menu. Bar); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Menus § Context Menu v SWT. POP_UP Menu context. Menu = new Menu(shell, SWT.

Menus § Context Menu v SWT. POP_UP Menu context. Menu = new Menu(shell, SWT. POP_UP | SWT. NO_RADIO_GROUP); Menu. Item push. Item = new Menu. Item(context. Menu, SWT. PUSH); push. Item. set. Text("Push item"); push. Item. set. Image(image); new Menu. Item(context. Menu, SWT. SEPARATOR); … label. set. Menu(context. Menu); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Menus § Sub Menu v SWT. CASCADE Menu. Item file. Item = new Menu.

Menus § Sub Menu v SWT. CASCADE Menu. Item file. Item = new Menu. Item(menu. Bar, SWT. CASCADE); file. Item. set. Text("File"); file. Item. set. Accelerator('F'); file. Item. set. Image(image); // Drop_Down menu will be set as submenu for File menu. Menu file. Item. Menu = new Menu(file. Item); new Menu. Item(file. Item. Menu, SWT. PUSH). set. Text("Open. . . "); new Menu. Item(file. Item. Menu, SWT. PUSH). set. Text("Exit"); file. Item. set. Menu(file. Item. Menu); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Tray and Task. Bar § Tray and Tray. Item Tray tray = display. get.

Tray and Task. Bar § Tray and Tray. Item Tray tray = display. get. System. Tray(); // Create tray item. Tray. Item item = new Tray. Item(tray, SWT. NONE); // Set images. item. set. Image(image); item. set. Highlight. Image(image); // Add tool tip. final Tool. Tip tool. Tip = new Tool. Tip(shell, SWT. BALLOON); tool. Tip. set. Text("Foxes vs. Dogs"); tool. Tip. set. Message("A quick brown fox jumps over the lazy dog. "); item. set. Tool. Tip(tool. Tip); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Tray and Task. Bar § Task. Bar and Task. Item Task. Bar task. Bar

Tray and Task. Bar § Task. Bar and Task. Item Task. Bar task. Bar = display. get. System. Task. Bar(); Task. Item item = task. Bar. get. Item(shell); if (item == null) { item = task. Bar. get. Item(null); } item. set. Overlay. Image(display. get. System. Image(SWT. ICON_ERROR)); item. set. Overlay. Text("OK"); item. set. Progress(50); item. set. Progress. State(SWT. PAUSED); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Working with events § Event processing with SWT 2/20/2021 Soyatec (http: //www. soyatec. com)

Working with events § Event processing with SWT 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Working with events § Typed and untyped listeners //typed button. add. Selection. Listener(new Selection.

Working with events § Typed and untyped listeners //typed button. add. Selection. Listener(new Selection. Listener() { v Typed. Event and Typed. Listener v Adapters public void widget. Selected(Selection. Event e) { } public void widget. Default. Selected(Selection. Event e) { } }); //Untyped button. add. Listener(SWT. Default. Selection, new Listener() { public void handle. Event(Event event) { } }); button. add. Listener(SWT. Selection, new Listener() { public void handle. Event(Event event) { } }); 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Working with events § Mouse and keyboard events v Mouse. Event q enter q

Working with events § Mouse and keyboard events v Mouse. Event q enter q exit q hover q wheel scroll q double click q move q down q up v Key. Event q character q state. Mask q key. Code 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Working with events § Event processing with JFace v 2/20/2021 Soyatec (http: //www. soyatec.

Working with events § Event processing with JFace v 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

Working with events § Actions and contributions 2/20/2021 Soyatec (http: //www. soyatec. com) Jin

Working with events § Actions and contributions 2/20/2021 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 2/20/2021 Soyatec (http: //www.

Any Questions? Skype: jin. liu. soyatec Email: jin. liu@soyatec. com 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec

The end 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype:

The end 2/20/2021 Soyatec (http: //www. soyatec. com) Jin Liu (jin. liu@soyatec. com) Skype: jin. liu. soyatec