Menu

#24 Combine windows into a single window

0.0.6
Closed
nobody
4
nobody
Refactoring
2018-03-29
2016-07-16
Ulf Lorenz
No

Currently, up to three windows pop up during the game:

  1. a main window showing the navigation on the server and other features (game map etc.)
  2. a window showing the registered players on the server
  3. a chat window

These should be combined into a single window consisting of multiple panels. Ideally, we want to have dockable components for maximum flexibility.

  1. Study MigLayout. It should have dockable components. If it does not have them, look for other libraries to easily access dockable components or at least user-resizable components. Use DockingFrames
  2. Modify the single gui.window.WindowBuilders such that they have fewer requirements on their size. Ideally, they should work with any size, no matter how stupid. Ideally, the WindowBuilders also use MigLayout for simplicity.
  3. Convert the three windows popping up during a game into separate dockable components.
  4. Further cleanup that arises naturally as we have these flexible dockable components (e.g., more components, remove uninteresting components, but add a menu to show them again, ...)

MigLayout parts moved to resurrected ticket [#21]

Related

Tickets: #21
Tickets: #71

Discussion

  • Ulf Lorenz

    Ulf Lorenz - 2016-09-10
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -7,5 +7,5 @@
     These should be combined into a single window consisting of multiple panels. Ideally, we want to have dockable components for maximum flexibility.
    
    
     1. Study [MigLayout](http://miglayout.com). It should have dockable components. If it does *not* have them, look for other libraries to easily access dockable components or at least user-resizable components.
    -2.  Modify the single gui.window.WindowBuilders such that they have fewer requirements on their size. Ideally, they should work with any size, no matter how stupid.
    +2.  Modify the single gui.window.WindowBuilders such that they have fewer requirements on their size. Ideally, they should work with any size, no matter how stupid. Ideally, the WindowBuilders also use MigLayout for simplicity.
     3.  Convert the three windows popping up during a game into separate dockable components.
    
     
  • Ulf Lorenz

    Ulf Lorenz - 2016-09-10
    • status: Open --> ReadyForDev
    • Milestone: temporary bin --> Backlog
     
  • Ulf Lorenz

    Ulf Lorenz - 2016-10-18
    • status: ReadyForDev --> InProgress
    • assigned_to: Arno Kemner
    • Owner2: Ulf Lorenz
    • Milestone: Backlog --> 0.1
     
  • Arno Kemner

    Arno Kemner - 2016-11-28

    Tested several frameworks. Haven't looked at the code and how to implement yet.

    One I like the most and that is 'Docking Frames', which is still in developement. It has real docking frames. The user can change the panels according his preference. Like in eclipse.

    The other one is MigLayout which is also still in development. Although the website / forum don't mention this new version 5.1. This has docking, but the panels cannot be changed by the user. It is more an allround simple to use layoutmanager.

    MigLayout
    http://miglayout.com/
    newest: https://oss.sonatype.org/content/repositories/snapshots/com/miglayout/
    Swing, SWT, JavaFX2
    28-11-2016: version 5.1-snapshot
    BSD or GPL License
    Website refers to old version 4.0. So are the demo

    Docking Frames
    http://www.docking-frames.org/
    swing
    21-10-2016: Version 1.1.2 Preview 18a
    LGPL 2.1
    Looks very good, has my preference.

    MyDoggy
    http://mydoggy.sourceforge.net/
    swing
    1-12-2010: version 1.5.0 (Beta 1)
    LGPL Licensing
    Looks ok, but is a little buggy, don't think it is maintained anymore

    FlexDock
    https://forge.scilab.org/index.php/p/flexdock/
    swing
    5-8-2013: version 1.2.4
    used in SciLab which is active
    open source, MIT license
    Looks rather simple compared to others
    To start: java -classpath flexdock-1.2.4.jar -jar flexdock-demo-1.2.4.jar

    Commercial: with dual licensing systems

    InfoNode Docking Windows
    http://www.infonode.net/
    swing
    24-2-2009: version 1.6.1
    GPL License for open source
    Very good demo

    SanaWare Java Docking
    http://www.javadocking.com/
    swing
    30-11-2011: version 1.5.0
    GPL License for open source
    Very good demo

    JIDE Docking Framework
    http://www.jidesoft.com/products/dock.htm
    swing
    30-9-2016: version 1.4
    Open source project developers can obtain free single developer licenses, allowing them to use JIDE products in their projects. Please contact sales department
    Very good documentation, I find it not that good as InfoNode and SanaWare. Has lots of exceptions on my pc

     

    Last edit: Arno Kemner 2016-12-03
  • Ulf Lorenz

    Ulf Lorenz - 2016-11-30
    • Milestone: 0.1 --> 0.1.1
     
  • Ulf Lorenz

    Ulf Lorenz - 2017-01-14
    • Size [chats]: --> 4
     
  • Ulf Lorenz

    Ulf Lorenz - 2018-01-15

    Chat summary:

    • Use Docking Frames for this issue (which is about having dockable components after the login)
      • no dependencies, exists in Maven-Central
    • Revive ticket [#21] (which is about MigLayout) => Ulf
      • still relevant, but out of scope here and right now
    • build first version of dockable frames => Arno
      • add docking-frames libraries and license information
      • use docking-frames for the room window, client list window, chat window in FreelordsGuiBuilder
        • make FLWindow derive from dockable frames
        • alternatively, clone FLWindow for now (cleanup later)
      • if direct implementation does not work, build a demo for dockable frames how we would use them
     

    Related

    Tickets: #21

  • Ulf Lorenz

    Ulf Lorenz - 2018-01-15
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -8,4 +8,5 @@
    
    
     1. Study [MigLayout](http://miglayout.com). It should have dockable components. If it does *not* have them, look for other libraries to easily access dockable components or at least user-resizable components.
     2.  Modify the single gui.window.WindowBuilders such that they have fewer requirements on their size. Ideally, they should work with any size, no matter how stupid. Ideally, the WindowBuilders also use MigLayout for simplicity.
    -3.  Convert the three windows popping up during a game into separate dockable components.
    +3. Convert the three windows popping up during a game into separate dockable components.
    +4. Further cleanup that arises naturally as we have these flexible dockable components (e.g., more components, remove uninteresting components, but add a menu to show them again, ...)
    
     
  • Ulf Lorenz

    Ulf Lorenz - 2018-01-15
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -6,7 +6,9 @@
    
     These should be combined into a single window consisting of multiple panels. Ideally, we want to have dockable components for maximum flexibility.
    
    -1. Study [MigLayout](http://miglayout.com). It should have dockable components. If it does *not* have them, look for other libraries to easily access dockable components or at least user-resizable components.
    -2.  Modify the single gui.window.WindowBuilders such that they have fewer requirements on their size. Ideally, they should work with any size, no matter how stupid. Ideally, the WindowBuilders also use MigLayout for simplicity.
    +1. <s>Study [MigLayout](http://miglayout.com). It should have dockable components. If it does not have them, look for other libraries to easily access dockable components or at least user-resizable components.</s>  Use DockingFrames
    +2.  Modify the single gui.window.WindowBuilders such that they have fewer requirements on their size. Ideally, they should work with any size, no matter how stupid. <s>Ideally, the WindowBuilders also use MigLayout for simplicity.</s>
    
     3. Convert the three windows popping up during a game into separate dockable components.
     4. Further cleanup that arises naturally as we have these flexible dockable components (e.g., more components, remove uninteresting components, but add a menu to show them again, ...)
    +
    +MigLayout parts moved to resurrected ticket [#21]
    
     

    Related

    Tickets: #21

  • Arno Kemner

    Arno Kemner - 2018-02-23

    Implemented Docking Frames when the client is connected to the server. The first 2 windows (splashwindow and connection window) remain normal windows
    First picture is an example of a simple setup after starting:
    The other pictures are examples after changing the layout online.
    At this moment these changed made by the user are not saved. If this is wanted a new ticket has to be made.

     
  • Arno Kemner

    Arno Kemner - 2018-03-13
    • labels: --> DockingFrames, GUI
     
  • Ulf Lorenz

    Ulf Lorenz - 2018-03-29
    • status: InProgress --> Closed
    • assigned_to: Arno Kemner --> nobody
    • Owner2: Ulf Lorenz --> nobody
     

Log in to post a comment.

MongoDB Logo MongoDB