Bläddra i källkod

mol-plugin: remember state server URL

David Sehnal 5 år sedan
förälder
incheckning
66c76ea6b5

+ 4 - 2
src/mol-plugin-ui/state/snapshots.tsx

@@ -169,7 +169,7 @@ export class RemoteStateSnapshots extends PluginUIComponent<
         options: PD.Group({
             description: PD.Text(),
             playOnLoad: PD.Boolean(false),
-            serverUrl: PD.Text(this.plugin.config.get(PluginConfig.PluginState.Server))
+            serverUrl: PD.Text(this.plugin.config.get(PluginConfig.State.CurrentServer))
         })
     };
 
@@ -177,7 +177,7 @@ export class RemoteStateSnapshots extends PluginUIComponent<
 
     ListOnlyParams = {
         options: PD.Group({
-            serverUrl: PD.Text(this.plugin.config.get(PluginConfig.PluginState.Server))
+            serverUrl: PD.Text(this.plugin.config.get(PluginConfig.State.CurrentServer))
         }, { isFlat: true })
     };
 
@@ -194,6 +194,8 @@ export class RemoteStateSnapshots extends PluginUIComponent<
     refresh = async () => {
         try {
             this.setState({ isBusy: true });
+            this.plugin.config.set(PluginConfig.State.CurrentServer, this.state.params.options.serverUrl);
+
             const json = (await this.plugin.runTask<RemoteEntry[]>(this.plugin.fetch({ url: this.serverUrl('list'), type: 'json'  }))) || [];
 
             json.sort((a, b) => {

+ 3 - 0
src/mol-plugin/behavior/static/state.ts

@@ -15,6 +15,7 @@ import { readFromFile } from '../../../mol-util/data-source';
 import { download } from '../../../mol-util/download';
 import { Structure } from '../../../mol-model/structure';
 import { urlCombine } from '../../../mol-util/url';
+import { PluginConfig } from '../../config';
 
 export function registerDefault(ctx: PluginContext) {
     SyncBehaviors(ctx);
@@ -130,6 +131,8 @@ export function ClearHighlight(ctx: PluginContext) {
 }
 
 export function Snapshots(ctx: PluginContext) {
+    ctx.config.set(PluginConfig.State.CurrentServer, ctx.config.get(PluginConfig.State.DefaultServer));
+
     PluginCommands.State.Snapshots.Clear.subscribe(ctx, () => {
         ctx.state.snapshots.clear();
     });

+ 4 - 1
src/mol-plugin/config.ts

@@ -14,7 +14,10 @@ function item<T>(key: string, defaultValue?: T) { return new PluginConfigItem(ke
 
 export const PluginConfig = {
     item,
-    PluginState: { Server: item('plugin-state.server', 'https://webchem.ncbr.muni.cz/molstar-state') }
+    State: { 
+        DefaultServer: item('plugin-state.server', 'https://webchem.ncbr.muni.cz/molstar-state'),
+        CurrentServer: item('plugin-state.server', 'https://webchem.ncbr.muni.cz/molstar-state')
+    }
 }
 
 export class PluginConfigManager {    

+ 1 - 1
src/mol-plugin/index.ts

@@ -89,7 +89,7 @@ export const DefaultPluginSpec: PluginSpec = {
         AnimateStateInterpolation
     ],
     config: new Map([
-        [PluginConfig.PluginState.Server, 'https://webchem.ncbr.muni.cz/molstar-state']
+        [PluginConfig.State.DefaultServer, 'https://webchem.ncbr.muni.cz/molstar-state']
     ])
 }