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