Java 类org.eclipse.ui.editors.text.IEncodingSupport 实例源码

项目:ec4e    文件:EditorConfigPreferenceStore.java   
public void applyConfig() {
    IFile file = ApplyEditorConfig.getFile(textEditor);
    if (file != null) {
        try {
            Boolean oldSpacesForTabs = spacesForTabs;
            spacesForTabs = null;
            Integer oldTabWidth = tabWidth;
            tabWidth = null;
            ResourceProperties result = IDEEditorConfigManager.getInstance().queryOptions(file);

            final IndentStyleValue indetStyle = result.getValue(PropertyType.indent_style.getName(), null, false);
            if (indetStyle != null) {
                spacesForTabs = indetStyle == IndentStyleValue.space;
                if (oldSpacesForTabs != spacesForTabs) {
                    editorStore.firePropertyChangeEvent(EDITOR_SPACES_FOR_TABS, oldSpacesForTabs,
                            spacesForTabs);
                }
            }

            final Integer indetSize = result.getValue(PropertyType.indent_size.getName(), null, false);
            if (indetSize != null) {
                tabWidth = indetSize.intValue();
                if (oldTabWidth != tabWidth) {
                    editorStore.firePropertyChangeEvent(EDITOR_TAB_WIDTH, oldTabWidth, tabWidth);
                }
            }

            final EndOfLineValue eol = result.getValue(PropertyType.end_of_line.getName(), null, false);
            if (eol != null) {
                IEditorInput editorInput = textEditor.getEditorInput();
                IDocument document = textEditor.getDocumentProvider().getDocument(editorInput);
                if (document instanceof IDocumentExtension4) {
                        ((IDocumentExtension4) document)
                                .setInitialLineDelimiter(eol.getEndOfLineString());
                }
            }

            final String charset = result.getValue(PropertyType.charset.getName(), null, false);
            if (charset != null) {
                IEncodingSupport encodingSupport = textEditor.getAdapter(IEncodingSupport.class);
                if (encodingSupport != null) {
                    encodingSupport.setEncoding(charset.toUpperCase());
                }
            }

            final Boolean trimTrailigWs = result.getValue(PropertyType.trim_trailing_whitespace.getName(), null, false);
            if (trimTrailigWs != null) {
                boolean oldTrimTrailingWhitespace = trimTrailingWhitespace;
                trimTrailingWhitespace = trimTrailigWs.booleanValue();
                if (oldTrimTrailingWhitespace != trimTrailingWhitespace) {
                    editorStore.firePropertyChangeEvent(EDITOR_TRIM_TRAILING_WHITESPACE,
                            oldTrimTrailingWhitespace, trimTrailingWhitespace);
                }
            }

            final Boolean insertFinalNl = result.getValue(PropertyType.insert_final_newline.getName(), null, false);
            if (insertFinalNl != null) {
                boolean oldInsertFinalNewline = insertFinalNewline;
                insertFinalNewline = insertFinalNl.booleanValue();
                if (oldInsertFinalNewline != insertFinalNewline) {
                    editorStore.firePropertyChangeEvent(EDITOR_INSERT_FINAL_NEWLINE, oldInsertFinalNewline,
                            insertFinalNewline);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}