import javax.swing.SwingUtilities;
import org.flexdock.docking.DockingConstants;
+import org.flexdock.docking.DockingManager;
import org.flexdock.docking.DockingPort;
import org.flexdock.docking.activation.ActiveDockableTracker;
import org.flexdock.docking.event.DockingEvent;
import org.scilab.modules.gui.bridge.helpbrowser.SwingScilabHelpBrowser;
import org.scilab.modules.gui.bridge.label.SwingScilabLabel;
import org.scilab.modules.gui.bridge.listbox.SwingScilabListBox;
+import org.scilab.modules.gui.bridge.menubar.SwingScilabMenuBar;
import org.scilab.modules.gui.bridge.popupmenu.SwingScilabPopupMenu;
import org.scilab.modules.gui.bridge.pushbutton.SwingScilabPushButton;
import org.scilab.modules.gui.bridge.radiobutton.SwingScilabRadioButton;
import org.scilab.modules.gui.bridge.slider.SwingScilabSlider;
+import org.scilab.modules.gui.bridge.toolbar.SwingScilabToolBar;
import org.scilab.modules.gui.bridge.tree.SwingScilabTree;
import org.scilab.modules.gui.bridge.uidisplaytree.SwingScilabUiDisplayTree;
import org.scilab.modules.gui.bridge.uiimage.SwingScilabUiImage;
*/
@Override
public void setMenuBar(MenuBar newMenuBar) {
+ if (this.menuBar != null) {
+ ((SwingScilabMenuBar) this.menuBar.getAsSimpleMenuBar()).close();
+ }
this.menuBar = newMenuBar;
}
*/
@Override
public void setToolBar(ToolBar newToolBar) {
+ if (this.toolBar != null) {
+ ((SwingScilabToolBar) this.toolBar.getAsSimpleToolBar()).close();
+ }
this.toolBar = newToolBar;
}
setInfoBar(null);
setTitlebar(null);
removeAll();
- setActive(false);
+ //setActive(false);
scrolling = null;
contentPane = null;
+ DockingManager.unregisterDockable((Component) this);
// without this children canvas are not released.
Container dummyContainer = new Container();
for (int kChild = 0; kChild < children.length; kChild++) {
int childType = (Integer) GraphicController.getController().getProperty(children[kChild], __GO_TYPE__);
if (childType == __GO_UIMENU__
- || childType == __GO_UIPARENTMENU__
- || childType == __GO_UICHILDMENU__
- || childType == __GO_UICHECKEDMENU__) {
+ || childType == __GO_UIPARENTMENU__
+ || childType == __GO_UICHILDMENU__
+ || childType == __GO_UICHECKEDMENU__) {
String cb = (String) GraphicController.getController().getProperty(children[kChild], __GO_CALLBACK__);
SwingView.getFromId(children[kChild]).update(__GO_CALLBACK__, replaceFigureID(cb, parentFigureId));
String[] menuChildren = (String[]) GraphicController.getController().getProperty(children[kChild], __GO_CHILDREN__);
import org.flexdock.docking.defaults.DefaultDockingStrategy;
import org.flexdock.docking.drag.effects.EffectsManager;
import org.flexdock.docking.drag.preview.GhostPreview;
+import org.flexdock.docking.event.hierarchy.DockingPortTracker;
import org.scilab.modules.action_binding.InterpreterManagement;
import org.scilab.modules.commons.gui.ScilabKeyStroke;
import org.scilab.modules.gui.bridge.menubar.SwingScilabMenuBar;
// By default ctrl+w close the window
ActionListener listener = new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- processWindowEvent(new WindowEvent(SwingScilabWindow.this, WindowEvent.WINDOW_CLOSING));
- }
- };
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ processWindowEvent(new WindowEvent(SwingScilabWindow.this, WindowEvent.WINDOW_CLOSING));
+ }
+ };
getRootPane().registerKeyboardAction(listener, ScilabKeyStroke.getKeyStroke("OSSCKEY W"), JComponent.WHEN_IN_FOCUSED_WINDOW);
// TODO : Only for testing : Must be removed
setLocationByPlatform(true);
addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosing(WindowEvent e) {
- ClosingOperationsManager.startClosingOperation(SwingScilabWindow.this);
- }
- });
+ @Override
+ public void windowClosing(WindowEvent e) {
+ ClosingOperationsManager.startClosingOperation(SwingScilabWindow.this);
+ }
+ });
if (MAC_OS_X) {
registerForMacOSXEvents();
/* javasci bug: See bug 9544 why we are doing this check */
try {
SwingUtilities.invokeAndWait(new Runnable() {
- @Override
- public void run() {
- raiseToFront();
- }
- });
+ @Override
+ public void run() {
+ raiseToFront();
+ }
+ });
} catch (InterruptedException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
tab.close();
DockingManager.close(tab);
}
- if (getDockingPort().getDockables().isEmpty()) {
+
+ if (getDockingPort() == null || getDockingPort().getDockables().isEmpty()) {
// remove xxxBars
if (toolBar != null) {
((SwingScilabToolBar) toolBar).close();
// clean all
this.removeAll();
close();
-
- // disable docking port
- ActiveDockableTracker.getTracker(this).setActive(null);
- sciDockingPort.removeDockingListener(sciDockingListener);
- sciDockingPort = null;
- sciDockingListener = null;
} else {
/* Make sur a Tab is active */
Set<SwingScilabTab> docks = sciDockingPort.getDockables();
* @param id the id of the corresponding window object
*/
@Override
- public void setElementId(int id) {
+ public void setElementId(int id) {System.out.println("Window="+id);
this.elementId = id;
//sciDockingListener.setAssociatedWindowId(id);
}
public void close() {
try {
dispose();
+ // disable docking port
+ ActiveDockableTracker.getTracker(this).setActive(null);
+ if (sciDockingPort != null) {
+ sciDockingPort.removeDockingListener(sciDockingListener);
+ sciDockingPort = null;
+ sciDockingListener = null;
+ }
+ DockingPortTracker.remove(this);
} catch (IllegalStateException e) {
enableInputMethods(false);
}