Slide 9
Slide 9 text
項目追加とクリックイベント
serviceList.AddItem(" S3 ", " Objects Storage ", 0, func() { Serviceリストに追加 ■主要テキスト、サブテキスト、ショートカット用rune、クリック時関数
s := awsservice.NewS3()
■ AWS接続のための構造体
buckets, _ := s.ListBuckets() ■ バケットの取得
bucketsList.Clear()
■ Listのクリア
for _, val := range buckets.Buckets {
bucketsList.AddItem(*val.Name, *buckets.Owner.DisplayName, 0, func() { bucketリストに追加 ■バケット名、オーナー、なし、クリック時関数
bucketFunc(objectList, bucketsList, s, app) //
})
}
app.SetFocus(bucketsList) ■ bucketリストにFocusを合わせる
})
----------------------------------------------func bucketFunc(objectList *tview.List, bucketsList *tview.List, s awsservice.S3, app *tview.Application) {
objectList.Clear() // List クリア
itemText, _ := bucketsList.GetItemText(bucketsList.GetCurrentItem()) ■選択されているバケットテキスト取得
objects, _ := s.ListObjects(itemText) ■バケット内ファイルを取得
for _, v := range objects.Contents {
objectList.AddItem(*v.Key, v.LastModified.Format("2006/01/02 15:04:05"), 0, nil) ■Objectsリストに追加
}
app.SetFocus(objectList) ■ ObjectsリストにFocusを合わせる
}
9