diff --git a/plugins/svg/src/FeatureTrack/README.md b/plugins/svg/src/LinearFeatureDisplay/README.md similarity index 100% rename from plugins/svg/src/FeatureTrack/README.md rename to plugins/svg/src/LinearFeatureDisplay/README.md diff --git a/plugins/svg/src/FeatureTrack/configSchema.ts b/plugins/svg/src/LinearFeatureDisplay/configSchema.ts similarity index 69% rename from plugins/svg/src/FeatureTrack/configSchema.ts rename to plugins/svg/src/LinearFeatureDisplay/configSchema.ts index e21a265aa0..694450bb1b 100644 --- a/plugins/svg/src/FeatureTrack/configSchema.ts +++ b/plugins/svg/src/LinearFeatureDisplay/configSchema.ts @@ -1,12 +1,12 @@ import { ConfigurationSchema } from '@jbrowse/core/configuration' -import { BaseTrackConfig } from '@jbrowse/plugin-linear-genome-view' +import { baseLinearDisplayConfigSchema } from '@jbrowse/plugin-linear-genome-view' + import PluginManager from '@jbrowse/core/PluginManager' export default function configSchemaFactory(pluginManager: PluginManager) { return ConfigurationSchema( - 'FeatureTrack', + 'LinearFeatureDisplay', { - adapter: pluginManager.pluggableConfigSchemaType('adapter'), renderer: pluginManager.pluggableConfigSchemaType('renderer'), // overrides base maxDisplayedBpPerPx: { @@ -15,6 +15,6 @@ export default function configSchemaFactory(pluginManager: PluginManager) { defaultValue: 1000, }, }, - { explicitlyTyped: true, baseConfiguration: BaseTrackConfig }, + { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true }, ) } diff --git a/plugins/svg/src/FeatureTrack/index.ts b/plugins/svg/src/LinearFeatureDisplay/index.ts similarity index 100% rename from plugins/svg/src/FeatureTrack/index.ts rename to plugins/svg/src/LinearFeatureDisplay/index.ts diff --git a/plugins/svg/src/FeatureTrack/model.ts b/plugins/svg/src/LinearFeatureDisplay/model.ts similarity index 88% rename from plugins/svg/src/FeatureTrack/model.ts rename to plugins/svg/src/LinearFeatureDisplay/model.ts index 6aed2e2c67..171e28083e 100644 --- a/plugins/svg/src/FeatureTrack/model.ts +++ b/plugins/svg/src/LinearFeatureDisplay/model.ts @@ -1,7 +1,7 @@ import { ConfigurationReference, getConf } from '@jbrowse/core/configuration' import { getParentRenderProps } from '@jbrowse/core/util/tracks' import { MenuItem } from '@jbrowse/core/ui' -import { basicTrackStateModelFactory } from '@jbrowse/plugin-linear-genome-view' +import { BaseLinearDisplay } from '@jbrowse/plugin-linear-genome-view' import VisibilityIcon from '@material-ui/icons/Visibility' import { types, Instance } from 'mobx-state-tree' @@ -10,10 +10,10 @@ import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration/configur const stateModelFactory = (configSchema: AnyConfigurationSchemaType) => types .compose( - 'FeatureTrack', - basicTrackStateModelFactory(configSchema), + 'LinearFeatureDisplay', + BaseLinearDisplay, types.model({ - type: types.literal('FeatureTrack'), + type: types.literal('LinearFeatureDisplay'), showLabels: types.optional(types.boolean, true), displayMode: types.optional(types.string, 'normal'), configuration: ConfigurationReference(configSchema), @@ -30,6 +30,10 @@ const stateModelFactory = (configSchema: AnyConfigurationSchemaType) => .views(self => { const { trackMenuItems } = self return { + get rendererTypeName() { + const renderer = getConf(self, 'renderer') + return renderer.type + }, get renderProps() { const config = self.rendererType.configSchema.create({ ...getConf(self, 'renderer'), diff --git a/plugins/svg/src/index.ts b/plugins/svg/src/index.ts index 5654f68aa0..867f98fed1 100644 --- a/plugins/svg/src/index.ts +++ b/plugins/svg/src/index.ts @@ -1,7 +1,8 @@ +import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType' import BoxRendererType from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType' import Plugin from '@jbrowse/core/Plugin' import PluginManager from '@jbrowse/core/PluginManager' -import TrackType from '@jbrowse/core/pluggableElementTypes/TrackType' +import { BaseLinearDisplayComponent } from '@jbrowse/plugin-linear-genome-view' import { configSchema as svgFeatureRendererConfigSchema, ReactComponent as SvgFeatureRendererReactComponent, @@ -10,7 +11,7 @@ import { import { configSchema as featuresTrackConfigSchema, modelFactory as featuresTrackModelFactory, -} from './FeatureTrack' +} from './LinearFeatureDisplay' export default class SVGPlugin extends Plugin { name = 'SVGPlugin' @@ -24,13 +25,16 @@ export default class SVGPlugin extends Plugin { configSchema: svgFeatureRendererConfigSchema, }), ) - pluginManager.addTrackType(() => { + + pluginManager.addDisplayType(() => { const configSchema = featuresTrackConfigSchema(pluginManager) - return new TrackType({ - name: 'FeatureTrack', - stateModel: featuresTrackModelFactory(configSchema), + return new DisplayType({ + name: 'LinearFeatureDisplay', configSchema, - compatibleView: 'LinearGenomeView', + stateModel: featuresTrackModelFactory(configSchema), + trackType: 'FeatureTrack', + viewType: 'LinearGenomeView', + ReactComponent: BaseLinearDisplayComponent, }) }) }