From af778963236298c9bfe91bb5939cf4c089a8a22e Mon Sep 17 00:00:00 2001 From: Michael Dvorkin Date: Sat, 3 Aug 2013 15:06:20 -0700 Subject: [PATCH] Simplified grouping by advancing/declining --- column_editor.go | 4 +--- mop/mop.go | 3 +-- profile.go | 18 ++++++++---------- yahoo_quotes.go | 20 +++++++++++++++----- 4 files changed, 25 insertions(+), 20 deletions(-) diff --git a/column_editor.go b/column_editor.go index bdc7b92..44e7d1e 100644 --- a/column_editor.go +++ b/column_editor.go @@ -72,9 +72,7 @@ func (self *ColumnEditor) select_right_column() *ColumnEditor { //----------------------------------------------------------------------------- func (self *ColumnEditor) execute() *ColumnEditor { - if updated,_ := self.quotes.UpdateSortOrder(); updated { - self.screen.Draw(self.quotes) - } + self.screen.Draw(self.quotes.Reorder()) return self } diff --git a/mop/mop.go b/mop/mop.go index 8b91af3..57df5cd 100644 --- a/mop/mop.go +++ b/mop/mop.go @@ -58,8 +58,7 @@ loop: } else if event.Ch == 'o' || event.Ch == 'O' { column_editor = new(mop.ColumnEditor).Initialize(screen, quotes) } else if event.Ch == 'g' || event.Ch == 'G' { - profile.Regroup() - screen.Draw(quotes) + screen.Draw(quotes.Regroup()) } else if event.Ch == '?' || event.Ch == 'h' || event.Ch == 'H' { showing_help = true screen.Clear().Draw(help) diff --git a/profile.go b/profile.go index 16245b1..4ca90be 100644 --- a/profile.go +++ b/profile.go @@ -56,12 +56,6 @@ func (self *Profile) ListOfTickers() string { return strings.Join(self.Tickers, `+`) } -//----------------------------------------------------------------------------- -func (self *Profile) Regroup() error { - self.Grouped = !self.Grouped - return self.Save() -} - //----------------------------------------------------------------------------- func (self *Profile) AddTickers(tickers []string) (added int, err error) { added = 0 @@ -98,15 +92,19 @@ func (self *Profile) RemoveTickers(tickers []string) (removed int, err error) { } //----------------------------------------------------------------------------- -func (self *Profile) UpdateSortOrder() (updated bool, err error) { +func (self *Profile) Reorder() error { if self.selected_column == self.SortColumn { self.Ascending = !self.Ascending } else { self.SortColumn = self.selected_column } - err = self.Save() - updated = (err == nil) - return + return self.Save() +} + +//----------------------------------------------------------------------------- +func (self *Profile) Regroup() error { + self.Grouped = !self.Grouped + return self.Save() } // private diff --git a/yahoo_quotes.go b/yahoo_quotes.go index 19714ec..973cf3d 100644 --- a/yahoo_quotes.go +++ b/yahoo_quotes.go @@ -109,7 +109,7 @@ func (self *Quotes) Format() string { //----------------------------------------------------------------------------- func (self *Quotes) AddTickers(tickers []string) (added int, err error) { - if added, err = self.profile.AddTickers(tickers); added > 0 { + if added, err = self.profile.AddTickers(tickers); err == nil && added > 0 { self.stocks = nil // Force fetch. } return @@ -117,18 +117,28 @@ func (self *Quotes) AddTickers(tickers []string) (added int, err error) { //----------------------------------------------------------------------------- func (self *Quotes) RemoveTickers(tickers []string) (removed int, err error) { - if removed, err = self.profile.RemoveTickers(tickers); removed > 0 { + if removed, err = self.profile.RemoveTickers(tickers); err == nil && removed > 0 { self.stocks = nil // Force fetch. } return } //----------------------------------------------------------------------------- -func (self *Quotes) UpdateSortOrder() (updated bool, err error) { - if updated, err = self.profile.UpdateSortOrder(); updated { +func (self *Quotes) Reorder() *Quotes { + if self.profile.Reorder() == nil { self.stocks = nil // Force fetch. } - return + + return self +} + +//----------------------------------------------------------------------------- +func (self *Quotes) Regroup() *Quotes { + if self.profile.Regroup() == nil { + self.stocks = nil // Force fetch. + } + + return self } //-----------------------------------------------------------------------------