Autodia::Diagram::Realization - Autodia::Diagram::Realization documentation
Index
Code Index:

################################################################
# AutoDia - Automatic Dia XML.(C)Copyright 2001-2009 A Trevena #
# #
# AutoDia comes with ABSOLUTELY NO WARRANTY; see COPYING file #
# This is free software, and you are welcome to redistribute #
# it under certain conditions; see COPYING file for details #
################################################################
package Autodia::Diagram::Realization;
use strict;
use vars qw($VERSION @ISA @EXPORT);
use Exporter;
use Autodia::Diagram::Object;
use Data::Dumper;
@ISA = qw(Autodia::Diagram::Object);
my $dependancy_count = 0;
#---------------------------------------------------------------------
# Constructor Methods
sub new {
my $class = shift;
my $child = shift;
my $parent = shift;
my $DiagramDependancy = {};
bless( $DiagramDependancy, ref($class) || $class );
$DiagramDependancy->_initialise( $child, $parent );
return $DiagramDependancy;
}
#-----------------------------------------------------------------------
# Access Methods
sub Parent {
my $self = shift;
my $parent = shift;
my $return_val = 1;
if( defined $parent ) { $self->{"parent"} = $parent; }
else { $return_val = $self->{"parent"}; }
return $return_val;
}
sub Child {
my $self = shift;
my $child = shift;
my $return_val = 1;
if( defined $child ) { $self->{"child"} = $child; }
else { $return_val = $self->{"child"}; }
return $return_val;
}
sub Name {
my $self = shift;
my $name = shift;
if( defined $name ) {
$self->{"name"} = $name;
return 1;
}
else { return $self->{"name"}; }
}
sub Orth_Top_Right {
my $self = shift;
return $self->{"top_connection"};
}
sub Orth_Bottom_Left {
my $self = shift;
return $self->{"bottom_connection"};
}
sub Orth_Mid_Left {
my $self = shift;
my $return = ( $self->{"left_x"} ) . "," . $self->{"mid_y"};
return $return;
}
sub Orth_Mid_Right {
my $self = shift;
my $return = ( $self->{"right_x"} ) . "," . $self->{"mid_y"};
return $return;
}
sub Reposition {
my $self = shift;
my $child = $self->{"_child"};
my( $left_x, $bottom_y ) = split( ",", $child->TopLeftPos );
my $mid_y = $bottom_y - 1.5;
my $top_y = $mid_y - 1.5;
$left_x += 2 + ( $child->Width / 2 );
my $right_x = $left_x + 5;
$self->{"left_x"} = $left_x;
(
$self->{"right_x"}, $self->{"top_y"},
$self->{"mid_y"}, $self->{"bottom_y"}
) = ( $right_x, $top_y, $mid_y, $bottom_y );
$self->{"top_connection"} = $self->{right_x} . "," . $self->{"top_y"};
$self->{"bottom_connection"} = $left_x . "," . $bottom_y;
return 1;
}
#-----------------------------------------------------------
# Internal Methods
sub _initialise # over-rides method in DiagramObject
{
my $self = shift;
my $child = shift;
my $parent = shift;
$self->{"_child"} = $child;
$self->{"child"} = $child->Id;
$self->{"type"} = "realization";
$self->{"_parent"} = $parent;
$self->{"parent"} = $parent->Id;
$self->{"name"} = $self->{"parent"} . "-" . $self->{"child"};
return 1;
}
sub _update # over-rides method in DiagramObject
{
my $self = shift;
$self->Reposition();
return 1;
}
1;
############################################################################