base image table: show information of selected base image
authorjihye424.kim <jihye424.kim@samsung.com>
Sat, 7 Nov 2015 00:05:31 +0000 (09:05 +0900)
committerjihye424.kim <jihye424.kim@samsung.com>
Sat, 7 Nov 2015 00:10:14 +0000 (09:10 +0900)
- base image information: version, architecture, skin shape(only wearable)
- add delete button to text box for base image name

Change-Id: I5a95362b594fd1533bdc98c63f7bae33bfc27e31
Signed-off-by: jihye424.kim <jihye424.kim@samsung.com>
src/org/tizen/emulator/manager/ui/renewal/tableviewer/CreateVMTopComposite.java
src/org/tizen/emulator/manager/ui/renewal/widgets/TextInputBox.java

index b671c71..be4099e 100644 (file)
@@ -50,6 +50,7 @@ import org.tizen.emulator.manager.platform.baseimage.CustomBaseImageWorker;
 import org.tizen.emulator.manager.renewal.resources.FontResources;
 import org.tizen.emulator.manager.renewal.resources.ImageResources;
 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;
@@ -73,6 +74,10 @@ public class CreateVMTopComposite extends Composite {
        private Label errorImageLabel;
        private Label errorMsgLabel;
 
+       private Label imageVersionLabel;
+       private Label imageArchLabel;
+       private Label imageSkinShapeLabel;
+
        private boolean isNameValid = false;
 
        public CreateVMTopComposite(CreateVMTableViewer viewer) {
@@ -83,7 +88,7 @@ public class CreateVMTopComposite extends Composite {
        }
 
        public void makeComposite() {
-               vmNameText = new TextInputBox(this, SWT.NONE);
+               vmNameText = new TextInputBox(this, SWT.NONE, true);
                vmNameText.getTextWidget().addModifyListener(new ModifyListener() {
                        @Override
                        public void modifyText(ModifyEvent e) {
@@ -103,7 +108,14 @@ public class CreateVMTopComposite extends Composite {
                errorMsgLabel   = new Label(this, SWT.NONE);
                errorImageLabel = new Label(this, SWT.NONE);
                errorMsgLabel.setFont(FontResources.DEFAULT_FONT_10.getFont());
-               errorImageLabel.setFont(FontResources.DEFAULT_FONT_10.getFont());
+
+               // for print base image information
+               imageVersionLabel = new Label(this, SWT.NONE);
+               imageVersionLabel.setFont(FontResources.DEFAULT_FONT_10.getFont());
+               imageArchLabel = new Label(this, SWT.NONE);
+               imageArchLabel.setFont(FontResources.DEFAULT_FONT_10.getFont());
+               imageSkinShapeLabel = new Label(this, SWT.NONE);
+               imageSkinShapeLabel.setFont(FontResources.DEFAULT_FONT_10.getFont());
 
                setLayout();
        }
@@ -116,7 +128,7 @@ public class CreateVMTopComposite extends Composite {
                if (profile == null) {
                        profile = viewer.getProfile();
                        if (profile == null) {
-                               setErrorMessage("You need to select profile!!");
+                               setErrorMessageLabel("You need to select profile!!");
                                return;
                        }
                }
@@ -127,12 +139,7 @@ public class CreateVMTopComposite extends Composite {
                                continue;
                        }
 
-                       if (image.isStandard()) {
-                               baseImageCombo.addItem(image.getName(), image);
-                       } else {
-                               String text = image.getName() + " (Version: " + image.getVersion() + ")";
-                               baseImageCombo.addItem(text, image);
-                       }
+                       baseImageCombo.addItem(image.getName(), image);
                }
 
                if (!baseImageCombo.getItemList().isEmpty()) {
@@ -156,68 +163,80 @@ public class CreateVMTopComposite extends Composite {
        Listener customImageListener = new Listener() {
                @Override
                public void handleEvent(Event event) {
-                       switch(event.type) {
-                       case SWT.Selection:
-                               CustomBaseImageValue value = BaseImageDialogHandler.create(profile.getName());
-                               if (value != null) {
-                                       BaseImage image = CustomBaseImageWorker.createCustomBaseImage(value);
-                                       if (image == null) {
-                                               // TODO
-                                               return;
-                                       }
-                                       String text = image.getName() + " (Version: " + image.getVersion() + ")";
-                                       baseImageCombo.addItem(0, text, image);
-                                       baseImageCombo.select(0);
-                                       baseImage = image;
-                               }
-                       default:
-                                       break;
+                       if (event.type != SWT.Selection) {
+                               return;
                        }
 
+                       // 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;
+                       }
                }
        };
 
        Listener imageComboListener = new Listener() {
                @Override
                public void handleEvent(Event event) {
-                       switch(event.type) {
-                       case SWT.Selection:
+                               if (event.type != SWT.Selection) {
+                                       return;
+                               }
+
+                               // handling selection event
                                baseImage = (BaseImage)baseImageCombo.getSelectedData();
+
+                               if (vmNameText.getTextWidget().getText().isEmpty()) {
+                                       vmNameText.setText(getDefaultName());
+                               }
+
                                String toolTip = "Type: " + (baseImage.isStandard() ? "standard" : "cusotm")
                                        + StringResources.NEW_LINE
                                        + "Platform: " + baseImage.getPlatformName()
                                        + StringResources.NEW_LINE
-                                       + "Skin shape: " + baseImage.getSkinShape().toString()
                                        + StringResources.NEW_LINE
                                        + "Path: " + baseImage.getPath();
                                baseImageCombo.setToolTipText(toolTip);
-                               if (vmNameText.getTextWidget().getText().isEmpty()) {
-                                       vmNameText.setText(getDefaultName());
+
+                               imageVersionLabel.setText("Version: " + baseImage.getVersion());
+                               imageArchLabel.setText("Architecture: " + baseImage.getCpuType().getBit() + " bit");
+                               if (profile.getName().equals("wearable")) {
+                                       imageSkinShapeLabel.setText("Skin Shape: " + baseImage.getSkinShape());
+                                       imageSkinShapeLabel.pack();
+                               } else {
+                                       imageSkinShapeLabel.setText("");
                                }
+
                                // change base image
                                viewer.setBaseImage(baseImage);
-                       default:
-                                       break;
-                       }
                }
        };
 
        private void vmNameModified() {
+               //
+               vmNameText.setClearButtonStatus();
+               //
                String name = vmNameText.getTextWidget().getText();
 
-               setErrorMessage(NameItem.checkVMName(name));
+               setErrorMessageLabel(NameItem.checkVMName(name));
 
                viewer.setVmName(name);
        }
 
-       private void setErrorMessage(String err) {
+       private void setErrorMessageLabel(String err) {
                if (!err.isEmpty()) {
-                       System.out.println(err);
                        errorImageLabel.setImage(ImageResources.ICON_STATE_ERROR.getImage());
                        errorMsgLabel.setText("Error: " + err);
                        isNameValid = false;
                } else {
-                       errorImageLabel.setText("");
+                       errorImageLabel.setImage(null);
                        errorMsgLabel.setText("");
                        isNameValid = true;
                }
@@ -312,5 +331,20 @@ public class CreateVMTopComposite extends Composite {
                data.width = 30;
                data.height = 26;
                addCustomImageBtn.setLayoutData(data);
+
+               data = new FormData();
+               data.top = new FormAttachment(vmNameText, 12);
+               data.left = new FormAttachment(addCustomImageBtn, 10);
+               imageVersionLabel.setLayoutData(data);
+
+               data = new FormData();
+               data.top = new FormAttachment(vmNameText, 12);
+               data.left = new FormAttachment(imageVersionLabel, 20);
+               imageArchLabel.setLayoutData(data);
+
+               data = new FormData();
+               data.top = new FormAttachment(vmNameText, 12);
+               data.left = new FormAttachment(imageArchLabel, 20);
+               imageSkinShapeLabel.setLayoutData(data);
        }
 }
index cc4eb1c..2da87ef 100644 (file)
@@ -67,9 +67,19 @@ public class TextInputBox extends NinePatchBox{
                this(parent, style, false);
        }
 
+       /**
+        * If 'needClearButton' value is true,
+        * need to call 'setClearButtonStatus' function when text is modified.
+        * Text input box does not know text has been modified or not
+        *
+        * @param parent
+        * @param style
+        * @param needClearButton
+        */
        public TextInputBox(Composite parent, int style, boolean needClearButton) {
                super(parent, style);
                this.style = style;
+               //default -> button is set disable status
                this.needClearButton = needClearButton;
 
                initNinePatchResourceMap();