user21528347
user21528347

Reputation: 3

Not able to show DockablePanel after clicking button

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. .

Upvotes: 0

Views: 41

Answers (0)

Related Questions