Libraryless. Click here for Pure Java version (14758L/102K).
!7 import javax.swing.plaf.InternalFrameUI; import javax.swing.plaf.basic.BasicInternalFrameUI; module SeparateDesktopPaneSpike > DynSingleFunctionWithPrintLog { void doIt { final JInternalFrame myFrame = cast dm_frame(); if (myFrame == null) ret; if (getParent(myFrame) != dm_desktopPane()) ret with moveBack(); Rectangle boundsOnScreen = boundsOnScreen(myFrame); final JDesktopPane desktopPane = jDesktopPane(); autoFixDesktopPane(desktopPane); showFrame(dm_moduleName(), desktopPane); setFrameBounds(desktopPane, boundsOnScreen); swing { removeFromParent(myFrame); onResizeAndNow(desktopPane, r { myFrame.setBounds(0, 0, desktopPane.getWidth(), desktopPane.getHeight()) }); desktopPane.add(myFrame); myFrame.setMaximum(true); myFrame.setMaximizable(false); myFrame.setClosable(false); myFrame.setIconifiable(false); InternalFrameUI ui = myFrame.getUI(); if (ui cast BasicInternalFrameUI) { ui.setNorthPane(null); } } } void moveBack ctex { final JInternalFrame myFrame = cast dm_frame(); if (myFrame == null) ret; JDesktopPane desktopPane = cast getParent(myFrame); if (desktopPane == dm_desktopPane()) ret; removeFromParent(myFrame); myFrame.updateUI(); myFrame.setMaximum(false); myFrame.setMaximizable(true); myFrame.setClosable(true); myFrame.setIconifiable(true); dm_desktopPane().add(myFrame); Rectangle bounds = rectangleFromScreenToComponent(boundsOnScreen(getFrame(desktopPane)), dm_desktopPane()); print("Setting bounds: " + bounds); myFrame.setBounds(bounds); fixInternalFrame(myFrame); myFrame.toFront(); myFrame.setSelected(true); print("Have bounds: " + getBounds(myFrame); disposeFrame(desktopPane); desktopPane = null; call(dm_getStem(this), 'enhanceFrame, myFrame); // re-add title menus } }
download show line numbers debug dex old transpilations
Travelled to 8 computer(s): bhatertpkbcr, cfunsshuasjs, gwrvuhgaqvyk, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1020192 |
Snippet name: | Move Module Window To Separate Desktop Pane (And Back) Spike [WORKS] |
Eternal ID of this version: | #1020192/42 |
Text MD5: | 214876ec920ec0613f6a5e297aaca247 |
Transpilation MD5: | df94e971df11b5d75e7080d339bc3bff |
Author: | stefan |
Category: | javax / stefan's os |
Type: | JavaX source code (Dynamic Module) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2018-12-10 01:57:17 |
Source code size: | 1985 bytes / 56 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 368 / 711 |
Version history: | 41 change(s) |
Referenced in: | [show references] |