public GoogleSpreadsheetBrowser(string sAppName, string sClientId, string sGoogleAccessToken, bool bRequireSheetSelect) { m_bRequireSheetSelect = bRequireSheetSelect; InitializeComponent(); listViewSheets.Visible = m_bRequireSheetSelect; lblSheets.Visible = m_bRequireSheetSelect; m_zSpreadsheetsService = GoogleSpreadsheet.GetSpreadsheetsService(sAppName, sClientId, sGoogleAccessToken); }
private void listViewSpreadsheets_SelectedIndexChanged(object sender, EventArgs e) { if (!m_bRequireSheetSelect) { return; } if (listViewSpreadsheets.SelectedItems.Count == 1) { new Thread(() => { Func <ListViewItem> getCurrentSelectedtem = () => listViewSpreadsheets.SelectedItems.Count == 1 ? listViewSpreadsheets.SelectedItems[0] : null; var zLvi = listViewSpreadsheets.InvokeFunc(getCurrentSelectedtem); AtomEntryCollection zSheetAtomCollection = getAtomEntryCollection( () => GoogleSpreadsheet.GetSheetNames(m_zSpreadsheetsService, ((AtomEntry)zLvi.Tag)), () => listViewSheets.InvokeAction(() => listViewSheets.Clear())); if (null == zSheetAtomCollection) { return; } var listNewItems = new List <ListViewItem>(); foreach (var entry in zSheetAtomCollection) { var zNewLvi = new ListViewItem(entry.Title.Text) { Tag = entry }; listNewItems.Add(zNewLvi); } if (listViewSpreadsheets.InvokeFunc(getCurrentSelectedtem) == zLvi) { listViewSheets.InvokeAction(() => { listViewSheets.Items.Clear(); listViewSheets.Items.AddRange(listNewItems.ToArray()); listViewSpreadsheets.Sort(); }); } }).Start(); } else { listViewSheets.Items.Clear(); } }
private void GoogleSpreadsheetBrowser_Load(object sender, EventArgs e) { var zWait = new WaitDialog(1, () => { AtomEntryCollection zSheetAtomCollection = getAtomEntryCollection( () => GoogleSpreadsheet.GetSpreadsheetList(m_zSpreadsheetsService), () => listViewSpreadsheets.InvokeAction(() => listViewSpreadsheets.Clear())); if (null == zSheetAtomCollection) { this.InvokeAction( () => MessageBox.Show(this, "Failed to access Google Spreadsheets", "Access Failed", MessageBoxButtons.OK, MessageBoxIcon.Error)); this.InvokeAction(Close); WaitDialog.Instance.CloseWaitDialog(); return; } m_zAllEntries = zSheetAtomCollection; var listNewItems = new List <ListViewItem>(); foreach (var entry in zSheetAtomCollection) { var zLvi = new ListViewItem(entry.Title.Text) { Tag = entry }; listNewItems.Add(zLvi); } listViewSpreadsheets.InvokeAction(() => { listViewSpreadsheets.Items.AddRange(listNewItems.ToArray()); }); WaitDialog.Instance.CloseWaitDialog(); }, "Getting Google Spreadsheets...", null, 400); zWait.ShowDialog(this); }