Skip to content
Antonio Vieiro edited this page Jan 25, 2018 · 1 revision

DevFaqOpenReadOnly

How can I open a file in the editor in read-only mode?

You will need to make a special file editor which refuses to take a write lock:

public final class ROEditor extends DataEditorSupport {
    private ROEditor(DataObject d) {
        super(d, new E(d));
    }
    public ROEditor(FileObject fo) throws DataObjectNotFoundException {
        this(DataObject.find(fo));
    }
    private static final class E extends DataEditorSupport.Env {
        public E(DataObject d) {
            super(d);
        }
        protected FileObject getFile() {
            return getDataObject().getPrimaryFile();
        }
        protected FileLock takeLock() throws IOException {
            throw new IOException("No way!");
        }
    }
}

Demo of usage:

JFileChooser jfc = new JFileChooser();
if (jfc.showOpenDialog(null) != JFileChooser.APPROVE_OPTION) {
    return;
}
File f = jfc.getSelectedFile();
FileObject fo = FileUtil.toFileObject(f);
try {
    new ROEditor(fo).open();
} catch (DataObjectNotFoundException e) {
    e.printStackTrace();
}

Applies to: NetBeans 4.0 and newer

Apache Migration Information

The content in this page was kindly donated by Oracle Corp. to the Apache Software Foundation.

This page was exported from http://wiki.netbeans.org/DevFaqOpenReadOnly , that was last modified by NetBeans user Vstejskal on 2010-06-16T13:28:46Z.

NOTE: This document was automatically converted to the AsciiDoc format on 2018-01-26, and needs to be reviewed.

Clone this wiki locally