8 using System.Collections.Generic;
24 private List<Session> sessions =
new List<Session>();
25 public static string progress =
"";
29 return sessions.ToArray();
36 char[] charsToTrim = {
'"' };
37 for (
int i = 0; i < responseData.
Count; i++)
40 s.
id = responseData[i][
"id"].
AsInt;
41 s.
name = responseData[i][
"name"].
ToString().Trim(charsToTrim);
42 s.
slug = responseData[i][
"slug"].
ToString().Trim(charsToTrim);
50 Debug.Log (
"Downloading molecule");
51 Dictionary<string, string> headers =
new Dictionary<string, string>();
53 headers.Add(
"Authorization",
"Token " + authenticationToken);
55 WWW www =
new WWW(hostUrl +
"sessions/" + sessionSlug +
"/", null, headers);
59 progress =
"downloaded " + (www.progress*100).ToString() +
"%...";
63 string fullPath = Application.persistentDataPath +
"/" + sessionSlug +
".pdb";
65 File.WriteAllBytes (fullPath, www.bytes);
67 Debug.Log (
"Downloaded");
69 progress =
"downloaded, opening...";
75 GameObject.Find (
"LoadBox").GetComponent<
Molecule3D>().gUIDisplay.OpenFileCallback(fullPath);
80 public delegate
void LoggedIn();
81 public delegate
void Connecting();
82 public delegate
void LoginFailed(
string errorMsg);
90 public delegate
void SessionSuccess();
91 public delegate
void RetrievingSession();
92 public delegate
void SessionFailed(
string errorMsg);
97 public delegate
void SubmissionSuccess();
98 public delegate
void Submitting();
99 public delegate
void SubmissionFailed(
string errorMsg);
104 private string authenticationToken =
"";
107 return authenticationToken !=
"";
110 public void Login(
string username,
string password) {
111 Dictionary<string, object> fields =
new Dictionary<string, object>();
112 fields.Add(
"username", username);
113 fields.Add(
"password", password);
114 if (OnConnection != null) {
117 PerformRequest(
"getauthtoken/", fields, OnLoginResponse);
122 authenticationToken = responseData[
"token"];
123 if (OnLoggedIn != null) {
127 if (OnLoginFailed != null) {
128 OnLoginFailed(
"Connection failed");
152 PerformRequest(
"logout/", null, OnLogoutResponse, authenticationToken);
157 authenticationToken =
"";
164 if (OnSubmission != null) {
172 WWWForm form =
new WWWForm();
173 form.AddBinaryData(
"filename", Encoding.ASCII.GetBytes(snapshot), filename);
175 PerformFormRequest(
"sessions/" + sessionSlug +
"/submit/", form, filename, snapshot, OnSubmittedPDB, authenticationToken);
181 Debug.Log (
"Success");
182 if (OnSubmissionSuccess != null) {
183 OnSubmissionSuccess();
186 Debug.Log (
"Failure");
187 if (OnSubmissionFailed != null) {
188 OnSubmissionFailed(
"Submission refused");
195 if (OnSession != null) {
199 PerformRequest(
"sessions/", null, OnRetrievedSessions, authenticationToken);
205 populateSessions(responseData);
206 if (OnSessionSuccess != null) {
210 Debug.Log (
"Failure");
211 if (OnSessionFailed != null) {
212 OnSessionFailed(
"Session list retrieval refused");
void OnLogoutResponse(ResponseType responseType, JSONNode responseData, string callee)
void OnLoginResponse(ResponseType responseType, JSONNode responseData, string callee)
RetrievingSession OnSession
override string ToString()
static string generateSnapshot()
Produces a snapshot of the molecule in PDB format.
IEnumerator downloadSessionFile(string sessionSlug)
void OnSubmittedPDB(ResponseType responseType, JSONNode responseData, string callee)
SessionFailed OnSessionFailed
SessionSuccess OnSessionSuccess
LoginFailed OnLoginFailed
void SubmitPDB(string sessionSlug)
void populateSessions(JSONNode responseData)
Populates the sessions list with received JSON data passed as argument.
SubmissionSuccess OnSubmissionSuccess
!WiP Includes FLAGS of GUI.
void OnRetrievedSessions(ResponseType responseType, JSONNode responseData, string callee)
static void clearScene()
Clears the scene.
void Login(string username, string password)
SubmissionFailed OnSubmissionFailed