Java源码示例:org.openide.loaders.MultiDataObject

示例1
/**
 * Tries to obtain an {@code EditorCookie} representing the given file.
 * @param  fileObj  file to get an {@code EditorCookie} from
 * @return  {@code EditorCookie} representing the file, or {@code null}
 * @throws  java.io.IOException
 *          if there was some I/O error while reading the file's content
 */
private static EditorCookie getEditorCookie(FileObject fileObj) throws IOException {
    DataObject dao;
    try {
        dao = DataObject.find(fileObj);
    } catch (DataObjectNotFoundException ex) {
        return null;
    }

    if (dao instanceof MultiDataObject) {
        MultiDataObject.Entry entry = findEntryForFile((MultiDataObject) dao, fileObj);
        if ((entry != null) && (entry instanceof CookieSet.Factory)) {
            CookieSet.Factory factory = (CookieSet.Factory) entry;
            return factory.createCookie(EditorCookie.class);   //can be null
        }
    }

    return dao.getCookie(EditorCookie.class);                  //can be null
}
 
示例2
/** Create the primary file entry.
* @param primaryFile primary file recognized by this loader
* @return primary entry for that file
*/
protected MultiDataObject.Entry createPrimaryEntry (MultiDataObject obj, FileObject primaryFile) {
    if (JAVA_EXTENSION.equals(primaryFile.getExt())) {
        return JavaDataSupport.createJavaFileEntry(obj, primaryFile);
    }
    else {
        return new FileEntry(obj, primaryFile);
    }
}
 
示例3
@Override
protected MultiDataObject.Entry createSecondaryEntry(MultiDataObject obj,
                                                     FileObject secondaryFile)
{
    assert FORM_EXTENSION.equals(secondaryFile.getExt());
    
    FileEntry formEntry = new FormEntry(obj, secondaryFile);
    ((FormDataObject)obj).formEntry = formEntry;
    return formEntry;
}
 
示例4
private FileObject fileForDocument(Document doc) {
    DataObject dobj = (DataObject) doc.getProperty(Document.StreamDescriptionProperty);
    LOG.log(Level.FINEST, "document {0} returns {1} for property=" + Document.StreamDescriptionProperty, new Object[] {doc, dobj});
    if (dobj == null) return null;
    LOG.log(Level.FINER, "looking up file for {0}", dobj);
    if (dobj instanceof MultiDataObject) {
        return fileForDataobject(doc, (MultiDataObject) dobj);
    } else if (dobj != null) {
        return dobj.getPrimaryFile();
    } else {
        return null;
    }
}
 
示例5
/** Set request parameters for a given entry.
* @param entry the entry
* @param args array of arguments
* @exception IOException if arguments cannot be set
*/
static void setRequestParams(MultiDataObject.Entry entry, String params) throws IOException {
    StringBuffer newParams=new StringBuffer();
    String s=null;
    if (params!=null){
        for (int i=0;i<params.length();i++) {
            char ch = params.charAt(i);
            if ((int)ch!=13 && (int)ch!=10) newParams.append(ch);
        }
        s=newParams.toString();
        if (s.length()==0) s=null;
    } 
    WebExecSupport.setQueryString(entry.getFile (), s);
}
 
示例6
private static EditorCookie.Observable getEditableCookie (File file) {
    EditorCookie.Observable editorCookie = null;
    if (file == null) {
        return null;
    }
    FileObject fileObj = FileUtil.toFileObject(file);
    if (fileObj != null) {
        try {
            DataObject dao = DataObject.find(fileObj);
            if (dao instanceof MultiDataObject) {
                MultiDataObject mdao = (MultiDataObject) dao;
                for (MultiDataObject.Entry entry : mdao.secondaryEntries()) {
                    if (fileObj == entry.getFile() && entry instanceof CookieSet.Factory) {
                        CookieSet.Factory factory = (CookieSet.Factory) entry;
                        EditorCookie ec = factory.createCookie(EditorCookie.class);
                        if (ec instanceof EditorCookie.Observable) {
                            editorCookie = (EditorCookie.Observable) ec;
                        }
                    }
                }
            }
            if (editorCookie == null) {
                EditorCookie cookie = dao.getCookie(EditorCookie.class);
                if (cookie instanceof EditorCookie.Observable) {
                    editorCookie = (EditorCookie.Observable) cookie;
                }
            }
        } catch (DataObjectNotFoundException ex) {
        }
    }
    return editorCookie;
}
 
示例7
protected MultiDataObject createMultiObject (final FileObject primaryFile)
throws DataObjectExistsException, IOException {
    JspDataObject obj = createJspObject(primaryFile, this);
    // [PENDING] add these from JspDataObject, not from the loader
    obj.getCookieSet0 ().add (new TagLibParseSupport(primaryFile));
    return obj;
}
 
示例8
@Override
protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException {
    if (getExtensions().isRegistered(primaryFile)) {
        return new TopDataObject(primaryFile, this);
    }
    return null;
}
 
示例9
/** Create the <code>JaxWsDataObject</code>.
*
* @param primaryFile the primary file
* @return the data object for this file
* @exception DataObjectExistsException if the primary file already has a data object
*/
protected MultiDataObject createMultiObject (FileObject primaryFile)
throws DataObjectExistsException, java.io.IOException {
    if (primaryFile.getExt().equals(JAVA_EXTENSION)) {
        return new JaxWsDataObject(primaryFile, this);
    }
    return null;
}
 
示例10
private static EditorCookie.Observable getEditableCookie (File file) {
    EditorCookie.Observable editorCookie = null;
    if (file == null) {
        return null;
    }
    FileObject fileObj = FileUtil.toFileObject(file);
    if (fileObj != null) {
        try {
            DataObject dao = DataObject.find(fileObj);
            if (dao instanceof MultiDataObject) {
                MultiDataObject mdao = (MultiDataObject) dao;
                for (MultiDataObject.Entry entry : mdao.secondaryEntries()) {
                    if (fileObj == entry.getFile() && entry instanceof CookieSet.Factory) {
                        CookieSet.Factory factory = (CookieSet.Factory) entry;
                        EditorCookie ec = factory.createCookie(EditorCookie.class);
                        if (ec instanceof EditorCookie.Observable) {
                            editorCookie = (EditorCookie.Observable) ec;
                        }
                    }
                }
            }
            if (editorCookie == null) {
                EditorCookie cookie = dao.getCookie(EditorCookie.class);
                if (cookie instanceof EditorCookie.Observable) {
                    editorCookie = (EditorCookie.Observable) cookie;
                }
            }
        } catch (DataObjectNotFoundException ex) {
        }
    }
    return editorCookie;
}
 
示例11
protected FileLock takeLock () throws IOException {
    if (getDataObject() instanceof MultiDataObject) {
        return ((MultiDataObject)getDataObject()).getPrimaryEntry().takeLock();
    } else {
        return super.getDataObject ().getPrimaryFile ().lock ();
    }
}
 
示例12
/** Create a secondary file entry.
* By default, {@link FileEntry.Numb} is used for the class files
*
* @param secondaryFile secondary file to create entry for
* @return the entry
*/
protected MultiDataObject.Entry createSecondaryEntry (MultiDataObject obj, FileObject secondaryFile) {
    //The JavaDataObject itself has no secondary entries, but its subclasses have.
    //So we have to keep it as MultiFileLoader
    Logger.getLogger("global").log(Level.INFO, "Subclass of JavaDataLoader (" + this.getClass().getName() + ") has secondary entries but does not override createSecondaryEntries (MultidataObject, FileObject) method."); // NOI18N
    return new FileEntry.Numb(obj, secondaryFile);
}
 
示例13
/** Create a secondary file entry.
* By default, {@link FileEntry.Numb} is used for the class files; subclasses wishing to have useful
* secondary files should override this for those files, typically to {@link FileEntry}.
*
* @param secondaryFile secondary file to create entry for
* @return the entry
*/
protected MultiDataObject.Entry createSecondaryEntry (MultiDataObject obj, 
        FileObject secondaryFile) {
    //The JavaDataObject itself has no secondary entries, but its subclasses have.
    //So we have to keep it as MultiFileLoader
    ErrorManager.getDefault().log ("Subclass of JavaDataLoader ("+
            this.getClass().getName()
            +") has secondary entries but does not override createSecondaryEntries (MultidataObject, FileObject) method."); // NOI18N
    return new FileEntry.Numb(obj, secondaryFile);
}
 
示例14
protected MultiDataObject.Entry createSecondaryEntry(MultiDataObject obj, FileObject secondaryFile) {
    return new FileEntry (obj, secondaryFile);
}
 
示例15
protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException {
    return new JarDataObject(primaryFile, this);
}
 
示例16
@Override
protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException {
    return createMultiObject(primaryFile, REQUIRED_MIME);
}
 
示例17
protected MultiDataObject.Entry createPrimaryEntry(MultiDataObject obj, FileObject primaryFile) {
    return new FE(obj, primaryFile);
}
 
示例18
protected MultiDataObject createMultiObject (FileObject primaryFile) throws DataObjectExistsException, IOException {
    return new MyMultiFileDataObject( primaryFile, this );
}
 
示例19
@Override
protected Entry createSecondaryEntry(MultiDataObject obj, FileObject secondaryFile) {
    return null;
}
 
示例20
/** Constructs new ViewSupport */
public ViewSupport(MultiDataObject.Entry primary) 
{
    this.primary = primary;
}
 
示例21
GradleEnv(MultiDataObject d) {
    super(d);
}
 
示例22
protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException {
    return new BIDataObject(primaryFile, this);
}
 
示例23
protected MultiDataObject.Entry createSecondaryEntry(MultiDataObject obj, FileObject secondaryFile) {
    return new FileEntry(obj, secondaryFile);
}
 
示例24
protected MultiDataObject.Entry createPrimaryEntry(MultiDataObject obj, FileObject primaryFile) {
    return new FileEntry (obj, primaryFile);
}
 
示例25
@Override
protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException {
    return new SQLDataObject(primaryFile, this);
}
 
示例26
private void setSource2 (StreamSource ss, Document sdoc) throws IOException {
    secondSourceAvailable = false;
    EditorKit kit = jEditorPane2.getEditorPane().getEditorKit();
    if (kit == null) throw new IOException("Missing Editor Kit"); // NOI18N
    
    modifiedDocument = sdoc;
    if (sdoc != null && ss.isEditable()) {
        DataObject dao = (DataObject) sdoc.getProperty(Document.StreamDescriptionProperty);
        if (dao != null) {
            if (dao instanceof MultiDataObject) {
                MultiDataObject mdao = (MultiDataObject) dao;
                for (MultiDataObject.Entry entry : mdao.secondaryEntries()) {
                    if (entry instanceof CookieSet.Factory) {
                        CookieSet.Factory factory = (CookieSet.Factory) entry;
                        EditorCookie ec = factory.createCookie(EditorCookie.class);
                        Document entryDocument = ec.getDocument();
                        if (entryDocument == sdoc && ec instanceof EditorCookie.Observable) {
                            editableCookie = (EditorCookie.Observable) ec;
                            editableDocument = sdoc;
                            editorUndoRedo = getUndoRedo(ec);
                        }
                    }
                }
            }
            if (editableCookie == null) {
                EditorCookie cookie = dao.getCookie(EditorCookie.class);
                if (cookie instanceof EditorCookie.Observable) {
                    editableCookie = (EditorCookie.Observable) cookie;
                    editableDocument = sdoc;
                    editorUndoRedo = getUndoRedo(cookie);
                }
            }
        }
    }
    Document doc = sdoc != null ? sdoc : kit.createDefaultDocument();
    if (sdoc != null || !Boolean.TRUE.equals(skipFile)) {
        if (jEditorPane2.getEditorPane().getUI() instanceof BaseTextUI) {
            if (sdoc == null) {
                Reader r = ss.createReader();
                if (r != null) {
                    secondSourceAvailable = true;
                    try {
                        kit.read(r, doc, 0);
                    } catch (javax.swing.text.BadLocationException e) {
                        throw new IOException("Can not locate the beginning of the document."); // NOI18N
                    } finally {
                        r.close();
                    }
                }
            } else {
                secondSourceAvailable = true;
            }
        } else {
            secondSourceUnsupportedTextUI = true;
        }
    }
    jEditorPane2.initActions();
    view.putClientProperty(UndoRedo.class, editorUndoRedo);
    jEditorPane2.getEditorPane().setDocument(doc);
    jEditorPane2.getEditorPane().setEditable(editableCookie != null);
    if (doc instanceof NbDocument.CustomEditor) {
        Component c = ((NbDocument.CustomEditor)doc).createEditor(jEditorPane2.getEditorPane());
        if (c instanceof JComponent) {
            jEditorPane2.setCustomEditor((JComponent)c);
        }
    }
    
    customizeEditor(jEditorPane2.getEditorPane());
    jViewport2 = jEditorPane2.getScrollPane().getViewport();
    joinScrollBars();
}
 
示例27
protected MultiDataObject.Entry createPrimaryEntry(MultiDataObject obj, FileObject primaryFile) {
    return new FileEntry (obj, primaryFile);
}
 
示例28
@Override
protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException {
    return new SO (primaryFile);
}
 
示例29
protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException {
    return new SimpleObject(this, primaryFile);
}
 
示例30
protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException {
    return new SimpleObject(this, primaryFile);
}