76 lines
1.5 KiB
Plaintext
76 lines
1.5 KiB
Plaintext
@startuml
|
|
title Diagramme simplifié du Visualisateur PIF
|
|
|
|
skinparam packageStyle rectangle
|
|
skinparam shadowing false
|
|
|
|
' ======== Couleurs ========
|
|
!define C_BLUE #A7C7E7
|
|
!define C_GREEN #A9E5AA
|
|
!define C_ORANGE #FFB366
|
|
!define C_PURPLE #C9B6E4
|
|
!define C_GREY #EDEDED
|
|
|
|
' ======== CONTROLLER ========
|
|
package "Controller" C_ORANGE {
|
|
class ViewerControleur {
|
|
+ouvrirFichier()
|
|
+chargerPIF()
|
|
+afficherImage()
|
|
}
|
|
}
|
|
|
|
' ======== MODEL - Lecture PIF ========
|
|
package "Model - Lecture .pif" C_BLUE {
|
|
class PIFReader {
|
|
+decodePifFile(File)
|
|
+readHeader()
|
|
+readCanonicalTables()
|
|
+rebuildCanonical()
|
|
+buildDecodageTree()
|
|
+decodePixels()
|
|
}
|
|
|
|
class DecodeNode {
|
|
left
|
|
right
|
|
value
|
|
}
|
|
|
|
class BitInputStream {
|
|
+readBit()
|
|
+readBits(n)
|
|
}
|
|
|
|
class RGBImage {
|
|
width
|
|
height
|
|
+setPixel()
|
|
+getPixel()
|
|
}
|
|
}
|
|
|
|
' ======== VIEW - Interface ========
|
|
package "View - Interface" C_GREEN {
|
|
class ViewerWindow {
|
|
+displayImage(BufferedImage)
|
|
}
|
|
|
|
class ViewerImagePanel {
|
|
+setImage()
|
|
+paintComponent()
|
|
}
|
|
}
|
|
|
|
' ======== RELATIONS ========
|
|
ViewerControleur --> PIFReader : lit et décode
|
|
PIFReader --> BitInputStream : lit des bits
|
|
PIFReader --> DecodeNode : construit des arbres
|
|
PIFReader --> RGBImage : reconstruit l'image
|
|
|
|
ViewerControleur --> ViewerWindow : met à jour
|
|
ViewerWindow --> ViewerImagePanel : transmet l'image
|
|
ViewerControleur --> RGBImage : reçoit l'image décodée
|
|
|
|
@enduml
|