diff options
author | etienne | 2004-02-12 15:20:49 +0000 |
---|---|---|
committer | etienne | 2004-02-12 15:20:49 +0000 |
commit | ea7526c706d3b69b71d9243c5addb9d6c0a59693 (patch) | |
tree | dd26ebca69bad2c3aed7b8c4f0c140103eb6b25b /src | |
parent | 774a010e8337ac75e1b1708e2f92df9c1c131c19 (diff) | |
download | ivymon-ea7526c706d3b69b71d9243c5addb9d6c0a59693.zip ivymon-ea7526c706d3b69b71d9243c5addb9d6c0a59693.tar.gz ivymon-ea7526c706d3b69b71d9243c5addb9d6c0a59693.tar.bz2 ivymon-ea7526c706d3b69b71d9243c5addb9d6c0a59693.tar.xz |
*** empty log message ***
Diffstat (limited to 'src')
-rwxr-xr-x | src/ivymon | 92 |
1 files changed, 81 insertions, 11 deletions
@@ -28,6 +28,7 @@ my $casesensitiveflag = 1; my $regexpflag = 0; # misc my $hostname = hostname(); +my %clientsMessagesTpl; my %connectedClients; my %clientsBindings; my %clientBindingsTpl; @@ -426,25 +427,29 @@ $clientsListbox->bind('<1>', [\&selectClient]); $clientsListbox->bind('<Double-1>', [\&showClientBindings]); &wheelmousebindings($clientsListbox); -my $clientsButtons_fm = $clients_fm->Frame( - )->pack(-fill => 'both', -expand => 1, -side => 'bottom'); +my $clientsButtons_fm = + $clients_fm->Frame()->pack(-fill => 'both', -expand => 1, -side => 'bottom'); -my $clientsSeeBindings_btnmsg = "See bindings"; -if($smallsized){ - $clientsSeeBindings_btnmsg = "Bindings"; -} my $clientsSeeBindings_btn = $clientsButtons_fm->Button(-command => [\&showClientBindings], -state => 'disabled', - -text => $clientsSeeBindings_btnmsg - )->pack(-side => 'left'); + -text => 'See bindings', + )->pack(-side => 'top', -fill => 'both', -expand => 1); +my $clientsButtons2_fm = + $clientsButtons_fm->Frame()->pack(-fill => 'both', -expand => 1, -side => 'top'); +my $clientsFilter_btn = + $clientsButtons2_fm->Button(-command => [\&filterClient], + -state => 'disabled', + -text => "Filter", + )->pack(-side => 'left', -fill => 'both', -expand => 1); my $clientsKill_btn = - $clientsButtons_fm->Button(-command => [\&killClient], + $clientsButtons2_fm->Button(-command => [\&killClient], -state => 'disabled', - -text => "Kill")->pack(-side => 'left'); + -text => "Kill", + )->pack(-side => 'left', -fill => 'both', -expand => 1); #---------------------------------------------------------------------------------- # Messages to send area @@ -704,6 +709,8 @@ $balloonhelp->attach($clientsListbox,-balloonmsg => "Ivy messages in the Messages area. \n". "Double-click on it to display the application \n". "bindings or click on the 'See bindings' button.\n". + "To display messages in a separate window, click\n". + "on the 'Filter' button. \n". "To kill an agent, click on the 'Kill' button. "); $balloonhelp->attach($sendEntry, -balloonmsg => "This input field is used to enter new messages or\n". @@ -855,7 +862,6 @@ sub removeClient { for my $host ((keys(%{$connectedClients{$client}}))) { $num += $connectedClients{$client}->{$host}; } - print "client=$client num=$num\n"; delete $clientsBindings{$client} if $num == 0; &manageClient($client, $host); @@ -922,17 +928,64 @@ sub selectClient { $selectedClient = undef; $clientsListbox->selectionClear($selindex); $clientsKill_btn->configure(-state => 'disabled'); + $clientsFilter_btn->configure(-state => 'disabled'); $clientsSeeBindings_btn->configure(-state => 'disabled'); return; } $messagesText->tagConfigure($client, -background => 'gray70'); $selectedClient = $client; $clientsKill_btn->configure(-state => 'normal'); + $clientsFilter_btn->configure(-state => 'normal'); $clientsSeeBindings_btn->configure(-state => 'normal'); } # end selectClient +sub filterClient { + my $selindex = $clientsListbox->curselection; + my $client = $clientsListbox->get($selindex); + $client =~ s/^-- //; + $client =~ s/\(\d+\)$//; + $client =~ s/\s.*//; + # si une fenetre client existe, on la raise + if (defined $clientsMessagesTpl{$client} and + Tk::Exists $clientsMessagesTpl{$client}) { + $clientsMessagesTpl{$client}->toplevel->raise; + return; + # sinon, on la crée + } else { + my $tpl = $mw->Toplevel; + my $title = "$client messages"; + $tpl->title($title); + $tpl->Label(-text => $title)->pack(-side => 'top', + -padx => 10, + -pady => 10); + $clientsMessagesTpl{$client} = + $tpl->Scrolled('Text', + -scrollbars => 'e', + )->pack(-side => 'top', + -fill => 'both', + -expand => 1); + &wheelmousebindings($clientsMessagesTpl{$client}); + + $tpl->Button(-text => 'Close', + -command => [sub { $clientsMessagesTpl{$client} = undef; + $tpl->destroy; + }], + )->pack(-side => 'top', + -padx => 10, + -pady => 10); + } + + my @list = $messagesText->tagRanges($client); + for (my $i=0; $i < @list; $i += 2) { + &updateClientMessages($client, $messagesText->get($list[$i], $list[$i+1])); + } + $clientsMessagesTpl{$client}->configure(-state => 'disabled'); + +} # end filterClient + + sub showClientBindings { my $selindex = $clientsListbox->curselection; @@ -964,6 +1017,7 @@ sub showClientBindings { if $clientsBindings{$client}->{$regexp} > 0; $i++; } + $t->configure(-state => 'disabled'); $tpl->Button(-text => 'Close', -command => [sub {$tpl->destroy; $clientsListbox->selectionClear($_[0]) @@ -1079,6 +1133,20 @@ sub updateMessages { } # end updateMessages +sub updateClientMessages { + my ($sender, $message) = @_; + return unless $clientsMessagesTpl{$sender} and + Tk::Exists $clientsMessagesTpl{$sender}; + $clientsMessagesTpl{$sender}->configure(-state => 'normal'); + $clientsMessagesTpl{$sender}->insert('end', $message); + $clientsMessagesTpl{$sender}->insert('end', "\n"); + $clientsMessagesTpl{$sender}->update unless $noUpdateFlag; + $clientsMessagesTpl{$sender}->see('end'); + $clientsMessagesTpl{$sender}->configure(-state => 'disabled'); + +} # end updateClientMessages + + sub loadMessage { my ($sender, $message) = @_; $recordedNumber++; @@ -1091,6 +1159,8 @@ sub loadMessage { my $index3 = "$index2 + 1 chars"; my $index4 = "$index3 + ".length($message)." chars"; $messagesText->tagAdd($sender, $index3, $index4); + &updateClientMessages($sender, $message) if $clientsMessagesTpl{$sender} and + Tk::Exists $clientsMessagesTpl{$sender}; } # end loadmessages |