Giter Club home page Giter Club logo

airhacks-control's Introduction

airhacks-control

Attendee Management JavaFX Application with Convention over Configuration, IoC and Dependency Injection

The application was built entirely with Scene Builder with maintainability as the highest goal.

Requirements: JDK 1.8. Reason: pom.xml is easier, because JavaFX classes are on the classpath

The application is used for maintaining the registrations of Java EE Workshops and uses the following design principles:

  1. Convention Over Configuration: Presenters, Views, CSS and FXML files are named after a convention
  2. Dependency Injection: Backed services / Business Logic are injected for better testability / simplicity
  3. Generated Scene Builder code is encapsulated and separated from the business logic / presentation logic
  4. Binding is used for communication between views and presenters, as well as, for input validation.
  5. Maven is used as build tool.

Feedback / pull requests are highly appreciated. The ultimate goal: extraction of a minimalistic but pragmatic and opinionated JavaFX framework / library.

airhacks-control's People

Contributors

adambien avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

airhacks-control's Issues

Can't resolve InjectionProvider in App class

Hi Adam,

I saw your demo of this example using afterburner.fx. I wanted to see how it works and performs bindings, etc. So I just downloaded the master and tried to build it with maven using netbeans.

Everything compiled after I resolved a couple of dependencies. The main thing was

There is one error in the main App class for stop().

    @Override
    public void stop() throws Exception {
        InjectionProvider.forgetAll();
    }

InjectionProvider is unresolved.

I then took a look at your followme.fx example, as the simplest example possible. It uses a different structure and an Injector class.

I thought you might like to keep the airhacks-control example inline with changes in the libraries. But also I'd like to get it running so I can test these ideas for myself. I'm hoping there's a one (or 3) line change that will get it going quickly.

Many thanks,
William

shade plugin dependency inconsistiency

Hi, I downloaded the revised airhacks-control to build with Netbeans 8 (JDK 8u05). I had conflicts in the maven build. Out of date dependencies or conflicts with other modules in my local repository.

Since it is a JavaFX project, I used a netbeans maven JavaFX Application project as a skeleton and deleted the generated files keeping the project config and POM file.

After minimal changes builds fine. Test scripts report a PASS and running the main _App_ looks to me like like the program is operating OK.

I thought I'd let you know about inconsistencies. The maven build should work with any IDE or the command line, so I think it is worth taking a look at those things. It is simple enough to get working. I just like eliminating warnings and inconsistencies in basic areas like builds where something can get lost in a volume of output.

Regards,

William


POM.xml
Properties (from netbeans when selected JDK 1.8)

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

Dependencies

  • changed eclipselink to: 2.5.1 due to shade I believe.
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>2.5.1</version>
        </dependency>

Plugins

  • excluded afterburner.fx from: shade
                <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <artifactSet>
                                <excludes>
                                    <exclude>junit:junit</exclude>
                                    <exclude>afterburner.fx</exclude>
                                </excludes>
                            </artifactSet>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

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.