aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2007-11-26 20:44:56 +0000
committermatthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2007-11-26 20:44:56 +0000
commitd7b00a506917b0fc21c7781985ea65293870fbbc (patch)
tree2bcd17522d61e41245715c8bdc864c8c112f49b1
parentf2fef590a7283ea919bdaa51bac9d433e8785a09 (diff)
downloadreaction-d7b00a506917b0fc21c7781985ea65293870fbbc.tar.gz
reaction-d7b00a506917b0fc21c7781985ea65293870fbbc.zip
ObjectView converted
-rw-r--r--lib/Reaction/UI/RenderingContext/TT.pm15
-rw-r--r--lib/Reaction/UI/ViewPort/DisplayField.pm2
-rw-r--r--lib/Reaction/UI/Widget/DisplayField.pm9
-rw-r--r--lib/Reaction/UI/Widget/DisplayField/Boolean.pm2
-rw-r--r--lib/Reaction/UI/Widget/DisplayField/Collection.pm17
-rw-r--r--lib/Reaction/UI/Widget/DisplayField/DateTime.pm2
-rw-r--r--lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm2
-rw-r--r--lib/Reaction/UI/Widget/ObjectView.pm12
-rw-r--r--lib/Reaction/UI/WidgetClass.pm3
-rw-r--r--share/skin/default/layout/display_field/boolean.tt13
-rw-r--r--share/skin/default/layout/display_field/collection.tt10
-rw-r--r--share/skin/default/layout/display_field/date_time.tt11
-rw-r--r--share/skin/default/layout/display_field/number.tt11
-rw-r--r--share/skin/default/layout/display_field/related_object.tt11
-rw-r--r--share/skin/default/layout/display_field/string.tt13
-rw-r--r--share/skin/default/layout/display_field/text.tt13
-rw-r--r--share/skin/default/layout/object_view.tt8
17 files changed, 80 insertions, 74 deletions
diff --git a/lib/Reaction/UI/RenderingContext/TT.pm b/lib/Reaction/UI/RenderingContext/TT.pm
index e925ff6..8308c0c 100644
--- a/lib/Reaction/UI/RenderingContext/TT.pm
+++ b/lib/Reaction/UI/RenderingContext/TT.pm
@@ -62,21 +62,6 @@ class TT is RenderingContext, which {
} grep { !/^_/ } keys %$args
};
- # if there's an _ key that's our current topic (decalarative syntax
- # sees $_ as $_{_}) so build an iterator around it.
-
- # There's possibly a case for making everything an iterator but I think
- # any fragment should only have a single multiple arg
-
- # we also create a 'pos' shortcut to content.pos for brevity
-
- if (my $topic = $args->{_}) {
- my $iter = $self->iter_class->new(
- $topic, $self
- );
- $tt_args->{content} = $iter;
- $tt_args->{pos} = sub { $iter->pos };
- }
$body .= $lset->tt_view->include($fname, $tt_args);
#warn "rendered ${fname}, body length now ".length($body)."\n";
};
diff --git a/lib/Reaction/UI/ViewPort/DisplayField.pm b/lib/Reaction/UI/ViewPort/DisplayField.pm
index b8269dc..3ef48af 100644
--- a/lib/Reaction/UI/ViewPort/DisplayField.pm
+++ b/lib/Reaction/UI/ViewPort/DisplayField.pm
@@ -44,6 +44,8 @@ class DisplayField is 'Reaction::UI::ViewPort', which {
return '';
};
+ implements 'value_string' => as { shift->value };
+
};
1;
diff --git a/lib/Reaction/UI/Widget/DisplayField.pm b/lib/Reaction/UI/Widget/DisplayField.pm
index a688c28..d881025 100644
--- a/lib/Reaction/UI/Widget/DisplayField.pm
+++ b/lib/Reaction/UI/Widget/DisplayField.pm
@@ -3,9 +3,12 @@ package Reaction::UI::Widget::DisplayField;
use Reaction::UI::WidgetClass;
class DisplayField, which {
- fragment widget [ qw/label value/ ];
- fragment label [ string { $_{viewport}->label } ];
- fragment value [ string { $_{viewport}->value } ];
+
+ before fragment widget {
+ arg label => $_{viewport}->label;
+ arg value => $_{viewport}->value_string;
+ };
+
};
1;
diff --git a/lib/Reaction/UI/Widget/DisplayField/Boolean.pm b/lib/Reaction/UI/Widget/DisplayField/Boolean.pm
index 82f3b22..76ba41f 100644
--- a/lib/Reaction/UI/Widget/DisplayField/Boolean.pm
+++ b/lib/Reaction/UI/Widget/DisplayField/Boolean.pm
@@ -3,7 +3,7 @@ package Reaction::UI::Widget::DisplayField::Boolean;
use Reaction::UI::WidgetClass;
class Boolean is 'Reaction::UI::Widget::DisplayField', which {
- fragment value [ string { $_{viewport}->value_string } ];
+
};
1;
diff --git a/lib/Reaction/UI/Widget/DisplayField/Collection.pm b/lib/Reaction/UI/Widget/DisplayField/Collection.pm
index bcac990..40bedd3 100644
--- a/lib/Reaction/UI/Widget/DisplayField/Collection.pm
+++ b/lib/Reaction/UI/Widget/DisplayField/Collection.pm
@@ -3,10 +3,19 @@ package Reaction::UI::Widget::DisplayField::Collection;
use Reaction::UI::WidgetClass;
class Collection, which {
- fragment widget [ qw/label list/ ];
- fragment label [ string { $_{viewport}->label } ];
- fragment list [ item => over func('viewport', 'value_names') ];
- fragment item [ string { $_ } ];
+
+ before fragment widget {
+ arg 'label' => $_{viewport}->label;
+ };
+
+ implements fragment list {
+ render 'item' => over $_{viewport}->value_names;
+ };
+
+ implements fragment item {
+ arg 'name' => $_;
+ };
+
};
1;
diff --git a/lib/Reaction/UI/Widget/DisplayField/DateTime.pm b/lib/Reaction/UI/Widget/DisplayField/DateTime.pm
index 8f44d9e..35b2651 100644
--- a/lib/Reaction/UI/Widget/DisplayField/DateTime.pm
+++ b/lib/Reaction/UI/Widget/DisplayField/DateTime.pm
@@ -3,7 +3,7 @@ package Reaction::UI::Widget::DisplayField::DateTime;
use Reaction::UI::WidgetClass;
class DateTime is 'Reaction::UI::Widget::DisplayField', which {
- fragment value [ string { $_{viewport}->value_string } ];
+
};
1;
diff --git a/lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm b/lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm
index a477ef7..f6aef23 100644
--- a/lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm
+++ b/lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm
@@ -3,7 +3,7 @@ package Reaction::UI::Widget::DisplayField::RelatedObject;
use Reaction::UI::WidgetClass;
class RelatedObject is 'Reaction::UI::Widget::DisplayField', which {
- fragment value [ string { $_{viewport}->value_string } ];
+
};
1;
diff --git a/lib/Reaction/UI/Widget/ObjectView.pm b/lib/Reaction/UI/Widget/ObjectView.pm
index 6da4c34..a3455ba 100644
--- a/lib/Reaction/UI/Widget/ObjectView.pm
+++ b/lib/Reaction/UI/Widget/ObjectView.pm
@@ -3,9 +3,15 @@ package Reaction::UI::Widget::ObjectView;
use Reaction::UI::WidgetClass;
class ObjectView, which {
- fragment widget [ 'field_list' ];
- fragment field_list [ field => over func('viewport', 'ordered_fields') ];
- fragment field [ 'viewport' ];
+
+ implements fragment field_list {
+ render field => over $_{viewport}->ordered_fields;
+ };
+
+ implements fragment field {
+ render 'viewport';
+ };
+
};
1;
diff --git a/lib/Reaction/UI/WidgetClass.pm b/lib/Reaction/UI/WidgetClass.pm
index beebe41..ac6feaf 100644
--- a/lib/Reaction/UI/WidgetClass.pm
+++ b/lib/Reaction/UI/WidgetClass.pm
@@ -85,7 +85,7 @@ class WidgetClass, which {
implements handle_fragment => as {
my ($self, $name, $proto, $code) = @_;
-warn ($self, $name, $code);
+#warn ($self, $name, $code);
return ("_fragment_${name}" => $self->wrap_as_fragment($code));
};
@@ -102,6 +102,7 @@ warn ($self, $name, $code);
local $current_widget = $_[0];
local $do_render = $_[1];
local *_ = \%{$_[2]};
+ local $_ = $_[2]->{_};
local $new_args = $_[3];
$code->(@_);
};
diff --git a/share/skin/default/layout/display_field/boolean.tt b/share/skin/default/layout/display_field/boolean.tt
index 74e02e4..d531087 100644
--- a/share/skin/default/layout/display_field/boolean.tt
+++ b/share/skin/default/layout/display_field/boolean.tt
@@ -1,13 +1,14 @@
=for layout widget
-[% content %]
+[% label_layout %]
+[% value_layout %]
-=for layout label
+=for layout label_layout
-<strong > [% content | html %]: </strong>
+<strong > [% label %]: </strong>
-=for layout value
+=for layout value_layout
-[% content | html %]
+[% value %]
-=cut \ No newline at end of file
+=cut
diff --git a/share/skin/default/layout/display_field/collection.tt b/share/skin/default/layout/display_field/collection.tt
index 3bc65a9..47244e7 100644
--- a/share/skin/default/layout/display_field/collection.tt
+++ b/share/skin/default/layout/display_field/collection.tt
@@ -1,20 +1,20 @@
=for layout widget
-[% label %]
+[% label_box %]
[% list %]
-=for layout label
+=for layout label_box
-<strong > [% content | html %]: </strong>
+<strong> [% label %]: </strong>
=for layout list
<ul>
-[% content %]
+[% call_next %]
</ul>
=for layout item
-<li>[% content | html %]</li>
+<li>[% name %]</li>
=cut
diff --git a/share/skin/default/layout/display_field/date_time.tt b/share/skin/default/layout/display_field/date_time.tt
index 1fcad1a..d531087 100644
--- a/share/skin/default/layout/display_field/date_time.tt
+++ b/share/skin/default/layout/display_field/date_time.tt
@@ -1,13 +1,14 @@
=for layout widget
-[% content %]
+[% label_layout %]
+[% value_layout %]
-=for layout label
+=for layout label_layout
-<strong> [% content | html %]: </strong>
+<strong > [% label %]: </strong>
-=for layout value
+=for layout value_layout
-[% content | html %]
+[% value %]
=cut
diff --git a/share/skin/default/layout/display_field/number.tt b/share/skin/default/layout/display_field/number.tt
index 1fcad1a..d531087 100644
--- a/share/skin/default/layout/display_field/number.tt
+++ b/share/skin/default/layout/display_field/number.tt
@@ -1,13 +1,14 @@
=for layout widget
-[% content %]
+[% label_layout %]
+[% value_layout %]
-=for layout label
+=for layout label_layout
-<strong> [% content | html %]: </strong>
+<strong > [% label %]: </strong>
-=for layout value
+=for layout value_layout
-[% content | html %]
+[% value %]
=cut
diff --git a/share/skin/default/layout/display_field/related_object.tt b/share/skin/default/layout/display_field/related_object.tt
index 1fcad1a..d531087 100644
--- a/share/skin/default/layout/display_field/related_object.tt
+++ b/share/skin/default/layout/display_field/related_object.tt
@@ -1,13 +1,14 @@
=for layout widget
-[% content %]
+[% label_layout %]
+[% value_layout %]
-=for layout label
+=for layout label_layout
-<strong> [% content | html %]: </strong>
+<strong > [% label %]: </strong>
-=for layout value
+=for layout value_layout
-[% content | html %]
+[% value %]
=cut
diff --git a/share/skin/default/layout/display_field/string.tt b/share/skin/default/layout/display_field/string.tt
index 831cad4..d531087 100644
--- a/share/skin/default/layout/display_field/string.tt
+++ b/share/skin/default/layout/display_field/string.tt
@@ -1,13 +1,14 @@
=for layout widget
-[% content %]
+[% label_layout %]
+[% value_layout %]
-=for layout label
+=for layout label_layout
-<strong> [% content | html %]: </strong>
+<strong > [% label %]: </strong>
-=for layout value
+=for layout value_layout
-[% content | html %]
+[% value %]
-=cut \ No newline at end of file
+=cut
diff --git a/share/skin/default/layout/display_field/text.tt b/share/skin/default/layout/display_field/text.tt
index 831cad4..d531087 100644
--- a/share/skin/default/layout/display_field/text.tt
+++ b/share/skin/default/layout/display_field/text.tt
@@ -1,13 +1,14 @@
=for layout widget
-[% content %]
+[% label_layout %]
+[% value_layout %]
-=for layout label
+=for layout label_layout
-<strong> [% content | html %]: </strong>
+<strong > [% label %]: </strong>
-=for layout value
+=for layout value_layout
-[% content | html %]
+[% value %]
-=cut \ No newline at end of file
+=cut
diff --git a/share/skin/default/layout/object_view.tt b/share/skin/default/layout/object_view.tt
index 55b15bf..cec7b4d 100644
--- a/share/skin/default/layout/object_view.tt
+++ b/share/skin/default/layout/object_view.tt
@@ -2,14 +2,8 @@
[% field_list %]
-=for layout field_list
-
- <p> [% content %] </p>
-
-=cut
-
=for layout field
- [% content %] <br>
+ [% call_next %] <br>
=cut