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

Apache NetBeans Wiki Index

Note: These pages are being reviewed.

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