From: minkee.lee Date: Tue, 22 Dec 2015 10:11:29 +0000 (+0900) Subject: check-process: changed to run as background X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5555965baef478669068b17a4cf609b02ff74c12;p=sdk%2Femulator%2Femulator-manager.git check-process: changed to run as background - In initializing stage, main thread has changed not to wait until checking job such as check VT, check GPU is finished. - Add job for check webcam. Change-Id: Ib6aeeb6778c6fc7d2a53ce2d3d613c9ecf13b795 Signed-off-by: minkee.lee --- diff --git a/src/org/tizen/emulator/manager/EmulatorManager.java b/src/org/tizen/emulator/manager/EmulatorManager.java index 7d056fa..0fcba7f 100755 --- a/src/org/tizen/emulator/manager/EmulatorManager.java +++ b/src/org/tizen/emulator/manager/EmulatorManager.java @@ -41,10 +41,11 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.tizen.emulator.manager.console.Action; import org.tizen.emulator.manager.console.CommandLineParser; +import org.tizen.emulator.manager.job.CheckAbout; import org.tizen.emulator.manager.job.CheckGPU; import org.tizen.emulator.manager.job.CheckSDCard; import org.tizen.emulator.manager.job.CheckVT; -import org.tizen.emulator.manager.job.InitAboutContents; +import org.tizen.emulator.manager.job.CheckWebcam; import org.tizen.emulator.manager.job.Overseer; import org.tizen.emulator.manager.logging.EMLogger; import org.tizen.emulator.manager.resources.FilePathResources; @@ -245,107 +246,105 @@ public class EmulatorManager { } // Runtime.getRuntime().addShutdownHook(new Thread(new EMShutdownHook())); + + // try{ - checkConsoleMode(args); + checkConsoleMode(args); - if (isConsoleMode) { - EMLogger.getInstance().initLogger(); - /* - try { - FileLock lock = randomAccessFile.getChannel().tryLock(); - if (lock == null) { + Overseer startupPreparations = Overseer.newOverseer("StartupPreparations", //$NON-NLS-1$ + CheckAbout.class); + startupPreparations.startWork(); + + if (isConsoleMode) { + EMLogger.getInstance().initLogger(); + /* + try { + FileLock lock = randomAccessFile.getChannel().tryLock(); + if (lock == null) { + EMLogger.getLogger().log(Level.WARNING, "Can not launch Emulator Manager." + + StringResources.NEW_LINE + + "Another one with the same user name is running now." + + StringResources.NEW_LINE); + System.out.println("Can not launch Emulator Manager." + + StringResources.NEW_LINE + + "Another Emulator Manager is running now."); + exitEmulatorManager(1); + } + } catch (IOException e) { EMLogger.getLogger().log(Level.WARNING, "Can not launch Emulator Manager." - + StringResources.NEW_LINE - + "Another one with the same user name is running now." - + StringResources.NEW_LINE); - System.out.println("Can not launch Emulator Manager." - + StringResources.NEW_LINE - + "Another Emulator Manager is running now."); + + StringResources.NEW_LINE +e.getMessage() + StringResources.NEW_LINE); exitEmulatorManager(1); } - } catch (IOException e) { - EMLogger.getLogger().log(Level.WARNING, "Can not launch Emulator Manager." - + StringResources.NEW_LINE +e.getMessage() + StringResources.NEW_LINE); - exitEmulatorManager(1); - } - */ - - processor = new CommandLineParser(); - processor.parseArgs(args); + */ - } else { + processor = new CommandLineParser(); + processor.parseArgs(args); - if (isMac()) { - System.setProperty("apple.laf.useScreenMenuBar", "true"); //$NON-NLS-1$ //$NON-NLS-2$ - System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Emulator Manager"); //$NON-NLS-1$ //$NON-NLS-2$ - Display display = Display.getDefault(); - display.syncExec(new Runnable() { - @Override - public void run() { - new CocoaUtil().removeTopMenuItems(); - } - }); - } + } else { - parseArgs(args); + if (isMac()) { + System.setProperty("apple.laf.useScreenMenuBar", "true"); //$NON-NLS-1$ //$NON-NLS-2$ + System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Emulator Manager"); //$NON-NLS-1$ //$NON-NLS-2$ + Display display = Display.getDefault(); + display.syncExec(new Runnable() { + @Override + public void run() { + new CocoaUtil().removeTopMenuItems(); + } + }); + } - EMLogger.getInstance().initLogger(); + parseArgs(args); - MessageDialog msg = new MessageDialog(new Shell(Display.getCurrent())); + EMLogger.getInstance().initLogger(); - try { - randomAccessFile = new RandomAccessFile(new File(FilePathResources.getToolEmulatorBinPath() - + File.separator + "." +System.getProperty("user.name"))+ ".lock", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - "rw"); //$NON-NLS-1$ - } catch (FileNotFoundException e) { - msg.openInfoDialog(Messages.getString("EmulatorManager.StartError.2") //$NON-NLS-1$ - + StringResources.NEW_LINE + e.getMessage()); - exitEmulatorManager(1); - } + MessageDialog msg = new MessageDialog(new Shell(Display.getCurrent())); - try { - FileLock lock = randomAccessFile.getChannel().tryLock(); - if (lock == null) { - msg.openInfoDialog(Messages.getString("EmulatorManager.StartError.0") + StringResources.NEW_LINE + //$NON-NLS-1$ - Messages.getString("EmulatorManager.StartError.1")); //$NON-NLS-1$ - exitEmulatorManager(0); + try { + randomAccessFile = new RandomAccessFile(new File(FilePathResources.getToolEmulatorBinPath() + + File.separator + "." +System.getProperty("user.name"))+ ".lock", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + "rw"); //$NON-NLS-1$ + } catch (FileNotFoundException e) { + msg.openInfoDialog(Messages.getString("EmulatorManager.StartError.2") //$NON-NLS-1$ + + StringResources.NEW_LINE + e.getMessage()); + exitEmulatorManager(1); } - } catch (IOException e) { - msg.openInfoDialog(Messages.getString("EmulatorManager.StartError.2") //$NON-NLS-1$ - + StringResources.NEW_LINE + e.getMessage()); - exitEmulatorManager(1); - } - } + try { + FileLock lock = randomAccessFile.getChannel().tryLock(); + if (lock == null) { + msg.openInfoDialog(Messages.getString("EmulatorManager.StartError.0") + StringResources.NEW_LINE + //$NON-NLS-1$ + Messages.getString("EmulatorManager.StartError.1")); //$NON-NLS-1$ + exitEmulatorManager(0); + } + } catch (IOException e) { + msg.openInfoDialog(Messages.getString("EmulatorManager.StartError.2") //$NON-NLS-1$ + + StringResources.NEW_LINE + e.getMessage()); + exitEmulatorManager(1); + } + Overseer checkers = Overseer.newOverseer("Checkers", //$NON-NLS-1$ + CheckVT.class, CheckGPU.class, CheckSDCard.class, CheckWebcam.class); + checkers.startWork(); - if (!SettingInfoFile.setMACaddr()) { - exitEmulatorManager(1); - } + } - Overseer startupPreparations = Overseer.newOverseer("StartupPreparations", //$NON-NLS-1$ - InitAboutContents.class); - startupPreparations.startWork(); - Overseer checkers = Overseer.newOverseer("Checkers", //$NON-NLS-1$ - CheckVT.class, CheckGPU.class, CheckSDCard.class); - checkers.startWork(); + if (!SettingInfoFile.setMACaddr()) { + exitEmulatorManager(1); + } - // FIXME: we should not join overseer thread. - // but now we are not ready for asynchronous actions. - startupPreparations.join(); - checkers.join(); - if (isConsoleMode) { - EmulatorManager.startConsoleProcessor(); - } else { - EMLogger.getLogger().log(Level.INFO, "Start Emulator Manager!!"); //$NON-NLS-1$ + if (isConsoleMode) { + EmulatorManager.startConsoleProcessor(); + } else { + EMLogger.getLogger().log(Level.INFO, "Start Emulator Manager!!"); //$NON-NLS-1$ - EmulatorManager.preare(); - EmulatorManager.draw(); - EmulatorManager.dispose(); - } + EmulatorManager.preare(); + EmulatorManager.draw(); + EmulatorManager.dispose(); + } } catch (Throwable e) { e.printStackTrace(); diff --git a/src/org/tizen/emulator/manager/console/ConsoleProcessor.java b/src/org/tizen/emulator/manager/console/ConsoleProcessor.java index 1a9de3f..8fa6b16 100644 --- a/src/org/tizen/emulator/manager/console/ConsoleProcessor.java +++ b/src/org/tizen/emulator/manager/console/ConsoleProcessor.java @@ -34,13 +34,13 @@ import java.io.IOException; import java.util.ArrayList; import java.util.logging.Level; +import org.tizen.emulator.manager.job.CheckAbout; import org.tizen.emulator.manager.logging.EMLogger; import org.tizen.emulator.manager.platform.BaseImage; import org.tizen.emulator.manager.platform.Profile; import org.tizen.emulator.manager.platform.ProfileList; import org.tizen.emulator.manager.resources.FilePathResources; import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.tool.About; import org.tizen.emulator.manager.vms.VMProperty; import org.tizen.emulator.manager.vms.helper.HelperClass; import org.tizen.emulator.manager.vms.helper.VMWorkerException; @@ -66,7 +66,7 @@ public class ConsoleProcessor { public String getAboutInfo() { return "Emulator Manager" + StringResources.NEW_LINE + //$NON-NLS-1$ - About.getInstance().getContents(); + CheckAbout.getAboutInstance().getContents(); } public String getDetailInfoOfVM(VMProperty prop) { diff --git a/src/org/tizen/emulator/manager/job/InitAboutContents.java b/src/org/tizen/emulator/manager/job/CheckAbout.java similarity index 89% rename from src/org/tizen/emulator/manager/job/InitAboutContents.java rename to src/org/tizen/emulator/manager/job/CheckAbout.java index dd86483..77db234 100644 --- a/src/org/tizen/emulator/manager/job/InitAboutContents.java +++ b/src/org/tizen/emulator/manager/job/CheckAbout.java @@ -31,7 +31,12 @@ package org.tizen.emulator.manager.job; import org.tizen.emulator.manager.tool.About; -public class InitAboutContents implements Job { +public class CheckAbout extends Job { + + public static About getAboutInstance() { + waitJob(CheckAbout.class); + return About.getInstance(); + } @Override public void work() { About.initAboutContents(); diff --git a/src/org/tizen/emulator/manager/job/CheckGPU.java b/src/org/tizen/emulator/manager/job/CheckGPU.java index bb1b1a4..fc70363 100644 --- a/src/org/tizen/emulator/manager/job/CheckGPU.java +++ b/src/org/tizen/emulator/manager/job/CheckGPU.java @@ -40,7 +40,7 @@ import org.tizen.emulator.manager.resources.FilePathResources; import org.tizen.emulator.manager.vms.helper.HelperClass; import org.tizen.emulator.manager.vms.helper.ProcessResult; -public class CheckGPU implements Job { +public class CheckGPU extends Job { private static final String GPU_CHECKER; private static boolean isGPUSupported = false; @@ -51,10 +51,12 @@ public class CheckGPU implements Job { } public static boolean isGPUSupported() { + waitJob(CheckGPU.class); return isGPUSupported; } public static boolean isGallium() { + waitJob(CheckGPU.class); return isGallium; } diff --git a/src/org/tizen/emulator/manager/job/CheckSDCard.java b/src/org/tizen/emulator/manager/job/CheckSDCard.java index d5bc099..7e79ebe 100644 --- a/src/org/tizen/emulator/manager/job/CheckSDCard.java +++ b/src/org/tizen/emulator/manager/job/CheckSDCard.java @@ -41,7 +41,12 @@ import org.tizen.emulator.manager.logging.EMLogger; import org.tizen.emulator.manager.resources.FilePathResources; import org.tizen.emulator.manager.resources.StringResources; -public class CheckSDCard implements Job { +public class CheckSDCard extends Job { + + public static void isSDCardChecked() { + waitJob(CheckSDCard.class); + } + @Override public void work() { File dir = new File(FilePathResources.getSDCardPath()); diff --git a/src/org/tizen/emulator/manager/job/CheckVT.java b/src/org/tizen/emulator/manager/job/CheckVT.java index a8259ec..73747d3 100644 --- a/src/org/tizen/emulator/manager/job/CheckVT.java +++ b/src/org/tizen/emulator/manager/job/CheckVT.java @@ -40,7 +40,7 @@ import org.tizen.emulator.manager.resources.FilePathResources; import org.tizen.emulator.manager.vms.helper.HelperClass; import org.tizen.emulator.manager.vms.helper.ProcessResult; -public class CheckVT implements Job { +public class CheckVT extends Job { private static final String HAX_CHECKER; private static final String ENABLE_HAX = "-enable-hax"; //$NON-NLS-1$ private static final String ENABLE_KVM = "-enable-kvm"; //$NON-NLS-1$ @@ -50,6 +50,8 @@ public class CheckVT implements Job { private static boolean isVTSupported = false; private static boolean isNonUG = false; // for HAXM, non-UG CPU + private static CheckVT instance; + static { HAX_CHECKER = EmulatorManager.isWin() ? "check-hax.exe" : "check-hax"; //$NON-NLS-1$ //$NON-NLS-2$ } @@ -62,17 +64,21 @@ public class CheckVT implements Job { return ENABLE_KVM; } + public static boolean isVTSupported() { + waitJob(CheckVT.class); return isVTSupported; } // for HAXM public static boolean isNonUG() { + waitJob(CheckVT.class); return isNonUG; } @Override public void work() { + if (EmulatorManager.isWin() || EmulatorManager.isMac()) { List cmd = new ArrayList(); cmd.add(FilePathResources.getEmulatorCheckToolPath() + File.separator + HAX_CHECKER); @@ -96,6 +102,7 @@ public class CheckVT implements Job { } } + EMLogger.getLogger().log(Level.INFO, "Support HW virtualization: " //$NON-NLS-1$ + Boolean.toString(isVTSupported)); EMLogger.getLogger().log(Level.INFO, "non-UG: " //$NON-NLS-1$ diff --git a/src/org/tizen/emulator/manager/job/CheckWebcam.java b/src/org/tizen/emulator/manager/job/CheckWebcam.java new file mode 100644 index 0000000..91ef669 --- /dev/null +++ b/src/org/tizen/emulator/manager/job/CheckWebcam.java @@ -0,0 +1,61 @@ +/* + * Emulator Manager + * + * Copyright (C) 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * SeokYeon Hwang + * JiHye Kim + * MinKee Lee + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + + +package org.tizen.emulator.manager.job; + +import java.util.Arrays; + +import org.tizen.emulator.manager.logging.EMLogger; +import org.tizen.emulator.manager.resources.FilePathResources; +import org.tizen.emulator.manager.vms.helper.HelperClass; +import org.tizen.emulator.manager.vms.helper.ProcessResult; + +public class CheckWebcam extends Job { + + private static boolean isWebcamSupport = false; + + public static boolean isWebcamSupport() { + waitJob(CheckWebcam.class); + return isWebcamSupport; + } + + @Override + public void work() { + ProcessResult res = HelperClass.runProcess(Arrays + .asList(FilePathResources.getCheckCamPath())); + int result = res.getExitValue(); + if (result == 1) { + isWebcamSupport = true; + } + + EMLogger.getLogger().info("Support webcam : " + isWebcamSupport); + } + +} diff --git a/src/org/tizen/emulator/manager/job/Job.java b/src/org/tizen/emulator/manager/job/Job.java index 545445d..02aa98c 100644 --- a/src/org/tizen/emulator/manager/job/Job.java +++ b/src/org/tizen/emulator/manager/job/Job.java @@ -29,6 +29,68 @@ package org.tizen.emulator.manager.job; -interface Job { - public void work(); +import java.util.HashMap; +import java.util.Map; + +import org.tizen.emulator.manager.logging.EMLogger; + +abstract class Job { + + private static Map, Job> instanceMap + = new HashMap, Job>(); + + private Thread thread; + + public void setThread(Thread thread) { + this.thread = thread; + } + + public Thread getThread() { + return thread; + } + + public static Job createInstance(Class jobCls) { + Job instance = null; + try { + instance = jobCls.newInstance(); + instanceMap.put(jobCls, instance); + + } catch (InstantiationException | IllegalAccessException e) { + EMLogger.getLogger().warning(e.getMessage()); + } + return instance; + } + + public static Job getInstance(Class jobCls) { + Job job = instanceMap.get(jobCls); + + if (job == null) { + // for console mode + job = createInstance(jobCls); + } + return job; + } + + + public static void waitJob(Class jobCls) { + Job job = getInstance(jobCls); + Thread thread = job.getThread(); + + if (thread == null) { + // for console mode + job.work(); + return; + } + + if (thread.isAlive()) { + try { + EMLogger.getLogger().info(jobCls + " is waiting for job complete."); + thread.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + public abstract void work(); } diff --git a/src/org/tizen/emulator/manager/job/Overseer.java b/src/org/tizen/emulator/manager/job/Overseer.java index afd38a1..0c08d04 100644 --- a/src/org/tizen/emulator/manager/job/Overseer.java +++ b/src/org/tizen/emulator/manager/job/Overseer.java @@ -52,20 +52,19 @@ public class Overseer { return overseer; } } - return null; } - protected void startWorkInternal() throws InterruptedException { - doneSignal = new CountDownLatch(jobClasses.size()); - + private void startAllJobs() throws InterruptedException { for (Class jobCls : jobClasses) { - new Thread(new JobRunnable(doneSignal, jobCls)).start(); + Job job = Job.getInstance(jobCls); + Thread thread = new Thread(new JobRunnable(doneSignal, job)); + job.setThread(thread); + thread.start(); } - - doneSignal.await(); } + public void registerJob(Class jobCls) { jobClasses.add(jobCls); } @@ -77,27 +76,33 @@ public class Overseer { for (Class jobCls: jobClasses) { overseer.registerJob(jobCls); + Job.createInstance(jobCls); } overseers.add(overseer); - return overseer; } + public void startWork() throws InterruptedException { if (overseerThread != null) { // already started assert false : "Overseer [" + name + "] already started !!!"; // for debugging... //$NON-NLS-1$ //$NON-NLS-2$ - return; } + EMLogger.getLogger().log(Level.INFO, "Overseer [" + name + "] is starting..."); //$NON-NLS-1$ //$NON-NLS-2$ + + doneSignal = new CountDownLatch(jobClasses.size()); + startAllJobs(); + + // overseerThread waits all jobs. + // If you want to wait until all jobs are finished, call join() overseerThread = new Thread(new Runnable() { @Override public void run() { try { - EMLogger.getLogger().log(Level.INFO, "Overseer [" + name + "] is starting..."); //$NON-NLS-1$ //$NON-NLS-2$ - Overseer.this.startWorkInternal(); + doneSignal.await(); EMLogger.getLogger().log(Level.INFO, "Overseer [" + name + "] is done..."); //$NON-NLS-1$ //$NON-NLS-2$ } catch (InterruptedException e) { e.printStackTrace(); @@ -106,7 +111,6 @@ public class Overseer { }); overseerThread.start(); - } public void join() throws InterruptedException { @@ -116,30 +120,24 @@ public class Overseer { if (overseerThread.isAlive()) { overseerThread.join(); - return; } } } + class JobRunnable implements Runnable { private final CountDownLatch doneSignal; - private final Class jobCls; + private final Job job; - JobRunnable(CountDownLatch doneSignal, Class jobCls) { + JobRunnable(CountDownLatch doneSignal, Job job) { this.doneSignal = doneSignal; - this.jobCls = jobCls; + this.job = job; } @Override public void run() { - Job job = null; - try { - job = jobCls.newInstance(); - job.work(); - doneSignal.countDown(); - } catch (InstantiationException | IllegalAccessException e) { - e.printStackTrace(); - } + job.work(); + doneSignal.countDown(); } -} +} \ No newline at end of file diff --git a/src/org/tizen/emulator/manager/tool/About.java b/src/org/tizen/emulator/manager/tool/About.java index 3ad1ede..1ce2696 100644 --- a/src/org/tizen/emulator/manager/tool/About.java +++ b/src/org/tizen/emulator/manager/tool/About.java @@ -56,17 +56,10 @@ public class About { // called from AboutDialog(); public static void initAboutContents() { - if (about != null) { - return; - } - about = new About(); } public static About getInstance() { - if (about == null) { - about = new About(); - } return about; } @@ -101,7 +94,7 @@ public class About { Properties props = new Properties(); props.load(fis); ver = props.getProperty(StringResources.TIZEN_SDK_VERSION); - + } catch (FileNotFoundException e){ EMLogger.getLogger().log(Level.SEVERE, e.getMessage()); } catch (Exception e) { diff --git a/src/org/tizen/emulator/manager/ui/detail/item/property/CameraViewItem.java b/src/org/tizen/emulator/manager/ui/detail/item/property/CameraViewItem.java index 9d90dac..6945342 100644 --- a/src/org/tizen/emulator/manager/ui/detail/item/property/CameraViewItem.java +++ b/src/org/tizen/emulator/manager/ui/detail/item/property/CameraViewItem.java @@ -31,16 +31,13 @@ package org.tizen.emulator.manager.ui.detail.item.property; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import org.tizen.emulator.manager.resources.FilePathResources; +import org.tizen.emulator.manager.job.CheckWebcam; import org.tizen.emulator.manager.ui.detail.item.LineLabelViewItem; import org.tizen.emulator.manager.ui.detail.item.template.DetailSubViewItem; import org.tizen.emulator.manager.ui.detail.item.template.LabelViewItem; import org.tizen.emulator.manager.vms.VMPropertyValue; -import org.tizen.emulator.manager.vms.helper.HelperClass; -import org.tizen.emulator.manager.vms.helper.ProcessResult; import org.tizen.emulator.manager.vms.xml.template.Item; public class CameraViewItem extends LabelViewItem { @@ -59,8 +56,6 @@ public class CameraViewItem extends LabelViewItem { public static final String VALUE_WEBCAM = "Webcam"; //$NON-NLS-1$ public static final String VALUE_VIRTUAL = "Virtual"; //$NON-NLS-1$ - public static Boolean webcamSupport = null; - public CameraViewItem(Item template, LineLabelViewItem lineLabelViewItem) { super(template, lineLabelViewItem); } @@ -89,22 +84,9 @@ public class CameraViewItem extends LabelViewItem { } } - private static boolean checkWebcam() { - ProcessResult res = HelperClass.runProcess(Arrays - .asList(FilePathResources.getCheckCamPath())); - int result = res.getExitValue(); - if (result == 1) { - return true; - } else { - return false; - } - } public static boolean isWebcamSupport() { - if (webcamSupport == null) { - webcamSupport = checkWebcam(); - } - return webcamSupport; + return CheckWebcam.isWebcamSupport(); } @Override diff --git a/src/org/tizen/emulator/manager/ui/dialog/AboutDialog.java b/src/org/tizen/emulator/manager/ui/dialog/AboutDialog.java index 78e8d70..ed7fceb 100644 --- a/src/org/tizen/emulator/manager/ui/dialog/AboutDialog.java +++ b/src/org/tizen/emulator/manager/ui/dialog/AboutDialog.java @@ -30,6 +30,8 @@ package org.tizen.emulator.manager.ui.dialog; import org.eclipse.swt.SWT; +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; @@ -39,15 +41,13 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Link; import org.eclipse.swt.widgets.Shell; import org.tizen.emulator.manager.EmulatorManager; +import org.tizen.emulator.manager.job.CheckAbout; import org.tizen.emulator.manager.logging.EMLogger; import org.tizen.emulator.manager.resources.FilePathResources; import org.tizen.emulator.manager.resources.ImageResources; import org.tizen.emulator.manager.resources.StringResources; -import org.tizen.emulator.manager.tool.About; import org.tizen.emulator.manager.ui.MainDialog; import org.tizen.emulator.manager.ui.Messages; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; public class AboutDialog { private static Shell dialog = null; @@ -55,13 +55,12 @@ public class AboutDialog { private static int width = 436; //149 + 287 private static int height = 290; // 180 + 110 static { - About.initAboutContents(); textContents = StringResources.NEW_LINE + Messages.getString("AboutDialog.0") //$NON-NLS-1$ + StringResources.NEW_LINE + StringResources.NEW_LINE - + Messages.getString("AboutDialog.2") + About.getInstance().getAboutVersion() //$NON-NLS-1$ + + Messages.getString("AboutDialog.2") + CheckAbout.getAboutInstance().getAboutVersion() //$NON-NLS-1$ + StringResources.NEW_LINE - + Messages.getString("AboutDialog.3") + About.getInstance().getBuildTime(); //$NON-NLS-1$ + + Messages.getString("AboutDialog.3") + CheckAbout.getAboutInstance().getBuildTime(); //$NON-NLS-1$ } @@ -108,9 +107,11 @@ public class AboutDialog { okButton.setText(StringResources.OK); okButton.setFocus(); okButton.addSelectionListener(new SelectionListener() { + @Override public void widgetSelected(SelectionEvent e) { dialog.close(); } + @Override public void widgetDefaultSelected(SelectionEvent e) { } }); @@ -138,8 +139,10 @@ public class AboutDialog { "" + FilePathResources.getTizenVmsPath() + ""); //$NON-NLS-1$ //$NON-NLS-2$ workspace.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); workspace.addSelectionListener(new SelectionListener(){ + @Override public void widgetDefaultSelected(SelectionEvent arg0) { } + @Override public void widgetSelected(SelectionEvent arg0) { try { org.eclipse.swt.program.Program.launch(FilePathResources.getTizenVmsPath()); @@ -156,8 +159,10 @@ public class AboutDialog { Messages.getString("AboutDialog.8")); //$NON-NLS-1$ visit.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); visit.addSelectionListener(new SelectionListener(){ + @Override public void widgetDefaultSelected(SelectionEvent arg0) { } + @Override public void widgetSelected(SelectionEvent arg0) { try { String url = Messages.getString("AboutDialog.9"); //$NON-NLS-1$ diff --git a/src/org/tizen/emulator/manager/vms/VMLauncher.java b/src/org/tizen/emulator/manager/vms/VMLauncher.java index 7f914d4..dae46f9 100644 --- a/src/org/tizen/emulator/manager/vms/VMLauncher.java +++ b/src/org/tizen/emulator/manager/vms/VMLauncher.java @@ -38,6 +38,7 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.tizen.emulator.manager.EmulatorManager; import org.tizen.emulator.manager.Messages; +import org.tizen.emulator.manager.job.CheckSDCard; import org.tizen.emulator.manager.logging.EMLogger; import org.tizen.emulator.manager.resources.FilePathResources; import org.tizen.emulator.manager.resources.StringResources; @@ -59,6 +60,7 @@ public class VMLauncher { checkPortNumber(); checkDiskImage(property); + CheckSDCard.isSDCardChecked(); List cmd = getCommand(property);