-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multitab support for docking #10
Conversation
sounds good, what's the best way to test it, is there a demo of the new features ? |
You can use org.dockfx.demo.DockFX which @RobertBColton has already created as well. |
Ok, I guess I need to merge your pull requests into my local version? |
Yup, that would be the first thing to do. ;) |
Multitab, looks really good. I'm now thinking of replacing the use of normal JavaFX Tabs with yours, on an application I'm working on. I think this gives much gives more flexibility to the end user. Easily, storing and loading of dock preferences is going to be important to makes this even better. If you are going to start this bit soon, I think it would be useful to discuss your approach with the wider community, I've certainly got some strong ideas on this. I will come back with more feedback later today or tomorrow. |
Ok, some more feedback. Thinking out aloud here. On products like IntelliJ you can drag to reorder the tabs, which is quite useful sometimes. Not sure how you'd represent this.visually with DockFX. |
Your proposal looks really good, well done. Probably it's much more natural as @jasons2000 already suggested, |
@jasons2000 , @Naios , Thank you for all the feedbacks! |
Modified TabMenuItem class in the skin.
Fix to get the title string rather than textProperty
@hkmoon, how are your changes going? |
I just wanted to offer some feedback on this and it looks great so far. I really appreciate the support, and I venture the users do as well. I was also going to use the middle dock indicator icon as he did to add additional tabs if I got around to it, so I am fine with that. I can also understand why dragging over the tab area is more consistent and some may prefer that. Both could actually be done as well. But my idea was originally that docking on the center indicator would create a tab pane if one didn't exist, if there's no tabs there, how are you going to combine them into tabs? I was following the Qt Framework style basically. I won't dictate it, but my recommendation is to honestly do it both ways. I also want to update everyone on why I haven't been as active. I am waiting for some bugs to be fixed in OpenJDK that exist with the current master. Mostly they effect the Linux platform, but some of them also exist on Windows. I am the original filer on the tickets, and just by reading them you can see why they affect DockFX, as I've also noted in the comments. I did sign the Oracle Contributor Agreement hoping to fix them myself but keep running out of time between other projects and my schoolwork, so if anyone that can fix it for OpenJDK, please send your fixes upstream to them. For these reasons right now I do not want to pull any new features into master. i'm going to review these changes some more and possibly merge them to master and possibly create a stable branch first if they exacerbate the existing bugs. JDK-8133335 and JDK-8133029 are the biggest show stoppers. A couple of things I notice on first review @hkmoon
|
Welcome back, @RobertBColton, I really appreciate your feedback and corrected the codes based on your requests.
This is done by eclipse. My main IDE is intelliJ as each IDE has very subtle difference even I use the same style xml.
Done.
Actually, we have several open source projects which have DockFX dependency as I made some changes there. We also use bintray for the assembly distribution. It would be good for you to make your own repository to provide DockFX assembly for other projects that have DockFX dependency. |
Hi @jasons2000,
I am sorry that I could not find any time for developing it. Cheers, |
Can I just add that I am following this work with great interest! I hope to use this in my products, so keep up the good work! @RobertBColton I have a couple of ideas for enhancements, should I add them as issues (tagged appropriately) to your repo so that I don't forget them? I will try to add them myself but I am just starting out on JavaFX. |
@hkmoon Awesome, thank you. I understand now, I would still say for the purpose of this repo it should point to me in the pom, it's ok to have it point to yours in your version though. I encourage your maintenance of a spinoff, since I understand the need. Just for the reasons above I am conflicted on the best strategy to move forward. Are you also suggesting I create a Maven central repository? If that's anything like a package manager on Linux, I want to say I'd rather not be the maintainer, because there's so many different pm's. But I am alright with anybody else maintaining one. I am not really sure the general practice there, if original developers are usually the one's that maintain such packages? @SamCooper Yes go right ahead and post an issue. I'd prefer that each feature you can identify be filed separately, as though you are filing a bug on OpenJDK itself (isolate the issue). I'd really like to make DockFX very robust and complete, and I do already have somewhat an idea of what that entails as the README.md describes. Also please be sure to consult the README again just to make sure I don't have one already listed. Overall the ultimate goal here would be to get DockFX included in OpenJDK, and I was working with ControlsFX to do so but couldn't move forward because of the above issues. That's really what I'd like to see the most, is a docking control in the Java SE that is available to everyone, much like the Qt Framework. |
@RobertBColton Do you have any updates as of late? It looks like there are a few folks who'd like to contribute to this project (@hkmoon, @jasons2000, myself, and others), and it would be awesome to see all the changes make it back into the original repo. Perhaps development can continue despite the JDK bugs? |
Amen to that |
My suggestion would be to fork a repo that everyone interested can contribute to, obviously keeping Robert in the loop. That way Robert can keep his at the point he would like to so that he can use it for verifying the JDK bugs or whatever he needs. There is also no reason why Robert can't contribute to the fork either. When everything is sorted regarding the JDK then all the forks can be merged but obviously it will be simpler for Robert if there is one fork that he has to look at. Just my 2p/c... |
What has Robert got to say on the subject? |
@SamCooper That sounds reasonable. However, it seems that there are existing forks (e.g., @hkmoon's) that could be communally developed but aren't being developed. I'd propose creating a tag in order to note the JDK bugs, then opening up @RobertBColton's master branch for development. I think this would encourage DockFX development while still providing a way to address the JDK bugs. |
For anyone reading this and wishing for further DockFX development, I'd like to second @jasons2000's comment in #7 and promote @hkmoon's fork: https://github.com/hkmoon/DockFX/tree/hkmoon |
@jpiersol Thank you for the all comments. I am personally still improving the codes in https://github.com/ClearControl/DockFX project. You can fork it from there while Robert is contemplating on this project. |
@hkmoon , what's the idea behind ClearControl. Also looks like you've moved to to gradle for build, what's your thoughts about this ? |
Just as a quick update on this, one of the issues has been fixed for JDK 9: The two real show stoppers from making any progress with tabs are these two: JavaFX will get draggable tab headers at some point. And my concern is that once it does, we would have to redo the whole thing over again. |
@jpiersol ClearControl is a our institute microscope control software project. All the GUI controls are wrapped by DockFX's dockable window where each device panel and some control panels (log, console, device tree, scripting panels and so on) are detachable/attachable on the DockPane. DockFX is used as a framework to handling docking environment. That is why I have been still improving DockFX code from time to time, according to my collaborators' requests. However, sometimes the implemented features are too subjective to make a PR here. Therefore, we keep the DockFX repository in ClearControl. |
I will come back and create PR later. For now, I close this PR. |
Multitab is supported for JavaFX.
Hopefully, people like it. Please, report bugs if there are.
The next step would be to store/load the dock preference in the configuration file.