0

Hi I am using JideSoft to implement Dockable Panel. I used https://www.jidesoft.com/products/JIDE_Docking_Framework_Developer_Guide.pdf as reference and developed below program.

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import com.jidesoft.action.DockableBarDockableHolderPanel;
import com.jidesoft.docking.DockContext;
import com.jidesoft.docking.DockableFrame;
import com.jidesoft.docking.DockingManager;
import com.jidesoft.swing.LayoutPersistence;

public class JFrameExample {

    private DockableBarDockableHolderPanel holderPanel;
    private JFrame frame;
    private static final String MY_FRAME = "DockableFrame";

    JFrameExample() {
        frame = new JFrame("JFrame Example");
        buildDockableFrame();
        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout());
        JLabel label = new JLabel("JFrame By Example");
        JButton button = new JButton();
        button.setText("Button");
        button.addActionListener(e -> {
            if (button.equals(e.getSource())) {

                getDockingPanel().getDockingManager().activateFrame(MY_FRAME);
            }
        });

        panel.add(label);
        panel.add(button);
        frame.add(panel);
        frame.setSize(200, 300);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }

    public static void main(String s[]) {
        new JFrameExample();
    }

    private void buildDockableFrame() {

        DockableFrame frame1 = new DockableFrame(MY_FRAME);
        frame1.getContentPane().add(new JLabel("Yes I am visible now..."));

        frame1.getContext().setInitMode(DockContext.STATE_AUTOHIDE);
        frame1.getContext().setInitSide(DockContext.DOCK_SIDE_EAST);
        frame1.getContext().setCurrentMode(DockContext.STATE_HIDDEN);
        frame1.getContext().setAutohidable(true);
        frame1.getContext().setFloatable(false);
        frame1.setShowContextMenu(false);

        getDockingPanel().getDockingManager().addFrame(frame1);
    }

    private DockableBarDockableHolderPanel getDockingPanel() {
        if (holderPanel == null) {
            holderPanel = createDockableHolderPanel();
        }
        return holderPanel;
    }

    protected DockableBarDockableHolderPanel createDockableHolderPanel() {
        DockableBarDockableHolderPanel dockableBarDockableHolderPanel = createDockableHolderPanelWithDefaultLayout();
        initDockableHolderPanelDockingManager(dockableBarDockableHolderPanel.getDockingManager());
        return dockableBarDockableHolderPanel;
    }

    private DockableBarDockableHolderPanel createDockableHolderPanelWithDefaultLayout() {
        DockableBarDockableHolderPanel dockableBarDockableHolderPanel = new DockableBarDockableHolderPanel(null);
        initDockableHolderPanelLayoutPersistence(dockableBarDockableHolderPanel.getLayoutPersistence());
        return dockableBarDockableHolderPanel;
    }

    private void initDockableHolderPanelDockingManager(DockingManager dockingManager) {
        dockingManager.setEasyTabDock(true);
        dockingManager.setShowDividerGripper(true);
        dockingManager.setInitSplitPriority(DockingManager.SPLIT_SOUTH_NORTH_EAST_WEST);
        dockingManager.getAllFrameNames();
        dockingManager.setInitDelay(30);
        dockingManager.setSteps(1);
        dockingManager.setStepDelay(0);
        dockingManager.setDoubleClickAction(DockingManager.DOUBLE_CLICK_TO_MAXIMIZE);
    }

    private void initDockableHolderPanelLayoutPersistence(LayoutPersistence layoutPersistence) {
        layoutPersistence.setProfileKey(MY_FRAME);
        layoutPersistence.setUseFrameBounds(false);
        layoutPersistence.setUseFrameState(false);
    }
}

Below is My UI: enter image description here expected result is when i click the button it should open Dockable panel but it is not working in mycase.

I checked but no luck. Help appreciated. .

  • That picture did not give much more help. Can you - in words - describe what is happening and what isn't working? – Just another Java programmer Aug 02 '23 at 15:45
  • @JustanotherJavaprogrammer here we have UI where we have one button. So requirement is like when user click the button ideally it should open dockable panel. Problem is when user click the button panel is not showing up. – user21528347 Aug 02 '23 at 15:52

0 Answers0