From 638660a744188c5fc90053da39c53dadfa70c11a Mon Sep 17 00:00:00 2001 From: "giwoong.kim" Date: Tue, 6 Nov 2012 20:22:11 +0900 Subject: [PATCH] skin: exception handling Open the error popup when emulator load a invalid dbi file. Signed-off-by: GiWoong Kim --- .../src/org/tizen/emulator/skin/EmulatorSkin.java | 15 +++++++++++++++ .../org/tizen/emulator/skin/util/SkinUtil.java | 14 +++++++------- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java index f126fd7ad8..3c0a436dcf 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java @@ -402,6 +402,21 @@ public class EmulatorSkin { Rectangle lcdBounds = SkinUtil.adjustLcdGeometry( lcdCanvas, currentLcdWidth, currentLcdHeight, scale, rotationId, skinInfo.isPhoneShape()); + if (lcdBounds == null) { + logger.severe("Failed to lcd information for phone shape skin."); + SkinUtil.openMessage(shell, null, + "Failed to read lcd information for phone shape skin.\n" + + "Check the contents of skin dbi file.", + SWT.ICON_ERROR, config); + System.exit(-1); + } + + FormData dataCanvas = new FormData(); + dataCanvas.left = new FormAttachment(0, lcdBounds.x); + dataCanvas.top = new FormAttachment(0, lcdBounds.y); + dataCanvas.width = lcdBounds.width; + dataCanvas.height = lcdBounds.height; + lcdCanvas.setLayoutData(dataCanvas); if (skinInfo.isPhoneShape() == false) { // /* folding button */ diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java index c5cd5630c0..b307b626aa 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java @@ -133,7 +133,14 @@ public class SkinUtil { RotationType rotation = SkinRotation.getRotation(rotationId); LcdType lcd = rotation.getLcd(); /* from dbi */ + if (lcd == null) { + return null; + } + RegionType region = lcd.getRegion(); + if (region == null) { + return null; + } Integer left = region.getLeft(); Integer top = region.getTop(); @@ -146,13 +153,6 @@ public class SkinUtil { lcdBounds.height = (int) (height * convertedScale); } - FormData data = new FormData(); - data.left = new FormAttachment(0, lcdBounds.x); - data.top = new FormAttachment(0, lcdBounds.y); - data.width = lcdBounds.width; - data.height = lcdBounds.height; - lcdCanvas.setLayoutData(data); - return lcdBounds; } -- 2.34.1