diff -r 8a7c045234cc java.source/nbproject/project.xml --- a/java.source/nbproject/project.xml Mon Jun 20 08:44:49 2011 +0200 +++ b/java.source/nbproject/project.xml Mon Jun 20 14:36:17 2011 +0200 @@ -85,6 +85,15 @@ + org.netbeans.core.multiview + + + + 1 + 1.24 + + + org.netbeans.libs.javacapi @@ -334,7 +343,7 @@ - 7.0 + 7.26 diff -r 8a7c045234cc java.source/src/org/netbeans/modules/java/Bundle.properties --- a/java.source/src/org/netbeans/modules/java/Bundle.properties Mon Jun 20 08:44:49 2011 +0200 +++ b/java.source/src/org/netbeans/modules/java/Bundle.properties Mon Jun 20 14:36:17 2011 +0200 @@ -67,3 +67,5 @@ TP_NeedsCompileBadge=Needs to be compiled. TP_ExecutableBadge=Contains main class. TXT_OpenClassFile= Open Class File + +CTL_SourceTabCaption=&Source \ No newline at end of file diff -r 8a7c045234cc java.source/src/org/netbeans/modules/java/JavaDataObject.java --- a/java.source/src/org/netbeans/modules/java/JavaDataObject.java Mon Jun 20 08:44:49 2011 +0200 +++ b/java.source/src/org/netbeans/modules/java/JavaDataObject.java Mon Jun 20 14:36:17 2011 +0200 @@ -48,11 +48,6 @@ import com.sun.source.tree.CompilationUnitTree; import com.sun.source.tree.Tree; import java.io.IOException; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.text.Document; -import javax.swing.text.EditorKit; -import javax.swing.text.StyledDocument; import org.netbeans.api.java.source.Task; import org.netbeans.api.java.source.JavaSource; import org.netbeans.api.java.source.JavaSource.Phase; @@ -60,44 +55,23 @@ import org.netbeans.api.java.source.TreeUtilities; import org.netbeans.api.java.source.WorkingCopy; import org.netbeans.api.java.source.TreeMaker; -import org.openide.cookies.EditCookie; -import org.openide.cookies.EditorCookie; -import org.openide.cookies.OpenCookie; -import org.openide.cookies.PrintCookie; -import org.openide.cookies.SaveCookie; -import org.openide.filesystems.FileLock; +import org.netbeans.core.spi.multiview.MultiViewElement; +import org.netbeans.core.spi.multiview.text.MultiViewEditorElement; import org.openide.filesystems.FileObject; import org.openide.loaders.DataFolder; import org.openide.loaders.DataObject; import org.openide.loaders.DataObjectExistsException; import org.openide.loaders.MultiDataObject; import org.openide.loaders.MultiFileLoader; -import org.openide.loaders.SaveAsCapable; -import org.openide.nodes.CookieSet; import org.openide.nodes.Node; -import org.openide.nodes.Node.Cookie; -import org.openide.text.CloneableEditor; -import org.openide.text.CloneableEditorSupport; -import org.openide.text.DataEditorSupport; import org.openide.util.Lookup; -import org.openide.windows.CloneableOpenSupport; +import org.openide.windows.TopComponent; public final class JavaDataObject extends MultiDataObject { - private JavaEditorSupport jes; - public JavaDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException { super(pf, loader); - getCookieSet().assign( SaveAsCapable.class, new SaveAsCapable() { - public void saveAs( FileObject folder, String fileName ) throws IOException { - createJavaEditorSupport().saveAs( folder, fileName ); - } - }); - getCookieSet().add(JavaEditorSupport.class, new CookieSet.Factory() { - public T createCookie(Class klass) { - return klass.cast(createJavaEditorSupport ()); - } - }); + registerEditor("text/x-java", true); } public @Override Node createNodeDelegate() { @@ -105,10 +79,10 @@ } @Override - public Lookup getLookup() { - return getCookieSet().getLookup(); + protected int associateLookup() { + return 1; } - + protected DataObject handleCopyRename(DataFolder df, String name, String ext) throws IOException { FileObject fo = getPrimaryEntry ().copyRename (df.getPrimaryFile (), name, ext); DataObject dob = DataObject.find( fo ); @@ -116,109 +90,16 @@ return dob; } - private synchronized JavaEditorSupport createJavaEditorSupport () { - if (jes == null) { - jes = new JavaEditorSupport (this); - } - return jes; - } - - public static final class JavaEditorSupport extends DataEditorSupport implements OpenCookie, EditCookie, EditorCookie, PrintCookie, EditorCookie.Observable { - - private static final class Environment extends DataEditorSupport.Env { - - private static final long serialVersionUID = -1; - - private transient SaveSupport saveCookie = null; - - private final class SaveSupport implements SaveCookie { - public void save() throws java.io.IOException { - ((JavaEditorSupport)findCloneableOpenSupport()).saveDocument(); - getDataObject().setModified(false); - } - } - - public Environment(JavaDataObject obj) { - super(obj); - } - - protected FileObject getFile() { - return this.getDataObject().getPrimaryFile(); - } - - protected FileLock takeLock() throws java.io.IOException { - return ((MultiDataObject)this.getDataObject()).getPrimaryEntry().takeLock(); - } - - public @Override CloneableOpenSupport findCloneableOpenSupport() { - return (CloneableEditorSupport) ((JavaDataObject)this.getDataObject()).getCookie(EditorCookie.class); - } - - - public void addSaveCookie() { - JavaDataObject javaData = (JavaDataObject) this.getDataObject(); - if (javaData.getCookie(SaveCookie.class) == null) { - if (this.saveCookie == null) - this.saveCookie = new SaveSupport(); - javaData.getCookieSet().add(this.saveCookie); - javaData.setModified(true); - } - } - - public void removeSaveCookie() { - JavaDataObject javaData = (JavaDataObject) this.getDataObject(); - if (javaData.getCookie(SaveCookie.class) != null) { - javaData.getCookieSet().remove(this.saveCookie); - javaData.setModified(false); - } - - } - } - - public JavaEditorSupport(JavaDataObject dataObject) { - super(dataObject, new Environment(dataObject)); - setMIMEType("text/x-java"); // NOI18N - } - - - protected boolean notifyModified() { - if (!super.notifyModified()) - return false; - ((Environment)this.env).addSaveCookie(); - return true; - } - - - protected @Override void notifyUnmodified() { - super.notifyUnmodified(); - ((Environment)this.env).removeSaveCookie(); - } - - protected @Override CloneableEditor createCloneableEditor() { - return new JavaEditor(this); - } - - @Override - protected boolean asynchronousOpen() { - return true; - } - - public @Override boolean close(boolean ask) { - return super.close(ask); - } - } - - private static final class JavaEditor extends CloneableEditor { - - private static final long serialVersionUID = -1; - - public JavaEditor() { - } - - public JavaEditor(JavaEditorSupport sup) { - super(sup); - } - + @MultiViewElement.Registration( + displayName="#CTL_SourceTabCaption", + iconBase="org/netbeans/modules/java/resources/class.gif", + persistenceType=TopComponent.PERSISTENCE_ONLY_OPENED, + preferredID="java.source", + mimeType="text/x-java", + position=2000 + ) + public static MultiViewEditorElement createMultiViewEditorElement(Lookup context) { + return new MultiViewEditorElement(context); } /**