From: jihye424.kim Date: Tue, 13 Oct 2015 07:20:23 +0000 (+0900) Subject: Device Template: implement create, modify, clone functions X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5f86b33d582d9a3be6e542216a16c8da5208c5a9;p=sdk%2Femulator%2Femulator-manager.git Device Template: implement create, modify, clone functions - make create, modify, clone function of device template table viewer - add 'DIALOG_MODE' type (CREATE, CLONE, MODIFY) Change-Id: I334f596ed6fa7ae2aaea2f2f6be5f9db61584ba3 Signed-off-by: jihye424.kim --- diff --git a/src/org/tizen/emulator/manager/ui/renewal/dialog/DIALOG_MODE.java b/src/org/tizen/emulator/manager/ui/renewal/dialog/DIALOG_MODE.java new file mode 100644 index 0000000..98b1711 --- /dev/null +++ b/src/org/tizen/emulator/manager/ui/renewal/dialog/DIALOG_MODE.java @@ -0,0 +1,35 @@ +/* + * Emulator Manager + * + * Copyright (C) 2015 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.dialog; + +public enum DIALOG_MODE { + CREATE, MODIFY, CLONE; +} diff --git a/src/org/tizen/emulator/manager/ui/renewal/dialog/Dialog.java b/src/org/tizen/emulator/manager/ui/renewal/dialog/Dialog.java index a444820..0be525b 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/dialog/Dialog.java +++ b/src/org/tizen/emulator/manager/ui/renewal/dialog/Dialog.java @@ -61,7 +61,7 @@ public class Dialog { private int returnValue = SWT.CANCEL; // create / modify mode - private boolean isCreateMode = true; + private DIALOG_MODE mode = DIALOG_MODE.CREATE; private GrayButton okButton; @@ -191,12 +191,20 @@ public class Dialog { bodyComp.setLayoutData(gridData); } - public boolean isCreateMode() { - return isCreateMode; + public DIALOG_MODE getDialogMode() { + return mode; + } + + public void setDialogMode(DIALOG_MODE mode) { + this.mode = mode; } - public void setCreateMode(boolean isCreateMode) { - this.isCreateMode = isCreateMode; + public boolean isCreateMode() { + if (mode == DIALOG_MODE.CREATE) { + return true; + } else { + return false; + } } } diff --git a/src/org/tizen/emulator/manager/dialoghandler/renewal/DeviceTemplateDialogHandler.java b/src/org/tizen/emulator/manager/ui/renewal/dialoghandler/DeviceTemplateDialogHandler.java similarity index 75% rename from src/org/tizen/emulator/manager/dialoghandler/renewal/DeviceTemplateDialogHandler.java rename to src/org/tizen/emulator/manager/ui/renewal/dialoghandler/DeviceTemplateDialogHandler.java index b59fae7..a48a92c 100644 --- a/src/org/tizen/emulator/manager/dialoghandler/renewal/DeviceTemplateDialogHandler.java +++ b/src/org/tizen/emulator/manager/ui/renewal/dialoghandler/DeviceTemplateDialogHandler.java @@ -30,15 +30,15 @@ -package org.tizen.emulator.manager.dialoghandler.renewal; +package org.tizen.emulator.manager.ui.renewal.dialoghandler; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.SWT; -import org.tizen.emulator.manager.devices.DeviceTemplateCreator; import org.tizen.emulator.manager.devices.DeviceTemplateValue; import org.tizen.emulator.manager.ui.renewal.MainDialog; +import org.tizen.emulator.manager.ui.renewal.dialog.DIALOG_MODE; import org.tizen.emulator.manager.ui.renewal.dialog.DeviceTemplateModifyDialog; import org.tizen.emulator.manager.ui.renewal.item.modify.common.DeviceItem; import org.tizen.emulator.manager.ui.renewal.item.modify.common.DisplayItem; @@ -58,69 +58,58 @@ public class DeviceTemplateDialogHandler { public static final String TITLE_CLONE = "Clone Template"; - public static void create(DeviceTemplateValue value) { - + public static DeviceTemplateValue create(DeviceTemplateValue value) { if (value == null) { value = new DeviceTemplateValue(null); } DeviceTemplateValue itemValue = value.clone(); - DeviceTemplateModifyDialog dialog = createDialog(TITLE_CREATE, true, itemValue); + return createDialog(TITLE_CREATE, DIALOG_MODE.CREATE, itemValue); + } - int retValue = dialog.open(); - if (retValue == SWT.OK) { - dialog.saveDataInto(itemValue); - DeviceTemplateCreator.create(itemValue); - - // TODO for test - System.out.println(itemValue.getPrintValue()); + public static DeviceTemplateValue clone(DeviceTemplateValue value) { + if (value == null) { + return null; } - } - - public static void clone(DeviceTemplateValue value) { DeviceTemplateValue newValue = value.clone(); - int retValue = createDialog(TITLE_CLONE, true, newValue).open(); - if (retValue == SWT.OK) { - // TODO do clone - } + + return createDialog(TITLE_CLONE, DIALOG_MODE.CLONE, newValue); } - public static void modify(DeviceTemplateValue value) { + public static DeviceTemplateValue modify(DeviceTemplateValue value) { if (value == null) { - value = new DeviceTemplateValue(null); + // TODO + return null; } DeviceTemplateValue itemValue = value.clone(); - DeviceTemplateModifyDialog dialog = createDialog(TITLE_MODIFY, false, itemValue); - int retValue = dialog.open(); - - if (retValue == SWT.OK) { - dialog.saveDataInto(itemValue); - - // TODO for test - System.out.println(itemValue.getPrintValue()); - - // TODO do modify - } + return createDialog(TITLE_MODIFY, DIALOG_MODE.MODIFY, itemValue); } - private static DeviceTemplateModifyDialog createDialog( - String dialogTitle, boolean isCreateMode, DeviceTemplateValue value) { + private static DeviceTemplateValue createDialog( + String dialogTitle, DIALOG_MODE mode, DeviceTemplateValue value) { // open dialog DeviceTemplateModifyDialog dialog = new DeviceTemplateModifyDialog(MainDialog.getShell(), dialogTitle); - dialog.setCreateMode(isCreateMode); + dialog.setDialogMode(mode); dialog.create(value, getItemList(null)); - return dialog; + int retValue = dialog.open(); + if (retValue == SWT.OK) { + dialog.saveDataInto(value); + // TODO for test + System.out.println(value.getPrintValue()); + return value; + } + return null; } private static List getItemList(VMProperty property) { @@ -129,7 +118,6 @@ public class DeviceTemplateDialogHandler { } - // FOR TES public static List getTmpItemList() { List itemList = new ArrayList(); diff --git a/src/org/tizen/emulator/manager/dialoghandler/renewal/VMModifyHandler.java b/src/org/tizen/emulator/manager/ui/renewal/dialoghandler/VMModifyHandler.java similarity index 95% rename from src/org/tizen/emulator/manager/dialoghandler/renewal/VMModifyHandler.java rename to src/org/tizen/emulator/manager/ui/renewal/dialoghandler/VMModifyHandler.java index 76973a8..e8d21d9 100644 --- a/src/org/tizen/emulator/manager/dialoghandler/renewal/VMModifyHandler.java +++ b/src/org/tizen/emulator/manager/ui/renewal/dialoghandler/VMModifyHandler.java @@ -29,13 +29,14 @@ */ -package org.tizen.emulator.manager.dialoghandler.renewal; +package org.tizen.emulator.manager.ui.renewal.dialoghandler; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.SWT; import org.tizen.emulator.manager.ui.renewal.MainDialog; +import org.tizen.emulator.manager.ui.renewal.dialog.DIALOG_MODE; import org.tizen.emulator.manager.ui.renewal.dialog.VMModifyDialog; import org.tizen.emulator.manager.ui.renewal.item.modify.common.DeviceItem; import org.tizen.emulator.manager.ui.renewal.item.modify.common.DisplayItem; @@ -55,7 +56,7 @@ public class VMModifyHandler { // open modify dialog VMModifyDialog dialog = new VMModifyDialog(MainDialog.getShell()); - dialog.setCreateMode(false); + dialog.setDialogMode(DIALOG_MODE.MODIFY); dialog.create(property.getPropertyValue(), getItemList(property)); // TODO set display value to dialog diff --git a/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/TextInputBoxItem.java b/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/TextInputBoxItem.java index f883ed8..1e5f261 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/TextInputBoxItem.java +++ b/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/TextInputBoxItem.java @@ -39,6 +39,7 @@ import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import org.tizen.emulator.manager.renewal.resources.ImageResources; +import org.tizen.emulator.manager.ui.renewal.dialog.DIALOG_MODE; import org.tizen.emulator.manager.ui.renewal.item.modify.comp.IconItemTitle; import org.tizen.emulator.manager.ui.renewal.item.modify.comp.ModifyItem; import org.tizen.emulator.manager.ui.renewal.widgets.TextInputBox; @@ -79,15 +80,13 @@ public abstract class TextInputBoxItem extends ModifyDialogItem { protected void makeBody(int textBoxWidth) { item.setBodyLayoutDefault(); - if (getDialog().isCreateMode()) { - createTextBox(textBoxWidth); - - } else { + if (getDialog().getDialogMode() == DIALOG_MODE.MODIFY) { createTextLabel(); + } else { + createTextBox(textBoxWidth); } } - // for create mode private void createTextBox(int textBoxWidth) { GridData data = new GridData(); diff --git a/src/org/tizen/emulator/manager/ui/renewal/item/modify/template/CameraItem.java b/src/org/tizen/emulator/manager/ui/renewal/item/modify/template/CameraItem.java index d9e2f4d..d26a0d0 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/item/modify/template/CameraItem.java +++ b/src/org/tizen/emulator/manager/ui/renewal/item/modify/template/CameraItem.java @@ -49,8 +49,9 @@ public class CameraItem extends CheckBoxItem { private static final int NUM_COLUMN = 2; // TODO load from xml - private static final List dataList = + private final List dataList = new ArrayList(); + private void initDataList() { dataList.add(new CheckItemData("rear", "Rear")); dataList.add(new CheckItemData("front", "Front")); 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 55aa7ce..cece42a 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/DeviceTemplateTableViewer.java +++ b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/DeviceTemplateTableViewer.java @@ -46,7 +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.dialoghandler.renewal.DeviceTemplateDialogHandler; +import org.tizen.emulator.manager.devices.DeviceWorkerException; import org.tizen.emulator.manager.logging.EMLogger; import org.tizen.emulator.manager.platform.Profile; import org.tizen.emulator.manager.platform.ProfileList; @@ -55,13 +55,13 @@ 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.ui.renewal.MainDialog; +import org.tizen.emulator.manager.ui.renewal.dialoghandler.DeviceTemplateDialogHandler; import org.tizen.emulator.manager.ui.renewal.widgets.Hyperlink; import org.tizen.emulator.manager.ui.renewal.widgets.ImageButton; 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; @@ -379,8 +379,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer { @Override public void handleEvent(Event event) { if (event.type == SWT.Selection) { - // TODO - DeviceTemplateDialogHandler.create(null); + createDeviceTemplate(null); } } }); @@ -396,7 +395,10 @@ 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) { + createDeviceTemplate(items[0]); + } } } }); @@ -412,11 +414,10 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer { @Override public void handleEvent(Event event) { if (event.type == SWT.Selection) { - - // TODO check please TableItem[] items = table.getSelection(); - DeviceTemplate deviceTemplate = (DeviceTemplate)items[0].getData(); - DeviceTemplateDialogHandler.modify(deviceTemplate.getValue()); + if (items != null && items.length > 0) { + modifyDeviceTemplate(items[0]); + } } } @@ -435,9 +436,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer { if (event.type == SWT.Selection) { TableItem[] items = table.getSelection(); if (items != null && items.length > 0) { - TableItem item = items[0]; - - deleteDeviceTemplate(item); + deleteDeviceTemplate(items[0]); } } } @@ -448,6 +447,97 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer { cloneButton.setEnabled(false); } + private void createDeviceTemplate(TableItem item) { + DeviceTemplateValue value = null; + if (item != null) { + DeviceTemplate template = (DeviceTemplate)item.getData(); + value = template.getValue(); + } + + // open create dialog + DeviceTemplateValue newValue = null; + if (value == null) { + newValue = DeviceTemplateDialogHandler.create(value); + } else { + newValue = DeviceTemplateDialogHandler.clone(value); + } + + if (newValue == null) { + return; + } else { + newValue.setType("custom"); + } + + ProfileButton pButton = null; + for (ProfileButton p : profileButtonList) { + if (p.getProfileName().equals(newValue.getProfile())) { + pButton = p; + break; + } + } + + DeviceTemplate template = new DeviceTemplate(); + + try { + template.create(newValue); + + // for table viewer + addTableItem(pButton, template, 0); + table.setSelection(0); + + } catch (DeviceWorkerException e) { + EMLogger.getLogger().warning(e.getMessage()); + // open message box + MessageBox.openMessageBox(e.getMessage()); + + if (e.isNeedRefresh()) { + refreshDeviceTemplateList(); + } + } + } + + private void modifyDeviceTemplate(TableItem item) { + if (item == null) { + return; + } + + DeviceTemplate deviceTemplate = (DeviceTemplate)item.getData(); + + // open modify dialog + DeviceTemplateValue newValue = + DeviceTemplateDialogHandler.modify(deviceTemplate.getValue()); + + if (newValue == null) { + return; + } + + ProfileButton pButton = null; + for (ProfileButton p : profileButtonList) { + if (p.getProfileName().equals(deviceTemplate.getValue().getProfile())) { + pButton = p; + break; + } + } + + try { + newValue.updateVersion(); + deviceTemplate.modify(newValue); + + // for table viewer + setTableItemProperty(pButton, item, deviceTemplate); + table.redraw(); + table.setSelection(item); + } catch (DeviceWorkerException e) { + EMLogger.getLogger().warning(e.getMessage()); + // open message box + MessageBox.openMessageBox(e.getMessage()); + + if (e.isNeedRefresh()) { + refreshDeviceTemplateList(); + } + } + } + private void deleteDeviceTemplate(TableItem item) { if (item == null) { return; @@ -457,7 +547,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer { try { template.delete(); table.remove(table.indexOf(item)); - } catch (VMWorkerException e) { + } catch (DeviceWorkerException e) { EMLogger.getLogger().warning(e.getMessage()); // open message box MessageBox.openMessageBox(e.getMessage()); diff --git a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/VMListTable.java b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/VMListTable.java index 9f22916..de11287 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/tableviewer/VMListTable.java +++ b/src/org/tizen/emulator/manager/ui/renewal/tableviewer/VMListTable.java @@ -42,11 +42,11 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; -import org.tizen.emulator.manager.dialoghandler.renewal.VMModifyHandler; import org.tizen.emulator.manager.platform.Profile; import org.tizen.emulator.manager.platform.ProfileList; import org.tizen.emulator.manager.renewal.resources.ImageResources; import org.tizen.emulator.manager.ui.renewal.MainDialog; +import org.tizen.emulator.manager.ui.renewal.dialoghandler.VMModifyHandler; import org.tizen.emulator.manager.ui.renewal.widgets.CreateVMCombo; import org.tizen.emulator.manager.ui.renewal.widgets.ImageButton; import org.tizen.emulator.manager.ui.table.Table; diff --git a/src/org/tizen/emulator/manager/ui/table/TableItem.java b/src/org/tizen/emulator/manager/ui/table/TableItem.java index 3e7d695..52b4db7 100644 --- a/src/org/tizen/emulator/manager/ui/table/TableItem.java +++ b/src/org/tizen/emulator/manager/ui/table/TableItem.java @@ -493,6 +493,7 @@ public class TableItem extends Canvas { if (!text.equals(dataList[index].text)) { dataList[index].text = text; dataList[index].textWidth = TextSizeUtil.textExtent(font, text); + dataList[index].needRedrawingText = true; if (parent.getColumnCount() == 0) { parent.updateScrollBars(true); }