Base Image Table: set table height for description
authorjihye424.kim <jihye424.kim@samsung.com>
Wed, 4 Nov 2015 10:59:20 +0000 (19:59 +0900)
committerjihye424.kim <jihye424.kim@samsung.com>
Wed, 4 Nov 2015 10:59:20 +0000 (19:59 +0900)
- table item height is set to max description string height.

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

index 2f9d495..eb71edf 100644 (file)
@@ -39,10 +39,13 @@ 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.graphics.GC;
 import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
 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.eclipse.swt.widgets.Menu;
@@ -91,6 +94,8 @@ public class BaseImageTableViewer extends AbstractTableViewer {
        private ImageButton modifyButton;
        private ImageButton deleteButton;
 
+       private int maxItemHeight = 0;
+
        public BaseImageTableViewer(Shell shell, String key) {
                super(shell, key);
        }
@@ -211,6 +216,10 @@ public class BaseImageTableViewer extends AbstractTableViewer {
 
                settingSortingPair();
                setTableItemMenu();
+
+               //
+               maxItemHeight = table.getItemHeight();
+               //
        }
 
        private void settingSortingPair() {
@@ -294,6 +303,13 @@ public class BaseImageTableViewer extends AbstractTableViewer {
                setTableItemProperty(item, image);
        }
 
+       private int getTextHeight(String text) {
+               GC gc = new GC(Display.getCurrent());
+               Point p = gc.textExtent(text);
+               gc.dispose();
+               return p.y;
+       }
+
        private Color backupTableItemForeground;
        private Color backupTableItemSelectedForeground;
        private void setTableItemProperty(TableItem item, BaseImage image) {
@@ -318,6 +334,16 @@ public class BaseImageTableViewer extends AbstractTableViewer {
                item.setText(4, image.getPathName());
                // TODO set description
                item.setText(5, image.getDescription());
+               if (!image.getDescription().isEmpty()) {
+                       int height = getTextHeight(image.getDescription());
+                       if (maxItemHeight < height) {
+                               maxItemHeight = height;
+                               table.setItemHeight(maxItemHeight);
+                               table.setSelectedItemHeight(maxItemHeight);
+                               table.redraw();
+                       }
+               }
+
                item.setData(image);
 
                settingToolTip(item, image);
@@ -357,6 +383,8 @@ public class BaseImageTableViewer extends AbstractTableViewer {
 
                String pathToolTip = "Path: " + image.getPath();
                item.setToolTipText(4, pathToolTip);
+
+               item.setToolTipText(5, image.getDescription());
        }
 
        private Menu menu;