Hi Ioana,

I can't reproduce the bug on my end so can't further debug the issue.  But 
based on the context of this patch, seems we're missing checkBuildDir for 
buildLocation?  By looking at the code, shouldn't the easiest fix is to add 
checkBuildDir on the validatePage for the case the buildLocationText is not 
empty?

Thanks,
Jessica

-----Original Message-----
From: yocto-boun...@yoctoproject.org [mailto:yocto-boun...@yoctoproject.org] On 
Behalf Of Ioana Grigoropol
Sent: Friday, April 05, 2013 7:31 AM
To: yocto@yoctoproject.org
Subject: [yocto] [PATCH] [eclipse-poky][master]Check build directory when 
location is set using "Browse" button

[Yocto #4206]

Signed-off-by: Ioana Grigoropol <ioanax.grigoro...@intel.com>
---
 .../sdk/remotetools/wizards/bsp/MainPage.java      |   57 +++++++++++++++-----
 1 file changed, 43 insertions(+), 14 deletions(-)

diff --git 
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/wizards/bsp/MainPage.java
 
b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/wizards/bsp/MainPage.java
index d84cc24..156829b 100644
--- 
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/wizards/bsp/MainPage.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/wi
+++ zards/bsp/MainPage.java
@@ -25,6 +25,7 @@ import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;  import 
org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
@@ -108,7 +109,8 @@ public class MainPage extends WizardPage {
                                controlChanged(e.widget);
                        }
                });
-               setBtnMetadataLoc(addFileSelectButton(textContainer, 
textMetadataLoc));
+               buildLocationListener = new BuildLocationListener("");
+               setBtnMetadataLoc(addFileSelectButton(textContainer, 
textMetadataLoc,
+null));

                labelBuildLoc = new Label(composite, SWT.NONE);
                labelBuildLoc.setText("Build location: "); @@ -118,10 +120,10 
@@ public class MainPage extends WizardPage {
                textContainer.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, 
true, false));

                textBuildLoc = (Text)addTextControl(textContainer, "");
-               buildLocationListener = new BuildLocationListener("");
                textBuildLoc.addFocusListener(buildLocationListener);
+               textBuildLoc.addModifyListener(buildLocationListener);

-               setBtnBuilddirLoc(addFileSelectButton(textContainer, 
textBuildLoc));
+               setBtnBuilddirLoc(addFileSelectButton(textContainer, 
textBuildLoc,
+buildLocationListener));

                labelBspName = new Label(composite, SWT.NONE);
                labelBspName.setText("BSP Name*: ");
@@ -152,7 +154,7 @@ public class MainPage extends WizardPage {
                                controlChanged(e.widget);
                        }
                });
-               setBtnBspOutLoc(addFileSelectButton(textContainer, 
textBspOutputLoc));
+               setBtnBspOutLoc(addFileSelectButton(textContainer, 
textBspOutputLoc,
+null));

                labelKArch = new Label(composite, SWT.NONE);
                labelKArch.setText("Kernel Architecture*: "); @@ -206,18 
+208,25 @@ public class MainPage extends WizardPage {
                return text;
        }

-       private Button addFileSelectButton(final Composite parent, final Text 
text) {
+       private Button addFileSelectButton(final Composite parent, final Text
+text, SelectionListener listener) {
                Button button = new Button(parent, SWT.PUSH | SWT.LEAD);
                button.setText("Browse...");
-               button.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent event) {
-                               String dirName = new 
DirectoryDialog(parent.getShell()).open();
-                               if (dirName != null) {
-                                       text.setText(dirName);
+               if (listener == null) {
+                       button.addSelectionListener(new SelectionListener() {
+                               @Override
+                               public void widgetSelected(SelectionEvent e) {
+                                       // TODO Auto-generated method stub
+                                       String dirName = new 
DirectoryDialog(parent.getShell()).open();
+                                       if (dirName != null) {
+                                               text.setText(dirName);
+                                       }
                                }
-                       }
-               });
+                               @Override
+                               public void 
widgetDefaultSelected(SelectionEvent e) {
+                               }
+                       });
+               } else
+                       button.addSelectionListener(listener);
                return button;
        }

@@ -473,7 +482,7 @@ public class MainPage extends WizardPage {
                this.btnBuildLoc = btnBuilddirLoc;
        }

-       class BuildLocationListener implements FocusListener{
+       class BuildLocationListener implements FocusListener,
+SelectionListener, ModifyListener{
                String value;
                boolean changed;

@@ -492,6 +501,26 @@ public class MainPage extends WizardPage {
                                buildDirChecked = true;
                        }
                }
+               @Override
+               public void widgetSelected(SelectionEvent e) {
+                       String dirName = new 
DirectoryDialog(((Button)e.getSource()).getParent().getShell()).open();
+                       if (dirName != null) {
+                               textBuildLoc.setText(dirName);
+                               value = dirName;
+                       }
+               }
+               @Override
+               public void widgetDefaultSelected(SelectionEvent e) {
+                       // TODO Auto-generated method stub
+               }
+               @Override
+               public void modifyText(ModifyEvent e) {
+
+                       if(!((Text)e.getSource()).getText().equals(value)) {
+                               checkBuildDir();
+                               buildDirChecked = true;
+                       }
+               }

        }
 }
--
1.7.9.5

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

Reply via email to