Author: spadkins
Date: Thu Nov  9 09:40:40 2006
New Revision: 8030

Modified:
   p5ee/trunk/App-Widget/lib/App/Widget.pm

Log:
add format() method

Modified: p5ee/trunk/App-Widget/lib/App/Widget.pm
==============================================================================
--- p5ee/trunk/App-Widget/lib/App/Widget.pm     (original)
+++ p5ee/trunk/App-Widget/lib/App/Widget.pm     Thu Nov  9 09:40:40 2006
@@ -9,6 +9,8 @@
 use App::SessionObject;
 @ISA = ( "App::SessionObject" );
 
+use Date::Format;
+use Date::Parse;
 use strict;
 
 =head1 NAME
@@ -512,5 +514,39 @@
    $url;
 }
 
+sub format {
+    &App::sub_entry if ($App::trace);
+    my ($self, $value, $format_options) = @_;
+
+    my $formatted_value = $value;
+
+    if ($format_options->{scale_factor}) {
+        $formatted_value *= $format_options->{scale_factor};
+    }
+    if ($format_options->{format}) {
+        $formatted_value = sprintf($format_options->{format}, $value);
+    }
+    elsif ($format_options->{date_format}) {
+        if (defined $format_options->{date_suffix}) {
+            $formatted_value .= $format_options->{date_suffix};
+        }
+        $formatted_value = time2str($format_options->{date_format}, 
str2time($formatted_value));
+    }
+    elsif ($format_options->{labels}) {
+        $formatted_value = $format_options->{labels}{$value};
+        $formatted_value = $value if (!defined $formatted_value);
+    }
+    elsif ($format_options->{domain}) {
+        my $context = App->context();
+        my $value_domain = $context->value_domain($format_options->{domain});
+        my $labels = $value_domain->labels();
+        $formatted_value = $labels->{$value};
+        $formatted_value = $value if (!defined $formatted_value);
+    }
+
+    &App::sub_exit($formatted_value) if ($App::trace);
+    return($formatted_value);
+}
+
 1;
 

Reply via email to