prof-ewerton / 2024-2-GC-atividade1

3 stars 0 forks source link

Imagem com comprimento ou alturas vazias travam o canva #16

Open Luan-Vn4 opened 3 days ago

Luan-Vn4 commented 3 days ago

Categoria

Descrição

Quando o usuário insere uma imagem no Canva e deixa a caixa de height ou weight vazia, não é possível colocar mais nenhum elemento do canva nem editar.

Nome

O que acontece?

Quando o usuário insere uma imagem e deixa o height ou weight vazios, o canva trava e caso tire a seleção daquela imagem, não é possível mais selecionar ela. Como é lançada uma exceção pelo tamanho ser inválido, o usuário não consegue interagir com mais nenhum elemento do canva nem adicionar.

O que é esperado?

Deveria haver um valor mínimo a ser colocado nas dimensões, impedindo que o bug ocorra se o usuário deixe a caixa das dimensões vazias

Mensagem de Erro

Aparece a seguinte mensagem de erro que se repete a cada vez que se clica no Canva:

Exception in thread "JavaFX Application Thread" java.lang.NumberFormatException: empty String
    at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
    at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
    at java.base/java.lang.Double.parseDouble(Double.java:792)
    at app.model.objects.Image.draw(Image.java:84)
    at app.model.Sheet.draw(Sheet.java:316)
    at gui.javafx.views.EditView.draw(EditView.java:106)
    at gui.javafx.views.EditView.update(EditView.java:93)
    at gui.javafx.controllers.EditController.lambda$addText$10(EditController.java:522)
    at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:360)
    at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
    at javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(TextInputControl.java:1430)
    at javafx.scene.control.TextInputControl$TextProperty.markInvalid(TextInputControl.java:1434)
    at javafx.scene.control.TextInputControl$TextProperty.controlContentHasChanged(TextInputControl.java:1373)
    at javafx.scene.control.TextInputControl$TextProperty.access$1600(TextInputControl.java:1341)
    at javafx.scene.control.TextInputControl.lambda$new$0(TextInputControl.java:144)
    at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:136)
    at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
    at javafx.scene.control.TextField$TextFieldContent.delete(TextField.java:96)
    at javafx.scene.control.TextInputControl.replaceText(TextInputControl.java:1240)
    at javafx.scene.control.TextInputControl.updateContent(TextInputControl.java:566)
    at javafx.scene.control.TextInputControl.replaceText(TextInputControl.java:558)
    at javafx.scene.control.TextInputControl.deleteText(TextInputControl.java:506)
    at javafx.scene.control.TextInputControl.deletePreviousChar(TextInputControl.java:932)
    at javafx.scene.control.skin.TextFieldSkin.deleteChar(TextFieldSkin.java:469)
    at com.sun.javafx.scene.control.behavior.TextFieldBehavior.deleteChar(TextFieldBehavior.java:203)
    at com.sun.javafx.scene.control.behavior.TextInputControlBehavior.deletePreviousChar(TextInputControlBehavior.java:473)
    at com.sun.javafx.scene.control.behavior.TextInputControlBehavior.lambda$new$12(TextInputControlBehavior.java:145)
    at com.sun.javafx.scene.control.behavior.TextInputControlBehavior.lambda$keyMapping$62(TextInputControlBehavior.java:330)
    at com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$KeyHandler.process(Scene.java:4058)
    at javafx.scene.Scene$KeyHandler.access$1500(Scene.java:4004)
    at javafx.scene.Scene.processKeyEvent(Scene.java:2121)
    at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2595)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:217)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:149)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(GlassViewEventHandler.java:248)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:247)
    at com.sun.glass.ui.View.handleKeyEvent(View.java:547)
    at com.sun.glass.ui.View.notifyKey(View.java:971)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    at java.base/java.lang.Thread.run(Thread.java:1583)

Caso eu tente inserir algum elemento novo, aparece a seguinte mensagem:

J a v a   M e s s s g e : e m p t y   S t r i n g 

Screenshot

Imagem após o bug ter ocorrido

Passos

  1. Primeiramente você coloca um elemento de imagem no Canva Criando a imagem

  2. Após isso, você deixa a caixa de uma das dimensões vazias Deixando a caixa de dimensões vazia

  3. Você não conseguirá mais adicionar elementos, nem editá-los

Rian-Noronha commented 3 days ago

Issue bem objetiva!