public void loadModel(KBWorkspaceObjectData modelData, boolean showAllRxns) { if (modelData == null || modelData.getId() == null || modelData.getWorkspace() == null) return; eventBus.fireEvent(new LoadingEvent(false)); rpc.getKBaseMetabolicModel( modelData.getId(), modelData.getWorkspace(), new AsyncCallback<KBMetabolicModel>() { @Override public void onFailure(Throwable caught) { Window.alert("Remote procedure call failure: getKBaseMetabolicModel"); setState(State.NO_MODELS_LOADED); eventBus.fireEvent(new LoadingEvent(true)); } @Override public void onSuccess(KBMetabolicModel model) { // fire it off to the rest of the app. eventBus.fireEvent( new MetabolicModelLoadedEvent(model, view.getShowAllCheckBox().getValue())); if (model == null || model.getId().length() == 0) { Window.alert( "Sorry, unable to display that model. Please try again.\nIf this problem persists, please contact the site administrator."); } else setState(State.MODEL_SELECTED); eventBus.fireEvent(new LoadingEvent(true)); } }); }
public void loadFBAResults(KBWorkspaceObjectData fbaData, boolean showAllRxns) { if (fbaData == null || fbaData.getId() == null || fbaData.getWorkspace() == null) return; eventBus.fireEvent(new LoadingEvent(false)); rpc.getKBaseFBAResult( fbaData.getId(), fbaData.getWorkspace(), new AsyncCallback<KBFBAResult>() { @Override public void onFailure(Throwable caught) { Window.alert("Remote procedure call failure: getKBaseFBAResult"); setState(State.NO_FBAS_LOADED); eventBus.fireEvent(new LoadingEvent(true)); } @Override public void onSuccess(KBFBAResult fba) { // fire it off to the rest of the app. if (fba == null || fba.getId().length() == 0) { Window.alert( "Sorry, unable to display that FBA result. Please try again.\n If this problem persists, please contact the site administrator."); } else { setState(State.FBA_SELECTED); view.getFBATextBox() .setText( fba.getId() + " - " + fba.getWorkspace() + " - Biomass: " + fba.getObjective()); eventBus.fireEvent( new FBAResultLoadedEvent(fba, view.getShowAllCheckBox().getValue())); } eventBus.fireEvent(new LoadingEvent(true)); } }); }
/** * Should be invoked when a user logs in or out. In either case, it should check whether the * current user has access to currently loaded models or FBA results. */ public void processUserChange() { /* Do a lookup (getModel or get FBA result) on each item in order. * Keep the keepable ones, remove, but tag the non-keepable ones. * If any were removed from the list, alert the user. */ if (!modelDataProvider.getList().isEmpty()) { List<KBWorkspaceObjectData> modelData = new ArrayList<KBWorkspaceObjectData>(); modelData.addAll(modelDataProvider.getList()); eventBus.fireEvent(new LoadingEvent(false)); rpc.getObjectsWithValidPermissions( modelData, new AsyncCallback<List<KBWorkspaceObjectData>>() { @Override public void onFailure(Throwable caught) { eventBus.fireEvent(new LoadingEvent(true)); Window.alert("Sorry, an error occurred while checking model\nviewing permissions"); } @Override public void onSuccess(List<KBWorkspaceObjectData> validData) { if (validData.size() < modelDataProvider.getList().size()) { Window.alert( "Changing login status has removed access to some models.\nResetting view..."); modelDataProvider.getList().clear(); if (validData.size() > 0) { modelDataProvider.getList().addAll(validData); } else setState(State.NO_MODELS_LOADED); eventBus.fireEvent(new MetabolicModelLoadedEvent(null)); } eventBus.fireEvent(new LoadingEvent(true)); } }); } if (!fbaDataProvider.getList().isEmpty()) { List<KBWorkspaceObjectData> fbaData = new ArrayList<KBWorkspaceObjectData>(); fbaData.addAll(fbaDataProvider.getList()); eventBus.fireEvent(new LoadingEvent(false)); rpc.getObjectsWithValidPermissions( fbaDataProvider.getList(), new AsyncCallback<List<KBWorkspaceObjectData>>() { @Override public void onFailure(Throwable caught) { eventBus.fireEvent(new LoadingEvent(true)); Window.alert( "Sorry, an error occurred while checking fba\nresult viewing permissions"); } @Override public void onSuccess(List<KBWorkspaceObjectData> validData) { if (validData.size() < fbaDataProvider.getList().size()) { Window.alert( "Changing login status has removed access to some FBA results.\nResetting view..."); fbaDataProvider.getList().clear(); if (validData.size() > 0) { fbaDataProvider.getList().addAll(validData); setState(State.FBA_LOADED); } eventBus.fireEvent(new FBAResultLoadedEvent(null)); } eventBus.fireEvent(new LoadingEvent(true)); } }); } }