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 {
public MyNode() {
getCookieSet().assign(SaveAsCapable.class, new MySaveAsCapable());
...
}
private class MySaveAsCapable implements 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
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