From: GiWoong Kim Date: Mon, 30 Sep 2013 10:40:07 +0000 (+0900) Subject: skin: added GeneralKeyWindowImageRegistry X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~712^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9d9b5b72e4ef1cb9fe9fb10bd3fe60c681cd3422;p=sdk%2Femulator%2Fqemu.git skin: added GeneralKeyWindowImageRegistry Change-Id: I0d7160b816538428d4eb1a92c909f8ff4f18891b Signed-off-by: GiWoong Kim --- diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/custom/GeneralKeyWindow.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/custom/GeneralKeyWindow.java index 6059a0ce80..b45d993464 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/custom/GeneralKeyWindow.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/custom/GeneralKeyWindow.java @@ -1,5 +1,5 @@ /** - * + * General Key Window * * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. * @@ -49,7 +49,6 @@ import org.eclipse.swt.graphics.Region; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.tizen.emulator.skin.EmulatorSkin; import org.tizen.emulator.skin.comm.ICommunicator.KeyEventType; @@ -57,7 +56,8 @@ import org.tizen.emulator.skin.comm.ICommunicator.SendCommand; import org.tizen.emulator.skin.comm.sock.SocketCommunicator; import org.tizen.emulator.skin.comm.sock.data.KeyEventData; import org.tizen.emulator.skin.dbi.KeyMapType; -import org.tizen.emulator.skin.image.ImageRegistry.KeyWindowImageName; +import org.tizen.emulator.skin.image.GeneralKeyWindowImageRegistry; +import org.tizen.emulator.skin.image.GeneralKeyWindowImageRegistry.KeyWindowImageName; import org.tizen.emulator.skin.layout.SkinPatches; import org.tizen.emulator.skin.util.SwtUtil; @@ -86,6 +86,7 @@ public class GeneralKeyWindow extends SkinWindow { private Color colorFrame; private SocketCommunicator communicator; + private GeneralKeyWindowImageRegistry imageRegistry; private List keyMapList; private ShellListener shellListener; @@ -101,8 +102,15 @@ public class GeneralKeyWindow extends SkinWindow { super(parent, SWT.RIGHT | SWT.CENTER); this.skin = skin; - this.shell = new Shell(parent, - SWT.NO_TRIM | SWT.RESIZE | SWT.TOOL); + if (SwtUtil.isMacPlatform() == false) { + this.shell = new Shell(parent, + SWT.NO_TRIM | SWT.RESIZE | SWT.TOOL); + } else { + this.shell = new Shell(parent.getDisplay(), + SWT.NO_TRIM | SWT.RESIZE | SWT.TOOL); + } + + this.imageRegistry = new GeneralKeyWindowImageRegistry(); this.frameMaker = new SkinPatches(PATCH_IMAGES_PATH); this.keyMapList = keyMapList; //TODO: null @@ -113,11 +121,11 @@ public class GeneralKeyWindow extends SkinWindow { shell.setImage(parent.getImage()); /* load image for HW key button */ - imageNormal = skin.getImageRegistry().getKeyWindowImageData( + imageNormal = imageRegistry.getKeyWindowImageData( KeyWindowImageName.KEYBUTTON_NORMAL); - imageHover = skin.getImageRegistry().getKeyWindowImageData( + imageHover = imageRegistry.getKeyWindowImageData( KeyWindowImageName.KEYBUTTON_HOVER); - imagePushed = skin.getImageRegistry().getKeyWindowImageData( + imagePushed = imageRegistry.getKeyWindowImageData( KeyWindowImageName.KEYBUTTON_PUSHED); /* calculate the key window size */ @@ -168,30 +176,29 @@ public class GeneralKeyWindow extends SkinWindow { /* make a region of HW keys */ if (cntHiddenButton > 0) { /* added custom scrollbar */ - Image imagesScrollArrowUp[] = new Image[3]; Image imagesScrollArrowDown[] = new Image[3]; - imagesScrollArrowUp[0] = skin.getImageRegistry().getKeyWindowImageData( + imagesScrollArrowUp[0] = imageRegistry.getKeyWindowImageData( KeyWindowImageName.SCROLL_UPBUTTON_NORMAL); - imagesScrollArrowUp[1] = skin.getImageRegistry().getKeyWindowImageData( + imagesScrollArrowUp[1] = imageRegistry.getKeyWindowImageData( KeyWindowImageName.SCROLL_UPBUTTON_HOVER); - imagesScrollArrowUp[2] = skin.getImageRegistry().getKeyWindowImageData( + imagesScrollArrowUp[2] = imageRegistry.getKeyWindowImageData( KeyWindowImageName.SCROLL_UPBUTTON_PUSHED); - imagesScrollArrowDown[0] = skin.getImageRegistry().getKeyWindowImageData( + imagesScrollArrowDown[0] = imageRegistry.getKeyWindowImageData( KeyWindowImageName.SCROLL_DOWNBUTTON_NORMAL); - imagesScrollArrowDown[1] = skin.getImageRegistry().getKeyWindowImageData( + imagesScrollArrowDown[1] = imageRegistry.getKeyWindowImageData( KeyWindowImageName.SCROLL_DOWNBUTTON_HOVER); - imagesScrollArrowDown[2] = skin.getImageRegistry().getKeyWindowImageData( + imagesScrollArrowDown[2] = imageRegistry.getKeyWindowImageData( KeyWindowImageName.SCROLL_DOWNBUTTON_PUSHED); CustomScrolledComposite compositeScroll = new CustomScrolledComposite(shell, SWT.NONE, imagesScrollArrowUp, imagesScrollArrowDown, - skin.getImageRegistry().getKeyWindowImageData( + imageRegistry.getKeyWindowImageData( KeyWindowImageName.SCROLL_THUMB), - skin.getImageRegistry().getKeyWindowImageData( + imageRegistry.getKeyWindowImageData( KeyWindowImageName.SCROLL_SHAFT)); compositeScroll.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true, 1, 1)); @@ -218,7 +225,9 @@ public class GeneralKeyWindow extends SkinWindow { compositeScroll.setContent(compositeBase); compositeScroll.setExpandHorizontal(true); compositeScroll.setExpandVertical(true); - compositeScroll.setMinSize(compositeBase.computeSize(SWT.DEFAULT, SWT.DEFAULT)); + + compositeScroll.setMinSize( + compositeBase.computeSize(SWT.DEFAULT, SWT.DEFAULT)); } } @@ -327,29 +336,7 @@ public class GeneralKeyWindow extends SkinWindow { public void shellClosed(ShellEvent event) { logger.info("Key Window is closed"); - if (skin.pairTag != null) { - skin.pairTag.setVisible(false); - } - - if (null != shellPaintListener) { - shell.removePaintListener(shellPaintListener); - } - - if (null != shellListener) { - shell.removeShellListener(shellListener); - } - - if (null != shellMouseMoveListener) { - shell.removeMouseMoveListener(shellMouseMoveListener); - } - - if (null != shellMouseListener) { - shell.removeMouseListener(shellMouseListener); - } - - colorFrame.dispose(); - - frameMaker.freePatches(); + dispose(); } @Override @@ -502,4 +489,31 @@ public class GeneralKeyWindow extends SkinWindow { shell.addMouseListener(shellMouseListener); } + + private void dispose() { + if (skin.pairTag != null) { + skin.pairTag.setVisible(false); + } + + if (null != shellPaintListener) { + shell.removePaintListener(shellPaintListener); + } + + if (null != shellListener) { + shell.removeShellListener(shellListener); + } + + if (null != shellMouseMoveListener) { + shell.removeMouseMoveListener(shellMouseMoveListener); + } + + if (null != shellMouseListener) { + shell.removeMouseListener(shellMouseListener); + } + + colorFrame.dispose(); + + frameMaker.freePatches(); + imageRegistry.dispose(); + } } diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/image/GeneralKeyWindowImageRegistry.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/image/GeneralKeyWindowImageRegistry.java new file mode 100644 index 0000000000..1ed1e27eed --- /dev/null +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/image/GeneralKeyWindowImageRegistry.java @@ -0,0 +1,128 @@ +/** + * Image Resource Management For General Key Window + * + * Copyright (C) 2013 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * YeongKyoon Lee + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +package org.tizen.emulator.skin.image; + +import java.io.InputStream; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.logging.Logger; + +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Display; +import org.tizen.emulator.skin.log.SkinLogger; +import org.tizen.emulator.skin.util.IOUtil; + +public class GeneralKeyWindowImageRegistry { + public static final String KEYWINDOW_FOLDER = "key-window"; + + private static Logger logger = SkinLogger.getSkinLogger( + GeneralKeyWindowImageRegistry.class).getLogger(); + + public enum KeyWindowImageName { + KEYBUTTON_NORMAL("keybutton_nml.png"), + KEYBUTTON_HOVER("keybutton_hover.png"), + KEYBUTTON_PUSHED("keybutton_pushed.png"), + + SCROLL_UPBUTTON_NORMAL("scroll_button_up_nml.png"), + SCROLL_UPBUTTON_HOVER("scroll_button_up_hover.png"), + SCROLL_UPBUTTON_PUSHED("scroll_button_up_pushed.png"), + SCROLL_DOWNBUTTON_NORMAL("scroll_button_down_nml.png"), + SCROLL_DOWNBUTTON_HOVER("scroll_button_down_hover.png"), + SCROLL_DOWNBUTTON_PUSHED("scroll_button_down_pushed.png"), + SCROLL_THUMB("scroll_thumb.png"), + SCROLL_SHAFT("scroll_back.png"); + + private String name; + + private KeyWindowImageName(String name) { + this.name = name; + } + + public String getName() { + return this.name; + } + } + + private Display display; + private Map keyWindowImageMap; + + /** + * Constructor + */ + public GeneralKeyWindowImageRegistry() { + this.display = Display.getDefault(); + this.keyWindowImageMap = new HashMap(); + } + + public Image getKeyWindowImageData(KeyWindowImageName name) { + if (keyWindowImageMap.size() == 0) { + /* load all of the images at once */ + ClassLoader classLoader = this.getClass().getClassLoader(); + InputStream is = null; + String imageName, imagePath; + + KeyWindowImageName[] values = KeyWindowImageName.values(); + for (KeyWindowImageName value : values) { + imageName = value.getName(); + imagePath = ImageRegistry.IMAGES_FOLDER + "/" + + KEYWINDOW_FOLDER + "/" + imageName; + + try { + is = classLoader.getResourceAsStream(imagePath); + if (null != is) { + logger.fine("KeyWindow image is loaded : " + imagePath); + keyWindowImageMap.put(imageName, new Image(display, is)); + } else { + logger.severe("missing image : " + imagePath); + } + } finally { + IOUtil.close(is); + } + } + } + + return keyWindowImageMap.get(name.getName()); + } + + public void dispose() { + if (null != keyWindowImageMap) { + Image image = null; + + Collection images = keyWindowImageMap.values(); + Iterator imageIterator = images.iterator(); + + while (imageIterator.hasNext()) { + image = imageIterator.next(); + image.dispose(); + } + } + } +} diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/image/ImageRegistry.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/image/ImageRegistry.java index e659e35c83..2bf79f1a7a 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/image/ImageRegistry.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/image/ImageRegistry.java @@ -57,7 +57,6 @@ import org.tizen.emulator.skin.util.SkinRotation; public class ImageRegistry { public static final String ICONS_FOLDER = "icons"; public static final String IMAGES_FOLDER = "images"; - public static final String KEYWINDOW_FOLDER = "key-window"; private static Logger logger = SkinLogger.getSkinLogger(ImageRegistry.class).getLogger(); @@ -117,38 +116,12 @@ public class ImageRegistry { } } - public enum KeyWindowImageName { - KEYBUTTON_NORMAL("keybutton_nml.png"), - KEYBUTTON_HOVER("keybutton_hover.png"), - KEYBUTTON_PUSHED("keybutton_pushed.png"), - - SCROLL_UPBUTTON_NORMAL("scroll_button_up_nml.png"), - SCROLL_UPBUTTON_HOVER("scroll_button_up_hover.png"), - SCROLL_UPBUTTON_PUSHED("scroll_button_up_pushed.png"), - SCROLL_DOWNBUTTON_NORMAL("scroll_button_down_nml.png"), - SCROLL_DOWNBUTTON_HOVER("scroll_button_down_hover.png"), - SCROLL_DOWNBUTTON_PUSHED("scroll_button_down_pushed.png"), - SCROLL_THUMB("scroll_thumb.png"), - SCROLL_SHAFT("scroll_back.png"); - - private String name; - - private KeyWindowImageName(String name) { - this.name = name; - } - - public String getName() { - return this.name; - } - } - private Display display; private EmulatorUI dbiContents; private Map resourceImageMap; private Map iconImageMap; private Map skinImageMap; - private Map keyWindowImageMap; private String skinPath; @@ -184,7 +157,6 @@ public class ImageRegistry { this.resourceImageMap = new HashMap(); this.iconImageMap = new HashMap(); this.skinImageMap = new HashMap(); - this.keyWindowImageMap = new HashMap(); init(this.skinPath); } @@ -314,36 +286,6 @@ public class ImageRegistry { return iconImageMap.get(name.getName()); } - public Image getKeyWindowImageData(KeyWindowImageName name) { - if (keyWindowImageMap.size() == 0) { - /* load all of the images at once */ - ClassLoader classLoader = this.getClass().getClassLoader(); - InputStream is = null; - String imageName, imagePath; - - KeyWindowImageName[] values = KeyWindowImageName.values(); - for (KeyWindowImageName value : values) { - imageName = value.getName(); - imagePath = IMAGES_FOLDER + "/" + - KEYWINDOW_FOLDER + "/" + imageName; - - try { - is = classLoader.getResourceAsStream(imagePath); - if (null != is) { - logger.fine("KeyWindow image is loaded : " + imagePath); - keyWindowImageMap.put(imageName, new Image(display, is)); - } else { - logger.severe("missing image : " + imagePath); - } - } finally { - IOUtil.close(is); - } - } - } - - return keyWindowImageMap.get(name.getName()); - } - public void dispose() { Collection images = null; Iterator imageIterator = null; @@ -384,17 +326,5 @@ public class ImageRegistry { image.dispose(); } } - - /* general key window image */ - if (null != keyWindowImageMap) { - images = keyWindowImageMap.values(); - - imageIterator = images.iterator(); - - while (imageIterator.hasNext()) { - image = imageIterator.next(); - image.dispose(); - } - } } }