public void StartPresentation(Presentation presentation) { switch(presentation.Type) { case Presentation.Typ.GoogleIO2012Slides: new GoogleIO2012Helper(activityEdit).StartPresentation(activityEdit.FragEditDetail, presentation); break; default: throw new NotImplementedException(); } }
public bool Insert(Presentation presentation) { bool ret = false; if (presentation == null || presentation.PresentationUID == Guid.Empty || String.IsNullOrEmpty(presentation.Name)) return false; using (SqliteConnection conn = GetConnection()) { using (SqliteCommand sqlCmd = new SqliteCommand(@" BEGIN; " + "INSERT INTO presentations " + "(PresentationUID, Name, DateCreate, Type) " + "VALUES " + "(@PresentationUID, @Name, @DateCreate, @Type); " + "COMMIT;", conn)) { sqlCmd.Parameters.AddWithValue("@PresentationUID", presentation.PresentationUID.ToString()); sqlCmd.Parameters.AddWithValue("@Name", presentation.Name); sqlCmd.Parameters.AddWithValue("@DateCreate", DateTime.Now); sqlCmd.Parameters.AddWithValue("@Type", presentation.Type); conn.Open(); try { sqlCmd.ExecuteNonQuery(); ret = true; } catch (SqliteException ex) { Logging.Log(this, Logging.LoggingTypeError, "SQL cmd: " + sqlCmd, ex); } conn.Close(); } } return ret; }
public List<Presentation> Select(string name = null) { List<Presentation> ret = new List<Presentation>(); string sSqlCmd = "SELECT PresentationUID, Name, DateCreate, Type FROM presentations "; if (!String.IsNullOrEmpty(name)) sSqlCmd += "WHERE Name=@name "; sSqlCmd += "ORDER BY Name;"; using (SqliteConnection conn = GetConnection()) { using (SqliteCommand sqlCmd = new SqliteCommand(sSqlCmd, conn)) { if (!String.IsNullOrEmpty(name)) sqlCmd.Parameters.AddWithValue("@name", name); conn.Open(); try { using (DbDataReader reader = sqlCmd.ExecuteReader()) { while (reader.Read()) { if (reader.HasRows) { if (reader.HasRows) { Presentation presentation = new Presentation(); presentation.PresentationUID = new Guid(reader.GetString(0)); presentation.Name = reader.GetString(1); presentation.DateCreate = reader.GetDateTime(2); presentation.Type = (Presentation.Typ)reader.GetInt32(3); ret.Add(presentation); } } } } } catch (SqliteException ex) { Logging.Log(this, Logging.LoggingTypeError, "SQL cmd: " + sqlCmd, ex); } conn.Close(); } } return ret; }
public void StartPresentation(EditDetailFragment fragment, Presentation presentation) { Intent intent = new Intent(fragment.Activity, typeof(BrowserActivity)); string pFolder = Path.Combine(presentationsHelper.PresentationsFolder, presentation.PresentationUID.ToString()); string demo = pFolder + "/template.html"; intent.PutExtra("url", "file://" + demo); fragment.StartActivity(intent); }
public void ShowPresentationsFolder(Presentation presentation) { string folder = Path.Combine(presentationsHelper.PresentationsFolder, presentation.PresentationUID.ToString()); (this.context as BaseActivity).ShowErrorMsg(folder, (this.context as Activity).GetText(Resource.String.DlgTitleShowPresentationsFolder)); }
public bool SavePresentation(EditDetailFragment fragment, View viewEditDetail, Presentation presentation) { if (presentation == null || viewEditDetail == null) { // TODO Fehlermeldung return false; } // View für die entsprechenden Typen laden switch(presentation.Type) { case Presentation.Typ.GoogleIO2012Slides: GoogleIO2012Helper helper = new GoogleIO2012Helper(context); EditText etContent = (EditText)viewEditDetail.FindViewById(Resource.Id.etContent); if (!helper.SaveContent(presentation.PresentationUID, etContent.Text.Trim())) { // ToDo Fehlermeldung } // Die vorhande Konfiguration laden um nur geänderte Stellen zu überschreiben GoogleIO2012Config cfg = helper.LoadConfig(presentation.PresentationUID); if (cfg.settings != null) { GoogleIO2012ConfigSettings settings = cfg.settings; settings.title = ((EditText)viewEditDetail.FindViewById(Resource.Id.etTitle)).Text; string title2 = ((EditText)viewEditDetail.FindViewById(Resource.Id.etTitle2)).Text; if (!String.IsNullOrEmpty(title2)) settings.title += "<br />" + title2; settings.subtitle = ((EditText)viewEditDetail.FindViewById(Resource.Id.etSubTitle)).Text; settings.useBuilds = ((ToggleButton)viewEditDetail.FindViewById(Resource.Id.tbtnAnimation)).Checked; settings.enableSlideAreas = ((ToggleButton)viewEditDetail.FindViewById(Resource.Id.tbtnAreas)).Checked; settings.enableTouch = ((ToggleButton)viewEditDetail.FindViewById(Resource.Id.tbtnTouch)).Checked; } if (cfg.presenters != null && cfg.presenters.Count > 0) { GoogleIO2012ConfigPresenters pres = cfg.presenters.FirstOrDefault(); pres.name = ((EditText)viewEditDetail.FindViewById(Resource.Id.etName)).Text; pres.company = ((EditText)viewEditDetail.FindViewById(Resource.Id.etCompany)).Text; pres.gplus = ((EditText)viewEditDetail.FindViewById(Resource.Id.etGooglePlus)).Text; pres.twitter = ((EditText)viewEditDetail.FindViewById(Resource.Id.etTwitter)).Text; pres.www = ((EditText)viewEditDetail.FindViewById(Resource.Id.etWebsite)).Text; pres.github = ((EditText)viewEditDetail.FindViewById(Resource.Id.etGithub)).Text; } helper.SaveConfig(presentation.PresentationUID, cfg); break; } return false; }
public void RenamePresentation(Presentation presentation) { Activity activity = this.context as Activity; // Per Dialog den Namen der neuen Presentation abfragen AlertDialog.Builder dialog = new AlertDialog.Builder(activity); dialog.SetTitle(activity.GetText(Resource.String.DlgRenamePresentationTitle)); dialog.SetMessage(activity.GetText(Resource.String.DlgRenamePresentationText)); dialog.SetCancelable(true); EditText etName = new EditText(activity); etName.SetSingleLine(true); dialog.SetView(etName); dialog.SetPositiveButton(activity.GetText(Resource.String.DlgRenamePresentationErstellen), delegate { string name = etName.Text.Trim(); if (String.IsNullOrEmpty(name)) { // Fehlermeldung anzeigen ((BaseActivity)activity).ShowErrorMsg(activity.GetText(Resource.String.DlgPresentationErrorNoName)); } try { presentationsHelper = new PresentationsHelper(this.context); } catch (Exception) { ((BaseActivity)activity).ShowErrorMsg(activity.GetText(Resource.String.ErrorNoExternalStorage)); } presentationsHelper.Rename(presentation.PresentationUID, name); ListView lvSlides = activity.FindViewById<ListView>(Resource.Id.lvSlides); foreach (Presentation p in (((SlidesAdapter)lvSlides.Adapter).GetData)) { if (p.PresentationUID == presentation.PresentationUID) { p.Name = name; break; } } // Liste aktualisieren if (this.context.GetType() == typeof(EditActivity)) { EditActivity editActivity = this.context as EditActivity; editActivity.LoadSlidesList(); } }); dialog.SetNegativeButton(activity.GetText(Resource.String.Cancel), delegate { }); dialog.Show(); }
public IMenuItem OnOptionsItemSelected(IMenuItem item, EditDetailFragment fragment, View viewEditDetail, Presentation presentation) { Logging.Log (this, Logging.LoggingTypeDebug, "OnOptionsItemSelected()"); switch((ActionBarButtons)item.ItemId) { case ActionBarButtons.SelectPresentation: fragment.Activity.RunOnUiThread(() => { EditActivity editActivity = context as EditActivity; if (editActivity != null) editActivity.ShowPresentationSelection(); fragment.SetHasOptionsMenu(false); }); break; case ActionBarButtons.Save: if (presentation != null) { SavePresentation(fragment, viewEditDetail, presentation); Toast.MakeText(fragment.Activity, Resource.String.ToastPresentationSaved, ToastLength.Long).Show(); } break; case ActionBarButtons.Render: // Async Daten Asyncron rendern lassen ProgressDialog pdlg = new ProgressDialog(fragment.Activity); pdlg.SetCancelable(false); pdlg.SetTitle(fragment.GetText(Resource.String.ProgressRenderPresentation)); pdlg.SetMessage(fragment.GetText(Resource.String.PleaseWait)); pdlg.Show(); Task.Factory.StartNew(() => { return new WSRenderGoogleIO2012(this.context).RenderPresentation(presentation.PresentationUID); }).ContinueWith(t => { pdlg.Cancel(); if (t.Exception == null && t.Result) Toast.MakeText(fragment.Activity, Resource.String.ToastPresentationRendered, ToastLength.Long).Show(); else { fragment.Activity.RunOnUiThread(delegate() { ((BaseActivity)fragment.Activity).ShowErrorMsg(fragment.GetText(Resource.String.ToastErrorRenderPresentation)); }); } }, TaskScheduler.FromCurrentSynchronizationContext()); break; case ActionBarButtons.Present: StartPresentation(fragment, presentation); break; } return item; }
public void LoadGoogleIO2012Presentation(View viewEditDetail, Presentation presentation) { // Präsentations Content laden und anzeigen etContent = (EditText)viewEditDetail.FindViewById(Resource.Id.etContent); etContent.SetSingleLine(false); etTitle = (EditText)viewEditDetail.FindViewById(Resource.Id.etTitle); etTitle2 = (EditText)viewEditDetail.FindViewById(Resource.Id.etTitle2); etSubTitle = (EditText)viewEditDetail.FindViewById(Resource.Id.etSubTitle); tbtnAnimation = (ToggleButton)viewEditDetail.FindViewById(Resource.Id.tbtnAnimation); tbtnAreas = (ToggleButton)viewEditDetail.FindViewById(Resource.Id.tbtnAreas); tbtnTouch = (ToggleButton)viewEditDetail.FindViewById(Resource.Id.tbtnTouch); etName = (EditText)viewEditDetail.FindViewById(Resource.Id.etName); etCompany = (EditText)viewEditDetail.FindViewById(Resource.Id.etCompany); etGooglePlus = (EditText)viewEditDetail.FindViewById(Resource.Id.etGooglePlus); etTwitter = (EditText)viewEditDetail.FindViewById(Resource.Id.etTwitter); etWebsite = (EditText)viewEditDetail.FindViewById(Resource.Id.etWebsite); etGithub = (EditText)viewEditDetail.FindViewById(Resource.Id.etGithub); etContent.Text = LoadContent(presentation.PresentationUID); // Die Anzeige zurücksetzen etTitle.Text = String.Empty; etTitle2.Text = String.Empty; etSubTitle.Text = String.Empty; tbtnAnimation.Checked = false; tbtnAreas.Checked = false; tbtnTouch.Checked = false; etName.Text = String.Empty; etCompany.Text = String.Empty; etGooglePlus.Text = String.Empty; etTwitter.Text = String.Empty; etWebsite.Text = String.Empty; etGithub.Text = String.Empty; // Konfiguration laden und anzeigen GoogleIO2012Config config = LoadConfig(presentation.PresentationUID); if (config != null) { if (config.settings != null) { GoogleIO2012ConfigSettings settings = config.settings; etTitle.Text = settings.title; if (settings.title.Contains("<br />")) { int nIndex = settings.title.IndexOf("<br />", StringComparison.InvariantCulture); etTitle.Text = settings.title.Substring(0, nIndex).Trim(); etTitle2.Text = settings.title.Substring(nIndex+6, settings.title.Length-nIndex-6).Trim(); } etSubTitle.Text = settings.subtitle; tbtnAnimation.Checked = settings.useBuilds; tbtnAreas.Checked = settings.enableSlideAreas; tbtnTouch.Checked = settings.enableTouch; } if (config.presenters != null && config.presenters.Count > 0) { // Das UI unterstützt derzeit nur einen Presenter GoogleIO2012ConfigPresenters presenter = config.presenters.FirstOrDefault(); if (presenter != null) { etName.Text = presenter.name; etCompany.Text = presenter.company; etGooglePlus.Text = presenter.gplus; etTwitter.Text = presenter.twitter; etWebsite.Text = presenter.www; etGithub.Text = presenter.github; } } } }
public void DeletePresentation(Presentation presentation) { if (presentationsHelper.Delete(presentation.PresentationUID) == PresentationsHelper.ErrorCode.MINIMALPRESENTATIONS) { Activity activity = this.context as Activity; ((BaseActivity)activity).ShowErrorMsg(activity.GetText(Resource.String.ErrorMinimalPresentationCount)); } else { // Liste aktualisieren if (this.context.GetType() == typeof(EditActivity)) { EditActivity editActivity = this.context as EditActivity; editActivity.LoadSlidesList(); } } }
public void CreatePresentation(Presentation presentation) { Activity activity = this.context as Activity; // Per Dialog den Namen der neuen Presentation abfragen AlertDialog.Builder dialog = new AlertDialog.Builder(activity); dialog.SetTitle(activity.GetText(Resource.String.DlgNewPresentationTitle)); dialog.SetMessage(activity.GetText(Resource.String.DlgNewPresentationText)); dialog.SetCancelable(true); EditText etName = new EditText(activity); etName.SetSingleLine(true); dialog.SetView(etName); dialog.SetPositiveButton(activity.GetText(Resource.String.DlgNewPresentationErstellen), delegate { string name = etName.Text.Trim(); Guid newPresentationUID; if (String.IsNullOrEmpty(name)) { // Fehlermeldung anzeigen ((BaseActivity)activity).ShowErrorMsg(activity.GetText(Resource.String.DlgPresentationErrorNoName)); } // Gibt es die Präsentation schon? if (!presentationsHelper.Exists(name)) { // Präsentation erstellen if (presentationsHelper.CreateNew(presentation.PresentationUID, out newPresentationUID, name) != PresentationsHelper.ErrorCode.OK) { // Fehlermeldung anzeigen ((BaseActivity)activity).ShowErrorMsg(activity.GetText(Resource.String.DlgNewPresentationError)); } } else { // Fehlermeldung anzeigen ((BaseActivity)activity).ShowErrorMsg(activity.GetText(Resource.String.DlgPresentationErrorPraesExists)); } // Präsentation laden if (this.context.GetType() == typeof(EditActivity)) { EditActivity editActivity = this.context as EditActivity; presentation.PresentationUID = newPresentationUID; editActivity.FragEditDetail.LoadPresentation(presentation); editActivity.HidePresentationSelection(); } }); dialog.SetNegativeButton(activity.GetText(Resource.String.Cancel), delegate { }); dialog.Show(); }
public ErrorCode CreateNew(Guid presentationUID, string name, Presentation.Typ typ) { if (presentationUID == Guid.Empty || String.IsNullOrEmpty(name)) return ErrorCode.ERROR; DBPresentation dbPresentation = new DBPresentation(); if (dbPresentation.Insert(new Presentation { PresentationUID = presentationUID, Name = name, Type = typ })) return ErrorCode.OK; return ErrorCode.ERROR; }
public void ShowPresentationsFolder(Presentation presentation) { switch(presentation.Type) { case Presentation.Typ.GoogleIO2012Slides: new GoogleIO2012Helper(activityEdit).ShowPresentationsFolder(presentation); break; default: throw new NotImplementedException(); } }