protected Window getViewerWindow() {
if (!isViewerWindowVisible()) {
NodeViewer nodeViewer = createViewerInstance();
Window viewerWindow = new Window(this, nodeViewer);
nodeViewer.applyDefaultLayout();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
if (getWorld() != null) {
if (viewerWindowRef.get() != null && !viewerWindowRef.get().isDestroyed()) {