device template: seperate make table and set value of table
authorjihye424.kim <jihye424.kim@samsung.com>
Sat, 5 Dec 2015 08:52:35 +0000 (17:52 +0900)
committerSeokYeon Hwang <syeon.hwang@samsung.com>
Thu, 10 Dec 2015 03:49:29 +0000 (12:49 +0900)
- for redraw table, set value of table item (does not make table item)
- make tablePack() funtion
-- set table column width
-- need to compute column width after action (create, modify, delete)

Change-Id: I066666be811cf9815ccefa6550c1b8ed5a20260c
Signed-off-by: jihye424.kim <jihye424.kim@samsung.com>
src/org/tizen/emulator/manager/ui/renewal/tableviewer/BaseImageTableViewer.java
src/org/tizen/emulator/manager/ui/renewal/tableviewer/DeviceTemplateTableViewer.java

index 1c51a59..1138083 100644 (file)
@@ -323,8 +323,7 @@ public class BaseImageTableViewer extends AbstractTableViewer {
 
        private void tablePack() {
                table.getColumn(0).setWidth(30);
-               table.getColumn(1).setWidth(100);
-               for (int i = 2; i < titles.length; i++) {
+               for (int i = 1; i < titles.length; i++) {
                        table.getColumn(i).pack();
                }
        }
@@ -621,6 +620,7 @@ public class BaseImageTableViewer extends AbstractTableViewer {
                                                }
                                        }
                                }
+                               tablePack();
                        }
 
                        tableSelected();
index 7c5e611..327779f 100644 (file)
@@ -38,6 +38,7 @@ import org.eclipse.swt.events.KeyAdapter;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
 import org.eclipse.swt.widgets.Composite;
@@ -55,6 +56,7 @@ 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;
+import org.tizen.emulator.manager.renewal.resources.ColorResources;
 import org.tizen.emulator.manager.renewal.resources.ImageResources;
 import org.tizen.emulator.manager.resources.StringResources;
 import org.tizen.emulator.manager.ui.renewal.MainDialog;
@@ -84,6 +86,10 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
        private ImageButton modifyButton;
        private ImageButton deleteButton;
 
+       // for error table item
+       private Color backupTableItemForeground;
+       private Color backupTableItemSelectedForeground;
+
        public DeviceTemplateTableViewer(Shell shell, String key) {
                super(shell, key);
        }
@@ -155,7 +161,10 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
        @Override
        void showTableComposite() {
                if (!isInitialized()) {
-                       setTemplateListTable();
+                       makeTemplateListTable();
+               } else if (isNeedRedraw()) {
+                       setValueOfTemplateListTable();
+                       resetCondition();
                }
        }
 
@@ -173,7 +182,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
 
        public void refreshDeviceTemplateList() {
                ProfileList.settingDeviceTemplateList();
-               setTemplateListTable();
+               makeTemplateListTable();
        }
 
        private void makeProfileButton() {
@@ -328,7 +337,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
                });
        }
 
-       private void setTemplateListTable() {
+       private void makeTemplateListTable() {
                table.removeAll();
                for (ProfileButton pButton : profileButtonList) {
                        if (pButton.getProfile() == null) {
@@ -339,11 +348,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
                        }
                }
 
-               table.getColumn(0).setWidth(30);
-               table.getColumn(1).setWidth(100);
-               for (int i = 2; i < titles.length; i++) {
-                       table.getColumn(i).pack();
-               }
+               tablePack();
        }
 
        private void makeTableItem(ProfileButton pButton) {
@@ -368,29 +373,61 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
                        item = new TableItem(table, SWT.NULL);
                }
 
+               if (template.getValue().isStandard()) {
+                       item.setImage(1, pButton.getIcon());
+               } else {
+                       item.setImage(1, pButton.getCustomIcon());
+               }
+
                //
-               setTableItemProperty(pButton, item, template);
+               setTableItemProperty(item, template);
                setTableItemMenu(item, template);
                //
        }
 
-       private void setTableItemProperty(ProfileButton pButton, TableItem item, DeviceTemplate template) {
+       // reset table item value from template property
+       private void setValueOfTemplateListTable() {
+               for (TableItem item : table.getItems()) {
+                       DeviceTemplate template = (DeviceTemplate)item.getData();
+                       setTableItemProperty(item, template);
+               }
+               tablePack();
+       }
+
+       private void tablePack() {
+               table.getColumn(0).setWidth(30);
+               for (int i = 1; i < titles.length; i++) {
+                       table.getColumn(i).pack();
+               }
+       }
+
+       private void setTableItemProperty(TableItem item, DeviceTemplate template) {
                DeviceTemplateValue value = template.getValue();
 
                if (value.getSkinPath() != null && !value.getSkinPath().isEmpty()) {
                        if (value.getSkin() == null || value.isSettingSkinByManager()) {
+                               if (backupTableItemForeground == null) {
+                                       backupTableItemForeground = item.getForeground();
+                               }
+                               if (backupTableItemSelectedForeground == null) {
+                                       backupTableItemSelectedForeground = item.getSelectedForground();
+                               }
                                item.setImage(0, ImageResources.ICON_STATE_ERROR.getImage());
-                       } else {
+                               item.setForeground(ColorResources.ERROR_TABLE_ITEM_FONT.getColor());
+                               item.setSelectedForeground(ColorResources.ERROR_SELECTED_TABLE_ITEM_FONT.getColor());
+                               //
+                               setRedrawVMList();
+                               //
+                       } else if (item.getImage(0) != null){
                                item.setImage(0, null);
+                               item.setForeground(backupTableItemForeground);
+                               item.setSelectedForeground(backupTableItemSelectedForeground);
+                               //
+                               setRedrawVMList();
+                               //
                        }
                }
 
-               if (value.isStandard()) {
-                       item.setImage(1, pButton.getIcon());
-               } else {
-                       item.setImage(1, pButton.getCustomIcon());
-               }
-
                item.setText(2, value.getName());
                item.setText(3, value.getResolution().toString());
                item.setText(4, String.valueOf(value.getDisplaySize()) + " " + value.getDisplaySizeUnit());
@@ -405,7 +442,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
                                        + "Check skin directory or change skin directory.";
                        item.setToolTipText(0, skinError);
                } else {
-                       item.setText(0, "");
+                       item.setToolTipText(0, "");
                }
 
                String info = "Profile: " + value.getProfile()
@@ -534,6 +571,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
                                                }
                                        }
                                }
+                               tablePack();
                        }
 
                        tableSelected();
@@ -688,6 +726,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
 
                        // for table viewer
                        addTableItem(pButton, template, 0);
+                       tablePack();
                        table.setSelection(0);
 
                } catch (DeviceWorkerException e) {
@@ -716,22 +755,14 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
                        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
                        setRedrawVMList();
-                       setTableItemProperty(pButton, item, deviceTemplate);
-                       table.redraw();
+                       setTableItemProperty(item, deviceTemplate);
+                       tablePack();
                        table.setSelection(item);
                } catch (DeviceWorkerException e) {
                        EMLogger.getLogger().warning(e.getMessage());
@@ -763,6 +794,7 @@ public class DeviceTemplateTableViewer extends AbstractTableViewer {
                        setRedrawVMList();
                        int index = table.indexOf(item);
                        table.remove(index);
+                       tablePack();
                        if (table.getItemCount() > 0) {
                                if (index == table.getItemCount()) {
                                        table.setSelection(index - 1);