aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Reaction/UI/ViewPort/Field
diff options
context:
space:
mode:
authorgroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2009-07-08 22:54:19 +0000
committergroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2009-07-08 22:54:19 +0000
commit7b5e71adcc00ae151a7908c2cddcd7323408efc7 (patch)
tree4d12552e007c79cb83eb728f2e435548272a3caf /lib/Reaction/UI/ViewPort/Field
parent65b88951ac01b54d83a9d2c5b27c276e31b839fd (diff)
downloadreaction-7b5e71adcc00ae151a7908c2cddcd7323408efc7.tar.gz
reaction-7b5e71adcc00ae151a7908c2cddcd7323408efc7.zip
use more MooseX::Types and support actionattribute in Action vp to explicitly provide the URI to post to
Diffstat (limited to 'lib/Reaction/UI/ViewPort/Field')
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Array.pm18
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Boolean.pm9
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Collection.pm8
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Container.pm8
-rw-r--r--lib/Reaction/UI/ViewPort/Field/DateTime.pm6
-rw-r--r--lib/Reaction/UI/ViewPort/Field/File.pm12
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Integer.pm9
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Mutable/ChooseMany.pm3
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Mutable/HiddenArray.pm5
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Mutable/MatchingPasswords.pm5
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Number.pm9
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Password.pm7
-rw-r--r--lib/Reaction/UI/ViewPort/Field/RelatedObject.pm5
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Role/Choices.pm8
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm7
-rw-r--r--lib/Reaction/UI/ViewPort/Field/String.pm9
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Text.pm9
17 files changed, 69 insertions, 68 deletions
diff --git a/lib/Reaction/UI/ViewPort/Field/Array.pm b/lib/Reaction/UI/ViewPort/Field/Array.pm
index 82e01d2..ed9ddeb 100644
--- a/lib/Reaction/UI/ViewPort/Field/Array.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Array.pm
@@ -2,25 +2,29 @@ package Reaction::UI::ViewPort::Field::Array;
use Reaction::Class;
use Scalar::Util 'blessed';
-use aliased 'Reaction::UI::ViewPort::Field';
+
+extends 'Reaction::UI::ViewPort::Field';
use namespace::clean -except => [ qw(meta) ];
-extends Field;
+use MooseX::Types::Moose qw/Str ArrayRef/;;
-has '+value' => (isa => 'ArrayRef');
+has '+value' => (isa => ArrayRef);
-has value_names => (isa => 'ArrayRef', is => 'ro', lazy_build => 1);
+has value_names => (isa => ArrayRef, is => 'ro', lazy_build => 1);
has value_map_method => (
- isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' },
+ isa => Str, is => 'ro', required => 1, default => sub { 'display_name' },
);
+
sub _build_value_names {
my $self = shift;
my $meth = $self->value_map_method;
my @names = map { blessed($_) ? $_->$meth : $_ } @{ $self->value };
return [ sort @names ];
-};
-sub _empty_value { [] };
+}
+
+sub _empty_value { [] }
+
__PACKAGE__->meta->make_immutable;
diff --git a/lib/Reaction/UI/ViewPort/Field/Boolean.pm b/lib/Reaction/UI/ViewPort/Field/Boolean.pm
index 53356ef..626045c 100644
--- a/lib/Reaction/UI/ViewPort/Field/Boolean.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Boolean.pm
@@ -1,16 +1,15 @@
package Reaction::UI::ViewPort::Field::Boolean;
use Reaction::Class;
-use aliased 'Reaction::UI::ViewPort::Field';
+extends 'Reaction::UI::ViewPort::Field';
use namespace::clean -except => [ qw(meta) ];
-extends Field;
+use MooseX::Types::Moose qw/Bool/;
-
-has '+value' => (isa => 'Bool');
+has '+value' => (isa => Bool);
override _empty_string_value => sub { 0 };
-__PACKAGE__->meta->make_immutable;
+__PACKAGE__->meta->make_immutable;
1;
diff --git a/lib/Reaction/UI/ViewPort/Field/Collection.pm b/lib/Reaction/UI/ViewPort/Field/Collection.pm
index 02dfa75..f686c62 100644
--- a/lib/Reaction/UI/ViewPort/Field/Collection.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Collection.pm
@@ -2,23 +2,21 @@ package Reaction::UI::ViewPort::Field::Collection;
use Reaction::Class;
use Scalar::Util 'blessed';
-use aliased 'Reaction::UI::ViewPort::Field::Array';
use namespace::clean -except => [ qw(meta) ];
-extends Array;
-
-
+extends 'Reaction::UI::ViewPort::Field::Array';
has value => (
is => 'rw', lazy_build => 1,
isa => 'Reaction::InterfaceModel::Collection'
);
+
sub _build_value_names {
my $self = shift;
my $meth = $self->value_map_method;
my @names = map { blessed($_) ? $_->$meth : $_ } $self->value->members;
return [ sort @names ];
-};
+}
__PACKAGE__->meta->make_immutable;
diff --git a/lib/Reaction/UI/ViewPort/Field/Container.pm b/lib/Reaction/UI/ViewPort/Field/Container.pm
index 8f7dd3b..eddd899 100644
--- a/lib/Reaction/UI/ViewPort/Field/Container.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Container.pm
@@ -5,9 +5,11 @@ use Reaction::Class;
use namespace::clean -except => [ qw(meta) ];
extends 'Reaction::UI::ViewPort';
-has label => (is => 'ro', isa => 'Str');
-has name => (is => 'ro', isa => 'Str', required => 1);
-has fields => (is => 'ro', isa => 'ArrayRef', required => 1);
+use MooseX::Types::Moose qw/Str ArrayRef/;
+
+has label => (is => 'ro', isa => Str);
+has name => (is => 'ro', isa => Str, required => 1);
+has fields => (is => 'ro', isa => ArrayRef, required => 1);
__PACKAGE__->meta->make_immutable;
diff --git a/lib/Reaction/UI/ViewPort/Field/DateTime.pm b/lib/Reaction/UI/ViewPort/Field/DateTime.pm
index 46fbb60..a7e953b 100644
--- a/lib/Reaction/UI/ViewPort/Field/DateTime.pm
+++ b/lib/Reaction/UI/ViewPort/Field/DateTime.pm
@@ -3,16 +3,16 @@ package Reaction::UI::ViewPort::Field::DateTime;
use Scalar::Util 'blessed';
use Reaction::Class;
use Reaction::Types::DateTime ();
-use aliased 'Reaction::UI::ViewPort::Field';
use namespace::clean -except => [ qw(meta) ];
-extends Field;
+extends 'Reaction::UI::ViewPort::Field';
+use MooseX::Types::Moose qw/Str/;
has '+value' => (isa => Reaction::Types::DateTime::DateTime());
has value_string_default_format => (
- isa => 'Str', is => 'rw', required => 1, default => sub { "%F %H:%M:%S" }
+ isa => Str, is => 'rw', required => 1, default => sub { "%F %H:%M:%S" }
);
around _value_string_from_value => sub {
diff --git a/lib/Reaction/UI/ViewPort/Field/File.pm b/lib/Reaction/UI/ViewPort/Field/File.pm
index 5d731e6..adb0155 100644
--- a/lib/Reaction/UI/ViewPort/Field/File.pm
+++ b/lib/Reaction/UI/ViewPort/Field/File.pm
@@ -6,23 +6,25 @@ use Reaction::Types::File;
use namespace::clean -except => [ qw(meta) ];
extends 'Reaction::UI::ViewPort::Field';
-
+use MooseX::Types::Moose qw/CodeRef/;
has '+value' => (isa => Reaction::Types::File::File());
has uri => ( is => 'rw', lazy_build => 1);
-has action => (isa => 'CodeRef', is => 'rw', required => 1);
+has action => (isa => CodeRef, is => 'rw', required => 1);
+
sub _build_uri {
my $self = shift;
my $c = $self->ctx;
my ($c_name, $a_name, @rest) = @{ $self->action->($self->model, $c) };
$c->uri_for($c->controller($c_name)->action_for($a_name),@rest);
-};
+}
+
sub _value_string_from_value {
shift->value->stringify;
-};
-
+}
+
__PACKAGE__->meta->make_immutable;
diff --git a/lib/Reaction/UI/ViewPort/Field/Integer.pm b/lib/Reaction/UI/ViewPort/Field/Integer.pm
index 7064edb..8a050a4 100644
--- a/lib/Reaction/UI/ViewPort/Field/Integer.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Integer.pm
@@ -1,14 +1,13 @@
package Reaction::UI::ViewPort::Field::Integer;
use Reaction::Class;
-use aliased 'Reaction::UI::ViewPort::Field';
-
use namespace::clean -except => [ qw(meta) ];
-extends Field;
+use MooseX::Types::Moose qw/Int/;
+extends 'Reaction::UI::ViewPort::Field';
-has '+value' => (isa => 'Int');
-__PACKAGE__->meta->make_immutable;
+has '+value' => (isa => Int);
+__PACKAGE__->meta->make_immutable;
1;
diff --git a/lib/Reaction/UI/ViewPort/Field/Mutable/ChooseMany.pm b/lib/Reaction/UI/ViewPort/Field/Mutable/ChooseMany.pm
index 6c421c8..1b7a411 100644
--- a/lib/Reaction/UI/ViewPort/Field/Mutable/ChooseMany.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Mutable/ChooseMany.pm
@@ -8,13 +8,14 @@ my $listify = sub{
};
use namespace::clean -except => [ qw(meta) ];
+use MooseX::Types::Moose qw/ArrayRef/;
extends 'Reaction::UI::ViewPort::Field';
with 'Reaction::UI::ViewPort::Field::Role::Mutable';
with 'Reaction::UI::ViewPort::Field::Role::Choices';
#MUST BE HERE, BELOW THE 'does', OR THE TRIGGER WILL NOT HAPPEN!
-has '+value' => (isa => 'ArrayRef');
+has '+value' => (isa => ArrayRef);
around value => sub {
my $orig = shift;
diff --git a/lib/Reaction/UI/ViewPort/Field/Mutable/HiddenArray.pm b/lib/Reaction/UI/ViewPort/Field/Mutable/HiddenArray.pm
index fa75e3c..77df3de 100644
--- a/lib/Reaction/UI/ViewPort/Field/Mutable/HiddenArray.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Mutable/HiddenArray.pm
@@ -1,13 +1,14 @@
package Reaction::UI::ViewPort::Field::Mutable::HiddenArray;
use Reaction::Class;
-
use namespace::clean -except => [ qw(meta) ];
+use MooseX::Types::Moose qw/ArrayRef/;
+
extends 'Reaction::UI::ViewPort::Field';
with 'Reaction::UI::ViewPort::Field::Role::Mutable';
-has '+value' => (isa => 'ArrayRef');
+has '+value' => (isa => ArrayRef);
around value => sub {
my $orig = shift;
diff --git a/lib/Reaction/UI/ViewPort/Field/Mutable/MatchingPasswords.pm b/lib/Reaction/UI/ViewPort/Field/Mutable/MatchingPasswords.pm
index 845b8b5..6f7aad8 100644
--- a/lib/Reaction/UI/ViewPort/Field/Mutable/MatchingPasswords.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Mutable/MatchingPasswords.pm
@@ -2,11 +2,12 @@ package Reaction::UI::ViewPort::Field::Mutable::MatchingPasswords;
use Reaction::Class;
use namespace::clean -except => [ qw(meta) ];
+use MooseX::Types::Moose qw/Str/;
extends 'Reaction::UI::ViewPort::Field::Mutable::Password';
-has check_value => (is => 'rw', isa => 'Str', );
-has check_label => (is => 'rw', isa => 'Str', lazy_build => 1);
+has check_value => (is => 'rw', isa => Str, );
+has check_label => (is => 'rw', isa => Str, lazy_build => 1);
sub _build_check_label {
my $orig_label = shift->label;
diff --git a/lib/Reaction/UI/ViewPort/Field/Number.pm b/lib/Reaction/UI/ViewPort/Field/Number.pm
index a7ccc55..e8bab8a 100644
--- a/lib/Reaction/UI/ViewPort/Field/Number.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Number.pm
@@ -1,14 +1,13 @@
package Reaction::UI::ViewPort::Field::Number;
use Reaction::Class;
-use aliased 'Reaction::UI::ViewPort::Field';
-
use namespace::clean -except => [ qw(meta) ];
-extends Field;
+use MooseX::Types::Moose qw/Num/;
+extends 'Reaction::UI::ViewPort::Field';
-has '+value' => (isa => 'Num');
-__PACKAGE__->meta->make_immutable;
+has '+value' => (isa => Num);
+__PACKAGE__->meta->make_immutable;
1;
diff --git a/lib/Reaction/UI/ViewPort/Field/Password.pm b/lib/Reaction/UI/ViewPort/Field/Password.pm
index edb8fd2..4d24ad6 100644
--- a/lib/Reaction/UI/ViewPort/Field/Password.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Password.pm
@@ -1,13 +1,10 @@
package Reaction::UI::ViewPort::Field::Password;
use Reaction::Class;
-
-use Reaction::Types::Core qw(SimpleStr);
-
use namespace::clean -except => [ qw(meta) ];
-extends 'Reaction::UI::ViewPort::Field::String';
-
+use MooseX::Types::Common::String qw(SimpleStr);
+extends 'Reaction::UI::ViewPort::Field::String';
has '+value' => (isa => SimpleStr);
#has '+layout' => (default => 'password');
diff --git a/lib/Reaction/UI/ViewPort/Field/RelatedObject.pm b/lib/Reaction/UI/ViewPort/Field/RelatedObject.pm
index ec5c883..2c05e59 100644
--- a/lib/Reaction/UI/ViewPort/Field/RelatedObject.pm
+++ b/lib/Reaction/UI/ViewPort/Field/RelatedObject.pm
@@ -2,14 +2,13 @@ package Reaction::UI::ViewPort::Field::RelatedObject;
use Reaction::Class;
use Scalar::Util 'blessed';
+use MooseX::Types::Moose qw/Str/;
use namespace::clean -except => [ qw(meta) ];
extends 'Reaction::UI::ViewPort::Field';
-
-
has value_map_method => (
- isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' },
+ isa => Str, is => 'ro', required => 1, default => sub { 'display_name' },
);
around _value_string_from_value => sub {
diff --git a/lib/Reaction/UI/ViewPort/Field/Role/Choices.pm b/lib/Reaction/UI/ViewPort/Field/Role/Choices.pm
index fa329b7..b3525cb 100644
--- a/lib/Reaction/UI/ViewPort/Field/Role/Choices.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Role/Choices.pm
@@ -5,12 +5,12 @@ use URI;
use Scalar::Util 'blessed';
use namespace::clean -except => [ qw(meta) ];
+use MooseX::Types::Moose qw/ArrayRef Str/;
-
-has valid_values => (isa => 'ArrayRef', is => 'ro', lazy_build => 1);
-has value_choices => (isa => 'ArrayRef', is => 'ro', lazy_build => 1);
+has valid_values => (isa => ArrayRef, is => 'ro', lazy_build => 1);
+has value_choices => (isa => ArrayRef, is => 'ro', lazy_build => 1);
has value_map_method => (
- isa => 'Str', is => 'ro', required => 1, default => sub { 'display_name' },
+ isa => Str, is => 'ro', required => 1, default => sub { 'display_name' },
);
sub str_to_ident {
my ($self, $str) = @_;
diff --git a/lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm b/lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm
index 59a97ad..94953f4 100644
--- a/lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm
@@ -4,6 +4,7 @@ use Reaction::Role;
use aliased 'Reaction::InterfaceModel::Action';
use aliased 'Reaction::Meta::InterfaceModel::Action::ParameterAttribute';
+use MooseX::Types::Moose qw/Int Str/;
use namespace::clean -except => [ qw(meta) ];
@@ -14,11 +15,11 @@ has value => (
is => 'rw', lazy_build => 1, trigger_adopt('value'),
clearer => 'clear_value',
);
-has needs_sync => (is => 'rw', isa => 'Int', default => 0);
+has needs_sync => (is => 'rw', isa => Int, default => 0); #should be bool?
-has message => (is => 'rw', isa => 'Str', clearer => 'clear_message');
+has message => (is => 'rw', isa => Str, clearer => 'clear_message');
-has is_modified => (
+has is_modified => ( #sould be bool?
is => 'ro', writer => '_set_modified',
required => 1, default => 1, init_arg => undef
);
diff --git a/lib/Reaction/UI/ViewPort/Field/String.pm b/lib/Reaction/UI/ViewPort/Field/String.pm
index ec7e295..e699d53 100644
--- a/lib/Reaction/UI/ViewPort/Field/String.pm
+++ b/lib/Reaction/UI/ViewPort/Field/String.pm
@@ -1,14 +1,13 @@
package Reaction::UI::ViewPort::Field::String;
use Reaction::Class;
-use aliased 'Reaction::UI::ViewPort::Field';
-
use namespace::clean -except => [ qw(meta) ];
-extends Field;
+use MooseX::Types::Moose qw/Str/;
+extends 'Reaction::UI::ViewPort::Field';
-has '+value' => (isa => 'Str');
-__PACKAGE__->meta->make_immutable;
+has '+value' => (isa => Str);
+__PACKAGE__->meta->make_immutable;
1;
diff --git a/lib/Reaction/UI/ViewPort/Field/Text.pm b/lib/Reaction/UI/ViewPort/Field/Text.pm
index b0c90da..22a67b7 100644
--- a/lib/Reaction/UI/ViewPort/Field/Text.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Text.pm
@@ -1,14 +1,13 @@
package Reaction::UI::ViewPort::Field::Text;
use Reaction::Class;
-use aliased 'Reaction::UI::ViewPort::Field';
-
use namespace::clean -except => [ qw(meta) ];
-extends Field;
+use MooseX::Types::Moose qw/Str/;
+extends 'Reaction::UI::ViewPort::Field';
-has '+value' => (isa => 'Str');
-__PACKAGE__->meta->make_immutable;
+has '+value' => (isa => Str);
+__PACKAGE__->meta->make_immutable;
1;