From abc0fe598d74fee4122bda6a746ee13c895f7ddf Mon Sep 17 00:00:00 2001 From: "minkee.lee" Date: Thu, 22 Oct 2015 17:13:03 +0900 Subject: [PATCH] dialog: do name checking & auto-generation. - show error if name is invalid. - generate name when create/clone device-template. Change-Id: Ie92257a95ede57fb69050baca776b9af61796ff8 Signed-off-by: minkee.lee --- resource/strings/uimessages.properties | 2 +- .../emulator/manager/ui/renewal/dialog/Dialog.java | 14 ++++ .../manager/ui/renewal/dialog/ModifyDialog.java | 2 +- .../ui/renewal/item/modify/common/ComboItem.java | 45 ++---------- .../item/modify/common/ModifyDialogItem.java | 45 ++++++++++++ .../ui/renewal/item/modify/common/NameItem.java | 80 +++++++++++++++++++-- .../item/modify/common/TextInputBoxItem.java | 41 +++++++---- .../ui/renewal/item/modify/comp/PropertyValue.java | 17 +++++ .../renewal/item/modify/vm/DeviceTemplateItem.java | 4 +- .../manager/ui/renewal/widgets/ComboBox.java | 13 ---- .../manager/ui/renewal/widgets/NinePatchBox.java | 16 +++++ .../manager/ui/renewal/widgets/TextInputBox.java | 24 +++++++ .../emulator/manager/vms/helper/HelperClass.java | 82 ++++++++++++++++++++++ 13 files changed, 309 insertions(+), 76 deletions(-) diff --git a/resource/strings/uimessages.properties b/resource/strings/uimessages.properties index f7ff21c..be0ab56 100644 --- a/resource/strings/uimessages.properties +++ b/resource/strings/uimessages.properties @@ -112,7 +112,7 @@ VMNameViewItem.NameError.2=Same name already exists\! VMNameViewItem.NameError.3=If you do not need this VM( VMNameViewItem.NameError.4=), delete VM folder. VMNameViewItem.NameError.5=VM folder path: -VMNameViewItem.NameError.6=Please input VM name. +VMNameViewItem.NameError.6=Please input name. VMsMainView.FailedToCreate.0=Failed to create Emulator ( VMsMainView.FailedToDelete.0=Failed to delete Emulator ( VMsMainView.FailedToExportAs.0=Failed to export as base image ( 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 b5bfec1..45be579 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/dialog/Dialog.java +++ b/src/org/tizen/emulator/manager/ui/renewal/dialog/Dialog.java @@ -209,4 +209,18 @@ public class Dialog { } } + public boolean isCloneMode() { + if (mode == DIALOG_MODE.CLONE) { + return true; + } + return false; + } + + public boolean isModifyMode() { + if (mode == DIALOG_MODE.MODIFY) { + return true; + } + return false; + } + } diff --git a/src/org/tizen/emulator/manager/ui/renewal/dialog/ModifyDialog.java b/src/org/tizen/emulator/manager/ui/renewal/dialog/ModifyDialog.java index 897d5fb..b30d4be 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/dialog/ModifyDialog.java +++ b/src/org/tizen/emulator/manager/ui/renewal/dialog/ModifyDialog.java @@ -138,10 +138,10 @@ public class ModifyDialog extends Dialog { public void checkValid() { boolean isOKButtonEnable = true; + for (ModifyDialogItem dialogItem : itemList) { if (!dialogItem.isValid()) { isOKButtonEnable = false; - break; } } diff --git a/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/ComboItem.java b/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/ComboItem.java index 25d6572..198271c 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/ComboItem.java +++ b/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/ComboItem.java @@ -35,11 +35,8 @@ import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; -import org.tizen.emulator.manager.renewal.resources.ImageResources; import org.tizen.emulator.manager.ui.renewal.item.modify.comp.ModifyItem; import org.tizen.emulator.manager.ui.renewal.widgets.ComboBox; @@ -99,48 +96,16 @@ public abstract class ComboItem extends ModifyDialogItem { return comboBox.getSelectedData(); } - public void setItemState(boolean isError, int contentRight, String msg) { - // change combobox border - comboBox.setError(isError); - - if (isError) { - // show error icon - if (stateIconCanvas == null || stateIconCanvas.isDisposed()) { - stateIconCanvas = new Canvas(item.getBody(), SWT.NONE); - stateIconCanvas.setBackgroundImage(ImageResources.ICON_STATE_ERROR.getImage()); - } - int width = ERROR_ICON_SIZE, height = ERROR_ICON_SIZE; - FormData data = new FormData(width, height); - int left = contentRight + ERROR_ICON_SPACING; - data.left = new FormAttachment(0, left); - data.top = new FormAttachment(0, (item.getItemHeight() - height) / 2); - stateIconCanvas.setLayoutData(data); - stateIconCanvas.setToolTipText(msg); - stateIconCanvas.moveAbove(null); - - } else { - if (stateIconCanvas == null || stateIconCanvas.isDisposed()) { - return; - } - // hide error icon - FormData data = new FormData(0, 0); - stateIconCanvas.setLayoutData(data); - item.getBody().layout(true,true); - - } + @Override + public void changeWidgetState(boolean isError) { + comboBox.setError(isError); } protected void createCombo(ModifyItem item, int width) { -// item.setBodyLayoutDefault(); -// -// // create combo widget -// GridData data = new GridData(width, COMBO_HEIGHT); -// data.grabExcessVerticalSpace = true; -// data.verticalAlignment = SWT.CENTER; - - item.getBody().setLayout(new FormLayout()); + + item.setBodyLayoutForm(); FormData data = new FormData(); data.left = new FormAttachment(0, ModifyItem.BODY_MARGIN_LEFT); data.top = new FormAttachment(0, ModifyItem.WIDGET_TOP); diff --git a/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/ModifyDialogItem.java b/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/ModifyDialogItem.java index abc8b21..3c6b078 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/ModifyDialogItem.java +++ b/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/ModifyDialogItem.java @@ -31,6 +31,9 @@ package org.tizen.emulator.manager.ui.renewal.item.modify.common; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.FormAttachment; +import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Canvas; import org.tizen.emulator.manager.renewal.resources.ImageResources; @@ -163,4 +166,46 @@ public abstract class ModifyDialogItem implements IModifyDialogItem { public int getHeight() { return item.getHeight(); } + + + public void changeWidgetState(boolean isError) { + // Override this. + // In this function, you change widget in item to error state. + // For example, change border color red of combobox, input text box. + } + + /** This change item's state : error or normal */ + public void changeItemState(boolean isError, int contentRight, String msg) { + changeWidgetState(isError); + changeStateIcon(isError, ModifyItem.BODY_MARGIN_LEFT + contentRight, msg); + } + + public void changeStateIcon(boolean isError, int contentRight, String msg) { + if (isError) { + // show error icon + if (stateIconCanvas == null || stateIconCanvas.isDisposed()) { + stateIconCanvas = new Canvas(item.getBody(), SWT.NONE); + stateIconCanvas.setBackgroundImage(ImageResources.ICON_STATE_ERROR.getImage()); + } + int width = ERROR_ICON_SIZE, height = ERROR_ICON_SIZE; + FormData data = new FormData(width, height); + int left = contentRight + ERROR_ICON_SPACING; + data.left = new FormAttachment(0, left); + data.top = new FormAttachment(0, (item.getItemHeight() - height) / 2); + stateIconCanvas.setLayoutData(data); + stateIconCanvas.setToolTipText(msg); + stateIconCanvas.moveAbove(null); + + } else { + if (stateIconCanvas == null || stateIconCanvas.isDisposed()) { + return; + } + // hide error icon + FormData data = new FormData(0, 0); + stateIconCanvas.setLayoutData(data); + } + + item.getBody().layout(true,true); + } + } diff --git a/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/NameItem.java b/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/NameItem.java index d28fd5e..13392dc 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/NameItem.java +++ b/src/org/tizen/emulator/manager/ui/renewal/item/modify/common/NameItem.java @@ -31,8 +31,13 @@ package org.tizen.emulator.manager.ui.renewal.item.modify.common; import org.eclipse.swt.widgets.Composite; +import org.tizen.emulator.manager.logging.EMLogger; import org.tizen.emulator.manager.renewal.resources.ImageResources; +import org.tizen.emulator.manager.resources.StringResources; +import org.tizen.emulator.manager.ui.Messages; import org.tizen.emulator.manager.ui.renewal.item.modify.comp.PropertyValue; +import org.tizen.emulator.manager.vms.VMProperty; +import org.tizen.emulator.manager.vms.helper.HelperClass; public class NameItem extends TextInputBoxItem { @@ -56,7 +61,15 @@ public class NameItem extends TextInputBoxItem { if (value == null) { return; } - this.value = value.getName(); + if (getDialog().isCreateMode()) { + this.value = value.getDefaultName(); + + } else if (getDialog().isCloneMode()){ + this.value = value.getCloneName(); + + } else { + this.value = value.getName(); + } } @Override @@ -65,6 +78,7 @@ public class NameItem extends TextInputBoxItem { return; } textInputBox.setText(value); + textInputBox.selectAllText(); } @@ -79,10 +93,29 @@ public class NameItem extends TextInputBoxItem { @Override public boolean isValid() { - if (value == null || value.isEmpty()) { - return false; + if (!getDialog().isCreateMode()) { + return true; + } + + boolean isValid = true; + if (getDialog().isModifyMode()) { + return true; + } + + String msg = ""; + if (getDialog().getPropertyValue().isTemplateValue()) { + msg = checkTemplateName(value); + + } else { + msg = checkVMName(value); + } + + if (!msg.isEmpty()) { + isValid = false; } - return true; + + changeItemState(!isValid, INPUT_BOX_WIDTH, msg); + return isValid; } @@ -97,4 +130,43 @@ public class NameItem extends TextInputBoxItem { return new NameItem(getName(), getTitle()); } + + public static String checkVMName(String newName) { + String errorMsg = ""; //$NON-NLS-1$ + VMProperty prop = null; + + if (newName.length() > VMProperty.MAX_NAME_LEN) { + errorMsg = Messages.getString("VMNameViewItem.NameError.0"); //$NON-NLS-1$ + + } else if (!HelperClass.checkString(newName)) { + errorMsg = Messages.getString("VMNameViewItem.NameError.1"); //$NON-NLS-1$ + + } else if ((prop = HelperClass.checkDupulicateName(newName)) != null) { + errorMsg = Messages.getString("VMNameViewItem.NameError.2"); //$NON-NLS-1$ + EMLogger.getLogger().info(Messages.getString("VMNameViewItem.NameError.3") + newName + Messages.getString("VMNameViewItem.NameError.4") //$NON-NLS-1$ //$NON-NLS-2$ + + StringResources.NEW_LINE + Messages.getString("VMNameViewItem.NameError.5") + prop.getPropertyFile().getAbsolutePath()); //$NON-NLS-1$ + + } else if (newName.isEmpty()) { + errorMsg = Messages.getString("VMNameViewItem.NameError.6"); //$NON-NLS-1$ + } + + return errorMsg; + } + + public static String checkTemplateName(String newName) { + String errorMsg = ""; + + if (newName.length() > VMProperty.MAX_NAME_LEN) { + errorMsg = Messages.getString("VMNameViewItem.NameError.0"); //$NON-NLS-1$ + + } else if (HelperClass.checkDuplicateTemplateName(newName) != null) { + errorMsg = Messages.getString("VMNameViewItem.NameError.2"); //$NON-NLS-1$ + + } else if (newName.isEmpty()) { + errorMsg = Messages.getString("VMNameViewItem.NameError.6"); //$NON-NLS-1$ + } + + return errorMsg; + } + } 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 094b181..f2dfdb5 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 @@ -34,7 +34,8 @@ package org.tizen.emulator.manager.ui.renewal.item.modify.common; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.FormAttachment; +import org.eclipse.swt.layout.FormData; import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; @@ -77,7 +78,7 @@ public abstract class TextInputBoxItem extends ModifyDialogItem { protected void makeBody(int textBoxWidth) { - item.setBodyLayoutDefault(); + item.setBodyLayoutForm(); if (getDialog().getDialogMode() == DIALOG_MODE.MODIFY || getDialog().getDialogMode() == DIALOG_MODE.DETAIL) { @@ -89,15 +90,15 @@ public abstract class TextInputBoxItem extends ModifyDialogItem { // for create mode private void createTextBox(int textBoxWidth) { - GridData data = new GridData(); - data.heightHint = ModifyItem.WIDGET_HEIGHT; - data.widthHint = textBoxWidth; - data.grabExcessVerticalSpace = true; - data.verticalAlignment = SWT.CENTER; + FormData data = new FormData(textBoxWidth, ModifyItem.WIDGET_HEIGHT); + data.top = new FormAttachment(0, (item.getHeight() - ModifyItem.WIDGET_HEIGHT) / 2); + data.left = new FormAttachment(0, ModifyItem.BODY_MARGIN_LEFT); + textInputBox = new TextInputBox(item.getBody(), SWT.NONE); textInputBox.setLayoutData(data); textInputBox.setText(value); + textInputBox.selectAllText(); addTextListener(); } @@ -115,13 +116,23 @@ public abstract class TextInputBoxItem extends ModifyDialogItem { private void createTextLabel() { // init canvas; - GridData data = new GridData(); - data.heightHint = getHeight() - ModifyItem.LINE_WIDTH; - data.horizontalAlignment = SWT.FILL; - data.grabExcessHorizontalSpace = true; - Canvas canvas = new Canvas(item.getBody(), SWT.NONE); - canvas.setLayoutData(data); - - WidgetHelper.drawText(canvas, value, SWT.NONE); + Canvas detailCanvas = new Canvas(item.getBody(), SWT.NONE); + + FormData data = new FormData(); + data.top = new FormAttachment(0, 0); + data.left = new FormAttachment(0, ModifyItem.BODY_MARGIN_LEFT); + data.bottom = new FormAttachment(100, -ModifyItem.LINE_WIDTH); + data.right = new FormAttachment(100, 0); + + detailCanvas.setLayoutData(data); + + WidgetHelper.drawText(detailCanvas, value, SWT.NONE); + } + + @Override + public void changeWidgetState(boolean isError) { + if (getDialog().isCreateMode()) { + textInputBox.setError(isError); + } } } diff --git a/src/org/tizen/emulator/manager/ui/renewal/item/modify/comp/PropertyValue.java b/src/org/tizen/emulator/manager/ui/renewal/item/modify/comp/PropertyValue.java index 3f76bcb..90d3382 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/item/modify/comp/PropertyValue.java +++ b/src/org/tizen/emulator/manager/ui/renewal/item/modify/comp/PropertyValue.java @@ -45,6 +45,7 @@ import org.tizen.emulator.manager.platform.Skin; import org.tizen.emulator.manager.vms.RESOLUTION; import org.tizen.emulator.manager.vms.SKIN_SHAPE; import org.tizen.emulator.manager.vms.VMPropertyValue; +import org.tizen.emulator.manager.vms.helper.HelperClass; import org.tizen.emulator.manager.vms.xml.OptionType; import org.tizen.emulator.manager.vms.xml.SubOptionType; @@ -424,6 +425,22 @@ public class PropertyValue { } } + public String getDefaultName() { + if (isTemplateValue()) { + return HelperClass.getDefaultTemplateName(templateValue); + } else if (isVMValue()) { + return HelperClass.getDefaultVMName(vmValue); + } + return ""; + } + + public String getCloneName() { + if (isTemplateValue()) { + return HelperClass.getCloneTemplateName(templateValue); + } + return ""; + } + // public /* public RESOLUTION getResolution() { diff --git a/src/org/tizen/emulator/manager/ui/renewal/item/modify/vm/DeviceTemplateItem.java b/src/org/tizen/emulator/manager/ui/renewal/item/modify/vm/DeviceTemplateItem.java index 395092e..e4d24ad 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/item/modify/vm/DeviceTemplateItem.java +++ b/src/org/tizen/emulator/manager/ui/renewal/item/modify/vm/DeviceTemplateItem.java @@ -37,7 +37,6 @@ import org.tizen.emulator.manager.platform.Profile; import org.tizen.emulator.manager.platform.ProfileList; import org.tizen.emulator.manager.ui.renewal.item.modify.common.ComboItem; import org.tizen.emulator.manager.ui.renewal.item.modify.common.ModifyDialogItem; -import org.tizen.emulator.manager.ui.renewal.item.modify.comp.ModifyItem; import org.tizen.emulator.manager.ui.renewal.item.modify.comp.PropertyValue; import org.tizen.emulator.manager.ui.renewal.item.modify.comp.SubTreeModifyItem; import org.tizen.emulator.manager.ui.renewal.item.modify.comp.TreeItemTitle; @@ -160,7 +159,8 @@ public class DeviceTemplateItem extends ComboItem { isValid = false; msg = "Please select device-template."; } - setItemState(!isValid, ModifyItem.BODY_MARGIN_LEFT + COMBO_WIDTH, msg); + + changeItemState(!isValid, COMBO_WIDTH, msg); return isValid; diff --git a/src/org/tizen/emulator/manager/ui/renewal/widgets/ComboBox.java b/src/org/tizen/emulator/manager/ui/renewal/widgets/ComboBox.java index efe1471..59b7f23 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/widgets/ComboBox.java +++ b/src/org/tizen/emulator/manager/ui/renewal/widgets/ComboBox.java @@ -279,19 +279,6 @@ public class ComboBox extends NinePatchBox { } - public void setError(boolean isError) { - if (isError) { - setState(WSTATE.ERROR); - - } else { - // TODO is enough ? - setState(WSTATE.NORMAL); - } - redraw(); - } - - - private void addMouseListener() { Listener mouseListener = new Listener() { diff --git a/src/org/tizen/emulator/manager/ui/renewal/widgets/NinePatchBox.java b/src/org/tizen/emulator/manager/ui/renewal/widgets/NinePatchBox.java index ca447bf..d125484 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/widgets/NinePatchBox.java +++ b/src/org/tizen/emulator/manager/ui/renewal/widgets/NinePatchBox.java @@ -74,6 +74,10 @@ public abstract class NinePatchBox extends Canvas{ addDisposeListener(); } + public boolean isErrorState() { + return state == WSTATE.ERROR; + } + private void addPaintListener() { this.addPaintListener(new PaintListener() { @@ -124,6 +128,18 @@ public abstract class NinePatchBox extends Canvas{ }); } + public void setError(boolean isError) { + if (isError) { + setState(WSTATE.ERROR); + + } else { + // TODO is enough ? + setState(WSTATE.NORMAL); + } + redraw(); + } + + diff --git a/src/org/tizen/emulator/manager/ui/renewal/widgets/TextInputBox.java b/src/org/tizen/emulator/manager/ui/renewal/widgets/TextInputBox.java index 6d69b42..3ebb06f 100644 --- a/src/org/tizen/emulator/manager/ui/renewal/widgets/TextInputBox.java +++ b/src/org/tizen/emulator/manager/ui/renewal/widgets/TextInputBox.java @@ -101,6 +101,10 @@ public class TextInputBox extends NinePatchBox{ return text.getText(); } + public void selectAllText() { + text.selectAll(); + } + private void initBox() { GridLayout layout = new GridLayout(); layout.marginHeight = TEXT_MARGIN_HEIGHT; @@ -134,12 +138,18 @@ public class TextInputBox extends NinePatchBox{ @Override public void focusLost(FocusEvent arg0) { + if (isErrorState()) { + return; + } setState(WSTATE.NORMAL); redraw(); } @Override public void focusGained(FocusEvent arg0) { + if (isErrorState()) { + return; + } setState(WSTATE.SELECTED); redraw(); } @@ -152,6 +162,9 @@ public class TextInputBox extends NinePatchBox{ @Override public void handleEvent(Event e) { + if (isErrorState()) { + return; + } if (getState() == WSTATE.SELECTED) { return; } @@ -238,6 +251,17 @@ public class TextInputBox extends NinePatchBox{ ImageResources.TEXT_INPUT_BOX_NORMAL_B, ImageResources.TEXT_INPUT_BOX_NORMAL_LB, ImageResources.TEXT_INPUT_BOX_NORMAL_L); + + ninePatchResourceMap.setImages(WSTATE.ERROR, ColorResources.WHITE, + ColorResources.WHITE, + ImageResources.INPUT_BOX_ERROR_LT, + ImageResources.INPUT_BOX_ERROR_T, + ImageResources.INPUT_BOX_ERROR_RT, + ImageResources.INPUT_BOX_ERROR_R, + ImageResources.INPUT_BOX_ERROR_RB, + ImageResources.INPUT_BOX_ERROR_B, + ImageResources.INPUT_BOX_ERROR_LB, + ImageResources.INPUT_BOX_ERROR_L); } diff --git a/src/org/tizen/emulator/manager/vms/helper/HelperClass.java b/src/org/tizen/emulator/manager/vms/helper/HelperClass.java index b4f7043..847e226 100644 --- a/src/org/tizen/emulator/manager/vms/helper/HelperClass.java +++ b/src/org/tizen/emulator/manager/vms/helper/HelperClass.java @@ -40,16 +40,22 @@ import java.net.Inet6Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; +import java.text.SimpleDateFormat; import java.util.Arrays; +import java.util.Date; import java.util.Enumeration; import java.util.List; import java.util.logging.Level; import org.tizen.emulator.manager.EmulatorManager; +import org.tizen.emulator.manager.devices.DeviceTemplate; +import org.tizen.emulator.manager.devices.DeviceTemplateList; +import org.tizen.emulator.manager.devices.DeviceTemplateValue; import org.tizen.emulator.manager.logging.EMLogger; import org.tizen.emulator.manager.ui.MainDialog; import org.tizen.emulator.manager.vms.EmulatorVMList; import org.tizen.emulator.manager.vms.VMProperty; +import org.tizen.emulator.manager.vms.VMPropertyValue; public class HelperClass { @@ -88,6 +94,28 @@ public class HelperClass { return null; } + + public static DeviceTemplate checkDuplicateTemplateName(String t) { + boolean isWindows = false; + if (EmulatorManager.isWin()) { + isWindows = true; + t = t.toLowerCase(); + } + DeviceTemplate[] list = DeviceTemplateList.getDeviceTemplateList(true); + for (DeviceTemplate template : list) { + if (isWindows ) { + if (template.getValue().getName().toLowerCase().equals(t)) { + return template; + } + } else { + if (template.getValue().getName().equals(t)) { + return template; + } + } + } + return null; + } + public static boolean isPathAvaliable(String path) { if (path != null) { File partFile = new File(path+".part"); //$NON-NLS-1$ @@ -290,5 +318,59 @@ public class HelperClass { } } + // Generate template name automatically. + // ex) "mobile(1)" + public static String getDefaultTemplateName(DeviceTemplateValue value) { + String prefix = value.getProfile(); + prefix += "("; + + String newName; + int count=1; + do { + newName = prefix + Integer.toString(count++) + ")"; + } while (checkDuplicateTemplateName(newName) != null); + + return newName; + } + + public static String getCloneTemplateName(DeviceTemplateValue value) { + // remove (??) in the end of name. + String prefix = value.getName().replaceAll("\\([0-9]*\\)$", ""); + prefix += "("; + + String newName; + int count=2; + do { + newName = prefix + Integer.toString(count++) + ")"; + } while (checkDuplicateTemplateName(newName) != null); + + return newName; + } + + + public static String getDefaultVMName(VMPropertyValue value) { + StringBuilder sb = new StringBuilder(); + sb.append(value.baseImage.getProfile().substring(0,1).toLowerCase()); + if (!value.baseImage.isStandard()) { + sb.append("c"); //$NON-NLS-1$ + } + sb.append("-"); //$NON-NLS-1$ + + SimpleDateFormat formatter = new SimpleDateFormat ("MMdd"); //$NON-NLS-1$ + Date currentTime = new Date( ); + String timeStr = formatter.format(currentTime); + sb.append(timeStr); + sb.append("-"); //$NON-NLS-1$ + + int count=1; + String prefix = sb.toString(); + StringBuilder vmName = null; + do { + vmName = new StringBuilder(); + vmName.append(prefix).append(Integer.toString(count++)); + } while (HelperClass.checkDupulicateName(vmName.toString()) != null) ; + + return vmName.toString(); + } } -- 2.7.4