import org.tizen.emulator.manager.vms.SKIN_SHAPE;
import org.tizen.emulator.manager.vms.VMProperty;
import org.tizen.emulator.manager.vms.option.IOption;
-import org.tizen.emulator.manager.vms.option.LaunchConfig;
import org.tizen.emulator.manager.vms.xml.template.ItemList;
public class BaseImage {
protected ItemList itemList;
protected List<IOption> optionList;
- private LaunchConfig launchTemplate; // TODO replace xDefaultOption.java
+ //private LaunchConfig launchTemplate; // TODO replace xDefaultOption.java
protected BaseImage() {
}
* @param path base image path
* @throws IOException
*/
- public BaseImage(Platform platform, String path) throws IOException {
+ public BaseImage(Platform platform, String path) {
if (platform == null) {
- throw new IOException("Failed to create custom base image "
- + StringResources.NEW_LINE + "because platform is null.");
+ return;
}
this.platform = platform;
isStandard = false;
return skinShape;
}
- private void checkBaseImageName() throws IOException {
+ private void checkBaseImage() throws IOException {
if (imageName == null) {
throw new IOException("Image name is null. This image can not add.");
}
+ "(name: " + imageName + ")");
}
}
+
+ if (!profile.equals(platform.getProfile())) {
+ throw new IOException("Profile of base image(" + profile
+ + ") does not equal profile of platform(" + platform.getProfile() + ").");
+ }
+
+ if (!version.equals(platform.getVersion())) {
+ throw new IOException("Version of base image(" + version
+ + ") does not equal version of platform(" + platform.getVersion() + ").");
+ }
}
/**
Properties prop = new Properties();
prop.load(inputStream);
imageName = prop.getProperty(StringResources.IMAGE_NAME, "");
- checkBaseImageName();
version = prop.getProperty(StringResources.IMAGE_VERSION, "2.4");
profile = prop.getProperty(StringResources.PRODUCT_PROFILE, PlatformStringResources.MOBILE_PROFILE).toLowerCase();
type = prop.getProperty(StringResources.IMAGE_TYPE, "default");
cpu = cpu.toLowerCase();
skinShape = SKIN_SHAPE.find(prop.getProperty(StringResources.SKIN_SHAPE, "square"));
binaryVersion = prop.getProperty(StringResources.BINARY_VERSION, "1.0.0");
+ checkBaseImage();
} else {
throw new IOException(StringResources.IMAGE_INFO_FILENAME + " file does not exist.");
}
}
} else {
EMLogger.getLogger().warning("Plug-in file does not exist." +
- StringResources.NEW_LINE + "Plug-in file: " + pluginJar.getAbsolutePath());
+ StringResources.NEW_LINE + "Plug-in file: " + pluginDir.getAbsolutePath()
+ + File.separator + PlatformStringResources.PLUGIN_PREFIX
+ + "-" + profile
+ + "." + PlatformStringResources.PLUGIN_EXTENSION);
}
}
package org.tizen.emulator.manager.platform;
import java.io.File;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
// return custom base image
Platform platform = ProfileList.getProfile(createProperty.getImageProfile()).
getPlatformByVersion(createProperty.getImageVersion());
- try {
+ if (platform != null) {
return new BaseImage(platform, createProperty.getBaseImagePath());
- } catch (IOException e) {
- EMLogger.getLogger().warning("Failed to find baseimage. No platform");
- return null;
}
+ return null;
}
public VMProperty getLastCreatedProperty() {
} else {
for (Platform p : platformList) {
if (vm.getImagePlatform().equals(p.getName())) {
- try {
- vm.getPropertyValue().baseImage
- = new BaseImage(p,
- vm.getBaseImagePath());
- } catch (IOException e) {
- EMLogger.getLogger().warning(e.getMessage());
- }
+ vm.getPropertyValue().baseImage
+ = new BaseImage(p, vm.getBaseImagePath());
}
}
}
private static boolean isProfileDir(File profile) {
for (File f : profile.listFiles()) {
- if (f.isDirectory() && f.getName().equalsIgnoreCase("emulator-images")) {
+ if (f.isDirectory() && f.getName().equalsIgnoreCase("emulator-resources")) {
// this is profile directory
return true;
}
for (Profile p : ProfileList.getProfileList()) {
for (Platform pl : p.getPlatformList()) {
if (pl.getName().equals(platformName)) {
- return pl.getPlugin().getLoader();
+ if (pl.getPlugin() != null) {
+ return pl.getPlugin().getLoader();
+ }
}
}
}
if (!isCreateMode || currentProfile != profile) {
isCreateMode = true;
- VMProperty lastCreatedProperty = profile.getLastCreatedProperty();
- BaseImage findImage = null;
- if (lastCreatedProperty != null) {
- findImage = profile.findBaseImage(lastCreatedProperty);
- }
-
- if (findImage == null) {
- detailView.drawCreateVM(
- new VMPropertyValue(profile.getImageList().get(0)));
+ if (profile.getImageList().isEmpty()) {
+ detailView.drawCreateVM(new VMPropertyValue(
+ new BaseImage(profile.getPlatformByLatestVersion(),""),
+ profile.getPlatformByLatestVersion().getCustomDefaultProperty()));
} else {
- detailView.drawCreateVM(
- new VMPropertyValue(findImage, lastCreatedProperty));
+ VMProperty lastCreatedProperty = profile.getLastCreatedProperty();
+ BaseImage findImage = null;
+ if (lastCreatedProperty != null) {
+ findImage = profile.findBaseImage(lastCreatedProperty);
+ }
+
+ if (findImage == null
+ || findImage.getItemList() == null
+ || findImage.getPlatform().getPlugin() == null) {
+ for (BaseImage image : profile.getImageList()) {
+ if (image.getItemList() != null && image.getPlatform().getPlugin() != null) {
+ detailView.drawCreateVM(
+ new VMPropertyValue(image));
+ }
+ }
+ } else {
+ detailView.drawCreateVM(
+ new VMPropertyValue(findImage, lastCreatedProperty));
+ }
}
}
}
DetailViewItem errorItem = null;
// Check Item state
- for (IModifyViewItem item : topViewList.itemList) {
- if (item instanceof DetailViewItem) {
- DetailViewItem viewItem = (DetailViewItem)item;
- viewItem.checkValue();
- viewItem.updateItemUI(); // normal / warning / error
-
- if (viewItem.getItemState().isError()) {
- if (errorItem == null || !errorItem.getItemState().isError()) {
- errorItem = viewItem;
- }
+ if (topViewList == null || topViewList.itemList == null) {
+ isValid = false;
+ } else {
+ for (IModifyViewItem item : topViewList.itemList) {
+ if (item instanceof DetailViewItem) {
+ DetailViewItem viewItem = (DetailViewItem)item;
+ viewItem.checkValue();
+ viewItem.updateItemUI(); // normal / warning / error
+
+ if (viewItem.getItemState().isError()) {
+ if (errorItem == null || !errorItem.getItemState().isError()) {
+ errorItem = viewItem;
+ }
- } else if (viewItem.getItemState().isWarning()) {
- if (errorItem == null || errorItem.getItemState().isNormal()) {
- errorItem = viewItem;
+ } else if (viewItem.getItemState().isWarning()) {
+ if (errorItem == null || errorItem.getItemState().isNormal()) {
+ errorItem = viewItem;
+ }
}
- }
- if (viewItem.getItemState().isError()) {
- isValid = false;
+ if (viewItem.getItemState().isError()) {
+ isValid = false;
+ }
}
}
}
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Text;
-import org.tizen.emulator.manager.platform.Platform;
import org.tizen.emulator.manager.platform.Profile;
import org.tizen.emulator.manager.platform.SortBy;
import org.tizen.emulator.manager.resources.ColorResources;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.TreeItem;
import org.tizen.emulator.manager.logging.EMLogger;
-import org.tizen.emulator.manager.platform.BaseImage;
import org.tizen.emulator.manager.platform.Profile;
import org.tizen.emulator.manager.resources.FontResources;
import org.tizen.emulator.manager.resources.ImageResources;
}
class CreateMarker implements TreeMarker {
- private BaseImage image = null;
private Profile profile = null;
TreeItem item;
item.setFont(font);
this.profile = profile;
- this.image =profile.getImageList().get(0);
this.item = item;
}
- public BaseImage getBaseImage() {
- return image;
- }
-
public TreeItem getItem() {
return item;
}