Coder Social home page Coder Social logo

appreciated / designer-for-flow Goto Github PK

View Code? Open in Web Editor NEW
7.0 5.0 2.0 2.25 MB

A WYSIWYG Editor to create Vaadin Flow components

License: GNU General Public License v3.0

Java 93.74% HTML 1.42% JavaScript 2.60% CSS 1.95% Shell 0.07% Batchfile 0.21%
java vaadin web-application-framework vaadin-flow spring spring-boot designer frontend wysiwyg electron

designer-for-flow's Introduction


Designer for Flow

This is a WYSIWYG-Editor that allows creating components for Vaadin flow.

Currently the following input and output formats are supported:

  • Java Classes

Maturity & Current status

The Editor is currently in alpha (or pre-alpha), it still has quite a few bugs. Since the development speed decreased over time, I decided to release it before its completion. I hope that around this editor will develop a community willing to improve and test it. I no longer have the time to develop this product on my own with the wanted speed.

Concept

The packed Editor will run a Vaadin instance inside electron, using a shipped JDK.

Distribution

The Editor is not meant to be run manually. Instead use the prepackaged Releases.

Versioning

The Version of the Editor is required to be coupled with the respective Vaadin version being used in a project. To make it easy for the user to identify which vaadin Version the designer is required a scheme as followed will be used.

designer-for-flow v14.0.* -> Vaadin 14.0
designer-for-flow v14.1.* -> Vaadin 14.1 ... designer-for-flow v14.4.* -> Vaadin 14.4

Executing

Before starting the application via IDE execute mvn clean install.

For developement purposes the Application can be run using mvn spring-boot:run or directly by running the com.github.appreciated.designer.Application class from your IDE.

Building

To build the project run the following maven command:
mvn clean install -Pproduction

After executing the ready to use electron application can be found under target/electron/designer-for-flow-<archtype>.

Branching

  • master the latest version of the starter, using the latest platform snapshot
  • v15 the version for Vaadin 15

License

This Project is licensed under the GNU General Public License v3.0

designer-for-flow's People

Contributors

appreciated avatar dependabot-preview[bot] avatar kaesdingeling avatar mstahv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

fo0 mstahv

designer-for-flow's Issues

NullPointerException: null

Designer bug report Template

If you think the issue could be related to your template files please consider providing it to make it easier to reproduce your issue.

Stacktrace

java.lang.NullPointerException
	at com.github.javaparser.utils.Utils.escapeEndOfLines(Utils.java:81)
	at com.github.javaparser.ast.expr.StringLiteralExpr.<init>(StringLiteralExpr.java:61)
	at com.github.appreciated.designer.template.java.generator.interfaces.ImageJavaGenerator.parse(ImageJavaGenerator.java:40)
	at com.github.appreciated.designer.template.java.generator.interfaces.ImageJavaGenerator.parse(ImageJavaGenerator.java:16)
	at com.github.appreciated.designer.template.java.generator.JavaGenerator.lambda$addFieldProperties$1(JavaGenerator.java:134)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
	at com.github.appreciated.designer.template.java.generator.JavaGenerator.addFieldProperties(JavaGenerator.java:135)
	at com.github.appreciated.designer.template.java.generator.JavaGenerator.addComponent(JavaGenerator.java:101)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.stream.SpinedBuffer$1Splitr.forEachRemaining(SpinedBuffer.java:364)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline...

CheckBoxGroup

Designer bug report Template

CheckBoxGroup on drop Fail.

Stacktrace

java.lang.NullPointerException
	at com.github.appreciated.designer.template.java.parser.ComponentTreeParser.invokeMethodOnComponent(ComponentTreeParser.java:64)
	at com.github.appreciated.designer.template.java.parser.ComponentTreeParser.processBodyStatement(ComponentTreeParser.java:177)
	at com.github.appreciated.designer.template.java.parser.ComponentTreeParser.<init>(ComponentTreeParser.java:51)
	at com.github.appreciated.designer.template.java.parser.DesignerComponentTreeParser.<init>(DesignerComponentTreeParser.java:34)
	at com.github.appreciated.designer.service.ProjectService.create(ProjectService.java:33)
	at com.github.appreciated.designer.application.presenter.ProjectPresenter.addTab(ProjectPresenter.java:66)
	at com.github.appreciated.designer.dialog.CreateOrOpenDesignTabDialog.onSelect(CreateOrOpenDesignTabDialog.java:133)
	at com.github.appreciated.designer.dialog.FileChooserDialog.onSelectSelected(FileChooserDialog.java:102)
	at com.github.appreciated.designer.dialog.FileChooserDialog.lambda$new$d1ad136f$1(FileChooserDialog.java:55)
	at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:205)
	at com.vaadin.flow.component.ComponentEventBus.handleDomEvent(ComponentEventBus.java:373)
	at com.vaadin.flow.component.ComponentEventBus.lambda$addDomTrigger$dd1b7957$1(ComponentEventBus.java:264)
	at com.vaadin.flow.internal.nodefeature.ElementListenerMap.lambda$fireEvent$2(ElementListenerMap.java:441)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
	at com.vaadin.flow.internal.nodefeature.ElementListenerMap.fireEvent(ElementListenerMap.java:441)
	at com.vaadin.flow.server.communication.rpc.EventRpcHandler.handleNode(EventRpcHandler.java:59)
	at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:64)
	at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:409)
	at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$1(ServerRpcHandler.java:390)
	at java.ut...

Allow removing the Root Element

  • If no root is choosen, show a variety of possibilities (Layouts)
  • Make the extends from the new Design Dialog optional.
  • Fix the new Design Dialog to only allow to choose Component Containers.

ExecutionException: java.nio.file.InvalidPathException: Illegal char <:> at index 4:

Designer bug report Template

If you think the issue could be related to your template files please consider providing it to make it easier to reproduce your issue.

Stacktrace

java.util.concurrent.ExecutionException: java.nio.file.InvalidPathException: Illegal char <:> at index 4: file:\C:\Users\kevin\Desktop\designer-for-flow-win32-x64\resources\app\java\designer-for-flow-0.7.7-SNAPSHOT.jar!\BOOT-INF\classes!\msdn-css.ref
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at com.vaadin.flow.server.FutureAccess.get(FutureAccess.java:62)
	at com.vaadin.flow.server.VaadinService.runPendingAccessTasks(VaadinService.java:2031)
	at com.vaadin.flow.server.communication.UidlWriter.createUidl(UidlWriter.java:159)
	at com.vaadin.flow.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:121)
	at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
	at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
	at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1545)
	at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:247)
	at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:108)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:352)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
	at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:141)
	at org.springframework.web.servlet.mvc.AbstractController...

NullPointerException: null

Designer bug report Template

If you think the issue could be related to your template files please consider providing it to make it easier to reproduce your issue.

Stacktrace

java.lang.NullPointerException
	at com.github.appreciated.designer.model.project.maven.MavenProject.hasTranslations(MavenProject.java:153)
	at com.github.appreciated.designer.model.project.maven.MavenProject.getTranslationForKey(MavenProject.java:145)
	at com.github.appreciated.designer.application.view.file.designer.sidebar.renderer.property.interfaces.HasTextRenderer.lambda$render$fb52284e$1(HasTextRenderer.java:56)
	at com.vaadin.flow.component.internal.AbstractFieldSupport.lambda$addValueChangeListener$828eca10$1(AbstractFieldSupport.java:96)
	at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:205)
	at com.vaadin.flow.component.ComponentEventBus.fireEvent(ComponentEventBus.java:194)
	at com.vaadin.flow.component.Component.fireEvent(Component.java:359)
	at com.vaadin.flow.component.ComponentUtil.fireEvent(ComponentUtil.java:386)
	at com.vaadin.flow.component.internal.AbstractFieldSupport.setValue(AbstractFieldSupport.java:207)
	at com.vaadin.flow.component.internal.AbstractFieldSupport.setModelValue(AbstractFieldSupport.java:167)
	at com.vaadin.flow.component.AbstractField.setModelValue(AbstractField.java:225)
	at com.vaadin.flow.component.AbstractSinglePropertyField.handlePropertyChange(AbstractSinglePropertyField.java:352)
	at com.vaadin.flow.component.AbstractSinglePropertyField.access$200(AbstractSinglePropertyField.java:48)
	at com.vaadin.flow.component.AbstractSinglePropertyField$1.propertyChange(AbstractSinglePropertyField.java:325)
	at com.vaadin.flow.internal.nodefeature.ElementPropertyMap.lambda$fireEvent$2(ElementPropertyMap.java:454)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
	at com.vaadin.flow.internal.nodefeature.ElementPropertyMap.fireEvent(ElementPropertyMap.java:454)
	at com.vaadin.flow.internal.nodefeature.ElementPropertyMap.access$100(ElementPropertyMap.java:48)
	at com.vaadin.flow.internal.nodefeature.ElementPropertyMap$PutResult.run(ElementPropertyMap.java:166)
	at com.vaadin.flow.server....

entered properties are disappearing

when adding textfield with the properties label + value the input dispears when click on an other component and then click on the added textfield

Tasks before beta

Overview

  • Use-Cases 1.0
  • Use-Cases 1.1
  • Use-Cases 2.0

Test Use-Cases

Before adding the first beta release to the Vaadin directory the following Use-Cases need to be tested.

Use-Case 1.0 Create a design with a recently installed designer while not having a Maven project

Preconditions

  • The developer has no project
  • The designer contains no project

Tasks

  1. Open the designer
  2. Create a project by using the designer
  3. Open the project
  4. Create a new design
  5. Close the Designer

Post-Conditions

  • The design file should be saved automatically
  • The design file should look the same on runtime

Use-Case 1.1 Create a design with a recently installed designer while already having a Maven project

Preconditions

  • The developer already has created a project
  • The designer contains no project

Tasks

  1. Open the designer
  2. Open the project
  3. Create a new design
  4. Close the Designer

Post-Conditions

  • The design file should be saved automatically
  • The design file should look the same on runtime

Use-Case 2.0 Reopen a design while having an existing Maven project containing a design

Preconditions

  • Use-Case 1.1 completed

Tasks

  1. Open the designer
  2. Open the project
  3. Open the existing design
  4. Close the Designer

Post-Conditions

  • The design file should be saved automatically
  • The design file should look the same on runtime

NoSuchElementException: No value present

Designer bug report Template

If you think the issue could be related to your template files please consider providing it to make it easier to reproduce your issue.

Stacktrace

java.util.NoSuchElementException: No value present
	at java.util.Optional.get(Optional.java:135)
	at com.github.appreciated.designer.application.presenter.file.designer.template.DesignerPresenter.lambda$new$d15c6261$1(DesignerPresenter.java:61)
	at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:205)
	at com.vaadin.flow.component.ComponentEventBus.handleDomEvent(ComponentEventBus.java:373)
	at com.vaadin.flow.component.ComponentEventBus.lambda$addDomTrigger$dd1b7957$1(ComponentEventBus.java:264)
	at com.vaadin.flow.internal.nodefeature.ElementListenerMap.lambda$fireEvent$2(ElementListenerMap.java:441)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
	at com.vaadin.flow.internal.nodefeature.ElementListenerMap.fireEvent(ElementListenerMap.java:441)
	at com.vaadin.flow.server.communication.rpc.EventRpcHandler.handleNode(EventRpcHandler.java:59)
	at com.vaadin.flow.server.communication.rpc.AbstractRpcInvocationHandler.handle(AbstractRpcInvocationHandler.java:64)
	at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocationData(ServerRpcHandler.java:409)
	at com.vaadin.flow.server.communication.ServerRpcHandler.lambda$handleInvocations$1(ServerRpcHandler.java:390)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
	at com.vaadin.flow.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:390)
	at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:317)
	at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:89)
	at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
	at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1545)
	at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:247)
	at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:111)
	at javax.servlet.http.HttpServlet.service(HttpServle...

Use other port than 8080

It would make sense to use a different port than 8080 to avoid collisions.
Maybe a high port (49152-65535).

TextField Maxlength, Minlength crash

Designer bug report Template

Maxlength, Minlenght crash

Stacktrace

java.lang.IllegalArgumentException: argument type mismatch
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.github.appreciated.designer.application.view.file.designer.sidebar.renderer.type.AbstractPropertyRenderer.applyValue(AbstractPropertyRenderer.java:21)
	at com.github.appreciated.designer.application.view.file.designer.sidebar.renderer.type.IntegerPropertyRenderer.lambda$render$1329f6ac$1(IntegerPropertyRenderer.java:19)
	at com.vaadin.flow.component.internal.AbstractFieldSupport.lambda$addValueChangeListener$828eca10$1(AbstractFieldSupport.java:96)
	at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:205)
	at com.vaadin.flow.component.ComponentEventBus.fireEvent(ComponentEventBus.java:194)
	at com.vaadin.flow.component.Component.fireEvent(Component.java:359)
	at com.vaadin.flow.component.ComponentUtil.fireEvent(ComponentUtil.java:386)
	at com.vaadin.flow.component.internal.AbstractFieldSupport.setValue(AbstractFieldSupport.java:207)
	at com.vaadin.flow.component.internal.AbstractFieldSupport.setModelValue(AbstractFieldSupport.java:167)
	at com.vaadin.flow.component.AbstractField.setModelValue(AbstractField.java:225)
	at com.vaadin.flow.component.AbstractSinglePropertyField.handlePropertyChange(AbstractSinglePropertyField.java:352)
	at com.vaadin.flow.component.AbstractSinglePropertyField.access$200(AbstractSinglePropertyField.java:48)
	at com.vaadin.flow.component.AbstractSinglePropertyField$1.propertyChange(AbstractSinglePropertyField.java:325)
	at com.vaadin.flow.internal.nodefeature.ElementPropertyMap.lambda$fireEvent$2(ElementPropertyMap.java:452)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
	at com.vaadin.flow.internal.nodefeature.ElementPropertyMap.fireEvent(ElementPropertyMap.java:452)
	at com.vaadin.flow.internal.nodefeatur...

Discover and add missing properties

The following Components need to be checked

Layouts

  • FormLayout
  • HorizontalLayout
  • Scroller
  • SplitLayout
  • VerticalLayout

Vaadin Komponenten

  • Accordion
  • AccordionPanel
  • Button
  • Checkbox
  • CheckboxGroup
  • ComboBox
  • ContextMenu
  • DatePicker
  • DateTimePicker
  • EmailField
  • Grid
  • Image
  • ListBox
  • LoginForm
  • MenuBar
  • NumberField
  • PasswordField
  • ProgressBar
  • RadioButtonGroup
  • Scroller
  • Select
  • Tab
  • Tabs
  • TextArea
  • TextField
  • TimePicker
  • TreeGrid
  • Upload

HTML Komponenten

  • Anchor
  • Article
  • Aside
  • Description
  • List
  • Div
  • Emphasis
  • Footer
  • H1
  • H2
  • H3
  • H4
  • H5
  • H6
  • Header
  • Hr
  • IFrame
  • Image
  • Label
  • ListItem
  • Main
  • NativeButton
  • Nav
  • OrderedList
  • Paragraph
  • Pre
  • Section
  • Span
  • UnorderedList

The following properties are currently not being rendered

  • com.vaadin.flow.component.checkbox.CheckboxGroup.value
  • com.vaadin.flow.component.combobox.ComboBox.value
  • com.vaadin.flow.component.datetimepicker.DateTimePicker.datePickerI18n
  • com.vaadin.flow.component.datetimepicker.DateTimePicker.locale
  • com.vaadin.flow.component.datepicker.DatePicker.i18n
  • com.vaadin.flow.component.datepicker.DatePicker.initialPosition
  • com.vaadin.flow.component.datepicker.DatePicker.locale
  • com.vaadin.flow.component.datepicker.DatePicker.max
  • com.vaadin.flow.component.datepicker.DatePicker.min
  • com.vaadin.flow.component.datepicker.DatePicker.value
  • com.vaadin.flow.component.textfield.EmailField.valueChangeMode
  • com.vaadin.flow.component.formlayout.FormLayout.responsiveSteps
  • com.vaadin.flow.component.grid.Grid.classNameGenerator
  • com.vaadin.flow.component.grid.Grid.dropMode
  • com.vaadin.flow.component.orderedlayout.HorizontalLayout.alignItems
  • com.vaadin.flow.component.orderedlayout.HorizontalLayout.defaultVerticalComponentAlignment
  • com.vaadin.flow.component.listbox.ListBox.value
  • com.vaadin.flow.component.textfield.PasswordField.valueChangeMode
  • com.vaadin.flow.component.textfield.NumberField.valueChangeMode
  • com.vaadin.flow.component.radiobutton.RadioButtonGroup.value
  • com.vaadin.flow.component.orderedlayout.Scroller.scrollDirection
  • com.vaadin.flow.component.splitlayout.SplitLayout.orientation
  • com.vaadin.flow.component.orderedlayout.VerticalLayout.alignItems
  • com.vaadin.flow.component.orderedlayout.VerticalLayout.defaultHorizontalComponentAlignment
  • com.vaadin.flow.component.select.Select.value
  • com.vaadin.flow.component.textfield.TextArea.valueChangeMode
  • com.vaadin.flow.component.textfield.TextField.valueChangeMode
  • com.vaadin.flow.component.datetimepicker.DateTimePicker.datePickerI18n
  • com.vaadin.flow.component.datetimepicker.DateTimePicker.locale
  • com.vaadin.flow.component.treegrid.TreeGrid.classNameGenerator
  • com.vaadin.flow.component.treegrid.TreeGrid.dropMode
  • com.vaadin.flow.component.upload.Upload.dropLabel
  • com.vaadin.flow.component.upload.Upload.dropLabelIcon
  • com.vaadin.flow.component.upload.Upload.i18n
  • com.vaadin.flow.component.upload.Upload.uploadButton
  • com.vaadin.flow.component.tabs.Tabs.orientation
  • com.vaadin.flow.component.tabs.Tabs.selectedTab

Port checking does not work

The designer should do a port check before starting up. While this is already implemented it seems not to be working properly.

i18N Support

Components implementing the HasText or have a caption, placeholder, should be able to retrieve values from eventually existing i18n files.

ExecutionException: java.nio.file.InvalidPathException: Illegal char <:> at index 4: file:\C:\Users\debege\Desktop\designer-for-flow-win32-x64\resources\app\java\designer-for-flow-0.7.7-SNAPSHOT.jar!\BOOT-INF\classes!\msdn-css.ref

Designer bug report Template

If you think the issue could be related to your template files please consider providing it to make it easier to reproduce your issue.

Stacktrace

java.util.concurrent.ExecutionException: java.nio.file.InvalidPathException: Illegal char <:> at index 4: file:\C:\Users\debege\Desktop\designer-for-flow-win32-x64\resources\app\java\designer-for-flow-0.7.7-SNAPSHOT.jar!\BOOT-INF\classes!\msdn-css.ref
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at com.vaadin.flow.server.FutureAccess.get(FutureAccess.java:62)
	at com.vaadin.flow.server.VaadinService.runPendingAccessTasks(VaadinService.java:2031)
	at com.vaadin.flow.server.communication.UidlWriter.createUidl(UidlWriter.java:159)
	at com.vaadin.flow.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:121)
	at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
	at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
	at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1545)
	at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:247)
	at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:108)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:352)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
	at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:141)
	at org.springframework.web.servlet.mvc.AbstractControlle...

Improve space usage

The Views:

  • Struture
  • Properties
  • Components

should be made more space-efficient.

my suggestions for the first look and feel

  • DE_de: vorige -> vorherige
  • file-selection-dialog: doubleclick on folder not opening the doubleclicked folder
  • file-selection-dialog: button to display vaadin projects only? or s.th. else
    • if select vaadin project, visualize what to do next? -> select pom? or select only vaadin project folder? or select src or whatelse
  • show what to do if opened a project (maybe just as a starter wizard or s.th.)
  • if a selected .java file is not valid -> show in file-selection-dialog that it isn't valid!!!! nice would be a reason
  • to delete a component like a textbox, display a X (delete) symbol icon on the upper right corner in red if hover with mouse
  • button to display the borders of the view, to see what layouts are curretly applyed to the current view (because I cant see my layouts without any components in it)
  • button to run the current view for testing
  • save and/or exit/finished button
  • if dragging labels or hX then directly make it possible to write text into the text-value (like in powerpoint or s.th.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.