Base Image Table: add 'modify' and 'delete' function
authorjihye424.kim <jihye424.kim@samsung.com>
Thu, 29 Oct 2015 06:46:36 +0000 (15:46 +0900)
committerSeokYeon Hwang <syeon.hwang@samsung.com>
Fri, 30 Oct 2015 06:33:31 +0000 (15:33 +0900)
Change-Id: I5ac6da8df2d54b41bf791eb405d3a62cea6004ae
Signed-off-by: jihye424.kim <jihye424.kim@samsung.com>
src/org/tizen/emulator/manager/ui/renewal/tableviewer/BaseImageTableViewer.java

index b931b94..8deac7e 100644 (file)
@@ -55,7 +55,10 @@ import org.tizen.emulator.manager.renewal.resources.ColorResources;
 import org.tizen.emulator.manager.renewal.resources.FontResources;
 import org.tizen.emulator.manager.renewal.resources.ImageResources;
 import org.tizen.emulator.manager.renewal.resources.PatchImageResources;
+import org.tizen.emulator.manager.resources.StringResources;
 import org.tizen.emulator.manager.ui.renewal.MainDialog;
+import org.tizen.emulator.manager.ui.renewal.dialog.DeleteMessageBox;
+import org.tizen.emulator.manager.ui.renewal.dialog.MessageBox;
 import org.tizen.emulator.manager.ui.renewal.dialoghandler.BaseImageDialogHandler;
 import org.tizen.emulator.manager.ui.renewal.widgets.Hyperlink;
 import org.tizen.emulator.manager.ui.renewal.widgets.ImageButton;
@@ -63,6 +66,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.VMProperty;
 
 public class BaseImageTableViewer extends AbstractTableViewer {
        private static final int BACK_BUTTON_WIDTH      = 124;
@@ -473,11 +477,80 @@ public class BaseImageTableViewer extends AbstractTableViewer {
        }
 
        private void modifyBaseImage(TableItem item) {
-               //TODO
+               BaseImage image = (BaseImage)item.getData();
+               if (image == null || image.isStandard()) {
+                       return;
+               }
+
+               CustomBaseImageValue value = BaseImageDialogHandler.modify(image);
+               if (value == null) {
+                       // TODO
+                       return;
+               }
+
+               if (!image.getWorker().modifyCustomBaseImage(value)) {
+                       setTableItemProperty(item, image);
+               }
        }
 
        private void deleteBaseImage(TableItem item) {
-               // TODO
+               BaseImage image = (BaseImage)item.getData();
+               if (image == null || image.isStandard()) {
+                       return;
+               }
+
+               // check running emulator
+               if (!image.isEemulatorListEmpty()) {
+                       String name = "";
+                       for (VMProperty prop : image.getEmulatorList()) {
+                               if (prop.isRunning()) {
+                                       if (!name.isEmpty()) {
+                                               name += ", ";
+                                       }
+                                       name += prop.getName();
+                               }
+                       }
+                       // if there is running emulator
+                       if (!name.isEmpty()) {
+                               String message = "Can not delete base image"
+                                               + StringResources.NEW_LINE
+                                               + "because emulator using this base image is running status."
+                                               + StringResources.NEW_LINE + StringResources.NEW_LINE
+                                               + "Try again after emualtor has been terminated."
+                                               + StringResources.NEW_LINE
+                                               + "Running Emulator:"
+                                               + StringResources.NEW_LINE
+                                               + "  " + name;
+                               MessageBox.openMessageBox(message);
+                               return;
+                       }
+               }
+
+               DeleteMessageBox msgBox = new DeleteMessageBox(image);
+               int response = msgBox.open();
+               if (response != SWT.OK) {
+                       return;
+               }
+
+               if (!image.getWorker().deleteBaseImageConfiguration(msgBox.needDeleteFile())) {
+                       //TODO
+                       return;
+               }
+
+               int index = table.indexOf(item);
+               table.remove(index);
+               if (table.getItemCount() > 0) {
+                       if (index == table.getItemCount()) {
+                               table.setSelection(index - 1);
+                       } else {
+                               table.setSelection(index);
+                       }
+               }
+
+               // setting table item property
+               for (TableItem i : table.getItems()) {
+                       setTableItemProperty(i, (BaseImage)i.getData());
+               }
        }
 
        private void tableSelected() {