App-Syndicator

 view release on metacpan or  search on metacpan

lib/App/Syndicator/UI.pm  view on Meta::CPAN

    }

    method _selected_messages {
        my @selected = $self->message_list->get;
        
        unless (scalar @selected) {
            @selected = ($self->message_list->get_active_value);
        }

        return @selected;
    }

    method _populate_message_list (Message_T @messages) {
        $self->message_list->values( 
            [  map { $_->id } @messages ]
        );

        $self->message_list->labels(
            { map { 
                $_->id => $_->render_title
                } @messages 
            }
        );

        $self->message_list->focus;
    }

    method _message_list_change {
        my $msg_id = $self->message_list->get_active_value;
        
        return unless defined $msg_id;

        my $msg = eval { $self->db->lookup($msg_id) };
        return unless defined $msg;

        $self->_render_message($msg);
        $self->message_list->focus;
    }

    method _update_message_count {
        $self->_status_text(
            $self->db->total. " messages, "
            . $self->db->unread
            . " unread."
        );
    }

    method _render_message (Message_T $msg) {
        my $title = $msg->published->dmy('-')
            .' '.$msg->published->hms(':')
            .' - '.$msg->title ;

        $self->header_bar->text($title);
        $self->header_bar->focus;

        $self->_viewer_text($msg->body."\n\n".$msg->link);
    }
    
    method _viewer_text (Str $text){
        $self->viewer->text($text);
        $self->viewer->cursor_to_home;
        $self->curses->layout;
    }

    method _status_text (Str $text?) {
        $text =~ s/\n//g;

        $self->status_bar->text(
            "App::Syndicator | $text"
        );
        
        $self->curses->layout;
    }

}



( run in 1.354 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )