in gui/extension/src/tree-providers/ConnectionsTreeProvider/ConnectionsTreeProvider.ts [187:337]
public getTreeItem(entry: ConnectionDataModelEntry): TreeItem {
switch (entry.type) {
case CdmEntityType.Connection: {
if (entry.details.dbType === DBType.MySQL) {
return new ConnectionMySQLTreeItem(entry);
}
return new ConnectionSqliteTreeItem(entry);
}
case CdmEntityType.Admin: {
return new AdminTreeItem(entry);
}
case CdmEntityType.AdminPage: {
const icon = ConnectionsTreeDataProvider.#adminPageTypeToIcon.get(entry.pageType) ?? "";
return new AdminSectionTreeItem(entry, icon, false, entry.command);
}
case CdmEntityType.MrsRoot: {
return new MrsTreeItem(entry, true, entry.serviceEnabled);
}
case CdmEntityType.Schema: {
const details = entry.connection.details;
const isCurrent = entry.caption === entry.parent.currentSchema;
if (details.dbType === DBType.MySQL) {
return new SchemaMySQLTreeItem(entry, isCurrent);
}
return new SchemaSqliteTreeItem(entry, isCurrent);
}
case CdmEntityType.SchemaGroup: {
return new SchemaGroupTreeItem(entry);
}
case CdmEntityType.Table: {
const details = entry.connection.details;
if (details.dbType === DBType.MySQL) {
return new SchemaTableMySQLTreeItem(entry);
}
return new SchemaTableSqliteTreeItem(entry);
}
case CdmEntityType.TableGroup: {
return new SchemaTableGroupTreeItem(entry);
}
case CdmEntityType.Column: {
return new SchemaTableColumnTreeItem(entry);
}
case CdmEntityType.Index: {
return new SchemaTableIndexTreeItem(entry);
}
case CdmEntityType.ForeignKey: {
return new SchemaTableForeignKeyTreeItem(entry);
}
case CdmEntityType.Trigger: {
return new SchemaTableTriggerTreeItem(entry);
}
case CdmEntityType.View: {
const details = entry.connection.details;
if (details.dbType === DBType.MySQL) {
return new SchemaViewMySQLTreeItem(entry);
}
return new SchemaViewSqliteTreeItem(entry);
}
case CdmEntityType.StoredProcedure: {
const details = entry.connection.details;
if (details.dbType === DBType.MySQL) {
return new SchemaRoutineMySQLTreeItem(entry);
}
return new SchemaRoutineTreeItem(entry);
}
case CdmEntityType.StoredFunction: {
const details = entry.connection.details;
if (details.dbType === DBType.MySQL) {
return new SchemaRoutineMySQLTreeItem(entry);
}
return new SchemaRoutineTreeItem(entry);
}
case CdmEntityType.Event: {
return new SchemaEventTreeItem(entry);
}
case CdmEntityType.MrsService: {
return new MrsServiceTreeItem(entry);
}
case CdmEntityType.MrsRouterGroup: {
return new MrsRouterGroupTreeItem(entry);
}
case CdmEntityType.MrsRouter: {
return new MrsRouterTreeItem(entry);
}
case CdmEntityType.MrsSchema: {
return new MrsSchemaTreeItem(entry);
}
case CdmEntityType.MrsContentSet: {
return new MrsContentSetTreeItem(entry);
}
case CdmEntityType.MrsUser: {
return new MrsUserTreeItem(entry);
}
case CdmEntityType.MrsAuthAppGroup: {
return new MrsAuthAppGroupTreeItem(entry);
}
case CdmEntityType.MrsAuthApp: {
return new MrsAuthAppTreeItem(entry);
}
case CdmEntityType.MrsServiceAuthApp: {
return new MrsServiceAuthAppTreeItem(entry);
}
case CdmEntityType.MrsContentFile: {
return new MrsContentFileTreeItem(entry);
}
case CdmEntityType.MrsDbObject: {
return new MrsDbObjectTreeItem(entry);
}
case CdmEntityType.MrsRouterService: {
return new MrsRouterServiceTreeItem(entry);
}
default: {
return new TreeItem("Invalid entry type");
}
}
}