org.openide.loaders 7.16.1

org.openide.loaders
Interface SaveAsCapable


public interface SaveAsCapable

Save document under a different file name and/or extension. The default implementation is available in DataEditorSupport. So if your editor support inherits from DataEditorSupport you can implement "Save As" feature for your documents by adding the following lines into your DataObject's constructor:

        getCookieSet().assign( SaveAsCapable.class, new SaveAsCapable() {
            public void saveAs(FileObject folder, String fileName) throws IOException {
                getDataEditorSupport().saveAs( folder, fileName );
            }
        });
If you have Node, you may use the following code:
    public class MyNode extends AbstractNode implements Node.Cookie {

        public Node.Cookie getCookie(Class clazz) {
            ...

            if (SaveAsCapable.class.equals(clazz)) {
                return new MySaveAsCookie();
            }
            ....

            return super.getCookie(clazz);
        }

        private class MySaveAsCookie implements Node.Cookie, SaveAsCapable {
            public void saveAs(FileObject folder, String fileName) throws IOException {
                FileObject newFile = folder.getFileObject(fileName);

                if (newFile == null) {
                    newFile = FileUtil.createData(folder, fileName);
                }
                OutputStream output = newFile.getOutputStream();
                InputStream input = ... // get your input stream

                try {
                    byte[] buffer = new byte[4096];

                    while (input.available() > 0) {
                        output.write(buffer, 0, input.read(buffer));
                    }
                }
                finally {
                    if (input != null) {
                        input.close();
                    }
                    if (output != null) {
                        output.close();
                    }
                }
            }
        }
    }

Since:
6.3

Method Summary
 void saveAs(FileObject folder, String name)
          Invoke the save operation.
 

Method Detail

saveAs

void saveAs(FileObject folder,
            String name)
            throws IOException
Invoke the save operation.

Parameters:
folder - Folder to save to.
name - New file name to save to.
Throws:
IOException - if the object could not be saved

org.openide.loaders 7.16.1

Built on September 7 2010.  |  Portions Copyright 1997-2010 Sun Microsystems, Inc. All rights reserved.