/GNDecorator

Modern window decorator for javafx applications

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

GNDecorator

This project is part of the set of custom components created for JavaFx.

Sonatype Nexus (Releases) Release Build License

πŸ“‘ Contents

πŸ’» Environment

This lib is a compnent for JavaFx: Get in the offical website JavaFx, Tutorial Getting Started

I have a great workstation here, then I've using a gradle 7.2 and Java and JavaFx +16 on Windows. (I really want to test in other systems in future).

πŸš€ Installing Decorator

Now you have many ways to get that! !πŸ—’οΈNote ** The release has the first changes I made and releases in nexus are more stable πŸ₯Έ***

πŸ‘ŒIn code blocks find the copy button... is cooler, it automatically knows if your target is a pom.xml or gradle.build

For installing decorator, you have this options:

  • For Pros - Click on the badge release or click badge nexus on the top of this document, and you're going to redirect to hosted sources.
  • For Github Users - On the right side, you can see the packages and releases, click on them and download it, in case you are in packages just copy them into your build file.
  • For Faster users - Just copy and paste the code bellow

If you use maven add in pom.xml:

<dependency>
  <groupId>io.github.gleidsonmt</groupId>
  <artifactId>gndecorator</artifactId>
  <version>2.2.25</version>
</dependency>

.. or in gradle.build:

    implementation 'io.github.gleidsonmt:replaceVersionInREADME:2.2.25'

β˜• Using Decorator

Begin to use... Java Code!

  GNDecorator decorator = new GNDecorator();
  decorator.setTitle("JavaFx Application");
  decorator.setContent(content);
  decorator.fullBody() // the content occupies all of size
    
 // Adding menus 
  Menu menu = new Menu("File");
  menu.getItems().add(new MenuItem("Open"));
  menu.getItems().add(new MenuItem("Close"));
  decorator.addMenu(menu);
  decorator.addMenu(1, menu);// add with a index
        
  // Adding custom controls
  ButtonTest a1 = new ButtonTest("Button 1");
  decorator.addControl(a1);
  decorator.addControl(index, a1); // add with a index

🧬 Basic Structure

    root -> SstackPane
            body -> AnchorPane
                    top_left -> Path
                    top_right -> Path -- rotation 90Β°
                    bottom_left -> Path -- rotation 270Β°
                    bottom_right -> Path -- rotation 180Β°

Structure - by Scenic View

Structure

Default Structure

gif2

View Default

demo1

View Darkula

demo1

With gradient and image

demo1

πŸ“Ί On Youtube

Short Presentation here

πŸ›  Enhancements

Next steps:

  • Add Yosemite Theme
  • Add Windows Theme
  • The decoratorTheme in blank to customize
  • Public methods to update window icons with css.
  • Better pratices for one class receives state scope event (Clean Code)
  • Default Property to change bar height
  • Float options (css too)

πŸ“« Contributing to Project

To contributing to project, follow these steps:

  1. Fork this repository.
  2. Creates a branch: git checkout -b <branch_name>.
  3. Do your changes and commit: git commit -m '<commit_message>'
  4. Send a branch to origin: git push origin GNDecorator / <local>
  5. Creates pull request.

However, if you don't know How to create a pull Request.

πŸ˜„ Be a contritubutor

πŸ€–I really need more friends.. Send me a email .

πŸ“ License

This project is under license. See the file LICENSE to more details.

⬆ Back to the top