diff -r 766e8327016d web.client.javascript.debugger.api/src/org/netbeans/modules/web/client/javascript/debugger/ui/NbJSEditorUtil.java --- a/web.client.javascript.debugger.api/src/org/netbeans/modules/web/client/javascript/debugger/ui/NbJSEditorUtil.java Fri Jun 06 19:28:24 2008 +0200 +++ b/web.client.javascript.debugger.api/src/org/netbeans/modules/web/client/javascript/debugger/ui/NbJSEditorUtil.java Wed Jun 11 17:27:38 2008 +0200 @@ -43,12 +43,10 @@ package org.netbeans.modules.web.client. import java.awt.EventQueue; import java.io.File; -import java.lang.reflect.InvocationTargetException; import java.util.logging.Level; import javax.swing.Action; import javax.swing.JEditorPane; -import javax.swing.SwingUtilities; import javax.swing.text.Caret; import javax.swing.text.StyledDocument; @@ -62,6 +60,7 @@ import org.netbeans.modules.web.client.j import org.netbeans.modules.web.client.javascript.debugger.ui.breakpoints.NbJSBreakpoint; import org.netbeans.modules.web.client.javascript.debugger.ui.breakpoints.NbJSBreakpointNodeActions; import org.netbeans.modules.web.client.javascript.debugger.ui.breakpoints.NbJSURIBreakpoint; +import org.netbeans.spi.debugger.ui.EditorContextDispatcher; import org.netbeans.spi.viewmodel.Models; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; @@ -71,16 +70,14 @@ import org.openide.filesystems.FileUtil; import org.openide.filesystems.FileUtil; import org.openide.loaders.DataObject; import org.openide.loaders.DataObjectNotFoundException; -import org.openide.nodes.Node; import org.openide.text.Line; import org.openide.text.NbDocument; import org.openide.util.NbBundle; -import org.openide.windows.TopComponent; public final class NbJSEditorUtil { public static final String HTML_MIME_TYPE = "text/html"; - private static final String JAVASCRIPT_MIME_TYPE = "text/javascript"; + public static final String JAVASCRIPT_MIME_TYPE = "text/javascript"; private static NbJSDebuggerAnnotation currentLineDA; @@ -226,19 +223,7 @@ public final class NbJSEditorUtil { * ones returns null. */ public static Line getCurrentLine() { - Node[] nodes = TopComponent.getRegistry().getCurrentNodes(); - if (nodes == null) - return null; - if (nodes.length != 1) - return null; - Node n = nodes[0]; - FileObject fo = n.getLookup().lookup(FileObject.class); - if (fo == null) { - DataObject dobj = n.getLookup().lookup(DataObject.class); - if (dobj != null) { - fo = dobj.getPrimaryFile(); - } - } + FileObject fo = EditorContextDispatcher.getDefault().getCurrentFile(); if (fo == null) { return null; } @@ -246,13 +231,10 @@ public final class NbJSEditorUtil { && !NbJSEditorUtil.isHTMLSource(fo)) { return null; } - LineCookie lineCookie = n.getCookie(LineCookie.class); - if (lineCookie == null) - return null; - EditorCookie editorCookie = n.getCookie(EditorCookie.class); + EditorCookie editorCookie = EditorContextDispatcher.getDefault().getCurrentEditorCookie(); if (editorCookie == null) return null; - JEditorPane jEditorPane = getEditorPane(editorCookie); + JEditorPane jEditorPane = EditorContextDispatcher.getDefault().getCurrentEditor(); if (jEditorPane == null) return null; StyledDocument document = editorCookie.getDocument(); @@ -263,39 +245,11 @@ public final class NbJSEditorUtil { return null; int lineNumber = NbDocument.findLineNumber(document, caret.getDot()); try { - Line.Set lineSet = lineCookie.getLineSet(); - assert lineSet != null : lineCookie; + Line.Set lineSet = editorCookie.getLineSet(); + assert lineSet != null : editorCookie; return lineSet.getCurrent(lineNumber); } catch (IndexOutOfBoundsException ex) { return null; - } - } - - private static JEditorPane getEditorPane_(EditorCookie editorCookie) { - JEditorPane[] op = editorCookie.getOpenedPanes(); - if ((op == null) || (op.length < 1)) - return null; - return op[0]; - } - - private static JEditorPane getEditorPane(final EditorCookie editorCookie) { - if (SwingUtilities.isEventDispatchThread()) { - return getEditorPane_(editorCookie); - } else { - final JEditorPane[] ce = new JEditorPane[1]; - try { - EventQueue.invokeAndWait(new Runnable() { - public void run() { - ce[0] = getEditorPane_(editorCookie); - } - }); - } catch (InvocationTargetException ex) { - NbJSUtil.severe(ex); - } catch (InterruptedException ex) { - NbJSUtil.severe(ex); - Thread.currentThread().interrupt(); - } - return ce[0]; } } diff -r 766e8327016d web.client.javascript.debugger.api/src/org/netbeans/modules/web/client/javascript/debugger/ui/ToolTipAnnotation.java --- a/web.client.javascript.debugger.api/src/org/netbeans/modules/web/client/javascript/debugger/ui/ToolTipAnnotation.java Fri Jun 06 19:28:24 2008 +0200 +++ b/web.client.javascript.debugger.api/src/org/netbeans/modules/web/client/javascript/debugger/ui/ToolTipAnnotation.java Wed Jun 11 17:27:38 2008 +0200 @@ -42,9 +42,7 @@ package org.netbeans.modules.web.client. package org.netbeans.modules.web.client.javascript.debugger.ui; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; import javax.swing.JEditorPane; -import javax.swing.SwingUtilities; import javax.swing.text.BadLocationException; import javax.swing.text.StyledDocument; import org.netbeans.api.debugger.DebuggerEngine; @@ -55,17 +53,15 @@ import org.netbeans.modules.web.client.j import org.netbeans.modules.web.client.javascript.debugger.js.api.JSObject; import org.netbeans.modules.web.client.javascript.debugger.js.api.JSProperty; import org.netbeans.modules.web.client.javascript.debugger.js.api.JSValue; -import org.openide.ErrorManager; +import org.netbeans.spi.debugger.ui.EditorContextDispatcher; import org.openide.cookies.EditorCookie; import org.openide.loaders.DataObject; -import org.openide.nodes.Node; import org.openide.text.Annotation; import org.openide.text.DataEditorSupport; import org.openide.text.Line; import org.openide.text.Line.Part; import org.openide.text.NbDocument; import org.openide.util.RequestProcessor; -import org.openide.windows.TopComponent; public final class ToolTipAnnotation extends Annotation implements Runnable { @@ -111,7 +107,7 @@ public final class ToolTipAnnotation ext } catch (IOException ex) { return; } - JEditorPane ep = getCurrentEditor(); + JEditorPane ep = EditorContextDispatcher.getDefault().getCurrentEditor(); if (ep == null) { return; } String expression = getIdentifier(doc, ep, NbDocument.findLineOffset(doc, lp.getLine().getLineNumber()) + lp.getColumn()); @@ -149,49 +145,6 @@ public final class ToolTipAnnotation ext return null; } - /** Returns current editor component instance. */ - private static JEditorPane getCurrentEditor_() { - EditorCookie e = getCurrentEditorCookie(); - if (e == null) { return null; } - JEditorPane[] op = e.getOpenedPanes(); - if ((op == null) || (op.length < 1)) { return null; } - return op[0]; - } - - private static JEditorPane getCurrentEditor() { - if (SwingUtilities.isEventDispatchThread()) { - return getCurrentEditor_(); - } else { - final JEditorPane[] ce = new JEditorPane[1]; - try { - SwingUtilities.invokeAndWait(new Runnable() { - public void run() { - ce[0] = getCurrentEditor_(); - } - }); - } catch (InvocationTargetException ex) { - ErrorManager.getDefault().notify(ex.getTargetException()); - } catch (InterruptedException ex) { - ErrorManager.getDefault().notify(ex); - } - return ce[0]; - } - } - - /** - * Returns current editor component instance. - * - * @return current editor component instance - */ - private static EditorCookie getCurrentEditorCookie() { - Node[] nodes = TopComponent.getRegistry().getActivatedNodes(); - if ((nodes == null) || (nodes.length != 1)) { - return null; - } - Node n = nodes[0]; - return n.getCookie(EditorCookie.class); - } - private static NbJSDebugger getDebugger() { DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager().getCurrentEngine(); return (currentEngine == null) ? null : diff -r 766e8327016d web.client.javascript.debugger.api/src/org/netbeans/modules/web/client/javascript/debugger/ui/breakpoints/NbJSBreakpointActionProvider.java --- a/web.client.javascript.debugger.api/src/org/netbeans/modules/web/client/javascript/debugger/ui/breakpoints/NbJSBreakpointActionProvider.java Fri Jun 06 19:28:24 2008 +0200 +++ b/web.client.javascript.debugger.api/src/org/netbeans/modules/web/client/javascript/debugger/ui/breakpoints/NbJSBreakpointActionProvider.java Wed Jun 11 17:27:38 2008 +0200 @@ -44,14 +44,12 @@ import java.beans.PropertyChangeListener import java.beans.PropertyChangeListener; import java.util.Collections; import java.util.Set; -import java.util.Vector; import org.netbeans.api.debugger.ActionsManager; import org.netbeans.modules.web.client.javascript.debugger.ui.NbJSEditorUtil; -import org.netbeans.spi.debugger.ActionsProviderListener; import org.netbeans.spi.debugger.ActionsProviderSupport; +import org.netbeans.spi.debugger.ui.EditorContextDispatcher; import org.openide.util.WeakListeners; -import org.openide.windows.TopComponent; /** * Provides actions for adding and removing Javascript breakpoints. @@ -64,8 +62,9 @@ public final class NbJSBreakpointActionP public NbJSBreakpointActionProvider() { setEnabled(ActionsManager.ACTION_TOGGLE_BREAKPOINT, true); - TopComponent.getRegistry().addPropertyChangeListener( - WeakListeners.propertyChange(this, TopComponent.getRegistry())); + PropertyChangeListener l = WeakListeners.propertyChange(this, EditorContextDispatcher.getDefault()); + EditorContextDispatcher.getDefault().addPropertyChangeListener(NbJSEditorUtil.JAVASCRIPT_MIME_TYPE, l); + EditorContextDispatcher.getDefault().addPropertyChangeListener(NbJSEditorUtil.HTML_MIME_TYPE, l); } @Override