Added some documentation comments on the main js file to help understand the code

This commit is contained in:
Gustavo Henrique Santos Souza de Miranda 2024-08-05 15:37:59 -03:00
parent 1bdee540e0
commit d63de2dd4e
1 changed files with 83 additions and 3 deletions

View File

@ -1,4 +1,20 @@
/**
* @file Arquivo contendo a logica para a manipulação do canvas para exibição de uma galeria de fotos
* @version 0.0.1
* @author Gustavo Henrique S. S. de Miranda
*/
/**
* @author Gustavo Henrique S. S. de Miranda
* @class
* @classdesc Classe Geral da Aplicação contendo a base da Aplicação
*
*/
class PhotoViewAPP{
/**
* @constructs
* @description Constructor da classe que obtem dados do Canvas
*/
constructor(){
this.context = new PhotoViewContext()
this.canvas = this.setCanvasFromID()
@ -6,58 +22,122 @@ class PhotoViewAPP{
this.canvasCRect = this.setCanvasCRect()
console.log(this.context.getstate())
}
/**
* @description Obtém o Canvas do documentos html pelo ID dado ao mesmo
* @returns Retorna O Canvas
* @todo Alterar para a propiedade this.canvas
*/
setCanvasFromID() {
return document.querySelector('#PhotoView')
}
/**
* @description Define o contexto do canvas
*/
setCanvasContext(){
this.canvasContext = this.canvas.getContext('2d')
}
/**
* @description Obtém a posição do canvas na página index.html
*/
setCanvasCRect(){
this.canvasCRect = this.canvas.getBoundingClientRect()
}
/**
* @description Define o evento de onClick da tag canvas
*/
setCanvasClickEvent(){
this.canvas.addEventListener('click',(e)=>{this.context.clickEvent(e)})
}
/**
* @description Inicializa o a aplicação
*/
initalizePhotoViewApp(){
this.setCanvasClickEvent()
}
}
/**
* @author Gustavo Henrique S. S. de Miranda
* @class
*
* @classdesc Contexto para Gerencias as telas da aplicação
*/
class PhotoViewContext{
#state = null
#stateList = {}
/**
* @constructs
* @param {*} state Tela Inicial a ser exibida na aplicação
*/
constructor(state){
this.#state = state
}
/**
*
* @description Add a view to a list of views
* @param {*} state state to be added
* @param {*} statename name of the state to be added
*/
addToStateList(state,statename){
this.#stateList[statename] = new state();
}
/**
* @description Gets a view on the list of views
* @param {*} statename Name of the view to be returned
* @returns The view on the list
*/
getStateByName(statename){
return this.#stateList[statename]
}
/**
*
* @returns the current view
*/
getstate(){
return this.#state
}
}
/**
* @author Gustavo Henrique S. S. de Miranda
* @class
* @classdesc Abstract Class to be extended as a screen for the app
* @abstract
*/
class abstractStateClass{
#parentClass = null
/**
* @constructs
*
*/
constructor(){
if (this.constructor == abstractStateClass){
throw new Error("Abstract Class not should not be instatiated")
}
}
setParentClass(parentclass){
/**
*
* @param {*} parentclass Reference of the parent class
* @description Defines a reference to the parent class to access its methods and attributes
*/
#setParentClass(parentclass){
this.#parentClass = parentclass
}
}
/**
* @author Gustavo Henrique S. S. de Miranda
* @class
* @classdesc Represents a thumbnail view for the app
* @extends abstractStateClass
*/
class thumbnailView extends abstractStateClass{
constructor(){