Author: yradtsevich
Date: 2012-02-15 14:58:40 -0500 (Wed, 15 Feb 2012)
New Revision: 38770
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/SkinMap.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/back-disabled.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/back-selected.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/back.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/forward-disabled.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/forward-selected.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/forward.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/01.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/02.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/03.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/04.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/05.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/06.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/07.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/08.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/10.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/11.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/12.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/13.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/14.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/15.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/16.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/17.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/18.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/19.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/20.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/21.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/22.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/23.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/24.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/25.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/01.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/02.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/03.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/04.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/05.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/06.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/07.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/08.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/14.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/21.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/22.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/23.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/24.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/25.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/26.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/27.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/28.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/29.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/30.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/31.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-1.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-2.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-3.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-4.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-5.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/refresh-selected.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/refresh.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/stop-selected.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/stop.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-1.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-2.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-3.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-4.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-5.png
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/AppleIPhone3ResizableSkin.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/AppleIPhoneComposite.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ButtonDescriptor.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IOSNavBarComposite.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IOsTimeComposite.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IPhoneSkinDescriptor.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ImageButtonComposite.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ImageDescriptor.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/WidgetDescriptor.java
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/Device.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/DevicesList.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/DevicesListStorage.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/config/devices.cfg
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/BrowserSim.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/EditDeviceDialog.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/ManageDevicesDialog.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/AppleIPhone3Skin.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/BrowserSimSkin.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ImageList.java
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/NativeSkin.java
Log:
https://issues.jboss.org/browse/JBIDE-10431 : browsersim should be sexy
- created resizable iPhone 3 skin
- changed format of config file
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/Device.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/Device.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/Device.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -10,9 +10,6 @@
******************************************************************************/
package org.jboss.tools.vpe.browsersim.model;
-import org.jboss.tools.vpe.browsersim.ui.skin.AppleIPhone3Skin;
-import org.jboss.tools.vpe.browsersim.ui.skin.BrowserSimSkin;
-import org.jboss.tools.vpe.browsersim.ui.skin.NativeSkin;
/**
* @author Yahor Radtsevich (yradtsevich)
@@ -24,13 +21,14 @@
private int width;
private int height;
private String userAgent;
- private Class<? extends BrowserSimSkin> skinClass;
+ private String skinId;
- public Device(String name, int width, int height, String userAgent) {
+ public Device(String name, int width, int height, String userAgent, String skinId) {
this.name = name;
this.width = width;
this.height = height;
this.userAgent = userAgent;
+ this.skinId = skinId;
}
public int getWidth() {
@@ -49,12 +47,7 @@
return name;
}
- public Class<? extends BrowserSimSkin> getSkinClass() {
- //XXX
- if (name != null && name.equals("Apple iPhone 3 (skinned!)")) {
- return AppleIPhone3Skin.class;
- } else {
- return NativeSkin.class;
- }
+ public String getSkinId() {
+ return skinId;
}
}
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/DevicesList.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/DevicesList.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/DevicesList.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -21,6 +21,7 @@
public class DevicesList extends Observable {
private List<Device> devices;
private int selectedDeviceIndex;
+ private boolean useSkins = true;
public DevicesList(List<Device> devices, int selectedDeviceIndex) {
this.devices = devices;
@@ -41,4 +42,15 @@
setChanged();
}
}
+
+ public boolean getUseSkins() {
+ return useSkins;
+ }
+
+ public void setUseSkins(boolean useSkins) {
+ if (this.useSkins != useSkins) {
+ this.useSkins = useSkins;
+ setChanged();
+ }
+ }
}
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/DevicesListStorage.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/DevicesListStorage.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/DevicesListStorage.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -33,6 +33,7 @@
private static final String DEFAULT_PREFERENCES_RESOURCE =
"config/devices.cfg";
private static final String USER_PREFERENCES_FOLDER =
"org.jboss.tools.vpe.browsersim";
private static final String USER_PREFERENCES_FILE = "devices.cfg";
+ private static final int CURRENT_CONFIG_VERSION = 2;
public static void saveUserDefinedDevicesList(DevicesList devicesList) {
File configFolder = new File(USER_PREFERENCES_FOLDER);
@@ -61,23 +62,29 @@
}
public static DevicesList loadDefaultDevicesList() {
- DevicesList devicesList;
+ DevicesList devicesList = null;
try {
devicesList = loadDevicesList(ResourcesUtil.getResourceAsStream(
DEFAULT_PREFERENCES_RESOURCE));
} catch (IOException e) {
e.printStackTrace();
- devicesList = new DevicesList(new ArrayList<Device>(), 0);
}
+ if (devicesList == null) {
+ Device device = new Device("Default", 1024, 768, null, null);
+ List<Device> devices = new ArrayList<Device>();
+ devices.add(device);
+ devicesList = new DevicesList(devices, 0);
+ }
+
return devicesList;
}
private static void saveDevicesList(DevicesList devicesList, File file) throws
IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
- writer.write(String.valueOf(devicesList.getSelectedDeviceIndex()));
- writer.write('\n');
+ writer.write("ConfigVersion=" + String.valueOf(CURRENT_CONFIG_VERSION) +
"\n");
+ writer.write("SelectedDeviceIndex=" +
String.valueOf(devicesList.getSelectedDeviceIndex()) + "\n");
for (Device device : devicesList.getDevices()) {
writer.write( encode(device.getName() ));
@@ -85,10 +92,14 @@
writer.write(encode( String.valueOf(device.getWidth()) ));
writer.write('\t');
writer.write(encode( String.valueOf(device.getHeight()) ));
+ writer.write('\t');
if (device.getUserAgent() != null) {
- writer.write('\t');
writer.write( encode(device.getUserAgent() ));
}
+ writer.write('\t');
+ if (device.getSkinId() != null) {
+ writer.write( encode(device.getSkinId() ));
+ }
writer.write('\n');
}
@@ -103,31 +114,58 @@
private static DevicesList loadDevicesList(InputStream inputStream) throws IOException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
- String nextLine = reader.readLine();
+ List<Device> devices = null;
int selectedDeviceIndex = 0;
- if (nextLine != null) {
- selectedDeviceIndex = Integer.parseInt(nextLine);
- }
- Pattern devicePattern =
Pattern.compile("^(.*)\\t(\\-?[0-9]*)\\t(\\-?[0-9]*)(\\t(.*))?$");
-
- List<Device> devices = new ArrayList<Device>();
- while ((nextLine = reader.readLine()) != null) {
- Matcher deviceMatcher = devicePattern.matcher(nextLine);
- if (deviceMatcher.matches()) {
- devices.add(new Device(
- decode(deviceMatcher.group(1)),
- Integer.parseInt(deviceMatcher.group(2)),
- Integer.parseInt(deviceMatcher.group(3)),
- deviceMatcher.group(5) != null
- ? decode(deviceMatcher.group(5))
- : null
- ));
+ try {
+ String nextLine;
+
+ int configVersion = 0;
+ if ((nextLine = reader.readLine()) != null) {
+ Pattern pattern = Pattern.compile("ConfigVersion=([0-9]+)");
+ Matcher matcher = pattern.matcher(nextLine);
+ if (matcher.matches()) {
+ configVersion = Integer.parseInt(matcher.group(1));
+ }
}
+
+ if (configVersion == CURRENT_CONFIG_VERSION) {
+ if ((nextLine = reader.readLine()) != null) {
+ Pattern pattern = Pattern.compile("SelectedDeviceIndex=([0-9]+)");
+ Matcher matcher = pattern.matcher(nextLine);
+ if (matcher.matches()) {
+ selectedDeviceIndex = Integer.parseInt(matcher.group(1));
+ }
+ }
+
+ Pattern devicePattern =
Pattern.compile("^(.*)\\t(\\-?[0-9]+)\\t(\\-?[0-9]+)\\t(.+)?\\t(.+)?$");
+
+ devices = new ArrayList<Device>();
+ while ((nextLine = reader.readLine()) != null) {
+ Matcher deviceMatcher = devicePattern.matcher(nextLine);
+ if (deviceMatcher.matches()) {
+ devices.add(new Device(
+ decode(deviceMatcher.group(1)),
+ Integer.parseInt(deviceMatcher.group(2)),
+ Integer.parseInt(deviceMatcher.group(3)),
+ deviceMatcher.group(4) != null
+ ? decode(deviceMatcher.group(4))
+ : null,
+ deviceMatcher.group(5) != null
+ ? decode(deviceMatcher.group(5))
+ : null
+ ));
+ }
+ }
+ }
+ } finally {
+ reader.close();
}
- reader.close();
-
- return new DevicesList(devices, selectedDeviceIndex);
+ if (devices == null || devices.size() <= selectedDeviceIndex) {
+ return null;
+ } else {
+ return new DevicesList(devices, selectedDeviceIndex);
+ }
}
private static String encode(String string) {
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/SkinMap.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/SkinMap.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/model/SkinMap.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,41 @@
+package org.jboss.tools.vpe.browsersim.model;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.tools.vpe.browsersim.ui.skin.BrowserSimSkin;
+import org.jboss.tools.vpe.browsersim.ui.skin.NativeSkin;
+import org.jboss.tools.vpe.browsersim.ui.skin.ios.AppleIPhone3ResizableSkin;
+
+public class SkinMap {
+ public static final Class<? extends BrowserSimSkin> DEFAULT_SKIN_CLASS =
NativeSkin.class;
+ private static SkinMap instance;
+ private Map<String, Class<? extends BrowserSimSkin>> map;
+
+ private SkinMap(){
+ map = new HashMap<String, Class<? extends BrowserSimSkin>>();
+
+ map.put("Apple iPhone 3", AppleIPhone3ResizableSkin.class);
+ }
+
+ public static SkinMap getInstance() {
+ if (instance == null) {
+ instance = new SkinMap();
+ }
+ return instance;
+ }
+
+ public Class<? extends BrowserSimSkin> getSkinClass(String skinId) {
+ Class<? extends BrowserSimSkin> skinClass = map.get(skinId);
+ if (skinClass == null) {
+ skinClass = DEFAULT_SKIN_CLASS;
+ }
+ return skinClass;
+ }
+
+ public Set<String> getSkinIds() {
+ return map.keySet();
+ }
+}
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/config/devices.cfg
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/config/devices.cfg 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/config/devices.cfg 2012-02-15
19:58:40 UTC (rev 38770)
@@ -1,10 +1,10 @@
-4
-Desktop (Default User-Agent) 1024 768
-Apple iPad 2 768 1024 Mozilla/5.0 (iPad; U; CPU OS 4_3_1 like Mac OS X; en-us)
AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8G4 Safari/6533.18.5
-Apple iPhone 3 320 480 Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us)
AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
-Apple iPhone 3 (skinned!) 320 480 Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS
X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293
Safari/6531.22.7
-Apple iPhone 4 640 960 Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us)
AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
-RIM BlackBerry Bold Touch 9900 640 480 Mozilla/5.0 (BlackBerry; U; BlackBerry 9900;
en-US) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.246 Mobile Safari/534.1+
-Samsung Galaxy S 480 800 Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; GT-I9000
Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
-Samsung Galaxy S II 480 800 Mozilla/5.0 (Linux; U; Android 2.3; en-us; GT-I9100
Build/GRH78) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
-Samsung Galaxy Tab 10.1 800 1280 Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100
Build/HRI83) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 MobileSafari/534.13
+ConfigVersion=2
+SelectedDeviceIndex=2
+Desktop (Default User-Agent) 1024 768
+Apple iPad 2 768 1024 Mozilla/5.0 (iPad; U; CPU OS 4_3_1 like Mac OS X; en-us)
AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8G4 Safari/6533.18.5 Apple
iPhone 3
+Apple iPhone 3 320 480 Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us)
AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7 Apple
iPhone 3
+Apple iPhone 4 640 960 Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us)
AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7 Apple
iPhone 3
+RIM BlackBerry Bold Touch 9900 640 480 Mozilla/5.0 (BlackBerry; U; BlackBerry 9900;
en-US) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.246 Mobile Safari/534.1+
+Samsung Galaxy S 480 800 Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; GT-I9000
Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
+Samsung Galaxy S II 480 800 Mozilla/5.0 (Linux; U; Android 2.3; en-us; GT-I9100
Build/GRH78) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
+Samsung Galaxy Tab 10.1 800 1280 Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100
Build/HRI83) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 MobileSafari/534.13
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/back-disabled.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/back-disabled.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/back-selected.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/back-selected.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/back.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/back.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/forward-disabled.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/forward-disabled.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/forward-selected.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/forward-selected.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/forward.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/forward.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/01.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/01.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/02.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/02.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/03.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/03.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/04.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/04.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/05.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/05.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/06.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/06.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/07.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/07.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/08.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/08.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/10.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/10.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/11.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/11.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/12.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/12.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/13.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/13.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/14.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/14.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/15.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/15.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/16.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/16.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/17.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/17.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/18.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/18.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/19.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/19.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/20.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/20.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/21.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/21.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/22.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/22.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/23.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/23.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/24.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/24.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/25.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/horizontal/25.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/01.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/01.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/02.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/02.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/03.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/03.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/04.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/04.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/05.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/05.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/06.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/06.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/07.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/07.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/08.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/08.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/14.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/14.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/21.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/21.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/22.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/22.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/23.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/23.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/24.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/24.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/25.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/25.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/26.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/26.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/27.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/27.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/28.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/28.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/29.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/29.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/30.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/30.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/31.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/iphone3/vertical/31.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-1.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-1.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-2.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-2.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-3.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-3.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-4.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-4.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-5.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/nav-5.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/refresh-selected.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/refresh-selected.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/refresh.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/refresh.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/stop-selected.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/stop-selected.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/stop.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/stop.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-1.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-1.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-2.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-2.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-3.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-3.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-4.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-4.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-5.png
===================================================================
(Binary files differ)
Property changes on:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/resources/ios/time-5.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/BrowserSim.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/BrowserSim.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/BrowserSim.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -22,6 +22,7 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.browser.BrowserFunction;
import org.eclipse.swt.browser.LocationEvent;
import org.eclipse.swt.browser.LocationListener;
import org.eclipse.swt.browser.ProgressEvent;
@@ -34,10 +35,13 @@
import org.eclipse.swt.events.MenuEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Monitor;
import org.eclipse.swt.widgets.Shell;
import org.jboss.tools.vpe.browsersim.browser.BrowserSimBrowser;
import org.jboss.tools.vpe.browsersim.browser.WebKitBrowserFactory;
@@ -46,15 +50,14 @@
import org.jboss.tools.vpe.browsersim.model.DevicesList;
import org.jboss.tools.vpe.browsersim.model.DevicesListHolder;
import org.jboss.tools.vpe.browsersim.model.DevicesListStorage;
+import org.jboss.tools.vpe.browsersim.model.SkinMap;
import org.jboss.tools.vpe.browsersim.ui.skin.BrowserSimSkin;
-import org.jboss.tools.vpe.browsersim.ui.skin.NativeSkin;
/**
* @author Yahor Radtsevich (yradtsevich)
*/
public class BrowserSim {
private static final String DEFAULT_URL = "about:blank";
//"http://www.w3schools.com/js/tryit_view.asp?filename=try_nav_useragent";
//$NON-NLS-1$
- private static final Class<? extends BrowserSimSkin> DEFAULT_SKIN_CLASS =
NativeSkin.class;
private Display display;
private String homeUrl;
private DevicesListHolder devicesListHolder;
@@ -85,7 +88,7 @@
Device defaultDevice =
devicesList.getDevices().get(devicesList.getSelectedDeviceIndex());
Display display = new Display();
BrowserSim browserSim = new BrowserSim(display, homeUrl);
- browserSim.initSkin(defaultDevice);
+ browserSim.initSkin(getSkinClass(defaultDevice, devicesList.getUseSkins()));
browserSim.initDevicesListHolder();
browserSim.devicesListHolder.setDevicesList(devicesList);
browserSim.devicesListHolder.notifyObservers();
@@ -103,12 +106,7 @@
this.homeUrl = homeUrl;
}
- public void initSkin(Device device) {
- Class<? extends BrowserSimSkin> skinClass = device.getSkinClass();
- if (skinClass == null) {
- skinClass = DEFAULT_SKIN_CLASS;
- }
-
+ public void initSkin(Class<? extends BrowserSimSkin> skinClass) {
try {
skin = skinClass.newInstance();//new AppleIPhone3Skin();//new NativeSkin();
} catch (InstantiationException e1) {
@@ -154,7 +152,7 @@
}
Menu contextMenu = new Menu(shell);
- shell.setMenu(contextMenu);
+ skin.setContextMenu(contextMenu);
createMenuItemsForContextMenu(contextMenu);
browser.addProgressListener(new ProgressListener() {
@@ -194,6 +192,39 @@
public void changing(LocationEvent event) {
}
});
+
+ browser.addLocationListener(new LocationListener() {
+ private BrowserFunction scrollListener = null;
+ public void changed(LocationEvent event) {
+ if (scrollListener != null) {
+ scrollListener.dispose();
+ }
+ scrollListener = new BrowserFunction(((Browser)event.widget),
"_browserSim_scrollListener") {
+ public Object function(Object[] arguments) {
+ double pageYOffset = (Double) arguments[0];
+ if (pageYOffset > 0.0) {
+ skin.setAddressBarVisible(false);
+ }
+ return null;
+ }
+ };
+
+ ((Browser)event.widget).execute(
+ "(function() {" +
+ "var scrollListener = function(e){" +
+ "window._browserSim_scrollListener(window.pageYOffset)" +
+ "};" +
+ "window.addEventListener('scroll', scrollListener);" +
+ "window.addEventListener('beforeunload', function(e){" +
+ "window.removeEventListener('scroll', scrollListener);" +
+ "delete window._browserSim_scrollListener;" +
+ "})" +
+ "})();");
+ }
+ public void changing(LocationEvent event) {
+ skin.setAddressBarVisible(true);
+ }
+ });
}
private void initDevicesListHolder() {
@@ -203,11 +234,11 @@
DevicesListHolder devicesManager = (DevicesListHolder) o;
DevicesList devicesList = devicesManager.getDevicesList();
if (devicesList.getSelectedDeviceIndex() < devicesList.getDevices().size()) {
- setDevice(devicesList.getDevices().get(devicesList.getSelectedDeviceIndex()));
+ setSelectedDevice(devicesList);
}
devicesList.addObserver(new Observer() {
public void update(Observable o, Object arg) {
- setDevice(((DevicesList)o).getDevices().get(((DevicesList)o).getSelectedDeviceIndex()));
+ setSelectedDevice((DevicesList)o);
}
});
}
@@ -264,6 +295,18 @@
}
}
});
+
+ MenuItem useSkinsMenuItem = new MenuItem(devicesMenu, SWT.CHECK);
+ useSkinsMenuItem.setText("Use Skins");
+ useSkinsMenuItem.setSelection(devicesListHolder.getDevicesList().getUseSkins());
+ useSkinsMenuItem.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ MenuItem menuItem = (MenuItem) e.widget;
+ DevicesList devicesList = devicesListHolder.getDevicesList();
+ devicesList.setUseSkins(menuItem.getSelection());
+ devicesList.notifyObservers();
+ }
+ });
}
private void addFileMenuItems(Menu menu) {
@@ -361,34 +404,39 @@
return dropdown;
}
- public void setDevice(final Device device) {
+ public void setSelectedDevice(DevicesList devicesList) {
+ final Device device =
devicesList.getDevices().get(devicesList.getSelectedDeviceIndex());
+ Class<? extends BrowserSimSkin> newSkinClass = getSkinClass(device,
devicesList.getUseSkins());
String oldSkinUrl = null;
- if (device.getSkinClass() != skin.getClass()
- || (device.getSkinClass() == null && skin.getClass() != DEFAULT_SKIN_CLASS))
{
+ if (newSkinClass != skin.getClass()) {
oldSkinUrl = skin.getBrowser().getUrl();
skin.getBrowser().getShell().dispose();//XXX
- initSkin(device);
+ initSkin(newSkinClass);
}
- skin.setBrowserSize(device.getWidth(), device.getHeight());
deviceOrientation = new DeviceOrientation(device.getWidth() < device.getHeight()
? DeviceOrientation.PORTRAIT
: DeviceOrientation.LANDSCAPE);
+ Rectangle clientArea = getMonitorClientArea();
+ skin.setOrientationAndSize(new Point(clientArea.width, clientArea.height),
+ deviceOrientation.getOrientationAngle(),
+ new Point(device.getWidth(), device.getHeight()));
+ fixShellLocation(clientArea);
deviceOrientation.addObserver(new Observer() {
public void update(Observable o, Object arg) {
int orientationAngle = ((DeviceOrientation) o).getOrientationAngle();
int minSize = Math.min(device.getWidth(), device.getHeight());
int maxSize = Math.max(device.getWidth(), device.getHeight());
-
+ Point browserSize;
if (orientationAngle == DeviceOrientation.LANDSCAPE
|| orientationAngle == DeviceOrientation.LANDSCAPE_INVERTED) {
- skin.setBrowserSize(maxSize, minSize);
+ browserSize = new Point(maxSize, minSize);
} else {
- skin.setBrowserSize(minSize, maxSize);
+ browserSize = new Point(minSize, maxSize);
}
- fireOrientationChangeEvent(orientationAngle);
+ fireOrientationChangeEvent(orientationAngle, browserSize);
}
});
@@ -400,14 +448,20 @@
skin.getBrowser().refresh(); // only user agent and size of the browser is changed
}
}
+
+ private static Class<? extends BrowserSimSkin> getSkinClass(Device device, boolean
useSkins) {
+ return SkinMap.getInstance().getSkinClass(useSkins ? device.getSkinId() : null);
+ }
private void initOrientation(int orientation) {
skin.getBrowser().execute("window.onorientationchange = null;"
+ "window.orientation = " + orientation + ";");
}
- private void fireOrientationChangeEvent(int orientation) {
- skin.setOrientation(orientation);
+ private void fireOrientationChangeEvent(int orientation, Point browserSize) {
+ Rectangle clientArea = getMonitorClientArea();
+ skin.setOrientationAndSize(new Point(clientArea.width, clientArea.height), orientation,
browserSize);
+ fixShellLocation(clientArea);
skin.getBrowser().execute("window.orientation = " + orientation +
";"
+ "(function(){"
+ "var event = document.createEvent('Event');"
@@ -420,6 +474,45 @@
);
}
+ private void fixShellLocation(Rectangle clientArea) {
+ Shell shell = skin.getShell();
+ Point shellLocation = shell.getLocation();
+ Point shellSize = shell.getSize();
+ int bottomOverlap = shellLocation.y + shellSize.y - (clientArea.y +
clientArea.height);
+ if (bottomOverlap > 0) {
+ if (shellLocation.y > bottomOverlap) {
+ shellLocation.y -= bottomOverlap;
+ } else {
+ shellLocation.y = 0;
+ }
+ }
+
+ int rightOverlap = shellLocation.x + shellSize.x - (clientArea.x + clientArea.width);
+ if (rightOverlap > 0) {
+ if (shellLocation.x > rightOverlap) {
+ shellLocation.x -= rightOverlap;
+ } else {
+ shellLocation.x = 0;
+ }
+ }
+
+ shell.setLocation(shellLocation);
+ }
+
+ private Rectangle getMonitorClientArea() {
+ Monitor monitor = skin.getShell().getMonitor();
+ Rectangle clientArea = monitor.getClientArea();
+
+ /* on Linux returned monitor client area may be bigger
+ * than the monitor bounds when multiple monitors are used.
+ * The following code fixes this */
+ Rectangle bounds = monitor.getBounds();
+ clientArea.width = Math.min(clientArea.width, bounds.width);
+ clientArea.height = Math.min(clientArea.height, bounds.height);
+
+ return clientArea;
+ }
+
protected void rotateDevice(boolean counterclockwise) {
deviceOrientation.turnDevice(counterclockwise);
deviceOrientation.notifyObservers();
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/EditDeviceDialog.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/EditDeviceDialog.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/EditDeviceDialog.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -145,7 +145,8 @@
resultDevice = new Device(textName.getText(),
checkButtonWidth.getSelection() ? Integer.valueOf("0" +
textWidth.getText()) : Device.DEFAULT_SIZE,
checkButtonHeight.getSelection() ? Integer.valueOf("0" +
textHeight.getText()) : Device.DEFAULT_SIZE,
- checkButtonUserAgent.getSelection() ? textUserAgent.getText() : null);
+ checkButtonUserAgent.getSelection() ? textUserAgent.getText() : null,
+ null);
shell.close();
}
});
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/ManageDevicesDialog.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/ManageDevicesDialog.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/ManageDevicesDialog.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -118,7 +118,7 @@
buttonAdd.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
Device newDevice = new EditDeviceDialog(shell, SWT.APPLICATION_MODAL |
SWT.SHELL_TRIM,
- new Device(Messages.ManageDevicesDialog_NEW_DEVICE, 480, 800,
Messages.ManageDevicesDialog_NEW_USER_AGENT)).open();
+ new Device(Messages.ManageDevicesDialog_NEW_DEVICE, 480, 800,
Messages.ManageDevicesDialog_NEW_USER_AGENT, null)).open();
if (newDevice != null) {
devices.add(newDevice);
selectedDeviceIndex = devices.size() - 1;
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/AppleIPhone3Skin.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/AppleIPhone3Skin.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/AppleIPhone3Skin.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -12,9 +12,6 @@
import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.BrowserFunction;
-import org.eclipse.swt.browser.LocationEvent;
-import org.eclipse.swt.browser.LocationListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.PaintEvent;
@@ -60,7 +57,7 @@
private static final Point[] REFRESH_LOCATION = {new Point(290, 28), new Point(447,
28)};
private static final Point[] STOP_LOCATION = {new Point(261, 33), new Point(412, 33)};
- private static final int[][] VISIBLE_REGION = {{
+ public static final int[][] VISIBLE_REGION = {{
62, 3, 257, 3, 258, 2, 258, 0, 320, 0, 320, 2, 321, 3, 330, 3, 331, 4, 334, 4, 335, 5,
338, 5, 339, 6, 341, 6,
342, 7, 344, 7, 345, 8, 347, 8, 348, 9, 349, 9, 350, 10, 351, 10, 353, 12, 354, 12,
355, 13, 356, 13, 359, 16,
360, 16, 368, 24, 368, 25, 371, 28, 371, 29, 373, 31, 373, 32, 374, 33, 374, 34, 375,
35, 375, 36, 376, 37,
@@ -116,7 +113,6 @@
private int currentOrientationIndex;
private CompositeImageDecorator addressBarDecorator;
private ImageList imageList;
- private BrowserFunction scrollListener = null;
@Override
public void setBrowserFactory(IBrowserSimBrowserFactory browserFactory) {
@@ -251,37 +247,6 @@
// Label showAddressBarLabel = new Label(shell, SWT.NONE);
// showAddressBarLabel.setBounds(new Rectangle(33, 126, 320, 18));
browser = browserFactory.createBrowser(shell, SWT.NONE);
- browser.addLocationListener(new LocationListener() {
- public void changed(LocationEvent event) {
- if (scrollListener != null) {
- scrollListener.dispose();
- }
- scrollListener = new BrowserFunction(browser, "_browserSim_scrollListener")
{
- public Object function(Object[] arguments) {
- double pageYOffset = (Double) arguments[VERTICAL];
- if (pageYOffset > 0.0) {
- setAddressBarVisible(false);
- }
- return null;
- }
- };
-
- browser.execute(
- "(function() {" +
- "var scrollListener = function(e){" +
- "window._browserSim_scrollListener(window.pageYOffset)" +
- "};" +
- "window.addEventListener('scroll', scrollListener);" +
- "window.addEventListener('beforeunload', function(e){" +
- "window.removeEventListener('scroll', scrollListener);" +
- "delete window._browserSim_scrollListener;" +
- "})" +
- "})();");
- }
- public void changing(LocationEvent event) {
- setAddressBarVisible(true);
- }
- });
locationText.addListener(SWT.DefaultSelection, new Listener() {
public void handleEvent(Event e) {
@@ -294,7 +259,7 @@
shell.open();
}
- private void setAddressBarVisible(boolean visible) {
+ public void setAddressBarVisible(boolean visible) {
Rectangle browserBounds;
if (visible) {
browserBounds = BROWSER_RECTANGLE[currentOrientationIndex];
@@ -356,11 +321,6 @@
}
@Override
- public void setBrowserSize(int width, int height) {
- // TODO Auto-generated method stub
- }
-
- @Override
public void locationChanged(String location, boolean backEnabled, boolean
forwardEnabled) {
locationText.setText(location);
backCompositeDecorator.setVisible(backEnabled);
@@ -380,11 +340,14 @@
@Override
public void statusTextChanged(String newStatusText) {
- // TODO Auto-generated method stub
+ // not supported
}
+
@Override
- public void setOrientation(int orientation) {
+ public void setOrientationAndSize(Point maximumShellSize, int orientation, Point
browserSize) {
+ // browserSize is ignored by this skin
+
if ((this.orientation == DeviceOrientation.PORTRAIT || this.orientation ==
DeviceOrientation.PORTRAIT_INVERTED) &&
(orientation == DeviceOrientation.LANDSCAPE || orientation ==
DeviceOrientation.LANDSCAPE_INVERTED)) {
//changed from portrait to landscape
@@ -398,5 +361,10 @@
this.orientation = orientation;
}
+
+ @Override
+ public void setContextMenu(Menu contextMenu) {
+ shell.setMenu(contextMenu);
+ }
}
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/BrowserSimSkin.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/BrowserSimSkin.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/BrowserSimSkin.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.vpe.browsersim.ui.skin;
+import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
@@ -27,10 +28,11 @@
Shell getShell();
Menu getMenuBar();
void setControlHandler(ControlHandler controlHandler);
- void setBrowserSize(int width, int height);
void locationChanged(String newLocation, boolean backEnabled, boolean forwardEnabled);
void progressChanged(int percents); // -1 for completed
void statusTextChanged(String newStatusText);
- void setOrientation(int orientation);
+ void setOrientationAndSize(Point maximumShellSize, int orientation, Point browserSize);
+ void setAddressBarVisible(boolean visible);
+ void setContextMenu(Menu contextMenu);
}
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ImageList.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ImageList.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ImageList.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -25,7 +25,7 @@
*
* @author Yahor Radtsevich (yradtsevich)
*/
-class ImageList {
+public class ImageList {
private Widget disposable;
private Map<String, Image> imageMap = new HashMap<String, Image>();
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/NativeSkin.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/NativeSkin.java 2012-02-15
19:21:33 UTC (rev 38769)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/NativeSkin.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -15,7 +15,6 @@
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -228,62 +227,28 @@
return toolbar;
}
- public void setBrowserSize(int width, int height) {
+ @Override
+ public void setOrientationAndSize(Point maximumShellSize, int orientation, Point
browserSize) {
GridData data = (GridData) browser.getLayoutData();
- Rectangle clientArea = getMonitorClientArea();
int shellWidthHint = SWT.DEFAULT;
- if (width != Device.DEFAULT_SIZE) {
- data.widthHint = width;
+ if (browserSize.x != Device.DEFAULT_SIZE) {
+ data.widthHint = browserSize.x;
} else if (data.widthHint == SWT.DEFAULT) {
- shellWidthHint = clientArea.width;
+ shellWidthHint = maximumShellSize.x;
}
int shellHeightHint = SWT.DEFAULT;
- if (height != Device.DEFAULT_SIZE) {
- data.heightHint = height;
+ if (browserSize.y != Device.DEFAULT_SIZE) {
+ data.heightHint = browserSize.y;
} else if (data.heightHint == SWT.DEFAULT) {
- shellHeightHint = clientArea.height;
+ shellHeightHint = maximumShellSize.y;
}
Point shellSize = shell.computeSize(shellWidthHint, shellHeightHint);
- shellSize.x = Math.min(shellSize.x, clientArea.width);
- shellSize.y = Math.min(shellSize.y, clientArea.height);
+ shellSize.x = Math.min(shellSize.x, maximumShellSize.x);
+ shellSize.y = Math.min(shellSize.y, maximumShellSize.y);
shell.setSize(shellSize);
-
- Rectangle shellBounds = shell.getBounds();
- int bottomOverlap = shellBounds.y + shellBounds.height - (clientArea.y +
clientArea.height);
- if (bottomOverlap > 0) {
- if (shellBounds.y > bottomOverlap) {
- shellBounds.y -= bottomOverlap;
- } else {
- shellBounds.y = 0;
- }
- }
-
- int rightOverlap = shellBounds.x + shellBounds.width - (clientArea.x +
clientArea.width);
- if (rightOverlap > 0) {
- if (shellBounds.x > rightOverlap) {
- shellBounds.x -= rightOverlap;
- } else {
- shellBounds.x = 0;
- }
- }
-
- shell.setBounds(shellBounds);
}
- private Rectangle getMonitorClientArea() {
- Rectangle clientArea = skinComposite.getMonitor().getClientArea();
-
- /* on Linux returned monitor client area may be bigger
- * than the monitor bounds when multiple monitors are used.
- * The following code fixes this */
- Rectangle bounds = skinComposite.getMonitor().getBounds();
- clientArea.width = Math.min(clientArea.width, bounds.width);
- clientArea.height = Math.min(clientArea.height, bounds.height);
-
- return clientArea;
- }
-
@Override
public BrowserSimBrowser getBrowser() {
return browser;
@@ -324,8 +289,12 @@
}
@Override
- public void setOrientation(int orientation) {
- // do nothing, only browser size should change it should
- // be done by calling setBrowserSize(int width, int height)
+ public void setAddressBarVisible(boolean visible) {
+ // not supported
}
+
+ @Override
+ public void setContextMenu(Menu contextMenu) {
+ // not supported
+ }
}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/AppleIPhone3ResizableSkin.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/AppleIPhone3ResizableSkin.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/AppleIPhone3ResizableSkin.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,323 @@
+package org.jboss.tools.vpe.browsersim.ui.skin.ios;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Region;
+import org.eclipse.swt.layout.FillLayout;
+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;
+import org.eclipse.swt.widgets.ProgressBar;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.vpe.browsersim.browser.BrowserSimBrowser;
+import org.jboss.tools.vpe.browsersim.browser.IBrowserSimBrowserFactory;
+import org.jboss.tools.vpe.browsersim.model.Device;
+import org.jboss.tools.vpe.browsersim.model.DeviceOrientation;
+import org.jboss.tools.vpe.browsersim.ui.ControlHandler;
+import org.jboss.tools.vpe.browsersim.ui.skin.BrowserSimSkin;
+
+public class AppleIPhone3ResizableSkin implements BrowserSimSkin {
+ private static final Point VERTICAL_BORDERS_SIZE = new Point(384 - 320, 727 - 480);
+ private static final Point HORIZONTAL_BORDERS_SIZE = new Point(VERTICAL_BORDERS_SIZE.y,
VERTICAL_BORDERS_SIZE.x);
+ private static final IPhoneSkinDescriptor VERTICAL_IPHONE3_DESCRIPTOR;
+ static {
+ String bd = "ios/iphone3/vertical/";
+ ImageDescriptor iOsDescriptor = new ImageDescriptor(null, 5, 3, SWT.VERTICAL |
SWT.HORIZONTAL);
+ ImageDescriptor[] bodyGridImageDescriptors = {
+ new ImageDescriptor(bd + "01.png"), new ImageDescriptor(bd +
"02.png"), new ImageDescriptor(bd + "03.png", 1, 1, SWT.HORIZONTAL),
new ImageDescriptor(bd + "04.png"), new ImageDescriptor(bd + "05.png",
1, 1, SWT.HORIZONTAL), new ImageDescriptor(bd + "06.png"), new
ImageDescriptor(bd + "07.png"),
+ new ImageDescriptor(bd + "08.png"), iOsDescriptor,
new ImageDescriptor(bd + "14.png"),
+ new ImageDescriptor(bd + "21.png", 1, 1, SWT.VERTICAL),
new ImageDescriptor(bd + "22.png", 1, 1, SWT.VERTICAL),
+ new ImageDescriptor(bd + "23.png"),
new ImageDescriptor(bd + "24.png"),
+ new ImageDescriptor(bd + "25.png"), new ImageDescriptor(bd +
"26.png"), new ImageDescriptor(bd + "27.png", 1, 1, SWT.HORIZONTAL),
new ImageDescriptor(bd + "28.png"), new ImageDescriptor(bd + "29.png",
1, 1, SWT.HORIZONTAL), new ImageDescriptor(bd + "30.png"), new
ImageDescriptor(bd + "31.png"),
+ };
+ int bodyGridSize = 7;
+
+ String bd2 = "ios/";
+ ButtonDescriptor backButtonDescriptor;
+ {
+ FormData formData = new FormData();
+ formData.left = new FormAttachment(0, 52);
+ formData.bottom = new FormAttachment(100, -132);
+ backButtonDescriptor = new ButtonDescriptor(formData, bd2 + "back.png", bd2
+ "back-disabled.png", bd2 + "back-selected.png");
+ }
+
+ ButtonDescriptor forwardButtonDescriptor;
+ {
+ FormData formData = new FormData();
+ formData.left = new FormAttachment(0, 115);
+ formData.bottom = new FormAttachment(100, -132);
+ forwardButtonDescriptor = new ButtonDescriptor(formData, bd2 +
"forward.png", bd2 + "forward-disabled.png", bd2 +
"forward-selected.png");
+ }
+ VERTICAL_IPHONE3_DESCRIPTOR = new IPhoneSkinDescriptor(bodyGridSize,
bodyGridImageDescriptors, iOsDescriptor, backButtonDescriptor, forwardButtonDescriptor);
+ }
+ private static final IPhoneSkinDescriptor HORIZONTAL_IPHONE3_DESCRIPTOR;
+ static {
+ String bd = "ios/iphone3/horizontal/";
+ ImageDescriptor iOsDescriptor = new ImageDescriptor(null, 5, 5, SWT.VERTICAL |
SWT.HORIZONTAL);
+ ImageDescriptor[] bodyGridImageDescriptors = {
+ new ImageDescriptor(bd + "01.png"), new ImageDescriptor(bd +
"02.png"), new ImageDescriptor(bd + "03.png", 1, 1, SWT.HORIZONTAL),
new ImageDescriptor(bd + "04.png"), new ImageDescriptor(bd + "05.png",
1, 1, SWT.HORIZONTAL), new ImageDescriptor(bd + "06.png"), new
ImageDescriptor(bd + "07.png"),
+ new ImageDescriptor(bd + "08.png"), iOsDescriptor,
new ImageDescriptor(bd + "10.png"),
+ new ImageDescriptor(bd + "11.png", 1, 1, SWT.VERTICAL),
new ImageDescriptor(bd + "12.png", 1, 1, SWT.VERTICAL),
+ new ImageDescriptor(bd + "13.png"),
new ImageDescriptor(bd + "14.png"),
+ new ImageDescriptor(bd + "15.png", 1, 1, SWT.VERTICAL),
new ImageDescriptor(bd + "16.png", 1, 1, SWT.VERTICAL),
+ new ImageDescriptor(bd + "17.png"),
new ImageDescriptor(bd + "18.png"),
+ new ImageDescriptor(bd + "19.png"), new ImageDescriptor(bd +
"20.png"), new ImageDescriptor(bd + "21.png", 1, 1, SWT.HORIZONTAL),
new ImageDescriptor(bd + "22.png"), new ImageDescriptor(bd + "23.png",
1, 1, SWT.HORIZONTAL), new ImageDescriptor(bd + "24.png"), new
ImageDescriptor(bd + "25.png"),
+ };
+ int bodyGridSize = 7;
+ String bd2 = "ios/";
+ ButtonDescriptor backButtonDescriptor;
+ {
+ FormData formData = new FormData();
+ formData.left = new FormAttachment(0, 145);
+ formData.bottom = new FormAttachment(100, -36);
+ backButtonDescriptor = new ButtonDescriptor(formData, bd2 + "back.png", bd2
+ "back-disabled.png", bd2 + "back-selected.png");
+ }
+
+ ButtonDescriptor forwardButtonDescriptor;
+ {
+ FormData formData = new FormData();
+ formData.left = new FormAttachment(0, 247);
+ formData.bottom = new FormAttachment(100, -36);
+ forwardButtonDescriptor = new ButtonDescriptor(formData, bd2 +
"forward.png", bd2 + "forward-disabled.png", bd2 +
"forward-selected.png");
+ }
+ HORIZONTAL_IPHONE3_DESCRIPTOR = new IPhoneSkinDescriptor(bodyGridSize,
bodyGridImageDescriptors, iOsDescriptor, backButtonDescriptor, forwardButtonDescriptor);
+ }
+
+ private IBrowserSimBrowserFactory browserFactory;
+ private boolean vertical;
+ private Display display;
+ private Shell shell;
+ private BrowserSimBrowser browser;
+ private ControlHandler controlHandler;
+ private AppleIPhoneComposite iPhoneComposite;
+
+ @Override
+ public void setBrowserFactory(IBrowserSimBrowserFactory browserFactory) {
+ this.browserFactory = browserFactory;
+ }
+
+ @Override
+ public void createControls(Display display) {
+ this.display = display;
+ shell = new Shell(display, SWT.NO_TRIM | SWT.NO_BACKGROUND);
+ shell.setLayout(new FillLayout());
+
+ iPhoneComposite = new AppleIPhoneComposite(shell, VERTICAL_IPHONE3_DESCRIPTOR);
+ vertical = true;
+ bindIPhoneCompositeControls();
+ Composite browserContainer = iPhoneComposite.getBrowserContainer();
+ browserContainer.setLayout(new FillLayout());
+ browser = browserFactory.createBrowser(browserContainer, SWT.NONE);
+
+ shell.setSize(/*shell.computeSize(SWT.DEFAULT, SWT.DEFAULT)*/ 384, 727);
+ shell.open();
+ setShellRegion();
+ }
+
+ private void setShellRegion() {
+ shell.setRegion(null);
+ display.asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ Region region = new Region();
+// shellRegion.add(AppleIPhone3Skin.VISIBLE_REGION[0]);
+ GC gc = new GC(shell);
+ final Image screenshot = new Image(display, shell.getBounds());
+ gc.copyArea(screenshot, 0, 0);
+ gc.dispose();
+ ImageData imageData = screenshot.getImageData();
+ region.add(0, 0, imageData.width, imageData.height);
+ int firstPixel = imageData.getPixel(0, 0);
+ for (int i = 0; i < imageData.height; i++) {
+ for (int j = 0; j < imageData.width; j++) {
+ if (imageData.getPixel(j, i) == firstPixel) {
+ region.subtract(j, i, 1, 1);
+ }
+ }
+ }
+ screenshot.dispose();
+ shell.setRegion(region);
+ region.dispose();
+ }
+ });
+ }
+
+ private void bindIPhoneCompositeControls() {
+ iPhoneComposite.getBackButtonComposite().addMouseListener(new MouseAdapter() {
+ public void mouseDown(MouseEvent e) {
+ if (e.button == 1) {
+ controlHandler.goBack();
+ }
+ }
+ });
+ iPhoneComposite.getForwardButtonComposite().addMouseListener(new MouseAdapter() {
+ public void mouseDown(MouseEvent e) {
+ if (e.button == 1) {
+ controlHandler.goForward();
+ }
+ }
+ });
+ iPhoneComposite.getStopButtonComposite().addMouseListener(new MouseAdapter() {
+ public void mouseDown(MouseEvent e) {
+ if (e.button == 1) {
+ controlHandler.stop();
+ }
+ }
+ });
+ iPhoneComposite.getRefreshButtonComposite().addMouseListener(new MouseAdapter() {
+ public void mouseDown(MouseEvent e) {
+ if (e.button == 1) {
+ controlHandler.refresh();
+ }
+ }
+ });
+ iPhoneComposite.getUrlText().addListener(SWT.DefaultSelection, new Listener() {
+ public void handleEvent(Event e) {
+ controlHandler.goToAddress(((Text)e.widget).getText());
+ }
+ });
+
+
+ Listener l = new Listener() {
+ Point origin;
+ Point shellOrigin;
+
+ public void handleEvent(Event e) {
+ if ((e.stateMask & SWT.BUTTON1) != 0 || e.button == 1) { // left mouse Composite
+ switch (e.type) {
+ case SWT.MouseDown:
+ origin = AppleIPhone3ResizableSkin.this.display.map(shell, null, e.x, e.y);
+ shellOrigin = shell.getLocation();
+ break;
+ case SWT.MouseUp:
+ origin = null;
+ break;
+ case SWT.MouseMove:
+ if (origin != null) {
+ Point p = AppleIPhone3ResizableSkin.this.display.map(shell, null, e.x, e.y);
+ shell.setLocation(shellOrigin.x + p.x - origin.x, shellOrigin.y + p.y -
origin.y);
+ }
+ break;
+ }
+ }
+ }
+ };
+ iPhoneComposite.addListener(SWT.MouseDown, l);
+ iPhoneComposite.addListener(SWT.MouseUp, l);
+ iPhoneComposite.addListener(SWT.MouseMove, l);
+ }
+
+ @Override
+ public BrowserSimBrowser getBrowser() {
+ return browser;
+ }
+
+ @Override
+ public Shell getShell() {
+ return shell;
+ }
+
+ @Override
+ public Menu getMenuBar() {
+ return display.getMenuBar();
+ }
+
+ @Override
+ public void setControlHandler(ControlHandler controlHandler) {
+ this.controlHandler = controlHandler;
+ }
+
+ @Override
+ public void locationChanged(String newLocation, boolean backEnabled,
+ boolean forwardEnabled) {
+ iPhoneComposite.getUrlText().setText(newLocation);
+ iPhoneComposite.getBackButtonComposite().setEnabled(backEnabled);
+ iPhoneComposite.getForwardButtonComposite().setEnabled(forwardEnabled);
+ }
+
+ @Override
+ public void progressChanged(int percents) {
+ ProgressBar progressBar = iPhoneComposite.getProgressBar();
+ if (percents > 0) {
+ progressBar.setVisible(true);
+ progressBar.setSelection(percents);
+ } else {
+ progressBar.setVisible(false);
+ progressBar.setSelection(0);
+ }
+ }
+
+ @Override
+ public void statusTextChanged(String newStatusText) {
+ // not supported
+ }
+
+ @Override
+ public void setOrientationAndSize(Point maximumShellSize, int orientation, Point
browserSize) {
+ vertical = (orientation == DeviceOrientation.PORTRAIT || orientation ==
DeviceOrientation.PORTRAIT_INVERTED);
+ String urlTextText = iPhoneComposite.getUrlText().getText();
+ boolean backEnabled = iPhoneComposite.getBackButtonComposite().getEnabled();
+ boolean forwardEnabled = iPhoneComposite.getForwardButtonComposite().getEnabled();
+ boolean navBarVisible = iPhoneComposite.isNavBarCompositeVisible();
+ Menu contextMenu = iPhoneComposite.getMenu();
+ iPhoneComposite.setMenu(null);
+
+ AppleIPhoneComposite oldIPhoneComposite = iPhoneComposite;
+ IPhoneSkinDescriptor skinDescriptor;
+ if (vertical) {
+ skinDescriptor = VERTICAL_IPHONE3_DESCRIPTOR;
+ } else {
+ skinDescriptor = HORIZONTAL_IPHONE3_DESCRIPTOR;
+ }
+ iPhoneComposite = new AppleIPhoneComposite(shell, skinDescriptor);
+ bindIPhoneCompositeControls();
+ Composite browserContainer = iPhoneComposite.getBrowserContainer();
+ browserContainer.setLayout(new FillLayout());
+ browser.setParent(browserContainer);
+ oldIPhoneComposite.dispose();
+ Point bordersSize = vertical ? VERTICAL_BORDERS_SIZE : HORIZONTAL_BORDERS_SIZE;
+ int shellWidth;
+ if (browserSize.x == SWT.DEFAULT) {
+ shellWidth = SWT.DEFAULT;
+ } else {
+ shellWidth = Math.min(bordersSize.x + browserSize.x, maximumShellSize.x);
+ }
+ int shellHeight;
+ if (browserSize.y == SWT.DEFAULT) {
+ shellHeight = SWT.DEFAULT;
+ } else {
+ shellHeight = Math.min(bordersSize.y + browserSize.y, maximumShellSize.y);
+ }
+
+ shell.setSize(shell.computeSize(shellWidth, shellHeight));
+ shell.layout(true);
+ setShellRegion();
+
+ iPhoneComposite.getUrlText().setText(urlTextText);
+ iPhoneComposite.getBackButtonComposite().setEnabled(backEnabled);
+ iPhoneComposite.getForwardButtonComposite().setEnabled(forwardEnabled);
+ iPhoneComposite.setNavBarCompositeVisible(navBarVisible);
+ iPhoneComposite.setMenu(contextMenu);
+ }
+
+ @Override
+ public void setAddressBarVisible(boolean visible) {
+ iPhoneComposite.setNavBarCompositeVisible(visible);
+ }
+
+ @Override
+ public void setContextMenu(Menu contextMenu) {
+ iPhoneComposite.setMenu(contextMenu);
+ }
+}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/AppleIPhoneComposite.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/AppleIPhoneComposite.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/AppleIPhoneComposite.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,187 @@
+package org.jboss.tools.vpe.browsersim.ui.skin.ios;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.ProgressBar;
+import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.vpe.browsersim.ui.skin.ImageList;
+
+
+public class AppleIPhoneComposite extends Composite {
+ private ImageList imageList;
+ private Composite iOsCompositeContainer;
+
+// ImageDescriptor I_OS_DESCRIPTOR = new ImageDescriptor(null, 5, 3, SWT.VERTICAL |
SWT.HORIZONTAL);
+// ImageDescriptor[] BODY_DESCRIPTOR = {
+// new ImageDescriptor("01.png"), new ImageDescriptor("02.png"), new
ImageDescriptor("03.png", 1, 1, SWT.HORIZONTAL), new
ImageDescriptor("04.png"), new ImageDescriptor("05.png", 1, 1,
SWT.HORIZONTAL), new ImageDescriptor("06.png"), new
ImageDescriptor("07.png"),
+// new ImageDescriptor("08.png"),
I_OS_DESCRIPTOR,
new ImageDescriptor("14.png"),
+// new ImageDescriptor("21.png", 1, 1, SWT.VERTICAL),
new
ImageDescriptor("22.png", 1, 1, SWT.VERTICAL),
+// new ImageDescriptor("23.png"),
new
ImageDescriptor("24.png"),
+// new ImageDescriptor("25.png"), new ImageDescriptor("26.png"), new
ImageDescriptor("27.png", 1, 1, SWT.HORIZONTAL), new
ImageDescriptor("28.png"), new ImageDescriptor("29.png", 1, 1,
SWT.HORIZONTAL), new ImageDescriptor("30.png"), new
ImageDescriptor("31.png"),
+// };
+
+ private Composite browserContainer;
+ private IOSNavBarComposite navBarComposite;
+ private ImageButtonComposite forwardButtonComposite;
+ private ImageButtonComposite backButtonComposite;
+
+ private Composite bodyComposite;
+
+ /**
+ * Create the composite.
+ * @param parent
+ * @param skinDescriptor
+ * @param style
+ */
+ public AppleIPhoneComposite(Composite parent, IPhoneSkinDescriptor skinDescriptor) {
+ super(parent, SWT.NONE);
+
+ imageList = new ImageList(this);
+ setLayout(new FormLayout());
+
+ backButtonComposite = new ImageButtonComposite(this, imageList,
skinDescriptor.getBackButton());
+ forwardButtonComposite = new ImageButtonComposite(this, imageList,
skinDescriptor.getForwardButton());
+
+ bodyComposite = new Composite(this, SWT.NONE);
+ FormData formData = new FormData();
+ formData.left = new FormAttachment(0);
+ formData.top = new FormAttachment(0);
+ formData.right = new FormAttachment(100);
+ formData.bottom = new FormAttachment(100);
+ bodyComposite.setLayoutData(formData);
+
+ GridLayout gridLayout = new GridLayout(skinDescriptor.getBodyGridSize(), false);
+ gridLayout.verticalSpacing = 0;
+ gridLayout.horizontalSpacing = 0;
+ gridLayout.marginWidth = 0;
+ gridLayout.marginHeight = 0;
+ bodyComposite.setLayout(gridLayout);
+
+ for (ImageDescriptor descriptor : skinDescriptor.getBodyGridImageDescriptors()) {
+ Composite composite = descriptor.createWidget(bodyComposite, imageList);
+ if (descriptor == skinDescriptor.getiOSDescriptor()) {
+ iOsCompositeContainer = composite;
+ }
+ }
+
+ gridLayout = new GridLayout(1, false);
+ gridLayout.verticalSpacing = 0;
+ gridLayout.horizontalSpacing = 0;
+ gridLayout.marginWidth = 0;
+ gridLayout.marginHeight = 0;
+ iOsCompositeContainer.setLayout(gridLayout);
+ IOsTimeComposite timeComposite = new IOsTimeComposite(iOsCompositeContainer,
imageList);
+ GridData gridData = new GridData(SWT.FILL, SWT.BEGINNING, true, false, 1, 1);
+ timeComposite.setLayoutData(gridData);
+
+ navBarComposite = new IOSNavBarComposite(iOsCompositeContainer, imageList);
+ gridData = new GridData(SWT.FILL, SWT.BEGINNING, true, false, 1, 1);
+ navBarComposite.setLayoutData(gridData);
+
+ browserContainer = new Composite(iOsCompositeContainer, SWT.NONE);
+ gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
+ browserContainer.setLayoutData(gridData);
+
+ timeComposite.addMouseListener(new MouseAdapter() {
+ public void mouseDown(MouseEvent e) {
+ if (e.button == 1) {
+ setNavBarCompositeVisible(!isNavBarCompositeVisible());
+ }
+ }
+ });
+ }
+
+ public ImageButtonComposite getBackButtonComposite() {
+ return backButtonComposite;
+ }
+
+ public ImageButtonComposite getForwardButtonComposite() {
+ return forwardButtonComposite;
+ }
+
+ public Composite getBrowserContainer() {
+ return browserContainer;
+ }
+
+ @Override
+ protected void checkSubclass() {
+ // Disable the check that prevents subclassing of SWT components
+ }
+
+ public void setNavBarCompositeVisible(boolean visible) {
+ GridData gridData = (GridData) navBarComposite.getLayoutData();
+ if (visible) {
+ gridData.heightHint = SWT.DEFAULT;
+ } else {
+ gridData.heightHint = 0;
+ }
+ iOsCompositeContainer.layout();
+ }
+
+ public boolean isNavBarCompositeVisible() {
+ GridData gridData = (GridData) navBarComposite.getLayoutData();
+ return gridData.heightHint != 0;
+ }
+
+ public ImageButtonComposite getStopButtonComposite() {
+ return navBarComposite.getStopButtonComposite();
+ }
+
+ public ImageButtonComposite getRefreshButtonComposite() {
+ return navBarComposite.getRefreshButtonComposite();
+ }
+
+ public Text getUrlText() {
+ return navBarComposite.getUrlText();
+ }
+
+ public ProgressBar getProgressBar() {
+ return navBarComposite.getProgressBar();
+ }
+
+ @Override
+ public void addListener(int eventType, Listener listener) {
+ super.addListener(eventType, listener);
+ switch (eventType) {
+ case SWT.MouseDown:
+ case SWT.MouseUp:
+ case SWT.MouseMove:
+ bodyComposite.addListener(eventType, listener);
+ for (Control child : bodyComposite.getChildren()) {
+ child.addListener(eventType, listener);
+ }
+ }
+ }
+
+ @Override
+ public void removeListener(int eventType, Listener listener) {
+ super.removeListener(eventType, listener);
+ switch (eventType) {
+ case SWT.MouseDown:
+ case SWT.MouseUp:
+ case SWT.MouseMove:
+ bodyComposite.removeListener(eventType, listener);
+ for (Control child :bodyComposite.getChildren()) {
+ child.removeListener(eventType, listener);
+ }
+ }
+ }
+
+ @Override
+ public void setMenu(Menu menu) {
+ super.setMenu(menu);
+ bodyComposite.setMenu(menu);
+ for (Control child :bodyComposite.getChildren()) {
+ child.setMenu(menu);
+ }
+ }
+}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ButtonDescriptor.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ButtonDescriptor.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ButtonDescriptor.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,34 @@
+package org.jboss.tools.vpe.browsersim.ui.skin.ios;
+
+import org.eclipse.swt.layout.FormData;
+
+public class ButtonDescriptor {
+ private String enabledImageName;
+ private String disabledImageName;
+ private String selectedImageName;
+
+ /** the width and height fields are ignored*/
+ private FormData formData;
+
+ /** the width and height fields of formData are ignored*/
+ public ButtonDescriptor(FormData formData, String enabledImageName,
+ String disabledImageName, String selectedImageName) {
+ this.formData = formData;
+ this.enabledImageName = enabledImageName;
+ this.disabledImageName = disabledImageName;
+ this.selectedImageName = selectedImageName;
+ }
+
+ public String getEnabledImageName() {
+ return enabledImageName;
+ }
+ public String getDisabledImageName() {
+ return disabledImageName;
+ }
+ public String getSelectedImageName() {
+ return selectedImageName;
+ }
+ public FormData getFormData() {
+ return formData;
+ }
+}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IOSNavBarComposite.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IOSNavBarComposite.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IOSNavBarComposite.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,110 @@
+package org.jboss.tools.vpe.browsersim.ui.skin.ios;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.ProgressBar;
+import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.vpe.browsersim.ui.skin.ImageList;
+
+
+public class IOSNavBarComposite extends Composite {
+ private final String BD = "ios/";
+ private final ImageDescriptor[] BODY_DESCRIPTOR = {
+ new ImageDescriptor(BD + "nav-1.png"), new ImageDescriptor(BD +
"nav-2.png", 1, 1, SWT.HORIZONTAL), new ImageDescriptor(BD +
"nav-3.png"), new ImageDescriptor(BD + "nav-4.png", 1, 1,
SWT.HORIZONTAL), new ImageDescriptor(BD + "nav-5.png")
+ };
+ private ImageButtonComposite stopButtonComposite;
+ private ImageButtonComposite refreshButtonComposite;
+ private Text urlText;
+ private ProgressBar progressBar;
+
+ /**
+ * Create the composite.
+ * @param parent
+ * @param style
+ */
+ public IOSNavBarComposite(Composite parent, ImageList imageList) {
+ super(parent, SWT.NONE);
+
+ this.setLayout(new FormLayout());
+
+ urlText = new Text(this, SWT.SINGLE);
+ FormData formData = new FormData();
+ formData.left = new FormAttachment(0, 12);
+ formData.right = new FormAttachment(100, -62);
+ formData.top = new FormAttachment(0, 33);
+ formData.bottom = new FormAttachment(100, -8);
+ urlText.setLayoutData(formData);
+
+ refreshButtonComposite = new ImageButtonComposite(this, imageList.getImage(BD +
"refresh.png"), imageList.getImage(BD + "refresh.png"),
imageList.getImage(BD + "refresh-selected.png"));
+ formData = new FormData();
+ Rectangle refreshImageBounds = imageList.getImage(BD +
"refresh.png").getBounds();
+ formData.right = new FormAttachment(100, -8);
+ formData.bottom = new FormAttachment(100, -7);
+ formData.width = refreshImageBounds.width;
+ formData.height = refreshImageBounds.height;
+ refreshButtonComposite.setLayoutData(formData);
+
+ stopButtonComposite = new ImageButtonComposite(this, imageList.getImage(BD +
"stop.png"), imageList.getImage(BD + "stop.png"),
imageList.getImage(BD + "stop-selected.png"));
+ formData = new FormData();
+ Rectangle stopImageBounds = imageList.getImage(BD + "stop.png").getBounds();
+ formData.right = new FormAttachment(100, -42);
+ formData.bottom = new FormAttachment(100, -11);
+ formData.width = stopImageBounds.width;
+ formData.height = stopImageBounds.height;
+ stopButtonComposite.setLayoutData(formData);
+
+ progressBar = new ProgressBar(this, SWT.NONE);
+ progressBar.setVisible(false);
+ formData = new FormData();
+ formData.left = new FormAttachment(0, 7);
+ formData.right = new FormAttachment(100, -36);
+ formData.bottom = new FormAttachment(100, -1);
+ formData.height = 5;
+ progressBar.setLayoutData(formData);
+
+ Composite imagesComposite = new Composite(this, SWT.NONE);
+ formData = new FormData();
+ formData.left = new FormAttachment(0);
+ formData.right = new FormAttachment(100);
+ formData.top = new FormAttachment(0);
+ formData.bottom = new FormAttachment(100);
+ imagesComposite.setLayoutData(formData);
+
+ GridLayout gridLayout = new GridLayout(5, false);
+ gridLayout.verticalSpacing = 0;
+ gridLayout.horizontalSpacing = 0;
+ gridLayout.marginWidth = 0;
+ gridLayout.marginHeight = 0;
+
+ imagesComposite.setLayout(gridLayout);
+
+ for (ImageDescriptor descriptor : BODY_DESCRIPTOR) {
+ descriptor.createWidget(imagesComposite, imageList);
+ }
+ }
+
+ @Override
+ protected void checkSubclass() {
+ // Disable the check that prevents subclassing of SWT components
+ }
+
+ public ImageButtonComposite getStopButtonComposite() {
+ return stopButtonComposite;
+ }
+
+ public ImageButtonComposite getRefreshButtonComposite() {
+ return refreshButtonComposite;
+ }
+
+ public Text getUrlText() {
+ return urlText;
+ }
+
+ public ProgressBar getProgressBar() {
+ return progressBar;
+ }
+}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IOsTimeComposite.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IOsTimeComposite.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IOsTimeComposite.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,65 @@
+package org.jboss.tools.vpe.browsersim.ui.skin.ios;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Listener;
+import org.jboss.tools.vpe.browsersim.ui.skin.ImageList;
+
+
+public class IOsTimeComposite extends Composite {
+ private final String BD = "ios/";
+ private final ImageDescriptor[] BODY_DESCRIPTOR = {
+ new ImageDescriptor(BD + "time-1.png"), new ImageDescriptor(BD +
"time-2.png", 1, 1, SWT.HORIZONTAL), new ImageDescriptor(BD +
"time-3.png"), new ImageDescriptor(BD + "time-4.png", 1, 1,
SWT.HORIZONTAL), new ImageDescriptor(BD + "time-5.png")
+ };
+
+ /**
+ * Create the composite.
+ * @param parent
+ * @param style
+ */
+ public IOsTimeComposite(Composite parent, ImageList imageList) {
+ super(parent, SWT.NONE);
+ GridLayout gridLayout = new GridLayout(5, false);
+ gridLayout.verticalSpacing = 0;
+ gridLayout.horizontalSpacing = 0;
+ gridLayout.marginWidth = 0;
+ gridLayout.marginHeight = 0;
+ setLayout(gridLayout);
+
+ for (ImageDescriptor descriptor : BODY_DESCRIPTOR) {
+ descriptor.createWidget(this, imageList);
+ }
+ }
+
+ @Override
+ protected void checkSubclass() {
+ // Disable the check that prevents subclassing of SWT components
+ }
+
+ @Override
+ public void addListener(int eventType, Listener listener) {
+ super.addListener(eventType, listener);
+ switch (eventType) {
+ case SWT.MouseDown:
+ case SWT.MouseUp:
+ case SWT.MouseMove:
+ for (Control child : getChildren()) {
+ child.addListener(eventType, listener);
+ }
+ }
+ }
+
+ @Override
+ public void removeListener(int eventType, Listener listener) {
+ super.removeListener(eventType, listener);
+ switch (eventType) {
+ case SWT.MouseDown:
+ case SWT.MouseUp:
+ case SWT.MouseMove:
+ for (Control child : getChildren()) {
+ child.removeListener(eventType, listener);
+ }
+ }
+ }
+}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IPhoneSkinDescriptor.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IPhoneSkinDescriptor.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/IPhoneSkinDescriptor.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,40 @@
+package org.jboss.tools.vpe.browsersim.ui.skin.ios;
+
+public class IPhoneSkinDescriptor {
+ private int bodyGridSize;
+ private ImageDescriptor[] bodyGridImageDescriptors;
+ private ImageDescriptor iOSDescriptor;
+ private ButtonDescriptor backButton;
+ private ButtonDescriptor forwardButton;
+
+ public IPhoneSkinDescriptor(int bodyGridSize,
+ ImageDescriptor[] bodyGridImageDescriptors,
+ ImageDescriptor iOSDescriptor, ButtonDescriptor backButton,
+ ButtonDescriptor forwardButton) {
+ this.bodyGridSize = bodyGridSize;
+ this.bodyGridImageDescriptors = bodyGridImageDescriptors;
+ this.iOSDescriptor = iOSDescriptor;
+ this.backButton = backButton;
+ this.forwardButton = forwardButton;
+ }
+
+ public int getBodyGridSize() {
+ return bodyGridSize;
+ }
+
+ public ImageDescriptor[] getBodyGridImageDescriptors() {
+ return bodyGridImageDescriptors;
+ }
+
+ public ImageDescriptor getiOSDescriptor() {
+ return iOSDescriptor;
+ }
+
+ public ButtonDescriptor getBackButton() {
+ return backButton;
+ }
+
+ public ButtonDescriptor getForwardButton() {
+ return forwardButton;
+ }
+}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ImageButtonComposite.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ImageButtonComposite.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ImageButtonComposite.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,95 @@
+package org.jboss.tools.vpe.browsersim.ui.skin.ios;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseTrackListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.jboss.tools.vpe.browsersim.ui.skin.ImageList;
+
+
+public class ImageButtonComposite extends Composite {
+
+ private MouseTrackListener mouseTrackListener;
+ private Image enabledImage;
+ private Image disabledImage;
+ private Image selectedImage;
+ protected boolean enabled;
+
+ /**
+ * Create the composite.
+ * @param parent
+ * @param style
+ */
+ public ImageButtonComposite(Composite parent, Image enabledImage, Image disabledImage,
Image selectedImage) {
+ super(parent, SWT.NONE);
+ this.enabledImage = enabledImage;
+ this.disabledImage = disabledImage;
+ this.selectedImage = selectedImage;
+ setEnabled(true);
+ addMouseTrackListener(getMouseTrackListener());
+ }
+
+ public ImageButtonComposite(Composite parent, ImageList imageList, ButtonDescriptor
buttonDescriptor) {
+ this( parent, imageList.getImage(buttonDescriptor.getEnabledImageName()),
+ imageList.getImage(buttonDescriptor.getDisabledImageName()),
+ imageList.getImage(buttonDescriptor.getSelectedImageName()) );
+
+ FormData formData = buttonDescriptor.getFormData();
+ FormData actualFormData = new FormData();
+ actualFormData.left = formData.left;
+ actualFormData.top = formData.top;
+ actualFormData.right = formData.right;
+ actualFormData.bottom = formData.bottom;
+
+ Rectangle size = enabledImage.getBounds();
+ actualFormData.width = size.width;
+ actualFormData.height = size.height;
+
+ this.setLayoutData(actualFormData);
+ }
+
+ public void setEnabled(boolean enabled) {
+ this.enabled = enabled;
+ if (enabled) {
+ setBackgroundImage(enabledImage);
+ } else {
+ setBackgroundImage(disabledImage);
+ }
+ }
+
+ public boolean getEnabled() {
+ return enabled;
+ }
+
+ @Override
+ protected void checkSubclass() {
+ // Disable the check that prevents subclassing of SWT components
+ }
+
+ private MouseTrackListener getMouseTrackListener() {
+ if (mouseTrackListener == null) {
+ mouseTrackListener = new MouseTrackListener() {
+ @Override
+ public void mouseHover(MouseEvent e) {
+ }
+
+ @Override
+ public void mouseExit(MouseEvent e) {
+ if (enabled) {
+ setBackgroundImage(enabledImage);
+ }
+ }
+
+ @Override
+ public void mouseEnter(MouseEvent e) {
+ if (enabled) {
+ setBackgroundImage(selectedImage);
+ }
+ }
+ };
+ }
+ return mouseTrackListener;
+ }
+}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ImageDescriptor.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ImageDescriptor.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/ImageDescriptor.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,55 @@
+package org.jboss.tools.vpe.browsersim.ui.skin.ios;
+import org.jboss.tools.vpe.browsersim.ui.skin.ImageList;
+import org.jboss.tools.vpe.browsersim.ui.skin.ios.WidgetDescriptor;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+
+
+class ImageDescriptor extends WidgetDescriptor {
+ protected String imageName;
+
+ public ImageDescriptor(String imageName, int horizontalSpan, int verticalSpan, int
stretching) {
+ super(horizontalSpan, verticalSpan, stretching);
+ this.imageName = imageName;
+ }
+ public ImageDescriptor(String imageName, int horizontalSpan, int verticalSpan) {
+ this(imageName, horizontalSpan, verticalSpan, SWT.NONE);
+ }
+ public ImageDescriptor(String imageName) {
+ this(imageName, 1, 1);
+ }
+
+ public Composite createWidget(Composite parent, ImageList imageList) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ boolean fillHorizontal = (getStretching() & SWT.HORIZONTAL) != 0;
+ boolean fillVertical = (getStretching() & SWT.VERTICAL) != 0;
+ GridData gridData = new GridData(
+ fillHorizontal ? SWT.FILL: SWT.CENTER,
+ fillVertical ? SWT.FILL: SWT.CENTER,
+ fillHorizontal, fillVertical,
+ getHorizontalSpan(), getVerticalSpan());
+
+ String imageName = getImageName();
+ if (imageName != null) {
+ Image image = imageList.getImage(imageName);
+ composite.setBackgroundImage(image);
+ Rectangle bounds = image.getBounds();
+ gridData.widthHint = fillHorizontal ? SWT.DEFAULT : bounds.width;
+ gridData.heightHint = fillVertical ? SWT.DEFAULT : bounds.height;
+ } else {
+ composite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
+ }
+
+ composite.setLayoutData(gridData);
+
+ return composite;
+ }
+
+ public String getImageName() {
+ return imageName;
+ }
+}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/WidgetDescriptor.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/WidgetDescriptor.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.browsersim/src/org/jboss/tools/vpe/browsersim/ui/skin/ios/WidgetDescriptor.java 2012-02-15
19:58:40 UTC (rev 38770)
@@ -0,0 +1,31 @@
+package org.jboss.tools.vpe.browsersim.ui.skin.ios;
+import org.eclipse.swt.SWT;
+
+class WidgetDescriptor {
+ protected int horizontalSpan;
+ protected int verticalSpan;
+ protected int stretching;
+
+ public WidgetDescriptor(int horizontalSpan, int verticalSpan, int stretching) {
+ this.verticalSpan = verticalSpan;
+ this.horizontalSpan = horizontalSpan;
+ this.stretching = stretching;
+ }
+
+ public WidgetDescriptor(int horizontalSpan, int verticalSpan) {
+ this(horizontalSpan, verticalSpan, SWT.NONE);
+ }
+ public WidgetDescriptor() {
+ this(1, 1);
+ }
+
+ public int getHorizontalSpan() {
+ return horizontalSpan;
+ }
+ public int getVerticalSpan() {
+ return verticalSpan;
+ }
+ public int getStretching() {
+ return stretching;
+ }
+}