Giter VIP home page Giter VIP logo

controlsfx's Introduction

ControlsFX

Maven Central Build BSD-3 license Language grade: Java

ControlsFX is an open source project for JavaFX that aims to provide really high quality UI controls and other tools to complement the core JavaFX distribution. It has been developed for JavaFX 8.0 and beyond, and has a guiding principle of only accepting new controls / features when all existing code is at an acceptably high level, including thankless jobs like having high quality javadoc documentation. This ensures a high quality release is available at all times, with all experimental work being done in branches of the main code base.

Features

ControlsFX includes so many features that we're now listing them on a separate page! Go to the ControlsFX features page to see some of what is included in ControlsFX.

Quick links

Getting Started

Build ControlsFX locally:

./gradlew build check

Want to play with the ControlsFX sample application:

./gradlew run

If you have a feature you can contribute, a bug you want to fix, or have a bug you'd like to file, please direct it to the issue tracker.

If you want to use ControlsFX, then you're probably wondering how to use the API that we've slaved over for hours! In your case, the best and definitive location for help is definitely our javadocs. Fear not, these are not a barren wasteland of undescribed functionality - we've poured our hearts into making these javadocs full to the brim of examples, commentary and explanation. If anything is unclear to you, file a bug in our issue tracker and we'll do our best to update the documentation straight away!

Another great place to explore is our sample code, all located in the controlsfx-samples directory of this source code repository. We've put a bunch of effort into making these examples something you can learn from.

JavaFX 8 source can be found on jdk-8 branch.

Contributing

Please feel free to report issues. If you want to submit a bug fix, or an enhancement request, please make sure to go through Contributing to ControlsFX before creating a PR.

Thanks To

Company For..
For substantial contributions towards project hosting and development of major features and improvements.
For the IntelliJ IDEA licenses.

controlsfx's People

Contributors

abhinayagarwal avatar alice-ks avatar aliebelt avatar anirvansarkar avatar carolitascl avatar ckeimel avatar danielpeintner avatar diego4zeiss avatar dlemmermann avatar eugener avatar fghamsary avatar geoffcapper avatar henrib avatar isnull avatar james-d avatar jonathangiles avatar jperedadnr avatar le-yams avatar maxoudela avatar mirrana avatar n-e-g avatar nicolabeghin avatar piegamesde avatar ryanjaeb avatar shemnon avatar siordache avatar stirante avatar stspyder avatar thomasnield avatar yairoren 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  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  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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

controlsfx's Issues

Support Java 7?

Original report by Harshad (Bitbucket: hrj, GitHub: hrj).


Hi,
I am new to JavaFX and while exploring it I hit upon this project. Looks impressive, but..

It is not clear to me why this targets JavaFX 8 when the release of it is atleast an year away. AFAIK, the major new thing in 8 is 3D, but that doesn't seem to be related to this project.

By supporting Java 7, it would be possible to develop apps that can be immediately deployed.

Am I missing something?

Property Sheet

Original report by Eugene Ryzhikov (Bitbucket: eryzhikov, GitHub: Unknown).


Initial feature ideas:

  • Recognition of JavaFX properties
  • Editors for all common types of properties
  • API for custom editors
  • API for “computed on the fly” properties
  • API for sub-properties ( tree-table like)

Apply UX feedback

Original report by Jonathan Giles (Bitbucket: JonathanGiles, GitHub: JonathanGiles).


  1. Title - it is a Mac thing for sure, but I think I also saw titles (bigger bolder text) in dialogs on Windows too. I guess developers can change fonts easily in CSS, but might be nice to have it out of box.
  2. Is it possible to add an icon to the window's title?
  3. "The exception stacktrace was:" label should be closer to the pane. In short, space between the label and the pane should be same as space between the label and the pane in Exception Details dialog.

Optional Cancel button in Confirmation dialogs

Original report by Stefan Saring (Bitbucket: ssaring, GitHub: ssaring).


Currently every confirmation dialog created by the Dialogs class always has the Buttons Yes, No and Cancel. In the most use cases the Cancel button makes no sense, e.g. on "Do you want to delete the task?" What's the difference between No and Cancel here?
OK, there are some cases where Cancel makes sense (e.g. "Do you want to save your changes?" on application exit).

Would it be possible to define the Action buttons in confirmation dialogs or make the Cancel button optional?

I've tested it on Mac OS X 10.8 with ControlsFX 8.0.1 and JDK 1.8.0-ea-b91.

Enhance Action with JavaFX properties

Original report by Eugene Ryzhikov (Bitbucket: eryzhikov, GitHub: Unknown).


Having JavaFX style properties in Action will allow for simple binding to related controls, such as buttons, menu items etc.

We should consider following properties:

  • text
  • icon
  • tooltip
  • enabled

Better integration with dialog owner

Original report by Jonathan Giles (Bitbucket: JonathanGiles, GitHub: JonathanGiles).


When an owner for a dialog is specified, the dialog should open such that it is centered in the owner window area. When a null owner is specified, the dialog should continue to open, but instead be centered in the screen.

Because the owner is optional, the fluent API should change such that build(owner) is removed, and instead replaced with an owner(stage) method.

NotificationPane not working with default constructor

Original report by Hendrik Ebbers (Bitbucket: hendrikebbers, GitHub: hendrikebbers).


When creating the NotificationPane with
notificationPane = new NotificationPane();
a exception is thrown when the scene will be shown.

Workaround: Everything is fine when I add a dummy content node:
notificationPane = new NotificationPane(new StackPane());

Here is the StackTrace:

Caused by: java.lang.NullPointerException: Children: child node is null: parent = NotificationPane@736b303e[styleClass=notification-pane]
at javafx.scene.Parent$2.onProposedChange(Parent.java:423)
at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:115)
at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:110)
at impl.org.controlsfx.skin.NotificationPaneSkin.updateContent(NotificationPaneSkin.java:106)
at impl.org.controlsfx.skin.NotificationPaneSkin.(NotificationPaneSkin.java:69)
at org.controlsfx.control.NotificationPane.createDefaultSkin(NotificationPane.java:248)
at javafx.scene.control.Control.impl_processCSS(Control.java:869)
at javafx.scene.Parent.impl_processCSS(Parent.java:1204)
at javafx.scene.Node.processCSS(Node.java:8545)
at javafx.scene.Scene.doCSSPass(Scene.java:543)
at javafx.scene.Scene.preferredSize(Scene.java:1581)
at javafx.scene.Scene.impl_preferredSize(Scene.java:1648)
at javafx.stage.Window$9.invalidated(Window.java:730)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:108)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:142)
at javafx.stage.Window.setShowing(Window.java:796)
at javafx.stage.Window.show(Window.java:811)
at javafx.stage.Stage.show(Stage.java:243)
at com.guigarage.testimpl.TestMainApplication.start(TestMainApplication.java:11)
at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:810)
at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:260)
at com.sun.javafx.application.PlatformImpl$5$1.run(PlatformImpl.java:226)
at com.sun.javafx.application.PlatformImpl$5$1.run(PlatformImpl.java:223)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:223)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Exception running application com.guigarage.testimpl.TestMainApplication

Java Version:
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b94)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b36, mixed mode)

Dialog.setContent(new Group()) clips the dialog tonon re-sizable/issue with setting multiple TextFields in a parent node, only 1 appears

Original report by Konrad Zuse (Bitbucket: KonradZuse, GitHub: KonradZuse).


Hello all.

I first want to say thank you to everyone for this wonderful set of Controls, everyone appreciates your hard work!

second sorry for the long title, but this bug is basically all the same, even though it is multiple issues.

The issue I am facing is when I am trying to set multiple TextFields as my "content"

Since the content is apparently a single item, I decided since "node" is the parameter I would use a group of TextFields. I tried using 3 TextFields, at first then 1, and when it popped up the border to close minimize and enlarge were all clipped out and I couldn't resize it. At one tiny instance I thought I saw the resize cursor, but I could never duplicate it in the bottom right corner.

I tried to Resize the Dialog, but apparently there is no sizing it? Will that be implemented at some point?

When I tried to use a Pane, or an AnchorPane, I only got 1 TextField, and I could not resize the Group to see if that worked.

So I'm curious what's happening, and hopefully it can be fixed. What I would REALLY like though is if you could make the parameters to multiple Nodes. That way if I choose to have 5 text fields, a combo box, and some other things that could be cool.

Granted I have not tried out "ExtendedContent" so I'm not sure what that can handle, but by looking at it, it only is a single node as well, and that should be multiple as well.

I did try using the Masthead as a TextField, but I don't think that is a good choice, and the multiple node idea is better :).

I believe that it should be an ObservableList of Nodes, and there should be an option in the "Dialogs" class to add or remove from that list to quickly and easily add things to the dialog and manipulate the data.

I personally need 3 so a user can enter how many high, wide, and deep for items in a stack. I would need to grab the data from each, and I would assume an ObservableList is a good choice.

Thanks again for everything!!!

~KZ

"WARNING: Could not resolve..." log messages while running samples

Original report by Zorgbargle (Bitbucket: zorgbargle, GitHub: zorgbargle).


Warning logs are generated when running most of the samples from the command prompt. I see the same log messages when I include controls such as the GridView in my own code. An example log message is as follows:
WARNING: Could not resolve '-fx-box-border' while resolving lookups for '-fx-background-color' from rule '*.scroll-bar:vertical' in stylesheet jar:file:/C:/Program%20Files/Java/jdk1.8.0/jre/lib/ext/jfxrt.jar!/com/sun/javafx/scene/control/skin/modena/modena.css

Dialogs are using bigger fonts then the application

Original report by Stefan Saring (Bitbucket: ssaring, GitHub: ssaring).


Message, confirmation or custom dialogs created by the Dialogs or Dialog class are always using bigger fonts then the application itself. This looks very inconsistent, see the attached screenshot.
All the fonts are too big, the titlebar text, the button texts and the dialog content itself (also custom content).

I've tested it on Mac OS X 10.8 with ControlsFX 8.0.1 and JDK 1.8.0-ea-b91.

Improve support for left-aligned Actions (in dialogs)

Original report by Jonathan Giles (Bitbucket: JonathanGiles, GitHub: JonathanGiles).


At present it is not possible for an Action to be left-aligned without custom code. It would be great if this could be more easily specified (and also taken into account when doing OS-specific layout). There was a concept along these lines (ButtonType I think it was) back in the old DialogTemplate, but this is no longer available.

Maven build system

Original report by Eugene Burtsev (Bitbucket: eburtsev, GitHub: eburtsev).


Most of java projects uses dependencies management available in maven, gradle, ivy and other build tools. So artifacts needs to be added to maven central repository to be available to those tools.

Dialogs should use native title bars

Original report by Stefan Saring (Bitbucket: ssaring, GitHub: ssaring).


Currently all dialogs created by the Dialogs or Dialog class are using a custom dark title bar. So every application looks inconsistent, because the application itself always uses the title bar of the operatiing system. The attached screenshot shows an example.

Would it be possible to add at least an option to Dialogs for using the systems title bar?

I've tested it on Mac OS X 10.8 with ControlsFX 8.0.1 and JDK 1.8.0-ea-b91.

Introduce @Action (or similar) annotation

Original report by Jonathan Giles (Bitbucket: JonathanGiles, GitHub: JonathanGiles).


Refer to http://code.google.com/p/myt-swing-actions/ for an example, although I would go further with the annotation, allowing as many of the Action properties to be specified as possible (text, longText, disabled, graphic, etc). This would make using Actions much easier, although I would caution that this API should be entirely separate and built on top of the Actions implementation, so that it can be easily removed in the future if not desired.

Restrict masthead width

Original report by Eugene Ryzhikov (Bitbucket: eryzhikov, GitHub: Unknown).


It cannot be much bigger than content. In that case, it has to wrap.
The masthead should probably have a max width of Math.max(MASTHEAD_MAX_WIDTH, contentAreaMaxWidth)

ImageGridCell and ignored image preserve ratio

Original report by Andreas Niemeyer (Bitbucket: Andreas_Niemeyer, GitHub: Unknown).


Hi,

I checked out the GridView with images and it shows images as expected, all in squared format as default whereas in the image constructor the preserveRatio is set.

I think it should be implemented to get a transparent behavior in comparison to an ImageView; maybe a solution or workaround already exist?! I only read the javaDoc and didn't find any example right now of this great and new library.

I guess its tricky to implement because of the row wherein the individual images are rendered needs to calculated for the height and width properties and number of images to show.

Nevertheless a great feature to go for an image gallery. Some time ago I played around with the SWT Nebula ImageGallery, it fits nearly perfect the requirement of an ImageGallery, but SWT is history and the stuff is not maintained anymore.

Below I put the example code to track the issue as it is an issue or more a feature ;-)

Thank you for some feedback.

Kind regards,
Andreas

@Override
public void start(Stage primaryStage) {
    primaryStage.setTitle("ImageView - GridView / ImageGridCell check!");
   
    Image image = new Image("file:images/DSC_0247.JPG", 200, 0, true, true);

    final ObservableList<Image> list = FXCollections.<Image>observableArrayList();
    GridView<Image> myGrid = new GridView<Image>(list);
    myGrid.setCellFactory(new Callback<GridView<Image>, GridCell<Image>>() {
        public GridCell<Image> call(GridView<Image> arg0) {
        	return new ImageGridCell();
        }
    });
    
    for(int i = 0; i < 10; i++) {
        list.add(image);
    }
   
    StackPane root = new StackPane();
    root.getChildren().addAll(new ImageView(image), myGrid);
    primaryStage.setScene(new Scene(root, 800, 600));
    primaryStage.show();
}

Refactoring of all GridCells

Original report by Hendrik Ebbers (Bitbucket: hendrikebbers, GitHub: hendrikebbers).


UpdateItem(...) should be used:

[24.03.13 22:31:14] Jonathan Giles: ColorGridCell would be more performant if it were written like this:
[24.03.13 22:31:14] Jonathan Giles: public class ColorGridCell extends GridCell {

private Rectangle colorRect;

   public ColorGridCell() {
 getStyleClass().add("color-grid-cell");
 
 colorRect = RectangleBuilder.create().stroke(Color.BLACK).build();
 colorRect.heightProperty().bind(heightProperty());
 colorRect.widthProperty().bind(widthProperty());  
 setGraphic(colorRect);
 
 itemProperty().addListener(new ChangeListener() {
  @OverRide public void changed(ObservableValue<? extends Color> arg0, Color oldColor, Color newColor) {
      updateItem(newColor, newColor != null);
  }
 });
}

@OverRide protected void updateItem(Color item, boolean empty) {
    super.updateItem(item, empty);
    colorRect.setFill(item);
}
}

Polish Command Link dialog

Original report by Eugene Ryzhikov (Bitbucket: eryzhikov, GitHub: Unknown).


the main issue is that dialog has to resize with content of the buttons, but it does not for some reason.
In addition, we need min and max widths for this kind of dialog.

GridView Cell Spacing causes node to go outside of bounds and trail when dragged

Original report by Konrad Zuse (Bitbucket: KonradZuse, GitHub: KonradZuse).


Hello all!

Originally there wasn't a big deal with this(it would just go out of bounds) but now with Build 94 it causes the nodes outside of the GridView to Trail.

I was doing some tests and set it like so

  gridView.setCellWidth(300);
    gridView.setCellHeight(20);

    gridView.setHorizontalCellSpacing(10);
    gridView.setVerticalCellSpacing(100);

In the end I will make everything look good, but I believe it should be set that we cannot go out of bounds, and if we space too much it will just stop at the GridView's height/width.

thanks!

Remove CSS warnings

Original report by Jonathan Giles (Bitbucket: JonathanGiles, GitHub: JonathanGiles).


The ButtonBar appears to print a lot of CSS warnings. I've been working with the JavaFX CSS engine owner inside Oracle to work out why this is happening. The fix will most probably require changes to JavaFX itself, which may boost our minimum required JDK 8 build (if people don't want the noise on their console). Ideally we'd have this fixed in conjunction with developer preview 2, but I'm comfortable as long as it is resolved before the final 8.0.0 release.

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.