217 lines
3.6 KiB
Perl
217 lines
3.6 KiB
Perl
package WebGUI::Image::Font;
|
|
|
|
use strict;
|
|
use WebGUI::Storage;
|
|
use WebGUI::Paths;
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 canDelete
|
|
|
|
=cut
|
|
|
|
sub canDelete {
|
|
my $self = shift;
|
|
|
|
return 0 if ($self->getId =~ m/^default/);
|
|
return 1;
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 delete
|
|
|
|
=cut
|
|
|
|
sub delete {
|
|
my $self = shift;
|
|
|
|
if ($self->canDelete) {
|
|
my $storage = WebGUI::Storage->get($self->session, $self->getStorageId);
|
|
$storage->deleteFile($self->getFilename);
|
|
|
|
$self->session->db->write('delete from imageFont where fontId=?', [
|
|
$self->getId,
|
|
]);
|
|
}
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 getId
|
|
|
|
=cut
|
|
|
|
sub getId {
|
|
my $self = shift;
|
|
|
|
return $self->{_properties}->{fontId};
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 getFontList
|
|
|
|
=cut
|
|
|
|
sub getFontList {
|
|
my $self = shift;
|
|
my $session = shift || $self->session;
|
|
|
|
return $session->db->buildHashRef('select fontId, name from imageFont');
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 getFile
|
|
|
|
=cut
|
|
|
|
sub getFile {
|
|
my $self = shift;
|
|
|
|
if ($self->getStorageId) {
|
|
return WebGUI::Storage->get($self->session, $self->getStorageId)->getPath($self->getFilename);
|
|
} else {
|
|
return WebGUI::Paths->share . '/default.ttf';
|
|
}
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 getFilename
|
|
|
|
=cut
|
|
|
|
sub getFilename {
|
|
my $self = shift;
|
|
|
|
return $self->{_properties}->{filename};
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 getName
|
|
|
|
=cut
|
|
|
|
sub getName {
|
|
my $self = shift;
|
|
|
|
return $self->{_properties}->{name};
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 getStorageId
|
|
|
|
=cut
|
|
|
|
sub getStorageId {
|
|
my $self = shift;
|
|
|
|
return $self->{_properties}->{storageId};
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 new
|
|
|
|
=cut
|
|
|
|
sub new {
|
|
my $class = shift;
|
|
my $session = shift;
|
|
my $fontId = shift;
|
|
my $properties = {};
|
|
|
|
if ($fontId eq 'new') {
|
|
$fontId = $session->id->generate;
|
|
|
|
$session->db->write('insert into imageFont (fontId) values (?)', [
|
|
$fontId,
|
|
]);
|
|
$properties->{fontId} = $fontId;
|
|
} else {
|
|
$properties = $session->db->quickHashRef('select * from imageFont where fontId=?', [
|
|
$fontId,
|
|
]);
|
|
|
|
unless ($properties->{fontId}) {
|
|
$properties = $session->db->quickHashRef('select * from imageFont where fontId=?', [
|
|
'defaultFont',
|
|
]);
|
|
}
|
|
}
|
|
|
|
bless {_properties => $properties, _session => $session}, $class;
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 session
|
|
|
|
=cut
|
|
|
|
sub session {
|
|
my $self = shift;
|
|
|
|
return $self->{_session};
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 setFilename
|
|
|
|
=cut
|
|
|
|
sub setFilename {
|
|
my $self = shift;
|
|
my $filename = shift;
|
|
|
|
$self->session->db->write('update imageFont set filename=? where fontId=?', [
|
|
$filename,
|
|
$self->getId,
|
|
]);
|
|
|
|
$self->{_properties}->{filename} = $filename;
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 setName
|
|
|
|
=cut
|
|
|
|
sub setName {
|
|
my $self = shift;
|
|
my $name = shift;
|
|
|
|
$self->session->db->write('update imageFont set name=? where fontId=?', [
|
|
$name,
|
|
$self->getId,
|
|
]);
|
|
|
|
$self->{_properties}->{name} = $name;
|
|
}
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 setStorageId
|
|
|
|
=cut
|
|
|
|
sub setStorageId {
|
|
my $self = shift;
|
|
my $storageId = shift;
|
|
|
|
$self->session->db->write('update imageFont set storageId=? where fontId=?', [
|
|
$storageId,
|
|
$self->getId,
|
|
]);
|
|
|
|
$self->{_properties}->{storageId} = $storageId;
|
|
}
|
|
|
|
1;
|
|
|