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);
}