From: Timo Mueller <timo.muel...@bmw-carit.de>

If the content of the YoctoUISettings changes, because a contained
widget reports a modify or selection event, an corresponding event is
triggered on the parent composite. UI elements containing the
YoctoUISettings can now register listeners and be notified when the
content changes.

Signed-off-by: Timo Mueller <timo.muel...@bmw-carit.de>
---
 .../src/org/yocto/sdk/ide/YoctoUISetting.java      | 38 +++++++++++++++++++---
 1 file changed, 34 insertions(+), 4 deletions(-)

diff --git 
a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoUISetting.java 
b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoUISetting.java
index 3aa38d9..95209b6 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoUISetting.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoUISetting.java
@@ -31,6 +31,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.DirectoryDialog;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
@@ -48,6 +49,8 @@ public class YoctoUISetting {
        private ModifyListener fModifyListener;
        private YoctoUIElement yoctoUIElement;
 
+       private Group crossCompilerGroup;
+
        private Button btnSDKRoot;
        private Button btnQemu;
        private Button btnPokyRoot;
@@ -79,15 +82,43 @@ public class YoctoUISetting {
 
                        public void widgetSelected(SelectionEvent e) {
                                controlChanged(e.widget);
+                               relayEvent(e);
+                       }
+
+                       private void relayEvent(SelectionEvent e) {
+                               Event event = new Event();
+                               event.data = e.data;
+                               event.detail = e.detail;
+                               event.display = e.display;
+                               event.doit = e.doit;
+                               event.height = e.height;
+                               event.item = e.item;
+                               event.stateMask = e.stateMask;
+                               event.text = e.text;
+                               event.time = e.time;
+                               event.widget = e.widget;
+                               event.width = e.width;
+                               event.x = e.x;
+                               event.y = e.y;
+                               
crossCompilerGroup.getParent().notifyListeners(SWT.Selection, event);
                        }
-               };              
+               };
 
                fModifyListener= new ModifyListener() {
                        public void modifyText(ModifyEvent e) {
                                controlModified(e.widget);
+                               relayEvent(e);
                        }
-               };
 
+                       private void relayEvent(ModifyEvent e) {
+                               Event event = new Event();
+                               event.data = e.data;
+                               event.display = e.display;
+                               event.time = e.time;
+                               event.widget = e.widget;
+                               
crossCompilerGroup.getParent().notifyListeners(SWT.Modify, event);
+                       }
+               };
        }
 
        private Control addControls(Control fControl, final String sKey, String 
sValue)
@@ -185,7 +216,7 @@ public class YoctoUISetting {
                GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
                GridLayout layout = new GridLayout(2, false);
 
-               Group crossCompilerGroup= new Group(composite, SWT.NONE);
+               crossCompilerGroup = new Group(composite, SWT.NONE);
                layout= new GridLayout(2, false);
                crossCompilerGroup.setLayout(layout);
                gd= new GridData(SWT.FILL, SWT.CENTER, true, false);
@@ -521,5 +552,4 @@ public class YoctoUISetting {
                }
 
        }
-
 }
-- 
1.7.11.7

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to