diff --git a/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/application/entities/extensiondetails/StoreExtensionDetailsItem.java b/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/application/entities/extensiondetails/StoreExtensionDetailsItem.java index 9364bd7..7d66ef7 100644 --- a/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/application/entities/extensiondetails/StoreExtensionDetailsItem.java +++ b/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/application/entities/extensiondetails/StoreExtensionDetailsItem.java @@ -94,6 +94,8 @@ public class StoreExtensionDetailsItem implements ContentItem { .append("> Framework: ").append(storeExtension.getFramework().getFramework().getName()).append(" - v").append(storeExtension.getFramework().getVersion()).append("\n") .append("> Systems: ").append(String.join(", ", storeExtension.getCompatibility().getSystems())).append("\n \n"); + contentBuilder.append("*Compatible clients:* ").append(String.join(", ", storeExtension.getCompatibility().getClients())).append("\n\n"); + if (storeExtension.getFramework().getFramework().isInstallationRequired()) { contentBuilder.append("Warning: the framework requires --url:additional installations-") .append(storeExtension.getFramework().getFramework().getInstallationInstructions()).append(" !\n"); diff --git a/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/application/entities/installed/StoreExtensionInstalledItem.java b/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/application/entities/installed/StoreExtensionInstalledItem.java index dc917d1..d9c55dd 100644 --- a/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/application/entities/installed/StoreExtensionInstalledItem.java +++ b/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/application/entities/installed/StoreExtensionInstalledItem.java @@ -1,9 +1,13 @@ package gearth.services.internal_extensions.extensionstore.application.entities.installed; import gearth.services.internal_extensions.extensionstore.GExtensionStore; +import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController; +import gearth.services.internal_extensions.extensionstore.application.WebUtils; import gearth.services.internal_extensions.extensionstore.application.entities.StoreExtensionItem; import gearth.services.internal_extensions.extensionstore.repository.models.StoreExtension; import gearth.services.internal_extensions.extensionstore.tools.InstalledExtension; +import netscape.javascript.JSObject; +import org.apache.maven.artifact.versioning.ComparableVersion; public class StoreExtensionInstalledItem extends StoreExtensionItem { @@ -20,8 +24,13 @@ public class StoreExtensionInstalledItem extends StoreExtensionItem { @Override protected String displayColor(int i) { - return super.displayColor(i); - // todo color depending on if it needs an update + if (storeExtension != null) { + if (new ComparableVersion(this.installedExtension.getVersion()).compareTo(new ComparableVersion(storeExtension.getVersion())) < 0) { + return "item_orange"; + } + return super.displayColor(i); + } + return "item_red"; } @Override @@ -33,9 +42,35 @@ public class StoreExtensionInstalledItem extends StoreExtensionItem { @Override public void addHtml(int i, GExtensionStore gExtensionStore) { if (this.storeExtension != null) { - super.addHtml(i, gExtensionStore /* add custom color here */); + super.addHtml(i, gExtensionStore); } + else { - //todo html when extension isn't in store + // display a red item that can't be clicked - to mark that this is no available extension + StringBuilder htmlBuilder = new StringBuilder() + .append("