--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ 5c3bd4fda9bf Mon Jul 21 16:53:30 2008 +0300 @@ -0,0 +1,153 @@ +package org.netbeans.modules.gsf.api; + +import java.io.IOException; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.JEditorPane; +import javax.swing.text.Document; +import javax.swing.text.JTextComponent; +import org.openide.ErrorManager; +import org.openide.cookies.EditorCookie; +import org.openide.cookies.InstanceCookie; +import org.openide.cookies.LineCookie; +import org.openide.filesystems.FileObject; +import org.openide.filesystems.FileUtil; +import org.openide.loaders.DataObject; +import org.openide.loaders.DataObjectNotFoundException; +import org.openide.text.Line; +import org.openide.util.Exceptions; +import org.openide.util.Lookup; + +/** + * Provides the FileObject from a Document. Normally this means getting the info + * from the Document's stream, but other implementations might exist. + * + * @author Emilian Bold + */ +public abstract class DataLoadersBridge { + + private static Logger log = Logger.getLogger(DataLoadersBridge.class.getName()); + + public abstract Object createInstance(FileObject file); + + public abstract Document getDocument(FileObject fo); + + /** + * @return Text of the given line in the document + */ + public abstract String getLine(Document doc, int lineNumber); + + public abstract JEditorPane[] getOpenedPanes(FileObject fo); + + public abstract FileObject getFileObject(Document doc); + + public FileObject getFileObject(JTextComponent text) { + return getFileObject(text.getDocument()); + } + //--- + private static DataLoadersBridge DEFAULT_ADAPTOR = new DataLoadersBridge() { + + @Override + public FileObject getFileObject(Document doc) { + Object o = doc.getProperty(Document.StreamDescriptionProperty); + if (o instanceof DataObject) { + return ((DataObject) o).getPrimaryFile(); + } else if (o instanceof FileObject) { + return (FileObject) o; + } else if (o != null) { + log.warning("Unable to return FileObject for Document " + doc + ". StreamDescriptionProperty points to non-DataLoader, non-FileObject instace: " + o); + } + return null; + } + + @Override + public Document getDocument(FileObject file) { + try { + DataObject d = DataObject.find(file); + EditorCookie ec = (EditorCookie) d.getCookie(EditorCookie.class); + + if (ec == null) { + return null; + } + return ec.getDocument(); + } catch (IOException e) { + Logger.global.log(Level.INFO, "SemanticHighlighter: Cannot find DataObject for file: " + FileUtil.getFileDisplayName(file), e); + return null; + } + } + + @Override + public JEditorPane[] getOpenedPanes(FileObject fo) { + DataObject dobj; + try { + dobj = DataObject.find(fo); + } catch (DataObjectNotFoundException ex) { + return new JEditorPane[0]; + } + + EditorCookie editorCookie = dobj.getCookie(EditorCookie.class); + + if (editorCookie == null) { + return new JEditorPane[0]; + } + + return editorCookie.getOpenedPanes(); + } + + @Override + public Object createInstance(FileObject file) { + assert file.getExt().equals("instance"); // NOI18N + // Construct the service lazily using the instance cookie on the provided data object + try { + DataObject dobj = DataObject.find(file); + InstanceCookie ic = dobj.getCookie(InstanceCookie.class); + return ic.instanceCreate(); + } catch (ClassNotFoundException e) { + ErrorManager.getDefault().notify(e); + } catch (DataObjectNotFoundException e) { + ErrorManager.getDefault().notify(e); + } catch (IOException e) { + ErrorManager.getDefault().notify(e); + } + return null; + } + + @Override + public FileObject getPrimaryFile(FileObject fileObject) { + try { + DataObject dobj = DataObject.find(fileObject); + + if (dobj != null) { + return dobj.getPrimaryFile(); + } + return null; + } catch (DataObjectNotFoundException ex) { + Exceptions.printStackTrace(ex); + return null; + } + } + + @Override + public String getLine(Document doc, int lineNumber) { + DataObject dObj = (DataObject) doc.getProperty(doc.StreamDescriptionProperty); + LineCookie lc = dObj.getCookie(LineCookie.class); + Line line = lc.getLineSet().getCurrent(lineNumber); + + return line.getText(); + } + }; + private static DataLoadersBridge instance = null; + + public synchronized static DataLoadersBridge getDefault() { + if (instance == null) { + instance = Lookup.getDefault().lookup(DataLoadersBridge.class); + //TODO: listen on the lookup ? Seems too much + if (instance == null) { + instance = DEFAULT_ADAPTOR; + } + } + return instance; + } + + public abstract FileObject getPrimaryFile(FileObject fileObject); +} --- a/gsf/src/org/netbeans/modules/editor/gsfret/EditRegionsImpl.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/editor/gsfret/EditRegionsImpl.java Mon Jul 21 16:53:30 2008 +0300 @@ -36,10 +36,8 @@ import org.netbeans.modules.gsf.api.OffsetRange; import org.netbeans.modules.gsf.Language; import org.netbeans.modules.gsf.LanguageRegistry; -import org.openide.cookies.EditorCookie; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.openide.filesystems.FileObject; -import org.openide.loaders.DataObject; -import org.openide.loaders.DataObjectNotFoundException; import org.openide.util.Exceptions; @@ -68,22 +66,7 @@ } // Update caret listener - DataObject dobj; - - try { - dobj = DataObject.find(fo); - } - catch (DataObjectNotFoundException ex){ - return; - } - - EditorCookie editorCookie = dobj.getCookie(EditorCookie.class); - - if (editorCookie == null) { - return; - } - - JEditorPane[] panes = editorCookie.getOpenedPanes(); + JEditorPane[] panes = DataLoadersBridge.getDefault().getOpenedPanes(fo); if ((panes == null) || (panes.length == 0)) { return; --- a/gsf/src/org/netbeans/modules/editor/gsfret/InstantRenameAction.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/editor/gsfret/InstantRenameAction.java Mon Jul 21 16:53:30 2008 +0300 @@ -62,10 +62,10 @@ import org.netbeans.editor.Utilities; import org.netbeans.modules.gsf.Language; import org.netbeans.modules.gsf.LanguageRegistry; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.refactoring.api.ui.RefactoringActionsFactory; import org.openide.ErrorManager; import org.openide.cookies.EditorCookie; -import org.openide.loaders.DataObject; import org.openide.nodes.Node; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -106,9 +106,7 @@ return; } - DataObject od = - (DataObject)target.getDocument().getProperty(Document.StreamDescriptionProperty); - Source js = Source.forFileObject(od.getPrimaryFile()); + Source js = Source.forFileObject(DataLoadersBridge.getDefault().getFileObject(target)); final boolean[] wasResolved = new boolean[1]; final String[] message = new String[1]; final Set[] changePoints = new Set[1]; --- a/gsf/src/org/netbeans/modules/editor/gsfret/InstantRenamePerformer.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/editor/gsfret/InstantRenamePerformer.java Mon Jul 21 16:53:30 2008 +0300 @@ -66,13 +66,10 @@ import org.netbeans.editor.BaseDocument; import org.netbeans.editor.BaseKit; import org.netbeans.lib.editor.util.swing.MutablePositionRegion; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.gsf.api.OffsetRange; -import org.netbeans.spi.editor.highlighting.HighlightsLayer; -import org.netbeans.spi.editor.highlighting.HighlightsLayerFactory; -import org.netbeans.spi.editor.highlighting.HighlightsLayerFactory.Context; -import org.netbeans.spi.editor.highlighting.ZOrder; import org.netbeans.spi.editor.highlighting.support.OffsetsBag; -import org.openide.loaders.DataObject; +import org.openide.filesystems.FileObject; import org.openide.text.NbDocument; /** @@ -334,10 +331,10 @@ if (bag == null) { doc.putProperty(InstantRenamePerformer.class, bag = new OffsetsBag(doc)); - Object stream = doc.getProperty(Document.StreamDescriptionProperty); + Object stream = DataLoadersBridge.getDefault().getFileObject(doc); - if (stream instanceof DataObject) { - Logger.getLogger("TIMER").log(Level.FINE, "Instant Rename Highlights Bag", new Object[] {((DataObject) stream).getPrimaryFile(), bag}); //NOI18N + if (stream instanceof FileObject) { + Logger.getLogger("TIMER").log(Level.FINE, "Instant Rename Highlights Bag", new Object[] {(FileObject) stream, bag}); //NOI18N } } --- a/gsf/src/org/netbeans/modules/gsf/Language.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/gsf/Language.java Mon Jul 21 16:53:30 2008 +0300 @@ -40,7 +40,6 @@ */ package org.netbeans.modules.gsf; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.swing.Action; @@ -60,11 +59,7 @@ import org.netbeans.modules.gsf.spi.DefaultLanguageConfig; import org.netbeans.modules.gsfret.editor.semantic.ColoringManager; import org.netbeans.modules.gsfret.hints.infrastructure.GsfHintsManager; -import org.openide.ErrorManager; -import org.openide.cookies.InstanceCookie; import org.openide.filesystems.FileObject; -import org.openide.loaders.DataObject; -import org.openide.loaders.DataObjectNotFoundException; /** @@ -282,20 +277,7 @@ // XXX This is crying out for generics! private Object createInstance(FileObject file) { - assert file.getExt().equals("instance"); // NOI18N - // Construct the service lazily using the instance cookie on the provided data object - try { - DataObject dobj = DataObject.find(file); - InstanceCookie ic = dobj.getCookie(InstanceCookie.class); - return ic.instanceCreate(); - } catch (ClassNotFoundException e) { - ErrorManager.getDefault().notify(e); - } catch (DataObjectNotFoundException e) { - ErrorManager.getDefault().notify(e); - } catch (IOException e) { - ErrorManager.getDefault().notify(e); - } - return null; + return DataLoadersBridge.getDefault().createInstance(file); } @Override --- a/gsf/src/org/netbeans/modules/gsfret/editor/fold/GsfFoldManager.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/gsfret/editor/fold/GsfFoldManager.java Mon Jul 21 16:53:30 2008 +0300 @@ -78,7 +78,7 @@ import org.openide.filesystems.FileObject; import org.netbeans.modules.gsf.Language; import org.netbeans.modules.gsf.LanguageRegistry; -import org.openide.loaders.DataObject; +import org.netbeans.modules.gsf.api.DataLoadersBridge; /** * This file is originally from Retouche, the Java Support @@ -210,11 +210,11 @@ public synchronized void initFolds(FoldHierarchyTransaction transaction) { Document doc = operation.getHierarchy().getComponent().getDocument(); - DataObject od = (DataObject) doc.getProperty(Document.StreamDescriptionProperty); + FileObject od = DataLoadersBridge.getDefault().getFileObject(doc); if (od != null) { currentFolds = new HashMap(); - task = JavaElementFoldTask.getTask(od.getPrimaryFile()); + task = JavaElementFoldTask.getTask(od); task.setGsfFoldManager(GsfFoldManager.this); } } --- a/gsf/src/org/netbeans/modules/gsfret/editor/hyperlink/GoToSupport.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/gsfret/editor/hyperlink/GoToSupport.java Mon Jul 21 16:53:30 2008 +0300 @@ -68,12 +68,12 @@ import org.netbeans.modules.gsf.GsfHtmlFormatter; import org.netbeans.modules.gsf.Language; import org.netbeans.modules.gsf.LanguageRegistry; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.gsfret.editor.completion.GsfCompletionProvider; import org.netbeans.napi.gsfret.source.SourceUtils; import org.openide.awt.HtmlBrowser; import org.openide.awt.StatusDisplayer; import org.openide.filesystems.FileObject; -import org.openide.loaders.DataObject; import org.openide.util.Exceptions; import org.openide.util.NbBundle; @@ -266,9 +266,7 @@ } private static FileObject getFileObject(Document doc) { - DataObject od = (DataObject)doc.getProperty(Document.StreamDescriptionProperty); - - return (od != null) ? od.getPrimaryFile() : null; + return DataLoadersBridge.getDefault().getFileObject(doc); } public int[] getHyperlinkSpan(Document doc, int offset) { --- a/gsf/src/org/netbeans/modules/gsfret/editor/semantic/MarkOccurrencesHighlighter.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/gsfret/editor/semantic/MarkOccurrencesHighlighter.java Mon Jul 21 16:53:30 2008 +0300 @@ -41,7 +41,6 @@ package org.netbeans.modules.gsfret.editor.semantic; import java.awt.Color; -import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -61,14 +60,12 @@ import org.netbeans.modules.gsf.Language; import org.netbeans.modules.gsf.LanguageRegistry; import org.netbeans.modules.gsf.api.ColoringAttributes.Coloring; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.gsf.api.annotations.NonNull; import org.netbeans.modules.gsfret.hints.infrastructure.Pair; import org.netbeans.spi.editor.highlighting.support.OffsetsBag; import org.openide.ErrorManager; -import org.openide.cookies.EditorCookie; import org.openide.filesystems.FileObject; -import org.openide.filesystems.FileUtil; -import org.openide.loaders.DataObject; import org.openide.util.NbBundle; /** @@ -93,18 +90,7 @@ public static final Color ES_COLOR = new Color( 175, 172, 102 ); // new Color(244, 164, 113); public Document getDocument() { - try { - DataObject d = DataObject.find(file); - EditorCookie ec = (EditorCookie) d.getCookie(EditorCookie.class); - - if (ec == null) - return null; - - return ec.getDocument(); - } catch (IOException e) { - Logger.global.log(Level.INFO, "SemanticHighlighter: Cannot find DataObject for file: " + FileUtil.getFileDisplayName(file), e); - return null; - } + return DataLoadersBridge.getDefault().getDocument(file); } public void run(CompilationInfo info) { @@ -224,7 +210,6 @@ if (bag == null) { doc.putProperty(MarkOccurrencesHighlighter.class, bag = new OffsetsBag(doc, false)); - Object stream = doc.getProperty(Document.StreamDescriptionProperty); final OffsetsBag bagFin = bag; DocumentListener l = new DocumentListener() { public void insertUpdate(DocumentEvent e) { @@ -238,9 +223,10 @@ doc.addDocumentListener(l); - if (stream instanceof DataObject) { - Logger.getLogger("TIMER").log(Level.FINE, "MarkOccurrences Highlights Bag", new Object[] {((DataObject) stream).getPrimaryFile(), bag}); //NOI18N - Logger.getLogger("TIMER").log(Level.FINE, "MarkOccurrences Highlights Bag Listener", new Object[] {((DataObject) stream).getPrimaryFile(), l}); //NOI18N + Object stream = DataLoadersBridge.getDefault().getFileObject(doc); + if (stream instanceof FileObject) { + Logger.getLogger("TIMER").log(Level.FINE, "MarkOccurrences Highlights Bag", new Object[] {(FileObject) stream, bag}); //NOI18N + Logger.getLogger("TIMER").log(Level.FINE, "MarkOccurrences Highlights Bag Listener", new Object[] {(FileObject) stream, l}); //NOI18N } } --- a/gsf/src/org/netbeans/modules/gsfret/editor/semantic/SemanticHighlighter.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/gsfret/editor/semantic/SemanticHighlighter.java Mon Jul 21 16:53:30 2008 +0300 @@ -40,7 +40,6 @@ */ package org.netbeans.modules.gsfret.editor.semantic; -import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -57,15 +56,13 @@ import org.netbeans.modules.gsf.api.ColoringAttributes; import org.netbeans.napi.gsfret.source.CompilationInfo; import org.netbeans.modules.gsf.api.ColoringAttributes.Coloring; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.gsf.api.EditHistory; import org.netbeans.modules.gsf.api.OffsetRange; import org.netbeans.modules.gsf.api.ParserResult; import org.netbeans.modules.gsf.api.SemanticAnalyzer; import org.openide.ErrorManager; -import org.openide.cookies.EditorCookie; import org.openide.filesystems.FileObject; -import org.openide.filesystems.FileUtil; -import org.openide.loaders.DataObject; /** @@ -87,18 +84,7 @@ } public Document getDocument() { - try { - DataObject d = DataObject.find(file); - EditorCookie ec = (EditorCookie) d.getCookie(EditorCookie.class); - - if (ec == null) - return null; - - return ec.getDocument(); - } catch (IOException e) { - Logger.global.log(Level.INFO, "SemanticHighlighter: Cannot find DataObject for file: " + FileUtil.getFileDisplayName(file), e); - return null; - } + return DataLoadersBridge.getDefault().getDocument(file); } public @Override void run(CompilationInfo info) { --- a/gsf/src/org/netbeans/modules/gsfret/hints/GsfHintsProvider.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/gsfret/hints/GsfHintsProvider.java Mon Jul 21 16:53:30 2008 +0300 @@ -41,7 +41,6 @@ package org.netbeans.modules.gsfret.hints; -import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -55,9 +54,6 @@ import org.netbeans.spi.editor.hints.Severity; import org.openide.ErrorManager; import org.openide.filesystems.FileObject; -import org.openide.filesystems.FileUtil; -import org.openide.loaders.DataObject; -import org.openide.text.Line; import java.util.EnumMap; import java.util.Set; import java.util.logging.Level; @@ -69,6 +65,7 @@ import org.netbeans.modules.gsf.api.HintsProvider; import org.netbeans.modules.gsf.api.ParserResult; import org.netbeans.modules.gsf.LanguageRegistry; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.gsf.api.Hint; import org.netbeans.modules.gsf.api.RuleContext; import org.netbeans.modules.gsfret.hints.infrastructure.GsfHintsManager; @@ -77,8 +74,6 @@ import org.netbeans.spi.editor.hints.ErrorDescription; import org.netbeans.spi.editor.hints.ErrorDescriptionFactory; import org.netbeans.spi.editor.hints.HintsController; -import org.openide.cookies.EditorCookie; -import org.openide.cookies.LineCookie; import org.openide.text.NbDocument; @@ -197,34 +192,18 @@ } public Document getDocument() { - try { - DataObject d = DataObject.find(file); - EditorCookie ec = d.getCookie(EditorCookie.class); - - if (ec == null) { - return null; - } - - return ec.getDocument(); - } catch (IOException e) { - Logger.getLogger(GsfHintsProvider.class.getName()).log(Level.INFO, "GsfHintsProvider: Cannot find DataObject for file: " + FileUtil.getFileDisplayName(file), e); - return null; - } + return DataLoadersBridge.getDefault().getDocument(file); } private Position[] getLine(CompilationInfo info, Error d, final Document doc, int startOffset, int endOffset) { StyledDocument sdoc = (StyledDocument) doc; - DataObject dObj = (DataObject)doc.getProperty(doc.StreamDescriptionProperty ); - LineCookie lc = dObj.getCookie(LineCookie.class); int lineNumber = NbDocument.findLineNumber(sdoc, startOffset); int lineOffset = NbDocument.findLineOffset(sdoc, lineNumber); - Line line = lc.getLineSet().getCurrent(lineNumber); + String text = DataLoadersBridge.getDefault().getLine(doc, lineNumber); boolean rangePrepared = false; if (!rangePrepared) { - String text = line.getText(); - int column = 0; int length = text.length(); --- a/gsf/src/org/netbeans/modules/gsfret/hints/infrastructure/GsfHintsManager.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/gsfret/hints/infrastructure/GsfHintsManager.java Mon Jul 21 16:53:30 2008 +0300 @@ -39,7 +39,6 @@ package org.netbeans.modules.gsfret.hints.infrastructure; -import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -64,6 +63,7 @@ import org.netbeans.modules.gsf.api.HintSeverity; import org.netbeans.modules.gsf.api.Hint; import org.netbeans.modules.gsf.api.CompilationInfo; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.gsf.api.HintsProvider; import org.netbeans.modules.gsf.api.OffsetRange; import org.netbeans.modules.gsf.api.ParserResult; @@ -77,12 +77,9 @@ import org.netbeans.spi.editor.hints.ErrorDescriptionFactory; import org.netbeans.spi.editor.hints.HintsController; import org.netbeans.spi.options.OptionsPanelController; -import org.openide.cookies.InstanceCookie; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileSystem; import org.openide.filesystems.Repository; -import org.openide.loaders.DataObject; -import org.openide.util.Exceptions; /** * @@ -450,23 +447,12 @@ } private static Rule instantiateRule( FileObject fileObject ) { - try { - DataObject dobj = DataObject.find(fileObject); - InstanceCookie ic = dobj.getCookie( InstanceCookie.class ); - Object instance = ic.instanceCreate(); - - if (instance instanceof Rule) { - return (Rule) instance; - } else { - return null; - } - } catch( IOException e ) { - LOG.log(Level.INFO, null, e); - } catch ( ClassNotFoundException e ) { - LOG.log(Level.INFO, null, e); + Object instance = DataLoadersBridge.getDefault().createInstance(fileObject); + if (instance instanceof Rule) { + return (Rule) instance; + } else { + return null; } - - return null; } public final ErrorDescription createDescription(Hint desc, RuleContext context, --- a/gsf/src/org/netbeans/modules/gsfret/navigation/actions/OpenAction.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/gsfret/navigation/actions/OpenAction.java Mon Jul 21 16:53:30 2008 +0300 @@ -41,28 +41,14 @@ package org.netbeans.modules.gsfret.navigation.actions; -import java.awt.Container; -import java.awt.Point; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.util.List; -import javax.swing.JEditorPane; -import org.openide.awt.*; -import org.openide.awt.StatusDisplayer; -import org.openide.cookies.*; -import org.openide.cookies.EditorCookie; import org.openide.filesystems.FileObject; -import org.openide.loaders.DataObject; -import org.openide.nodes.*; -import org.openide.text.PositionBounds; import org.openide.util.*; import javax.swing.*; import java.awt.event.*; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.gsf.api.ElementHandle; import org.netbeans.napi.gsfret.source.Source; import org.netbeans.napi.gsfret.source.UiUtils; -import org.openide.loaders.DataObjectNotFoundException; -import org.openide.windows.TopComponent; /** * This file is originally from Retouche, the Java Support @@ -95,19 +81,15 @@ return; } ElementHandle handle = elementHandle; - try { - DataObject activeFile = DataObject.find(fileObject); + FileObject primaryFile = DataLoadersBridge.getDefault().getPrimaryFile(fileObject); - if ((activeFile != null) && (handle != null)) { - Source js = - Source.forFileObject(activeFile.getPrimaryFile()); + if ((primaryFile != null) && (handle != null)) { + Source js = + Source.forFileObject(primaryFile); - if (js != null) { - UiUtils.open(js, handle); - } + if (js != null) { + UiUtils.open(js, handle); } - } catch (DataObjectNotFoundException dnfe) { - Exceptions.printStackTrace(dnfe); } } --- a/gsf/src/org/netbeans/modules/gsfret/source/ActivatedDocumentListener.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/modules/gsfret/source/ActivatedDocumentListener.java Mon Jul 21 16:53:30 2008 +0300 @@ -42,21 +42,16 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.io.IOException; -import javax.swing.text.Document; import javax.swing.text.JTextComponent; import org.netbeans.api.editor.EditorRegistry; -import org.openide.filesystems.FileObject; -import org.openide.loaders.DataObject; -import org.openide.util.Exceptions; import java.io.IOException; import javax.swing.text.Document; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.gsfpath.api.classpath.ClassPath; import org.netbeans.napi.gsfret.source.Source; import org.netbeans.modules.gsfret.source.usages.RepositoryUpdater; import org.openide.filesystems.FileObject; -import org.openide.loaders.DataObject; import org.openide.util.Exceptions; /** @@ -98,19 +93,12 @@ return; } - Object sourceProperty = active.getProperty(Document.StreamDescriptionProperty); + FileObject activeFile = DataLoadersBridge.getDefault().getFileObject(active); - if (!(sourceProperty instanceof DataObject)) { + if(activeFile==null){ + //could be return; } - - DataObject source = (DataObject) sourceProperty; - - if (source == null) { - return; - } - - FileObject activeFile = source.getPrimaryFile(); if (lastValidFile == activeFile) { return; --- a/gsf/src/org/netbeans/napi/gsfret/source/ModificationResult.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/napi/gsfret/source/ModificationResult.java Mon Jul 21 16:53:30 2008 +0300 @@ -48,10 +48,9 @@ import javax.swing.text.Document; import org.netbeans.api.queries.FileEncodingQuery; import org.netbeans.editor.BaseDocument; -import org.openide.cookies.EditorCookie; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; -import org.openide.loaders.DataObject; import org.openide.text.PositionRef; /** @@ -101,14 +100,11 @@ } private void commit(final FileObject fo, final List differences, Writer out) throws IOException { - DataObject dObj = DataObject.find(fo); - EditorCookie ec = dObj != null ? dObj.getCookie(org.openide.cookies.EditorCookie.class) : null; // if editor cookie was found and user does not provided his own // writer where he wants to see changes, commit the changes to // found document. - if (ec != null && out == null) { - Document doc = ec.getDocument(); - if (doc != null) { + Document doc = DataLoadersBridge.getDefault().getDocument(fo); + if (doc != null && out == null) { if (doc instanceof BaseDocument) ((BaseDocument)doc).atomicLock(); try { @@ -139,7 +135,6 @@ ((BaseDocument)doc).atomicUnlock(); } return; - } } InputStream ins = null; ByteArrayOutputStream baos = null; --- a/gsf/src/org/netbeans/napi/gsfret/source/Source.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/napi/gsfret/source/Source.java Mon Jul 21 16:53:30 2008 +0300 @@ -99,6 +99,7 @@ import org.netbeans.napi.gsfret.source.ModificationResult.Difference; import org.netbeans.modules.gsf.Language; import org.netbeans.modules.gsf.LanguageRegistry; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.modules.gsf.api.EditHistory; import org.netbeans.modules.gsf.api.IncrementalEmbeddingModel; import org.netbeans.modules.gsf.api.IncrementalParser; @@ -348,9 +349,9 @@ Reference ref = (Reference)doc.getProperty(Source.class); Source js = ref != null ? ref.get() : null; if (js == null) { - DataObject dObj = (DataObject)doc.getProperty(Document.StreamDescriptionProperty); - if (dObj != null) - js = forFileObject(dObj.getPrimaryFile()); + FileObject fo = DataLoadersBridge.getDefault().getFileObject(doc); + if (fo != null) + js = forFileObject(fo); } return js; } --- a/gsf/src/org/netbeans/napi/gsfret/source/support/EditorAwareSourceTaskFactory.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/napi/gsfret/source/support/EditorAwareSourceTaskFactory.java Mon Jul 21 16:53:30 2008 +0300 @@ -44,13 +44,10 @@ import java.util.List; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import javax.swing.text.Document; -import javax.swing.text.JTextComponent; import org.netbeans.napi.gsfret.source.Phase; import org.netbeans.napi.gsfret.source.Source.Priority; import org.netbeans.napi.gsfret.source.SourceTaskFactory; import org.openide.filesystems.FileObject; -import org.openide.loaders.DataObject; /** * This file is originally from Retouche, the Java Support --- a/gsf/src/org/netbeans/napi/gsfret/source/support/OpenedEditors.java Mon Jul 21 14:31:03 2008 +0400 +++ a/gsf/src/org/netbeans/napi/gsfret/source/support/OpenedEditors.java Mon Jul 21 16:53:30 2008 +0300 @@ -43,7 +43,6 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -55,15 +54,12 @@ import javax.swing.JEditorPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import javax.swing.text.Document; import javax.swing.text.JTextComponent; import org.netbeans.api.editor.EditorRegistry; -import org.netbeans.editor.Registry; import org.netbeans.modules.gsf.LanguageRegistry; +import org.netbeans.modules.gsf.api.DataLoadersBridge; import org.netbeans.napi.gsfret.source.Source; import org.openide.filesystems.FileObject; -import org.openide.filesystems.FileUtil; -import org.openide.loaders.DataObject; import org.openide.util.Parameters; /** @@ -163,19 +159,7 @@ } static FileObject getFileObject(JTextComponent pane) { - Object source = pane.getDocument().getProperty(Document.StreamDescriptionProperty); - - if (!(source instanceof DataObject)) { - return null; - } - - DataObject file = (DataObject) source; - - if (file != null) { - return file.getPrimaryFile(); - } - - return null; + return DataLoadersBridge.getDefault().getFileObject(pane); } /**Checks if the given file is supported. See {@link #filterSupportedMIMETypes}