This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
There is no API to programmatically dock and float top components. Also, there is no API to programmatically dock, float and close groups/modes. Please provide a public API to do this. This is what I have to do right now, which is quite ugly: public boolean isTopComponentDocked(TopComponent topComponent) { Class<?>[] paramKlasses = {TopComponent.class}; Object[] parameters = {topComponent}; AbstractAction obj = (AbstractAction) ReflectionUtil.newInstance("org.netbeans.core.windows.actions.UndockWindowAction paramKlasses, parameters); return obj.isEnabled(); } public void setTopComponentDocked(TopComponent topComponent, boolean isDocked) { Class<?>[] paramKlasses = {TopComponent.class}; Object[] parameters = {topComponent}; if (isDocked) { AbstractAction obj = (AbstractAction) ReflectionUtil.newInstance("org.netbeans.core.windows.actions.DockWindowAction", paramKlasses, parameters); obj.actionPerformed(null); } else { AbstractAction obj = (AbstractAction) ReflectionUtil.newInstance("org.netbeans.core.windows.actions.UndockWindowAction", paramKlasses, parameters); obj.actionPerformed(null); } } public boolean isModeDocked(Mode mode) { Class<?>[] paramKlasses = {mode.getClass()}; Object[] parameters = {mode}; AbstractAction obj = (AbstractAction) ReflectionUtil.newInstance("org.netbeans.core.windows.actions.UndockModeAction", paramKlasses, parameters); } public void setModeDocked(Mode mode, boolean isDocked) { if (isDocked) { Class<?>[] paramKlasses = {}; // Not sure what to pass here Object[] parameters = {}; // Not sure what to pass here AbstractAction obj = (AbstractAction) ReflectionUtil.newInstance("org.netbeans.core.windows.actions.DockModeAction", paramKlasses, parameters); obj.actionPerformed(null); } else { Class<?>[] paramKlasses = {mode.getClass()}; Object[] parameters = {mode}; AbstractAction obj = (AbstractAction) ReflectionUtil.newInstance("org.netbeans.core.windows.actions.UndockModeAction", paramKlasses, parameters); obj.actionPerformed(null); } } public void closeMode(Mode mode) { Class<?>[] paramKlasses = {mode.getClass()}; Object[] parameters = {mode}; AbstractAction obj = (AbstractAction) ReflectionUtil.newInstance("org.netbeans.core.windows.actions.CloseModeAction", paramKlasses, parameters); obj.actionPerformed(null); }
There are also some workaround presented in https://blogs.oracle.com/geertjan/entry/case_study_customizing_the_netbeans