delete_confirm_page.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package UI
  2. import (
  3. "fmt"
  4. "os"
  5. "path/filepath"
  6. "strings"
  7. "github.com/cuu/gogame/event"
  8. "github.com/cuu/gogame/time"
  9. )
  10. type DeleteConfirmPage struct {
  11. ConfirmPage
  12. }
  13. func NewDeleteConfirmPage() *DeleteConfirmPage {
  14. p := &DeleteConfirmPage{}
  15. p.ListFont = Fonts["veramono20"]
  16. p.FootMsg = [5]string{"Nav", "", "", "Cancel", "Yes"}
  17. p.ConfirmText = "Confirm Delete ?"
  18. return p
  19. }
  20. func (self *DeleteConfirmPage) SetTrashDir(d string) {
  21. self.TrashDir = d
  22. if IsDirectory(self.TrashDir) == false {
  23. panic("DeleteConfirmPage SetTrashDir errors")
  24. }
  25. }
  26. func (self *DeleteConfirmPage) SetFileName(fn string) {
  27. self.FileName = fn
  28. }
  29. func (self *DeleteConfirmPage) KeyDown(ev *event.Event) {
  30. if ev.Data["Key"] == CurKeys["A"] || ev.Data["Key"] == CurKeys["Menu"] {
  31. self.ReturnToUpLevelPage()
  32. self.Screen.Refresh()
  33. }
  34. if ev.Data["Key"] == CurKeys["B"] {
  35. err := os.Remove(filepath.Join(self.TrashDir, filepath.Base(self.FileName)))
  36. if err != nil {
  37. fmt.Println("DeleteConfirmPage os.Remove errors :", err)
  38. }
  39. err = os.Rename(filepath.Base(self.FileName), filepath.Join(self.TrashDir, filepath.Base(self.FileName)))
  40. if err != nil {
  41. if strings.Contains(err.Error(), "exists") {
  42. self.Screen.ShowMsg("Already Existed",0)
  43. } else {
  44. self.Screen.ShowMsg("Error",0)
  45. }
  46. } else {
  47. self.SnapMsg("Deleting")
  48. self.Screen.Refresh()
  49. self.Reset()
  50. time.BlockDelay(300)
  51. self.ReturnToUpLevelPage()
  52. self.Screen.Refresh()
  53. }
  54. fmt.Println(self.FileName)
  55. }
  56. }