Maximize/normalize dockable wrong location

There is a bug when maximize and then normalize dockable inside Working Area. To reproduce maximize and the normalize dockable called ‘Stack1’ or ‘Stack2’. After being normalized dockable appears in the wrong location (above dockables ‘One’, ‘Two’, ‘Three’)



import java.awt.Color;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;

import bibliothek.gui.dock.common.CControl;
import bibliothek.gui.dock.common.CGrid;
import bibliothek.gui.dock.common.CWorkingArea;
import bibliothek.gui.dock.common.DefaultSingleCDockable;
import bibliothek.gui.dock.common.SingleCDockable;

public class WorkingAreaMax
{
    public static void main(String[] args)
    {

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        CControl control = new CControl(frame);
        frame.setLayout(new GridLayout(1, 1));
        frame.add(control.getContentArea());

        final CWorkingArea workingArea = control.createWorkingArea("my working area");

        SingleCDockable red = create("Browser", Color.RED);
        SingleCDockable green = create("History", Color.GREEN);
        SingleCDockable defaultTemplate = create("One", Color.CYAN);
        SingleCDockable sources = create("Two", Color.ORANGE);
        SingleCDockable editor = create("Three", Color.YELLOW);

        SingleCDockable charts = create("Stack1", Color.ORANGE);
        SingleCDockable timeseries = create("Stack2", Color.YELLOW);

        CGrid grid = new CGrid(control);
        grid.add(1, 1, 3, 3, workingArea);
        grid.add(0, 0, 1, 2, red);
        grid.add(0, 2, 1, 2, green);
        control.getContentArea().deploy(grid);

        CGrid grid1 = new CGrid(control);
        grid1.add(0, 0, 1, 1, defaultTemplate);
        grid1.add(1, 0, 1, 1, sources);
        grid1.add(2, 0, 1, 1, editor);
        grid1.add(0, 1, 2, 1, charts);
        grid1.add(0, 1, 2, 1, timeseries);
        control.getContentArea().deploy(grid);

        workingArea.deploy(grid1);

        frame.setBounds(100, 100, 800, 600);
        frame.setVisible(true);
    }

    public static SingleCDockable create(String title, Color color)
    {
        JPanel background = new JPanel();
        background.setOpaque(true);
        background.setBackground(color);
        return new DefaultSingleCDockable(title, title, background);
    }

}


Will be fixed with 1.1.2p14e. There was a simplification in the code, a “placeholder-node” could only handle Dockables that were associated with a “placeholder-property”, but in this case the stack is associated with a “path-property” (stacks do not have a unque id, a placeholder; but your CDockables have, and that is why the stack behaves differently than the CDockables).

I have some other issue to work on before uploading a new version, but I will surely upload 1.1.2p14e today or tomorrow.