[Bio] / FigKernelPackages / Subsystem.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/Subsystem.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.124, Thu Mar 20 19:28:37 2008 UTC revision 1.125, Fri Mar 28 16:38:25 2008 UTC
# Line 621  Line 621 
621      return $id;      return $id;
622  }  }
623    
624    sub create_new_illustration
625    {
626        my( $self, $fh, $name, $id, $overwrite )  = @_;
627    
628        #
629        # Get a new id.
630        #
631    
632        my $dir = "$self->{dir}/diagrams";
633        my $old_dir = "$self->{dir}/old_diagrams";
634    
635        Tracer::Insure($dir);
636        Tracer::Insure($old_dir);
637    
638        my $path;
639    
640        if (defined($id))
641        {
642            #
643            # Ensure this id doesn't already exist.
644            #
645    
646            $path = "$dir/$id";
647    
648            if (-d $path)
649            {
650                if (!$overwrite)
651                {
652                    confess "Diagram id $id already exists in subsystem $self->{name}";
653                }
654                else
655                {
656                    my $opath = "$old_dir/$id." . time;
657                    rename($path, $opath);
658                }
659            }
660    
661        }
662        else
663        {
664            $id = "d01";
665    
666            while (1)
667            {
668                $path = "$dir/$id";
669                last unless -e $path;
670                $id++;
671            }
672        }
673    
674        Tracer::Insure($path);
675    
676        if ($name)
677        {
678            open(F, ">$path/NAME");
679            $name =~ s/\n.*$//s;
680            print F "$name\n";
681            close(F);
682        }
683    
684        #
685        # Write the file if we have one.
686        #
687    
688        if ($fh)
689        {
690            my($ext, $buf);
691    
692            if (read($fh, $buf, 4096))
693            {
694                my($ext) = $self->classify_image_type($buf);
695                open(D, ">$path/diagram$ext");
696                print D $buf;
697    
698                while (read($fh, $buf, 4096))
699                {
700                    print D $buf;
701                }
702                close(D);
703            }
704            close($fh);
705        }
706    
707        return $id;
708    }
709    
710  sub upload_new_image  sub upload_new_image
711  {  {
712      my($self, $id, $fh) = @_;      my($self, $id, $fh) = @_;
# Line 2931  Line 3017 
3017    
3018  }  }
3019    
3020    
3021    
3022  =head3 add_role($role, $abbr)  =head3 add_role($role, $abbr)
3023    
3024  Add the given role to the spreadsheet.  Add the given role to the spreadsheet.
# Line 2987  Line 3075 
3075      return $idx;      return $idx;
3076  }  }
3077    
3078    
3079    =head3 change_role( $oldrole, $newrole )
3080    
3081    Change just the function of a role
3082    
3083    =cut
3084    
3085    sub change_role
3086    {
3087        my( $self, $oldrole, $newrole) = @_;
3088    
3089        my $oldindex = $self->get_role_index( $oldrole );
3090        unless ( defined( $oldindex ) ) {
3091          return ( 0, "The role $oldrole does not exist in this subsystem.<BR>\n" );
3092        }
3093    
3094        my $abbr = $self->{role_abbrs}->[$oldindex];
3095    
3096        $self->{roles}->[$oldindex] = $newrole;
3097        delete $self->{role_index}->{$oldrole};
3098        $self->{role_index}->{$newrole} = $oldindex;
3099        $self->{abbr}->{$abbr} = $newrole;
3100    
3101        return ( 1 );
3102    }
3103    
3104  =head3 remove_role  =head3 remove_role
3105    
3106  Remove the role from the spreadsheet.  Remove the role from the spreadsheet.

Legend:
Removed from v.1.124  
changed lines
  Added in v.1.125

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3