skin: added GeneralKeyWindowImageRegistry 38/10638/1
authorGiWoong Kim <giwoong.kim@samsung.com>
Mon, 30 Sep 2013 10:40:07 +0000 (19:40 +0900)
committerGiWoong Kim <giwoong.kim@samsung.com>
Tue, 8 Oct 2013 06:12:43 +0000 (15:12 +0900)
Change-Id: I0d7160b816538428d4eb1a92c909f8ff4f18891b
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/skin/client/src/org/tizen/emulator/skin/custom/GeneralKeyWindow.java
tizen/src/skin/client/src/org/tizen/emulator/skin/image/GeneralKeyWindowImageRegistry.java [new file with mode: 0644]
tizen/src/skin/client/src/org/tizen/emulator/skin/image/ImageRegistry.java

index 6059a0ce80b483001922e9fa937be13d8d572f70..b45d993464fa4faaeddc8048d9d745219cc6f63d 100644 (file)
@@ -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<KeyMapType> 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 (file)
index 0000000..1ed1e27
--- /dev/null
@@ -0,0 +1,128 @@
+/**
+ * Image Resource Management For General Key Window
+ *
+ * Copyright (C) 2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * GiWoong Kim <giwoong.kim@samsung.com>
+ * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
+ *
+ * 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<String, Image> keyWindowImageMap;
+
+       /**
+        *  Constructor
+        */
+       public GeneralKeyWindowImageRegistry() {
+               this.display = Display.getDefault();
+               this.keyWindowImageMap = new HashMap<String, Image>();
+       }
+
+       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<Image> images = keyWindowImageMap.values();
+                       Iterator<Image> imageIterator = images.iterator();
+
+                       while (imageIterator.hasNext()) {
+                               image = imageIterator.next();
+                               image.dispose();
+                       }
+               }
+       }
+}
index e659e35c838e9f49f6d4bc38420a4305e8c97c5c..2bf79f1a7aae83a7306b12a480bdee73d54e0128 100644 (file)
@@ -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<String, Image> resourceImageMap;
        private Map<String, Image> iconImageMap;
        private Map<String, Image> skinImageMap;
-       private Map<String, Image> keyWindowImageMap;
 
        private String skinPath;
 
@@ -184,7 +157,6 @@ public class ImageRegistry {
                this.resourceImageMap = new HashMap<String, Image>();
                this.iconImageMap = new HashMap<String, Image>();
                this.skinImageMap = new HashMap<String, Image>();
-               this.keyWindowImageMap = new HashMap<String, Image>();
 
                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<Image> images = null;
                Iterator<Image> 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();
-                       }
-               }
        }
 }