diff --git a/core/src/main/java/org/polypheny/db/adapter/AdapterManager.java b/core/src/main/java/org/polypheny/db/adapter/AdapterManager.java index 8fba537cb9..62f6a49771 100644 --- a/core/src/main/java/org/polypheny/db/adapter/AdapterManager.java +++ b/core/src/main/java/org/polypheny/db/adapter/AdapterManager.java @@ -64,7 +64,7 @@ private AdapterManager() { public static long addAdapterTemplate( Class> clazz, String adapterName, Function4, Adapter> deployer ) { List settings = AdapterTemplate.getAllSettings( clazz ); AdapterProperties properties = clazz.getAnnotation( AdapterProperties.class ); - return Catalog.getInstance().createAdapterTemplate( clazz, adapterName, properties.description(), List.of( properties.usedModes() ), settings, deployer ); + return Catalog.getInstance().createAdapterTemplate( clazz, adapterName, properties.description(), List.of( properties.usedModes() ), settings, deployer, properties.logoAssetPath() ); } @@ -181,7 +181,7 @@ public Adapter addAdapter( String adapterName, String uniqueName, AdapterType AdapterTemplate adapterTemplate = AdapterTemplate.fromString( adapterName, adapterType ); - long adapterId = Catalog.getInstance().createAdapter( uniqueName, adapterName, adapterType, settings, mode ); + long adapterId = Catalog.getInstance().createAdapter( uniqueName, adapterName, adapterTemplate.adapterLogo, adapterType, settings, mode ); try { Adapter adapter = adapterTemplate.getDeployer().get( adapterId, uniqueName, settings ); adapterByName.put( adapter.getUniqueName(), adapter ); diff --git a/core/src/main/java/org/polypheny/db/adapter/annotations/AdapterProperties.java b/core/src/main/java/org/polypheny/db/adapter/annotations/AdapterProperties.java index 2bea2d93e3..40c0c1d139 100644 --- a/core/src/main/java/org/polypheny/db/adapter/annotations/AdapterProperties.java +++ b/core/src/main/java/org/polypheny/db/adapter/annotations/AdapterProperties.java @@ -29,6 +29,8 @@ String name(); + String logoAssetPath(); + String description(); DeployMode[] usedModes(); diff --git a/core/src/main/java/org/polypheny/db/adapter/java/AdapterTemplate.java b/core/src/main/java/org/polypheny/db/adapter/java/AdapterTemplate.java index 77ea7c8f5d..b6aead6a1b 100644 --- a/core/src/main/java/org/polypheny/db/adapter/java/AdapterTemplate.java +++ b/core/src/main/java/org/polypheny/db/adapter/java/AdapterTemplate.java @@ -46,9 +46,9 @@ public class AdapterTemplate { public List modes; public long id; public String description; + public String adapterLogo; - - public AdapterTemplate( long id, Class clazz, String adapterName, List settings, List modes, String description, Function4, Adapter> deployer ) { + public AdapterTemplate( long id, Class clazz, String adapterName, List settings, List modes, String description, Function4, Adapter> deployer, String adapterLogo) { this.id = id; this.adapterName = adapterName; this.description = description; @@ -57,6 +57,7 @@ public AdapterTemplate( long id, Class clazz, String adapterName, List settings, DeployMode mode ); + public abstract long createAdapter( String uniqueName, String clazz, String adapterLogo, AdapterType type, Map settings, DeployMode mode ); /** * Update settings of an adapter @@ -231,7 +231,7 @@ public void removeObserver( PropertyChangeListener listener ) { */ public abstract void dropQueryInterface( long id ); - public abstract long createAdapterTemplate( Class> clazz, String adapterName, String description, List modes, List settings, Function4, Adapter> deployer ); + public abstract long createAdapterTemplate( Class> clazz, String adapterName, String description, List modes, List settings, Function4, Adapter> deployer, String adapterLogo ); public abstract void createInterfaceTemplate( String name, QueryInterfaceTemplate queryInterfaceTemplate ); diff --git a/core/src/main/java/org/polypheny/db/catalog/entity/LogicalAdapter.java b/core/src/main/java/org/polypheny/db/catalog/entity/LogicalAdapter.java index fc5f4da189..6a97b09bd4 100644 --- a/core/src/main/java/org/polypheny/db/catalog/entity/LogicalAdapter.java +++ b/core/src/main/java/org/polypheny/db/catalog/entity/LogicalAdapter.java @@ -53,6 +53,8 @@ public class LogicalAdapter implements PolyObject { public String adapterTypeName; @Serialize public DeployMode mode; + @Serialize + public String adapterLogo; public enum AdapterType {STORE, SOURCE} @@ -62,12 +64,14 @@ public LogicalAdapter( @Deserialize("id") final long id, @Deserialize("uniqueName") @NonNull final String uniqueName, @Deserialize("adapterName") @NonNull final String adapterName, + @Deserialize("adapterLogo") @NonNull final String adapterLogo, @Deserialize("type") @NonNull final AdapterType adapterType, @Deserialize("mode") @NotNull final DeployMode mode, @Deserialize("settings") @NonNull final Map settings ) { this.id = id; this.uniqueName = uniqueName; this.adapterName = adapterName; + this.adapterLogo = adapterLogo; this.type = adapterType; this.settings = new HashMap<>( settings ); this.adapterTypeName = getAdapterName(); diff --git a/core/src/main/java/org/polypheny/db/catalog/impl/PolyCatalog.java b/core/src/main/java/org/polypheny/db/catalog/impl/PolyCatalog.java index 4b36738aa3..f090f3045e 100644 --- a/core/src/main/java/org/polypheny/db/catalog/impl/PolyCatalog.java +++ b/core/src/main/java/org/polypheny/db/catalog/impl/PolyCatalog.java @@ -372,9 +372,9 @@ public void dropNamespace( long id ) { @Override - public long createAdapter( String uniqueName, String clazz, AdapterType type, Map settings, DeployMode mode ) { + public long createAdapter( String uniqueName, String clazz, String adapterLogo, AdapterType type, Map settings, DeployMode mode ) { long id = idBuilder.getNewAdapterId(); - adapters.put( id, new LogicalAdapter( id, uniqueName, clazz, type, mode, settings ) ); + adapters.put( id, new LogicalAdapter( id, uniqueName, clazz, adapterLogo, type, mode, settings ) ); change(); return id; } @@ -416,9 +416,9 @@ public void dropQueryInterface( long id ) { @Override - public long createAdapterTemplate( Class> clazz, String adapterName, String description, List modes, List settings, Function4, Adapter> deployer ) { + public long createAdapterTemplate( Class> clazz, String adapterName, String description, List modes, List settings, Function4, Adapter> deployer, String adapterLogo ) { long id = idBuilder.getNewAdapterTemplateId(); - adapterTemplates.put( id, new AdapterTemplate( id, clazz, adapterName, settings, modes, description, deployer ) ); + adapterTemplates.put( id, new AdapterTemplate( id, clazz, adapterName, settings, modes, description, deployer, adapterLogo ) ); change(); return id; } diff --git a/core/src/test/java/org/polypheny/db/catalog/MockCatalog.java b/core/src/test/java/org/polypheny/db/catalog/MockCatalog.java index 0a69cbdaf3..174558be56 100644 --- a/core/src/test/java/org/polypheny/db/catalog/MockCatalog.java +++ b/core/src/test/java/org/polypheny/db/catalog/MockCatalog.java @@ -163,7 +163,7 @@ public void dropNamespace( long id ) { @Override - public long createAdapter( String uniqueName, String clazz, AdapterType type, Map settings, DeployMode mode ) { + public long createAdapter( String uniqueName, String clazz, String adapterLogo, AdapterType type, Map settings, DeployMode mode ) { throw new NotImplementedException(); } diff --git a/plugins/cottontail-adapter/src/main/java/org/polypheny/db/adapter/cottontail/CottontailStore.java b/plugins/cottontail-adapter/src/main/java/org/polypheny/db/adapter/cottontail/CottontailStore.java index d61bb9f972..1adfb6393d 100644 --- a/plugins/cottontail-adapter/src/main/java/org/polypheny/db/adapter/cottontail/CottontailStore.java +++ b/plugins/cottontail-adapter/src/main/java/org/polypheny/db/adapter/cottontail/CottontailStore.java @@ -91,6 +91,7 @@ @Slf4j @AdapterProperties( name = "Cottontail-DB", + logoAssetPath = "assets/dbms-logos/cottontaildb.png", description = "Cottontail-DB is a column store aimed at multimedia retrieval. It is optimized for classical boolean as well as vector-space retrieval.", usedModes = { DeployMode.EMBEDDED, DeployMode.REMOTE }, defaultMode = DeployMode.EMBEDDED) diff --git a/plugins/csv-adapter/src/main/java/org/polypheny/db/adapter/csv/CsvSource.java b/plugins/csv-adapter/src/main/java/org/polypheny/db/adapter/csv/CsvSource.java index 5328bad85d..a665458dea 100644 --- a/plugins/csv-adapter/src/main/java/org/polypheny/db/adapter/csv/CsvSource.java +++ b/plugins/csv-adapter/src/main/java/org/polypheny/db/adapter/csv/CsvSource.java @@ -64,6 +64,7 @@ @Extension @AdapterProperties( name = "CSV", + logoAssetPath = "assets/dbms-logos/csv.png", description = "An adapter for querying CSV files. The location of the directory containing the CSV files can be specified. Currently, this adapter only supports read operations.", usedModes = DeployMode.EMBEDDED, defaultMode = DeployMode.EMBEDDED) diff --git a/plugins/ethereum-adapter/src/main/java/org/polypheny/db/adapter/ethereum/EthereumPlugin.java b/plugins/ethereum-adapter/src/main/java/org/polypheny/db/adapter/ethereum/EthereumPlugin.java index 39e1011dd2..2600748b2b 100644 --- a/plugins/ethereum-adapter/src/main/java/org/polypheny/db/adapter/ethereum/EthereumPlugin.java +++ b/plugins/ethereum-adapter/src/main/java/org/polypheny/db/adapter/ethereum/EthereumPlugin.java @@ -85,6 +85,7 @@ public void stop() { @Extension @AdapterProperties( name = "Ethereum", + logoAssetPath = "assets/dbms-logos/ethereum.png", description = "An adapter for querying the Ethereum blockchain. It uses the ethereum JSON-RPC API. Currently, this adapter only supports read operations.", usedModes = DeployMode.REMOTE, defaultMode = DeployMode.REMOTE) diff --git a/plugins/excel-adapter/src/main/java/org/polypheny/db/adapter/excel/ExcelSource.java b/plugins/excel-adapter/src/main/java/org/polypheny/db/adapter/excel/ExcelSource.java index 583d47a49d..572a2d0b6c 100644 --- a/plugins/excel-adapter/src/main/java/org/polypheny/db/adapter/excel/ExcelSource.java +++ b/plugins/excel-adapter/src/main/java/org/polypheny/db/adapter/excel/ExcelSource.java @@ -67,6 +67,7 @@ @Slf4j @AdapterProperties( name = "Excel", + logoAssetPath = "assets/dbms-logos/xls.png", description = "An adapter for querying Excel files. The location of the directory containing the Excel files can be specified. Currently, this adapter only supports read operations.", usedModes = DeployMode.EMBEDDED, defaultMode = DeployMode.EMBEDDED) diff --git a/plugins/file-adapter/src/main/java/org/polypheny/db/adapter/file/FileStore.java b/plugins/file-adapter/src/main/java/org/polypheny/db/adapter/file/FileStore.java index 6ff90e1cdc..553265deb8 100644 --- a/plugins/file-adapter/src/main/java/org/polypheny/db/adapter/file/FileStore.java +++ b/plugins/file-adapter/src/main/java/org/polypheny/db/adapter/file/FileStore.java @@ -74,6 +74,7 @@ @Extension @AdapterProperties( name = "File", + logoAssetPath = "fa fa-file-image-o", description = "An adapter that stores all data as files. It is especially suitable for multimedia collections.", usedModes = DeployMode.EMBEDDED, defaultMode = DeployMode.EMBEDDED) diff --git a/plugins/file-adapter/src/main/java/org/polypheny/db/adapter/file/source/Qfs.java b/plugins/file-adapter/src/main/java/org/polypheny/db/adapter/file/source/Qfs.java index b7fce19e46..224a438a84 100644 --- a/plugins/file-adapter/src/main/java/org/polypheny/db/adapter/file/source/Qfs.java +++ b/plugins/file-adapter/src/main/java/org/polypheny/db/adapter/file/source/Qfs.java @@ -65,6 +65,7 @@ @Slf4j @AdapterProperties( name = "QFS", + logoAssetPath = "fa fa-folder-open-o", description = "This data source maps a file system on the Polypheny-DB host system as a relational entity and allows to query it.", usedModes = DeployMode.EMBEDDED, defaultMode = DeployMode.EMBEDDED) diff --git a/plugins/google-sheet-adapter/src/main/java/org/polypheny/db/adapter/googlesheet/GoogleSheetSource.java b/plugins/google-sheet-adapter/src/main/java/org/polypheny/db/adapter/googlesheet/GoogleSheetSource.java index ad96fd7a7f..eb88c835b2 100644 --- a/plugins/google-sheet-adapter/src/main/java/org/polypheny/db/adapter/googlesheet/GoogleSheetSource.java +++ b/plugins/google-sheet-adapter/src/main/java/org/polypheny/db/adapter/googlesheet/GoogleSheetSource.java @@ -72,6 +72,7 @@ @Slf4j @AdapterProperties( name = "GoogleSheets", + logoAssetPath = "assets/dbms-logos/google.png", description = "An adapter for querying online Google Sheets, using the Google Sheets Java API. Currently, this adapter only supports read operations.", usedModes = DeployMode.REMOTE, defaultMode = DeployMode.REMOTE) diff --git a/plugins/hsqldb-adapter/src/main/java/org/polypheny/db/hsqldb/stores/HsqldbStore.java b/plugins/hsqldb-adapter/src/main/java/org/polypheny/db/hsqldb/stores/HsqldbStore.java index 5892bd7e83..5db967260b 100644 --- a/plugins/hsqldb-adapter/src/main/java/org/polypheny/db/hsqldb/stores/HsqldbStore.java +++ b/plugins/hsqldb-adapter/src/main/java/org/polypheny/db/hsqldb/stores/HsqldbStore.java @@ -52,6 +52,7 @@ @Slf4j @AdapterProperties( name = "HSQLDB", + logoAssetPath = "assets/dbms-logos/hsqldb.png", description = "Java-based relational database system. It supports an in-memory and a persistent file based mode. Deploying a HSQLDB instance requires no additional dependencies to be installed or servers to be set up.", usedModes = DeployMode.EMBEDDED, defaultMode = DeployMode.EMBEDDED) diff --git a/plugins/monetdb-adapter/src/main/java/org/polypheny/db/adapter/monetdb/sources/MonetdbSource.java b/plugins/monetdb-adapter/src/main/java/org/polypheny/db/adapter/monetdb/sources/MonetdbSource.java index b156dc16b7..82e3241760 100644 --- a/plugins/monetdb-adapter/src/main/java/org/polypheny/db/adapter/monetdb/sources/MonetdbSource.java +++ b/plugins/monetdb-adapter/src/main/java/org/polypheny/db/adapter/monetdb/sources/MonetdbSource.java @@ -43,6 +43,7 @@ @Slf4j @AdapterProperties( name = "MonetDB", + logoAssetPath = "assets/dbms-logos/monetdb.png", description = "MonetDB is an execute-source column-oriented database management system. It is based on an optimistic concurrency control.", usedModes = DeployMode.REMOTE, defaultMode = DeployMode.REMOTE) diff --git a/plugins/monetdb-adapter/src/main/java/org/polypheny/db/adapter/monetdb/stores/MonetdbStore.java b/plugins/monetdb-adapter/src/main/java/org/polypheny/db/adapter/monetdb/stores/MonetdbStore.java index d3252b81d3..6a143e600d 100644 --- a/plugins/monetdb-adapter/src/main/java/org/polypheny/db/adapter/monetdb/stores/MonetdbStore.java +++ b/plugins/monetdb-adapter/src/main/java/org/polypheny/db/adapter/monetdb/stores/MonetdbStore.java @@ -60,6 +60,7 @@ @Slf4j @AdapterProperties( name = "MonetDB", + logoAssetPath = "assets/dbms-logos/monetdb.png", description = "MonetDB is an execute-source column-oriented database management system. It is based on an optimistic concurrency control.", usedModes = { DeployMode.REMOTE, DeployMode.DOCKER }, defaultMode = DeployMode.DOCKER) diff --git a/plugins/mongodb-adapter/src/main/java/org/polypheny/db/adapter/mongodb/MongoPlugin.java b/plugins/mongodb-adapter/src/main/java/org/polypheny/db/adapter/mongodb/MongoPlugin.java index 4b71a0ae2b..2fe831a952 100644 --- a/plugins/mongodb-adapter/src/main/java/org/polypheny/db/adapter/mongodb/MongoPlugin.java +++ b/plugins/mongodb-adapter/src/main/java/org/polypheny/db/adapter/mongodb/MongoPlugin.java @@ -114,6 +114,7 @@ public void stop() { @Extension @AdapterProperties( name = "MongoDB", + logoAssetPath = "assets/dbms-logos/mongodb.png", description = "MongoDB is a document-oriented database system.", usedModes = { DeployMode.REMOTE, DeployMode.DOCKER }, defaultMode = DeployMode.DOCKER) diff --git a/plugins/mql-language/src/test/java/org/polypheny/db/mql/mql2alg/MqlMockCatalog.java b/plugins/mql-language/src/test/java/org/polypheny/db/mql/mql2alg/MqlMockCatalog.java index b6365568e2..24203fc2a0 100644 --- a/plugins/mql-language/src/test/java/org/polypheny/db/mql/mql2alg/MqlMockCatalog.java +++ b/plugins/mql-language/src/test/java/org/polypheny/db/mql/mql2alg/MqlMockCatalog.java @@ -54,7 +54,7 @@ public void addStoreSnapshot( AdapterCatalog snapshot ) { @Override - public long createAdapterTemplate( Class> clazz, String adapterName, String description, List modes, List settings, Function4, Adapter> deployer ) { + public long createAdapterTemplate( Class> clazz, String adapterName, String description, List modes, List settings, Function4, Adapter> deployer, String adapterLogo ) { return 0; } diff --git a/plugins/mysql-adapter/src/main/java/org/polypheny/db/adapter/jdbc/MysqlSourcePlugin.java b/plugins/mysql-adapter/src/main/java/org/polypheny/db/adapter/jdbc/MysqlSourcePlugin.java index 637967784b..4a74a55ab4 100644 --- a/plugins/mysql-adapter/src/main/java/org/polypheny/db/adapter/jdbc/MysqlSourcePlugin.java +++ b/plugins/mysql-adapter/src/main/java/org/polypheny/db/adapter/jdbc/MysqlSourcePlugin.java @@ -70,6 +70,7 @@ public void stop() { @Slf4j @AdapterProperties( name = "MySQL", + logoAssetPath = "assets/dbms-logos/mysql.png", description = "Data source adapter for the relational database systems MariaDB and MySQL.", usedModes = DeployMode.REMOTE, defaultMode = DeployMode.REMOTE) diff --git a/plugins/neo4j-adapter/src/main/java/org/polypheny/db/adapter/neo4j/Neo4jPlugin.java b/plugins/neo4j-adapter/src/main/java/org/polypheny/db/adapter/neo4j/Neo4jPlugin.java index e999c599d5..215fc2eb48 100644 --- a/plugins/neo4j-adapter/src/main/java/org/polypheny/db/adapter/neo4j/Neo4jPlugin.java +++ b/plugins/neo4j-adapter/src/main/java/org/polypheny/db/adapter/neo4j/Neo4jPlugin.java @@ -131,6 +131,7 @@ private static String getMappingLabel( long id ) { @Slf4j @AdapterProperties( name = "Neo4j", + logoAssetPath = "assets/dbms-logos/neo4j.png", description = "Neo4j is a graph-model based database system. It stores data in a graph structure which consists of nodes and edges.", usedModes = { DeployMode.DOCKER, DeployMode.REMOTE }, defaultMode = DeployMode.DOCKER) diff --git a/plugins/postgres-adapter/src/main/java/org/polypheny/db/adapter/postgres/source/PostgresqlSource.java b/plugins/postgres-adapter/src/main/java/org/polypheny/db/adapter/postgres/source/PostgresqlSource.java index 6dbe369ad9..541ccd86e5 100644 --- a/plugins/postgres-adapter/src/main/java/org/polypheny/db/adapter/postgres/source/PostgresqlSource.java +++ b/plugins/postgres-adapter/src/main/java/org/polypheny/db/adapter/postgres/source/PostgresqlSource.java @@ -39,6 +39,7 @@ @Slf4j @AdapterProperties( name = "PostgreSQL", + logoAssetPath = "assets/dbms-logos/postgres.svg", description = "Relational database system optimized for transactional workload that provides an advanced set of features. PostgreSQL is fully ACID compliant and ensures that all requirements are met.", usedModes = DeployMode.REMOTE, defaultMode = DeployMode.REMOTE) diff --git a/plugins/postgres-adapter/src/main/java/org/polypheny/db/adapter/postgres/store/PostgresqlStore.java b/plugins/postgres-adapter/src/main/java/org/polypheny/db/adapter/postgres/store/PostgresqlStore.java index f576e859dd..eb62b073c2 100644 --- a/plugins/postgres-adapter/src/main/java/org/polypheny/db/adapter/postgres/store/PostgresqlStore.java +++ b/plugins/postgres-adapter/src/main/java/org/polypheny/db/adapter/postgres/store/PostgresqlStore.java @@ -63,6 +63,7 @@ @Slf4j @AdapterProperties( name = "PostgreSQL", + logoAssetPath = "assets/dbms-logos/postgres.svg", description = "Relational database system optimized for transactional workload that provides an advanced set of features. PostgreSQL is fully ACID compliant and ensures that all requirements are met.", usedModes = { DeployMode.REMOTE, DeployMode.DOCKER }, defaultMode = DeployMode.DOCKER) diff --git a/webui/build.gradle b/webui/build.gradle index c2d969820a..2d955488cf 100644 --- a/webui/build.gradle +++ b/webui/build.gradle @@ -92,6 +92,7 @@ jar { attributes "Version": "$project.version" } from("$buildDir/webapp") // include webapp files + from("$buildDir/public") // include public files duplicatesStrategy = 'include' } java { diff --git a/webui/src/main/java/org/polypheny/db/webui/HttpServer.java b/webui/src/main/java/org/polypheny/db/webui/HttpServer.java index e291e4712e..b746ec4995 100644 --- a/webui/src/main/java/org/polypheny/db/webui/HttpServer.java +++ b/webui/src/main/java/org/polypheny/db/webui/HttpServer.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.databind.SerializationFeature; import io.javalin.Javalin; import io.javalin.http.Context; +import io.javalin.http.staticfiles.Location; import io.javalin.plugin.json.JavalinJackson; import io.javalin.websocket.WsConfig; import java.io.BufferedReader; @@ -87,6 +88,10 @@ public static HttpServer getInstance() { config.jsonMapper( new JavalinJackson( mapper ) ); config.enableCorsForAllOrigins(); config.addStaticFiles( staticFileConfig -> staticFileConfig.directory = "webapp/" ); + config.addStaticFiles( staticFileConfig -> { + staticFileConfig.directory = "public/"; + staticFileConfig.hostedPath = "/public"; + }); } ).start( RuntimeConfig.WEBUI_SERVER_PORT.getInteger() ); private Crud crud; diff --git a/webui/src/main/java/org/polypheny/db/webui/models/AdapterTemplateModel.java b/webui/src/main/java/org/polypheny/db/webui/models/AdapterTemplateModel.java index 0b01bfdc9a..d95504f2b7 100644 --- a/webui/src/main/java/org/polypheny/db/webui/models/AdapterTemplateModel.java +++ b/webui/src/main/java/org/polypheny/db/webui/models/AdapterTemplateModel.java @@ -32,16 +32,18 @@ import org.polypheny.db.config.ConfigDocker; import org.polypheny.db.config.RuntimeConfig; -public record AdapterTemplateModel( @JsonProperty String adapterName, @JsonProperty AdapterType adapterType, @JsonProperty List settings, @JsonProperty String description, @JsonProperty List modes ) { +public record AdapterTemplateModel( @JsonProperty String adapterName, @JsonProperty String adapterLogo, @JsonProperty AdapterType adapterType, @JsonProperty List settings, @JsonProperty String description, @JsonProperty List modes ) { public AdapterTemplateModel( @NotNull String adapterName, + @NotNull String adapterLogo, @NotNull AdapterType adapterType, @NotNull List settings, @NotNull String description, @NotNull List modes ) { this.adapterName = adapterName; + this.adapterLogo = adapterLogo; this.adapterType = adapterType; this.settings = settings; this.description = description; @@ -64,6 +66,7 @@ public static AdapterTemplateModel from( AdapterTemplate template ) { return new AdapterTemplateModel( template.adapterName, + template.adapterLogo, template.adapterType, settings, template.description, diff --git a/webui/src/main/java/org/polypheny/db/webui/models/catalog/AdapterModel.java b/webui/src/main/java/org/polypheny/db/webui/models/catalog/AdapterModel.java index f9abccc2a3..1de89f4601 100644 --- a/webui/src/main/java/org/polypheny/db/webui/models/catalog/AdapterModel.java +++ b/webui/src/main/java/org/polypheny/db/webui/models/catalog/AdapterModel.java @@ -56,17 +56,22 @@ public class AdapterModel extends IdEntity { @JsonProperty public List indexMethods; + @JsonProperty + public String adapterLogo; + public AdapterModel( @JsonProperty("id") @Nullable Long id, @JsonProperty("name") @Nullable String name, @JsonProperty("adapterName") String adapterName, + @JsonProperty("adapterLogo") String adapterLogo, @JsonProperty("type") AdapterType type, @JsonProperty("settings") Map settings, @JsonProperty("mode") DeployMode mode, @JsonProperty("indexMethods") List indexMethods ) { super( id, name ); this.adapterName = adapterName; + this.adapterLogo = adapterLogo; this.type = type; this.settings = settings; this.mode = mode; @@ -83,6 +88,7 @@ public static AdapterModel from( LogicalAdapter adapter ) { adapter.id, adapter.uniqueName, adapter.adapterName, + adapter.adapterLogo, adapter.type, settings, adapter.mode, diff --git a/webui/src/main/resources/public/assets/dbms-logos/cottontaildb.png b/webui/src/main/resources/public/assets/dbms-logos/cottontaildb.png new file mode 100644 index 0000000000..9fb899c598 Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/cottontaildb.png differ diff --git a/webui/src/main/resources/public/assets/dbms-logos/csv.png b/webui/src/main/resources/public/assets/dbms-logos/csv.png new file mode 100644 index 0000000000..f28c405c1d Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/csv.png differ diff --git a/webui/src/main/resources/public/assets/dbms-logos/ethereum.png b/webui/src/main/resources/public/assets/dbms-logos/ethereum.png new file mode 100644 index 0000000000..e3da5fc579 Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/ethereum.png differ diff --git a/webui/src/main/resources/public/assets/dbms-logos/google.png b/webui/src/main/resources/public/assets/dbms-logos/google.png new file mode 100644 index 0000000000..e95f6848a9 Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/google.png differ diff --git a/webui/src/main/resources/public/assets/dbms-logos/hsqldb.png b/webui/src/main/resources/public/assets/dbms-logos/hsqldb.png new file mode 100644 index 0000000000..c18c983a3b Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/hsqldb.png differ diff --git a/webui/src/main/resources/public/assets/dbms-logos/monetdb.png b/webui/src/main/resources/public/assets/dbms-logos/monetdb.png new file mode 100644 index 0000000000..b6e3dd254c Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/monetdb.png differ diff --git a/webui/src/main/resources/public/assets/dbms-logos/mongodb.png b/webui/src/main/resources/public/assets/dbms-logos/mongodb.png new file mode 100644 index 0000000000..4e3a07f23a Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/mongodb.png differ diff --git a/webui/src/main/resources/public/assets/dbms-logos/mysql.png b/webui/src/main/resources/public/assets/dbms-logos/mysql.png new file mode 100644 index 0000000000..d29a6cc763 Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/mysql.png differ diff --git a/webui/src/main/resources/public/assets/dbms-logos/neo4j.png b/webui/src/main/resources/public/assets/dbms-logos/neo4j.png new file mode 100644 index 0000000000..ebe609b741 Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/neo4j.png differ diff --git a/webui/src/main/resources/public/assets/dbms-logos/postgres.svg b/webui/src/main/resources/public/assets/dbms-logos/postgres.svg new file mode 100644 index 0000000000..c73eabef31 --- /dev/null +++ b/webui/src/main/resources/public/assets/dbms-logos/postgres.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/webui/src/main/resources/public/assets/dbms-logos/xls.png b/webui/src/main/resources/public/assets/dbms-logos/xls.png new file mode 100644 index 0000000000..928abe8aa7 Binary files /dev/null and b/webui/src/main/resources/public/assets/dbms-logos/xls.png differ