From 3dcf10f471ed8062f4c1a41ab3a0fca230fe3a8e Mon Sep 17 00:00:00 2001 From: "jihye424.kim" Date: Fri, 12 Feb 2016 13:16:43 +0900 Subject: [PATCH] platform image table: add new platform image table - base image table -> platform image table - use new platform, profile class Change-Id: If156177597a9f02318ad802dfb158b83b4c81b56 Signed-off-by: jihye424.kim --- .../tizen/emulator/manager/EmulatorManager.java | 3 + .../ui/renewal/dialog/BaseImageCreateDialog.java | 4 +- .../ui/renewal/dialog/DeleteMessageBox.java | 19 +- .../dialoghandler/BaseImageDialogHandler.java | 25 +- .../renewal/tableviewer/CreateVMTopComposite.java | 29 +- .../renewal/tableviewer/PlatformDisplayData.java | 147 +++++++++ ...leViewer.java => PlatformImageTableViewer.java} | 351 +++++++++------------ .../ui/renewal/tableviewer/VMListTableViewer.java | 2 +- 8 files changed, 339 insertions(+), 241 deletions(-) create mode 100644 src/org/tizen/emulator/manager/ui/renewal/tableviewer/PlatformDisplayData.java rename src/org/tizen/emulator/manager/ui/renewal/tableviewer/{BaseImageTableViewer.java => PlatformImageTableViewer.java} (70%) diff --git a/src/org/tizen/emulator/manager/EmulatorManager.java b/src/org/tizen/emulator/manager/EmulatorManager.java index bab5226..3ebd788 100755 --- a/src/org/tizen/emulator/manager/EmulatorManager.java +++ b/src/org/tizen/emulator/manager/EmulatorManager.java @@ -47,6 +47,7 @@ import org.tizen.emulator.manager.job.CheckVT; 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.platform.Preparer; import org.tizen.emulator.manager.platform.backup.ProfileList; import org.tizen.emulator.manager.resources.FilePathResources; import org.tizen.emulator.manager.resources.StringResources; @@ -373,6 +374,8 @@ public class EmulatorManager { CheckVT.class, CheckGPU.class, CheckSDCard.class, CheckWebcam.class); checkers.startWork(); + Preparer.execute(); + // initialize VMKeeper EmulatorManager.setVMKeeper(new ManagedVMKeeper()); diff --git a/src/org/tizen/emulator/manager/ui/renewal/dialog/BaseImageCreateDialog.java b/src/org/tizen/emulator/manager/ui/renewal/dialog/BaseImageCreateDialog.java index 931c35f..c5cfe3c 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/dialog/BaseImageCreateDialog.java +++ b/src/org/tizen/emulator/manager/ui/renewal/dialog/BaseImageCreateDialog.java @@ -33,7 +33,7 @@ package org.tizen.emulator.manager.ui.renewal.dialog; import java.util.List; import org.eclipse.swt.widgets.Shell; -import org.tizen.emulator.manager.platform.baseimage.backup.CustomBaseImageValue; +import org.tizen.emulator.manager.platform.custom.CustomPlatformImageValue; import org.tizen.emulator.manager.ui.renewal.item.modify.common.ModifyDialogItem; import org.tizen.emulator.manager.ui.renewal.item.modify.comp.PropertyValue; @@ -45,7 +45,7 @@ public class BaseImageCreateDialog extends ModifyDialog { super(parent, title, WIDTH, HEIGHT); } - public void create(CustomBaseImageValue imageValue, List itemList, + public void create(CustomPlatformImageValue imageValue, List itemList, DIALOG_MODE dialogMode) { // create title, buttons // init body diff --git a/src/org/tizen/emulator/manager/ui/renewal/dialog/DeleteMessageBox.java b/src/org/tizen/emulator/manager/ui/renewal/dialog/DeleteMessageBox.java index ec7047a..32e8632 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/dialog/DeleteMessageBox.java +++ b/src/org/tizen/emulator/manager/ui/renewal/dialog/DeleteMessageBox.java @@ -35,8 +35,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; -import org.tizen.emulator.manager.platform.backup.BaseImage; -import org.tizen.emulator.manager.platform.baseimage.backup.CustomBaseImageLoader; +import org.tizen.emulator.manager.platform.Platform; import org.tizen.emulator.manager.renewal.resources.ColorKind; import org.tizen.emulator.manager.renewal.resources.Colors; import org.tizen.emulator.manager.renewal.resources.FontKind; @@ -49,14 +48,14 @@ public class DeleteMessageBox extends MessageBox { private final int CONTENTS_WIDTH = 450; private final int SPACING = 15; - private BaseImage image; + private Platform platform; private boolean needDeleteFile = false; private CheckBoxButton deleteCheck; - public DeleteMessageBox(BaseImage image) { + public DeleteMessageBox(Platform platform) { super(shell, SWT.CANCEL | SWT.OK, true); - this.image = image; - setTitle("Delete Base Image"); + this.platform = platform; + setTitle("Delete Platform Image"); } @Override @@ -76,10 +75,10 @@ public class DeleteMessageBox extends MessageBox { label.setBounds(SPACING, top, CONTENTS_WIDTH, textHeight); top = top + SPACING + textHeight; - if (image.isFilePathExist()) { + if (platform.isImageExist()) { boolean isExist = false; - for (BaseImage i : CustomBaseImageLoader.getCustomBsaeImageList(false)) { - if (i != image && i.getPath().equals(image.getPath())) { + for (Platform i : Platform.getPlatformList()) { + if (i != platform && i.getImagePath().equals(platform.getImagePath())) { isExist = true; break; } @@ -107,7 +106,7 @@ public class DeleteMessageBox extends MessageBox { String msg = "Base image file loaction:" + StringResources.NEW_LINE - + " " + image.getPath(); + + " " + platform.getImagePath(); label = makeLabel(contentsBox, msg); label.setBounds(SPACING, top, CONTENTS_WIDTH, textHeight * 3); diff --git a/src/org/tizen/emulator/manager/ui/renewal/dialoghandler/BaseImageDialogHandler.java b/src/org/tizen/emulator/manager/ui/renewal/dialoghandler/BaseImageDialogHandler.java index 40a8514..03118db 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/dialoghandler/BaseImageDialogHandler.java +++ b/src/org/tizen/emulator/manager/ui/renewal/dialoghandler/BaseImageDialogHandler.java @@ -34,8 +34,8 @@ import java.util.ArrayList; import java.util.List; import org.eclipse.swt.SWT; -import org.tizen.emulator.manager.platform.backup.BaseImage; -import org.tizen.emulator.manager.platform.baseimage.backup.CustomBaseImageValue; +import org.tizen.emulator.manager.platform.custom.CustomPlatform; +import org.tizen.emulator.manager.platform.custom.CustomPlatformImageValue; import org.tizen.emulator.manager.ui.renewal.MainDialog; import org.tizen.emulator.manager.ui.renewal.dialog.BaseImageCreateDialog; import org.tizen.emulator.manager.ui.renewal.dialog.DIALOG_MODE; @@ -48,15 +48,15 @@ import org.tizen.emulator.manager.ui.renewal.item.modify.common.ProfileItem; import org.tizen.emulator.manager.ui.renewal.item.modify.comp.PropertyValue; public class BaseImageDialogHandler { - public static CustomBaseImageValue create() { - CustomBaseImageValue value = new CustomBaseImageValue(); + public static CustomPlatformImageValue create() { + CustomPlatformImageValue value = new CustomPlatformImageValue(); value = openDialog("New Base Image", DIALOG_MODE.CREATE, value); return value; } - public static CustomBaseImageValue create(String profile) { - CustomBaseImageValue value = new CustomBaseImageValue(); + public static CustomPlatformImageValue create(String profile) { + CustomPlatformImageValue value = new CustomPlatformImageValue(); value.setProfile(profile); value.setAmendable(true); value = openDialog("New Base Image", DIALOG_MODE.CLONE, value); @@ -64,8 +64,11 @@ public class BaseImageDialogHandler { return value; } - public static CustomBaseImageValue modify(BaseImage image) { - CustomBaseImageValue value = new CustomBaseImageValue(image); + public static CustomPlatformImageValue modify(CustomPlatform platform) { + CustomPlatformImageValue value = new CustomPlatformImageValue(); + value.setName(platform.getName()); + value.setPlatform(platform.getBasePlatform()); + value.setDescription(platform.getImageDescription()); if (value.isAmendable()) { value = openDialog("Modify Base Image", DIALOG_MODE.MODIFY, value); @@ -77,15 +80,15 @@ public class BaseImageDialogHandler { return value; } - private static CustomBaseImageValue openDialog(String dialogTitle, DIALOG_MODE mode, - CustomBaseImageValue value) { + private static CustomPlatformImageValue openDialog(String dialogTitle, DIALOG_MODE mode, + CustomPlatformImageValue value) { BaseImageCreateDialog dialog = new BaseImageCreateDialog(MainDialog.getShell(), dialogTitle); dialog.create(value, getDefaultItemList(), mode); if (dialog.open() == SWT.OK) { PropertyValue propertyValue = dialog.saveDataInto(); - return (CustomBaseImageValue)propertyValue.getValue(); + return (CustomPlatformImageValue)propertyValue.getValue(); } return null; diff --git a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/CreateVMTopComposite.java b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/CreateVMTopComposite.java index a03c659..97a9015 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/CreateVMTopComposite.java +++ b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/CreateVMTopComposite.java @@ -45,16 +45,12 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.tizen.emulator.manager.platform.backup.BaseImage; import org.tizen.emulator.manager.platform.backup.Profile; -import org.tizen.emulator.manager.platform.baseimage.backup.CustomBaseImageValue; -import org.tizen.emulator.manager.platform.baseimage.backup.CustomBaseImageWorker; import org.tizen.emulator.manager.renewal.resources.ColorKind; import org.tizen.emulator.manager.renewal.resources.FontKind; import org.tizen.emulator.manager.renewal.resources.Fonts; import org.tizen.emulator.manager.renewal.resources.ImageKind; import org.tizen.emulator.manager.renewal.resources.Images; import org.tizen.emulator.manager.resources.StringResources; -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.item.modify.common.NameItem; import org.tizen.emulator.manager.ui.renewal.widgets.BlueButton; import org.tizen.emulator.manager.ui.renewal.widgets.ComboBox; @@ -176,19 +172,20 @@ public class CreateVMTopComposite extends Composite { return; } + // TODO // handling selection event - CustomBaseImageValue value = BaseImageDialogHandler.create(profile.getName()); - if (value != null) { - BaseImage image = CustomBaseImageWorker.createCustomBaseImage(value); - if (image == null) { - // TODO - MessageBox.openMessageBox("Failed to create custom base image"); - return; - } - baseImageCombo.addItem(0, image.getName(), image); - baseImageCombo.select(0); - baseImage = image; - } +// CustomBaseImageValue value = BaseImageDialogHandler.create(profile.getName()); +// if (value != null) { +// BaseImage image = CustomBaseImageWorker.createCustomBaseImage(value); +// if (image == null) { +// // TODO +// MessageBox.openMessageBox("Failed to create custom base image"); +// return; +// } +// baseImageCombo.addItem(0, image.getName(), image); +// baseImageCombo.select(0); +// baseImage = image; +// } } }; diff --git a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/PlatformDisplayData.java b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/PlatformDisplayData.java new file mode 100644 index 0000000..eda7625 --- /dev/null +++ b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/PlatformDisplayData.java @@ -0,0 +1,147 @@ +/* + * Emulator Manager + * + * Copyright (C) 2016 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * JiHye Kim + * Minkee Lee + * SeokYeon Hwang + * Sangho Park + * + * 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.ui.renewal.tableviewer; + +import org.eclipse.swt.graphics.Image; +import org.tizen.emulator.manager.platform.Platform; +import org.tizen.emulator.manager.platform.StandardPlatform; +import org.tizen.emulator.manager.renewal.resources.ImageKind; +import org.tizen.emulator.manager.renewal.resources.Images; +import org.tizen.emulator.manager.vms.SKIN_SHAPE; + +public class PlatformDisplayData { + private String type; + private boolean isModifiable; + private boolean isRemovable; + private int priority; + private ImageKind icon; + private ImageKind selectedIcon; + + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + + public int getPriority() { + return priority; + } + public void setPriority(int priority) { + this.priority = priority; + } + + public boolean isModifiable() { + return isModifiable; + } + + public void setModifiable(boolean isModifiable) { + this.isModifiable = isModifiable; + } + + public boolean isRemovable() { + return isRemovable; + } + + public void setRemovable(boolean isRemovable) { + this.isRemovable = isRemovable; + } + + public Image getIcon() { + return Images.get(icon); + } + + public void setIcon(ImageKind icon) { + this.icon = icon; + } + + public Image getSelectedIcon() { + return Images.get(selectedIcon); + } + + public void setSelectedIcon(ImageKind selectedIcon) { + this.selectedIcon = selectedIcon; + } + + public static PlatformDisplayData getData(Platform platform) { + if (platform.getData() == null) { + setPlatformData(platform); + } + return (PlatformDisplayData)platform.getData(); + } + + public static void setPlatformData(Platform platform) { + PlatformDisplayData data = new PlatformDisplayData(); + if (platform instanceof StandardPlatform) { + data.setType("standard"); + data.setModifiable(false); + data.setRemovable(false); + // FIXME: need to set priority of profile + data.setPriority(platform.getProfile().getPriority()); + } else { + data.setType("custom"); + data.setModifiable(true); + data.setRemovable(true); + data.setPriority(platform.getProfile().getPriority() + 1); + } + + // FIXME + String name = platform.getProfile().getName(); + if (name.equals("mobile")) { + if (data.getType().equals("custom")) { + data.setIcon(ImageKind.ICON_TYPE_MOBILE_CUSTOM); + } else { + data.setIcon(ImageKind.ICON_TYPE_MOBILE); + } + data.setSelectedIcon(ImageKind.ICON_SELECTED_MOBILE); + } else if (name.equals("tv")) { + if (data.getType().equals("custom")) { + data.setIcon(ImageKind.ICON_TYPE_TV_CUSTOM); + } else { + data.setIcon(ImageKind.ICON_TYPE_TV); + } + data.setSelectedIcon(ImageKind.ICON_SELECTED_TV); + } else if (name.equals("wearable")) { + if (data.getType().equals("custom")) { + data.setIcon(ImageKind.ICON_TYPE_WEARABLE_CUSTOM); + } else { + data.setIcon(ImageKind.ICON_TYPE_WEARABLE); + } + if (platform.getImageSkinShape().equals(SKIN_SHAPE.CIRCLE)) { + data.setSelectedIcon(ImageKind.ICON_SELECTED_WEARABLE_ROUND); + } else { + data.setSelectedIcon(ImageKind.ICON_SELECTED_WEARABLE_SQUARE); + } + } + + platform.setData(data); + } +} diff --git a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/BaseImageTableViewer.java b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/PlatformImageTableViewer.java similarity index 70% rename from src/org/tizen/emulator/manager/ui/renewal/tableviewer/BaseImageTableViewer.java rename to src/org/tizen/emulator/manager/ui/renewal/tableviewer/PlatformImageTableViewer.java index 17b4361..3e4f8ee 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/BaseImageTableViewer.java +++ b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/PlatformImageTableViewer.java @@ -51,11 +51,10 @@ import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; import org.tizen.emulator.manager.EmulatorManager; -import org.tizen.emulator.manager.platform.backup.BaseImage; -import org.tizen.emulator.manager.platform.backup.Profile; -import org.tizen.emulator.manager.platform.backup.ProfileList; -import org.tizen.emulator.manager.platform.baseimage.backup.CustomBaseImageValue; -import org.tizen.emulator.manager.platform.baseimage.backup.CustomBaseImageWorker; +import org.tizen.emulator.manager.platform.Platform; +import org.tizen.emulator.manager.platform.custom.CustomPlatform; +import org.tizen.emulator.manager.platform.custom.CustomPlatformImageValue; +import org.tizen.emulator.manager.platform.custom.CustomPlatformImageWorker; import org.tizen.emulator.manager.renewal.resources.ColorKind; import org.tizen.emulator.manager.renewal.resources.Colors; import org.tizen.emulator.manager.renewal.resources.ImageKind; @@ -69,9 +68,8 @@ import org.tizen.emulator.manager.ui.renewal.widgets.ImageButton; 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 { +public class PlatformImageTableViewer extends AbstractTableViewer { private static final int BUTTON_WIDTH = 32; private static final int BUTTON_HEIGHT = 26; @@ -93,14 +91,15 @@ public class BaseImageTableViewer extends AbstractTableViewer { private Color backupTableItemForeground; private Color backupTableItemSelectedForeground; - public BaseImageTableViewer(Shell shell, String key) { + public PlatformImageTableViewer(Shell shell, String key) { super(shell, key); } public void refreshBaseImageList() { - ProfileList.reloadingBaseImageList(); - // reset base image list table - makeBaseImageListTable(); + // TODO + //ProfileList.reloadingBaseImageList(); + // reset base image list table + makeBaseImageListTable(); } @Override @@ -173,7 +172,7 @@ public class BaseImageTableViewer extends AbstractTableViewer { } - private final String[] titles = {"", "Type", "Name", "Platform", "File Name", "Description"}; + private final String[] titles = {"", "Type", "Name", "File Name", "Description"}; private void makeTable() { table = new Table(comp, SWT.BORDER | SWT.SINGLE); @@ -205,7 +204,7 @@ public class BaseImageTableViewer extends AbstractTableViewer { } TableItem item = table.getSelection()[0]; - deleteBaseImage(item); + deletePlatformImage(item); } }); @@ -229,12 +228,8 @@ public class BaseImageTableViewer extends AbstractTableViewer { int dir = table.getSortDirection(); IntegerTypeItemPair[] pairs = new IntegerTypeItemPair[table.getItemCount()]; for (int i = 0; i < table.getItemCount(); i++) { - BaseImage t = (BaseImage)table.getItem(i).getData(); - Profile p = ProfileList.getProfile(t.getProfile()); - int priority = p.getPriority(); - if (!t.isStandard()) { - priority += 1; - } + Platform platform = (Platform)table.getItem(i).getData(); + int priority = PlatformDisplayData.getData(platform).getPriority(); pairs[i] = new IntegerTypeItemPair(table.getItem(i), 1, dir, priority); } column.setTableItemPairs(pairs); @@ -246,41 +241,25 @@ public class BaseImageTableViewer extends AbstractTableViewer { table.getColumn(2).addListener(SWT.Selection, table.getDefaultSortListener()); table.getColumn(3).addListener(SWT.Selection, table.getDefaultSortListener()); - table.getColumn(4).addListener(SWT.Selection, table.getDefaultSortListener()); } private void makeBaseImageListTable() { table.removeAll(); - for (ProfileButton pButton : profileButtonList) { - if (pButton.getProfile() == null) { - continue; - } - if (!pButton.getButton().isSelection()) { - makeTableItem(pButton); - } + + for (Platform platform : Platform.getPlatformList()) { + createTableItem(platform); } tablePack(); } - private void makeTableItem(ProfileButton pButton) { - makeTableItem(pButton, false); + private void createTableItem(Platform platform) { + createTableItem(platform, -1); } - private void makeTableItem(ProfileButton pButton, boolean needCheck) { - for (BaseImage image : pButton.getProfile().getImageList()) { - if (!needCheck || !existBaseImageInTable(image)) { - addTableItem(pButton, image); - } - } - } - - private void addTableItem(ProfileButton pButton, BaseImage image) { - addTableItem(pButton, image, -1); - } - - private void addTableItem(ProfileButton pButton, BaseImage image, int index) { - if (pButton == null) { + private void createTableItem(Platform platform, int index) { + ProfileButton pButton = findProfileButton(platform.getProfile().getName()); + if (pButton == null || pButton.getButton().isSelection()) { return; } @@ -291,20 +270,14 @@ public class BaseImageTableViewer extends AbstractTableViewer { item = new TableItem(table, SWT.NULL); } - if (image.isStandard()) { - item.setImage(1, pButton.getIcon()); - } else { - item.setImage(1, pButton.getCustomIcon()); - } - - setTableItemProperty(item, image); + setTableItemProperty(item, platform); } // reset table item value from base image property private void setValueOfBaseImageListTable() { for (TableItem item : table.getItems()) { - BaseImage image = (BaseImage)item.getData(); - setTableItemProperty(item, image); + Platform platform = (Platform)item.getData(); + setTableItemProperty(item, platform); } tablePack(); } @@ -331,8 +304,8 @@ public class BaseImageTableViewer extends AbstractTableViewer { } } - private void setTableItemProperty(TableItem item, BaseImage image) { - if (!image.isFilePathExist()) { + private void setTableItemProperty(TableItem item, Platform platform) { + if (!platform.isImageExist()) { if (backupTableItemForeground == null) { backupTableItemForeground = item.getForeground(); } @@ -354,13 +327,13 @@ public class BaseImageTableViewer extends AbstractTableViewer { // } - item.setText(2, image.getName()); - item.setText(3, image.getPlatformName()); - item.setText(4, image.getPathName()); + item.setImage(1, PlatformDisplayData.getData(platform).getIcon()); + item.setText(2, platform.getName()); + item.setText(3, platform.getImagePathName()); // TODO set description - item.setText(5, image.getDescription()); - if (!image.getDescription().isEmpty()) { - int height = getTextHeight(image.getDescription()); + item.setText(4, platform.getImageDescription()); + if (!platform.getImageDescription().isEmpty()) { + int height = getTextHeight(platform.getImageDescription()); if (maxItemHeight < height) { maxItemHeight = height; table.setItemHeight(maxItemHeight); @@ -369,13 +342,13 @@ public class BaseImageTableViewer extends AbstractTableViewer { } } - item.setData(image); + item.setData(platform); - settingToolTip(item, image); + settingToolTip(item, platform); } - private void settingToolTip(TableItem item, BaseImage image) { - if (!image.isFilePathExist()) { + private void settingToolTip(TableItem item, Platform platform) { + if (!platform.isImageExist()) { String tooltip = "Base image file does not exist." + StringResources.NEW_LINE + "You can not use this base image object" @@ -386,36 +359,36 @@ public class BaseImageTableViewer extends AbstractTableViewer { item.setToolTipText(0, ""); } - String emulatorList = ""; - for (VMProperty vm : image.getEmulatorList()) { - if (!emulatorList.isEmpty()) { - emulatorList += " ,"; - } - emulatorList += vm.getPropertyValue().vmsName; - } - - String nameToolTip = "Type: " + (image.isStandard() ? "standard" : "custom") - + StringResources.NEW_LINE - + "Emulators: " + (emulatorList.isEmpty() ? "" : emulatorList); - - item.setToolTipText(1, nameToolTip); - item.setToolTipText(2, nameToolTip); - - String platformToolTip = "CPU: " + image.getCpuType().toString() +// String emulatorList = ""; +// for (VMProperty vm : platform.getEmulatorList()) { +// if (!emulatorList.isEmpty()) { +// emulatorList += " ,"; +// } +// emulatorList += vm.getPropertyValue().vmsName; +// } +// +// String nameToolTip = "Type: " + (platform.isStandard() ? "standard" : "custom") +// + StringResources.NEW_LINE +// + "Emulators: " + (emulatorList.isEmpty() ? "" : emulatorList); +// +// item.setToolTipText(1, nameToolTip); +// item.setToolTipText(2, nameToolTip); + + String platformToolTip = "CPU: " + platform.getImageArch() + StringResources.NEW_LINE - + "Skin shape: " + image.getSkinShape().toString(); - item.setToolTipText(3, platformToolTip); + + "Skin shape: " + platform.getImageSkinShape(); + item.setToolTipText(2, platformToolTip); - String pathToolTip = "Path: " + image.getPath(); - item.setToolTipText(4, pathToolTip); + String pathToolTip = "Path: " + platform.getImagePath(); + item.setToolTipText(3, pathToolTip); - item.setToolTipText(5, image.getDescription()); + item.setToolTipText(4, platform.getImageDescription()); } - private boolean existBaseImageInTable(BaseImage image) { + private boolean existPlatformImageInTable(Platform platform) { for (TableItem item : table.getItems()) { - BaseImage i = (BaseImage)item.getData(); - if (i.equals(image)) { + Platform i = (Platform)item.getData(); + if (i.equals(platform)) { return true; } } @@ -437,7 +410,7 @@ public class BaseImageTableViewer extends AbstractTableViewer { if (e.type == SWT.Selection) { TableItem[] items = table.getSelection(); if (items != null && items.length > 0) { - modifyBaseImage(items[0]); + modifyPlatformImage(items[0]); } } } @@ -450,7 +423,7 @@ public class BaseImageTableViewer extends AbstractTableViewer { if (e.type == SWT.Selection) { TableItem[] items = table.getSelection(); if (items != null && items.length > 0) { - deleteBaseImage(items[0]); + deletePlatformImage(items[0]); } } } @@ -466,14 +439,10 @@ public class BaseImageTableViewer extends AbstractTableViewer { } if (count == 1) { TableItem item = table.getSelection()[0]; - BaseImage image = (BaseImage)item.getData(); - if (image.isStandard()) { - modifyMenu.setEnabled(false); - deleteMenu.setEnabled(false); - } else { - modifyMenu.setEnabled(true); - deleteMenu.setEnabled(true); - } + Platform platform = (Platform)item.getData(); + modifyMenu.setEnabled(PlatformDisplayData.getData(platform).isModifiable()); + deleteMenu.setEnabled(PlatformDisplayData.getData(platform).isRemovable()); + menu.setVisible(true); } } @@ -492,7 +461,7 @@ public class BaseImageTableViewer extends AbstractTableViewer { @Override public void handleEvent(Event event) { if (event.type == SWT.Selection) { - createBaseImage(); + createPlatformImage(); } } }); @@ -510,7 +479,7 @@ public class BaseImageTableViewer extends AbstractTableViewer { if (event.type == SWT.Selection) { TableItem[] items = table.getSelection(); if (items != null && items.length > 0) { - modifyBaseImage(items[0]); + modifyPlatformImage(items[0]); } } @@ -530,7 +499,7 @@ public class BaseImageTableViewer extends AbstractTableViewer { if (event.type == SWT.Selection) { TableItem[] items = table.getSelection(); if (items != null && items.length > 0) { - deleteBaseImage(items[0]); + deletePlatformImage(items[0]); } } } @@ -546,17 +515,28 @@ public class BaseImageTableViewer extends AbstractTableViewer { profileButtonList.add(ProfileButtonMaker.getProfileButton("tv", comp)); profileButtonList.add(ProfileButtonMaker.getProfileButton("wearable", comp)); - for (Profile profile : ProfileList.getProfileList()) { + for (Platform platform : Platform.getPlatformList()) { for (ProfileButton pButton : profileButtonList) { - if (pButton.getProfileName().equals(profile.getName())) { - pButton.setProfile(profile); + if (pButton.getProfileName().equals(platform.getProfile().getName())) { + if (pButton.getButton().isEnabled()) { + break; + } + //pButton.setProfile(platform.getProfile()); pButton.getButton().setEnabled(true); pButton.getButton().addSelectionListener(profileButtonSelectionListener); break; } } } + } + ProfileButton findProfileButton(String profile) { + for (ProfileButton pButton : profileButtonList) { + if (pButton.getProfileName().equals(profile)) { + return pButton; + } + } + return null; } private void makeBackButton() { @@ -585,26 +565,22 @@ public class BaseImageTableViewer extends AbstractTableViewer { } if (!b.isSelection()) { - makeTableItem(pButton, true); - } else { - if (pButton.getProfile().getImageList().isEmpty()) { - return; - } - - String profile = pButton.getProfileName(); - for (TableItem item : table.getSelection()) { - BaseImage image = (BaseImage)(item.getData()); - if (image.getProfile().equals(profile)) { - table.deselectAll(); + for (Platform platform : Platform.getPlatformList()) { + if (!platform.getProfile().getName().equals(pButton.getProfileName())) { + continue; } + if (existPlatformImageInTable(platform)) { + continue; + } + createTableItem(platform); } - for (BaseImage image : pButton.getProfile().getImageList()) { - for (TableItem item : table.getItems()) { - if (item.getData() == image) { - int index = table.indexOf(item); - table.remove(index); - break; - } + } else { + String profile = pButton.getProfileName(); + for (TableItem item : table.getItems()) { + Platform platform = (Platform)item.getData(); + if (platform.getProfile().getName().equals(profile)) { + int index = table.indexOf(item); + table.remove(index); } } } @@ -619,87 +595,75 @@ public class BaseImageTableViewer extends AbstractTableViewer { } }; - private void createBaseImage() { - CustomBaseImageValue value = BaseImageDialogHandler.create(); - if (value != null) { - BaseImage image = CustomBaseImageWorker.createCustomBaseImage(value); - if (image == null) { - // TODO - MessageBox.openMessageBox("Failed to create base image"); - return; - } - - ProfileButton pButton = null; - for (ProfileButton button : profileButtonList) { - if (button.getProfileName().equals(value.getProfile())) { - pButton = button; - } - } - - if (pButton != null) { - addTableItem(pButton, image, 0); - tablePack(); - table.setSelection(0); - } + private void createPlatformImage() { + CustomPlatformImageValue value = BaseImageDialogHandler.create(); + Platform platform = CustomPlatformImageWorker.create(value); + if (platform != null) { + createTableItem(platform, 0); + tablePack(); + table.setSelection(0); + } else { + MessageBox.openMessageBox("Failed to create base image"); } } - private void modifyBaseImage(TableItem item) { - BaseImage image = (BaseImage)item.getData(); - if (image == null || image.isStandard()) { + private void modifyPlatformImage(TableItem item) { + CustomPlatform platform = (CustomPlatform)item.getData(); + if (platform == null) { return; } - CustomBaseImageValue value = BaseImageDialogHandler.modify(image); + CustomPlatformImageValue value = BaseImageDialogHandler.modify(platform); if (value == null) { // TODO return; } - if (image.getWorker().modifyCustomBaseImage(value)) { - setTableItemProperty(item, image); + if (CustomPlatformImageWorker.modify(platform, value)) { + setTableItemProperty(item, platform); tablePack(); } } - private void deleteBaseImage(TableItem item) { - BaseImage image = (BaseImage)item.getData(); - if (image == null || image.isStandard()) { + private void deletePlatformImage(TableItem item) { + CustomPlatform platform = (CustomPlatform)item.getData(); + if (platform == null) { return; } + // TODO // emulator using this base image exist - if (!image.isEemulatorListEmpty()) { - String name = ""; - boolean isSingular = true; - for (VMProperty prop : image.getEmulatorList()) { - if (!name.isEmpty()) { - name += ", "; - isSingular = false; - } - name += prop.getPropertyValue().vmsName; - } - - if (!name.isEmpty()) { - String message = "Can not delete base image" - + StringResources.NEW_LINE - + (isSingular - ? "because emulator using this base image is exist." - : "because emulators using this base image are exist.") - + StringResources.NEW_LINE + StringResources.NEW_LINE - + (isSingular - ? "Try again after emualtor has been deleted." - : "Try again after emualtors have been deleted.") - + StringResources.NEW_LINE - + "Emulator: " + name - + StringResources.NEW_LINE; - MessageBox.openMessageBox(message); - return; - } - } +// if (!image.isEemulatorListEmpty()) { +// String name = ""; +// boolean isSingular = true; +// for (VMProperty prop : image.getEmulatorList()) { +// if (!name.isEmpty()) { +// name += ", "; +// isSingular = false; +// } +// name += prop.getPropertyValue().vmsName; +// } +// +// if (!name.isEmpty()) { +// String message = "Can not delete base image" +// + StringResources.NEW_LINE +// + (isSingular +// ? "because emulator using this base image is exist." +// : "because emulators using this base image are exist.") +// + StringResources.NEW_LINE + StringResources.NEW_LINE +// + (isSingular +// ? "Try again after emualtor has been deleted." +// : "Try again after emualtors have been deleted.") +// + StringResources.NEW_LINE +// + "Emulator: " + name +// + StringResources.NEW_LINE; +// MessageBox.openMessageBox(message); +// return; +// } +// } // emulator using this base image does not exist - DeleteMessageBox msgBox = new DeleteMessageBox(image); + DeleteMessageBox msgBox = new DeleteMessageBox(platform); int response = msgBox.open(); if (response != SWT.OK) { return; @@ -707,8 +671,7 @@ public class BaseImageTableViewer extends AbstractTableViewer { // delete base image object and delete configure from configuration file // delete base image file from disk (if select check box) - if (!image.getWorker().deleteBaseImageConfiguration(msgBox.needDeleteFile())) { - // TODO + if (!CustomPlatformImageWorker.delete(platform, msgBox.needDeleteFile())) { MessageBox.openMessageBox("Failed to delete base image"); return; } @@ -723,29 +686,15 @@ public class BaseImageTableViewer extends AbstractTableViewer { table.setSelection(index); } } - - // can not delete base image file if other base image refer this file - // so, this statement does not need - // setting table item property - /* - for (TableItem i : table.getItems()) { - setTableItemProperty(i, (BaseImage)i.getData()); - } - */ } private void tableSelected() { if (table.getSelectionCount() == 0) { deleteButton.setEnabled(false); } else { - BaseImage image = (BaseImage)table.getSelection()[0].getData(); - if (image.isStandard()) { - deleteButton.setEnabled(false); - modifyButton.setEnabled(false); - } else { - deleteButton.setEnabled(true); - modifyButton.setEnabled(true); - } + Platform platform = (Platform)table.getSelection()[0].getData(); + modifyMenu.setEnabled(PlatformDisplayData.getData(platform).isModifiable()); + deleteMenu.setEnabled(PlatformDisplayData.getData(platform).isRemovable()); } } diff --git a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/VMListTableViewer.java b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/VMListTableViewer.java index ff55415..08ffe90 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/VMListTableViewer.java +++ b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/VMListTableViewer.java @@ -170,7 +170,7 @@ public class VMListTableViewer extends AbstractTableViewer { MainDialog mainDialog = EmulatorManager.getNewMainDialog(); AbstractTableViewer viewer = mainDialog.findViewer(MainDialog.BASE_IMAGE_LIST); if (viewer == null) { - viewer = new BaseImageTableViewer(MainDialog.getShell(), MainDialog.BASE_IMAGE_LIST); + viewer = new PlatformImageTableViewer(MainDialog.getShell(), MainDialog.BASE_IMAGE_LIST); mainDialog.addViewer(viewer); } mainDialog.setStackTop(viewer); -- 2.7.4