root/components/umlSequenceDiagram/UmlSequenceDiagramPrinterToHtml.class.php

170177
272
        return "*/" . $this->getTemplate( "style.css" , $arrReplace ) . "/*";
272
        return "*/" . $this->getTemplate( "style.css" , $arrReplace ) . "/*";
273
    }
273
    }
274
274
275
    protected function makeBase64File( $strFile , $strMime )
276
    {
277
        $strContent = file_get_contents( $strFile );
278
        $strBase64  = base64_encode( $strContent );
279
        return ('data:' . $strMime . ';base64,' . $strBase64 );
280
281
    }
282
275
    protected function getActor( UmlSequenceDiagramActor $objActor )
283
    protected function getActor( UmlSequenceDiagramActor $objActor )
276
    {
284
    {
277
        $objStereotype = $objActor->getStereotype();
285
        $objStereotype = $objActor->getStereotype();
...
...
279
        if( $objStereotype->getDefault() )
287
        if( $objStereotype->getDefault() )
280
        {
288
        {
281
            $strImage = '<img alt="' . $objActor->getStereotype()->getName() . '" src="' .
$this->getConfiguration()->getPublicFolderPath() . 'images/' . $objStereotype->getName() . '.gif"/>';
289
            $strImage = '<img alt="' . $objActor->getStereotype()->getName() . '" src="' .
$this->getConfiguration()->getPublicFolderPath() . 'images/' . $objStereotype->getName() . '.gif"/>';
290
            //$strImage = '<img alt="' . $objActor->getStereotype()->getName() . '" src="' . $this->makeBase64File(
$this->getConfiguration()->getPublicPath() . 'images/' . $objStereotype->getName() . '.gif' , "image/gif" ) . '"/>';
282
        }
291
        }
283
        else
292
        else
284
        {
293
        {
...
...
321
     */
330
     */
322
    protected function getMessage( UmlSequenceDiagramMessage $objMessage )
331
    protected function getMessage( UmlSequenceDiagramMessage $objMessage )
323
    {
332
    {
333
        $strResult = '';
334
        $strNotesBefore = '';
335
336
        $arrNotes = $objMessage->getNotesBefore();
337
        foreach( $arrNotes as $objNote )
338
        {
339
            $strNotesBefore .= $this->getNote( $objNote , false );
340
        }
341
        $arrNotes = $objMessage->getNotesAfter();
342
        foreach( $arrNotes as $objNote )
343
        {
344
            $strNotesBefore .= $this->getNote( $objNote , true );
345
        }
346
324
        if( $objMessage->isReverse() )
347
        if( $objMessage->isReverse() )
325
        {
348
        {
326
            $intStart = $objMessage->getActorTo()->getPosition();
349
            $intStart = $objMessage->getActorTo()->getPosition();
...
...
351
        $arrReplace[ "codetodiagram:message_dif" ] = "dif" . ( $intStart - $intEnd );
374
        $arrReplace[ "codetodiagram:message_dif" ] = "dif" . ( $intStart - $intEnd );
352
        $arrReplace[ "<codetodiagram:message_values/>" ] = $this->getValues( $objMessage );
375
        $arrReplace[ "<codetodiagram:message_values/>" ] = $this->getValues( $objMessage );
353
376
354
        $strResult = '';
355
356
        while( $objActorActual = array_shift( $arrActors ) )
377
        while( $objActorActual = array_shift( $arrActors ) )
357
        {
378
        {
358
            $intNextPosition =  $objActorActual->getPosition() + 1;
379
            $intNextPosition =  $objActorActual->getPosition() + 1;
...
...
410
431
411
432
412
433
413
        return $this->getTemplate( "messages.html" , $arrReplace );
434
        $strMessages = $this->getTemplate( "messages.html" , $arrReplace );
435
        $strMessages = $strNotesBefore . $strMessages;
436
        return $strMessages;
414
    }
437
    }
415
438
439
    protected function getNote( UmlSequenceDiagramNote $objNote , $booAfter = true )
440
    {
441
        $arrActors = $objNote->getActor()->getUmlSequenceDiagram()->getActors();
442
        $intPosition = $objNote->getActor()->getPosition();
443
        $strResult = "";
444
445
        foreach( $arrActors as $objActor )
446
        {
447
            $arrReplace = array();
448
449
            $strFinal = ( $objActor->getPosition() == sizeof( $arrActors ) ) ? "final" : "regular";
450
451
            $arrReplace[ "codetodiagram:message_final" ] = $strFinal;
452
            $arrReplace[ "codetodiagram:actoractual_name" ] = $objActor->getName();
453
            $arrReplace[ "codetodiagram:message_dif" ] = 0;
454
            $arrReplace[ "codetodiagram:message_values" ] = "";
455
            
456
            /**
457
             * @var $objActor UmlSequenceDiagramActor
458
             */
459
460
            if( $objActor->getPosition() < $intPosition )
461
            {
462
                $strResult .= $this->getTemplate( "line_before.html" , $arrReplace );
463
            }
464
            elseif( $objActor->getPosition() == $intPosition )
465
            {
466
                $arrReplace[ "<codetodiagram:message_text/>" ] = $objNote->getContent();
467
                $strResult .=  $this->getTemplate( "line_note.html" , $arrReplace );
468
            }
469
            elseif( $objActor->getPosition()  > $intPosition )
470
            {
471
                // after line //
472
                $strResult .=  $this->getTemplate( "line_after.html" , $arrReplace );
473
            }
474
            else
475
            {
476
                $strMessage = '';
477
                $strMessage .= ' Invalid Position ' . "\n" ;
478
                $strMessage .= ' Actual Actor ' . $objActorActual->getPosition() ;
479
                $strMessage .= ' Message Start ' . $intStart ;
480
                $strMessage .= ' Message End' . $intEnd ;
481
                throw new Exception( $strMessage );
482
            }
483
        }
484
485
        $arrReplace = array();
486
        $arrReplace[ '<codetodiagram:message_collection/>' ] = $strResult;
487
        $arrReplace[ '<codetodiagram:message_title/>' ] = $objNote->getContent();
488
        $arrReplace[ 'codetodiagram:message_click' ] = "";
489
490
        //return $strResult;
491
        $strReturn = $this->getTemplate( "messages.html" , $arrReplace );
492
//        CorujaDebug::debug( $strReturn , 1 );
493
        return $strReturn;
494
    }
495
416
    /**
496
    /**
417
     * Create and return the string of the messages into the html sequence
497
     * Create and return the string of the messages into the html sequence
418
     * diagram
498
     * diagram