From bffdaa4b8b6ed8b6f5d163c983e6e36eed30c31f Mon Sep 17 00:00:00 2001 From: "jihye424.kim" Date: Thu, 1 Oct 2015 18:01:33 +0900 Subject: [PATCH] Device Template: add to delete device template function Change-Id: I849f379a12e60dfdb2e11e44905eb6b23e3caee6 Signed-off-by: jihye424.kim --- .../emulator/manager/devices/DeviceTemplate.java | 42 ++++++++++++++++++++++ .../tableviewer/DeviceTemplateTableViewer.java | 29 ++++++++++++++- .../manager/ui/renewal/tableviewer/MessageBox.java | 16 +++++++++ 3 files changed, 86 insertions(+), 1 deletion(-) diff --git a/src/org/tizen/emulator/manager/devices/DeviceTemplate.java b/src/org/tizen/emulator/manager/devices/DeviceTemplate.java index f75c2b6..da7165b 100644 --- a/src/org/tizen/emulator/manager/devices/DeviceTemplate.java +++ b/src/org/tizen/emulator/manager/devices/DeviceTemplate.java @@ -33,14 +33,21 @@ package org.tizen.emulator.manager.devices; import java.io.File; import org.tizen.emulator.manager.device.xml.template.DeviceConfiguration; +import org.tizen.emulator.manager.platform.Profile; +import org.tizen.emulator.manager.platform.ProfileList; +import org.tizen.emulator.manager.resources.StringResources; +import org.tizen.emulator.manager.vms.helper.VMWorkerException; public class DeviceTemplate { private File templateFile; + private long lastModified; + private DeviceConfiguration conf; private DeviceTemplateValue value; public DeviceTemplate(File file, DeviceConfiguration conf) { this.templateFile = file; + this.lastModified = file.lastModified(); this.conf = conf; } @@ -48,6 +55,12 @@ public class DeviceTemplate { this.value = value; } + public void reloadDeviceTemplate() { + DeviceTemplateList.reloadDeviceConfiguration(this); + this.lastModified = templateFile.lastModified(); + value.settingConfigure(this); + } + public DeviceTemplateValue getValue() { if (value == null) { value = new DeviceTemplateValue(this); @@ -71,4 +84,33 @@ public class DeviceTemplate { public void setConf(DeviceConfiguration conf) { this.conf = conf; } + + public long getLastModified() { + return lastModified; + } + + public void delete() throws VMWorkerException{ + // lock.acquire + if (!templateFile.exists()) { + throw new VMWorkerException("Failed to delete device template" + + StringResources.NEW_LINE + + "Device template file does not exist: " + + StringResources.NEW_LINE + + templateFile.getAbsolutePath(), true); + } + + if (!templateFile.delete()) { + throw new VMWorkerException("Failed to delete device template" + + StringResources.NEW_LINE + + "Check your device template file: " + + StringResources.NEW_LINE + + templateFile.getAbsolutePath()); + } + + // TODO + Profile profile = ProfileList.getProfile(value.getProfile()); + profile.removeDeviceTemplate(this); + + // lock.release + } } diff --git a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/DeviceTemplateTableViewer.java b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/DeviceTemplateTableViewer.java index 9854d1b..c65d2c2 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/DeviceTemplateTableViewer.java +++ b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/DeviceTemplateTableViewer.java @@ -46,6 +46,7 @@ import org.eclipse.swt.widgets.Shell; import org.tizen.emulator.manager.EmulatorManager; import org.tizen.emulator.manager.devices.DeviceTemplate; import org.tizen.emulator.manager.devices.DeviceTemplateValue; +import org.tizen.emulator.manager.logging.EMLogger; import org.tizen.emulator.manager.platform.Profile; import org.tizen.emulator.manager.platform.ProfileList; import org.tizen.emulator.manager.renewal.resources.ColorResources; @@ -59,6 +60,7 @@ import org.tizen.emulator.manager.ui.renewal.widgets.NinePatchResourceInfo; import org.tizen.emulator.manager.ui.table.Table; import org.tizen.emulator.manager.ui.table.TableColumn; import org.tizen.emulator.manager.ui.table.TableItem; +import org.tizen.emulator.manager.vms.helper.VMWorkerException; public class DeviceTemplateTableViewer extends AbstractTableViewer { private static final int BACK_BUTTON_WIDTH = 124; @@ -410,7 +412,12 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer { @Override public void handleEvent(Event event) { if (event.type == SWT.Selection) { - // TODO + TableItem[] items = table.getSelection(); + if (items != null && items.length > 0) { + TableItem item = items[0]; + + deleteDeviceTemplate(item); + } } } }); @@ -420,6 +427,26 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer { cloneButton.setEnabled(false); } + private void deleteDeviceTemplate(TableItem item) { + if (item == null) { + return; + } + + DeviceTemplate template = (DeviceTemplate)item.getData(); + try { + template.delete(); + table.remove(table.indexOf(item)); + } catch (VMWorkerException e) { + EMLogger.getLogger().warning(e.getMessage()); + // open message box + MessageBox.openMessageBox(e.getMessage()); + + if (e.isNeedRefresh()) { + refreshDeviceTemplateList(); + } + } + } + private void tableSelected() { if (table.getSelectionCount() == 0) { deleteButton.setEnabled(false); diff --git a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/MessageBox.java b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/MessageBox.java index c7e193b..a22e74c 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/MessageBox.java +++ b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/MessageBox.java @@ -39,6 +39,7 @@ import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.tizen.emulator.manager.renewal.resources.ColorResources; import org.tizen.emulator.manager.renewal.resources.FontResources; +import org.tizen.emulator.manager.ui.renewal.MainDialog; import org.tizen.emulator.manager.ui.renewal.widgets.CustomScrolledComposite; import org.tizen.emulator.manager.ui.renewal.widgets.GrayButton; @@ -72,6 +73,21 @@ public class MessageBox { private StyledText contentsBox = null; // TODO: Icon SWT.ICON_ERROR ... + private static final Shell shell; + static { + shell = MainDialog.getShell(); + } + + public static int openMessageBox(String message) { + return openMessageBox(message, SWT.OK); + } + + public static int openMessageBox(String message, int style) { + MessageBox msgBox = new MessageBox( shell, style); + msgBox.setMessage(message); + + return msgBox.open(); + } /** * style = SWT.OK -- 2.7.4