Java 类org.eclipse.ui.internal.registry.EditorRegistry 实例源码

项目:n4js    文件:N4JSApplicationWorkbenchWindowAdvisor.java   
private void updateDefaultEditorMappingIfAbsent() {
    final EditorRegistry registry = (EditorRegistry) WorkbenchPlugin.getDefault().getEditorRegistry();
    for (final IFileEditorMapping editorMapping : registry.getFileEditorMappings()) {
        final IEditorDescriptor defaultEditor = editorMapping.getDefaultEditor();
        if (null == defaultEditor) {

            final String extension = editorMapping.getExtension();
            LOGGER.info("No default editor is associated with files with extension: '." + extension + "'.");
            final IEditorDescriptor defaultTextEditor = registry.findEditor(DEFAULT_TEXT_EDITOR_ID);
            if (null != defaultTextEditor) {
                ((FileEditorMapping) editorMapping).setDefaultEditor(defaultTextEditor);
                String editorName = defaultTextEditor.getLabel();
                if (null == editorName) {
                    editorName = defaultTextEditor.getId();
                }
                if (null != editorName) {
                    LOGGER.info("Associated files with extension " + extension + " with '" + editorName + "'.");
                }
            }
        }
    }
    registry.saveAssociations();
    PrefUtil.savePrefs();
}
项目:uefi_edk2_wizards_plugin    文件:SetDefaultEditorsStartup.java   
@Override
public void earlyStartup() {
    EditorRegistry editorReg = (EditorRegistry)PlatformUI.getWorkbench().getEditorRegistry();
    EditorDescriptor editor = (EditorDescriptor)editorReg.findEditor("org.eclipse.ui.DefaultTextEditor");
    FileEditorMapping mapping = new FileEditorMapping("inf");
    mapping.addEditor(editor);
    mapping.setDefaultEditor(editor);

    IFileEditorMapping[] mappings = editorReg.getFileEditorMappings();
    FileEditorMapping[] newMappings = new FileEditorMapping[mappings.length+1];
    for (int i = 0; i < mappings.length; i++) {
        newMappings[i] = (FileEditorMapping) mappings[i];
    }
    newMappings[mappings.length] = mapping;

    Display.getDefault().asyncExec(new Runnable() {
        @Override
        public void run() {
            editorReg.setFileEditorMappings(newMappings);
        }
    });

    //reg.setDefaultEditor("inf", "org.eclipse.ui.DefaultTextEditor");
}
项目:gwt-eclipse-plugin    文件:Util.java   
public static void resetDefaultEditor(String extension) {
  EditorRegistry editorRegistry = (EditorRegistry) PlatformUI.getWorkbench().getEditorRegistry();
  IFileEditorMapping[] editorMappings = editorRegistry.getFileEditorMappings();

  // Search the file=>editor mappings for the specified extension
  for (IFileEditorMapping editorMapping : editorMappings) {
    if (extension.equals(editorMapping.getExtension())) {
      FileEditorMapping internalMapping = (FileEditorMapping) editorMapping;
      // Only need to do anything if there's an explicit default set
      if (internalMapping.getDeclaredDefaultEditors().length > 0) {
        // Clear any default editor associations for this extension

        List<IEditorDescriptor> list = new ArrayList<IEditorDescriptor>();
        internalMapping.setDefaultEditors(list);

        // Save the updated editor registry to disk
        editorRegistry.saveAssociations();

        // TODO: remove
        GWTPluginLog.logInfo("Reset default editor for extension: "
            + extension);
      }
      break;
    }
  }
}
项目:anatlyzer    文件:AnATLyzerNature.java   
private void setAnATLyzerDefaultEditor() {
    String extension = "atl";
    String editorId = "org.eclipse.m2m.atl.adt.editor.AtlEditor";

    EditorRegistry editorReg = (EditorRegistry)PlatformUI.getWorkbench().getEditorRegistry();
    //EditorDescriptor editor = (EditorDescriptor) editorReg.findEditor(editorId);
    //editor.
    IFileEditorMapping[] mappings = editorReg.getFileEditorMappings();
    for (IFileEditorMapping mapping : mappings) {
        if ( "atl".equals(mapping.getExtension()) ) {
            IEditorDescriptor[] descriptors = mapping.getEditors();
            IEditorDescriptor anatlyzerEditor = null;
            for (IEditorDescriptor editorDesc : descriptors) {
                if ( "anatlyzer.atl.editor.AtlEditorExt".equals( ((EditorDescriptor) editorDesc).getClassName()) ) {
                    anatlyzerEditor = editorDesc;
                    break;
                }
            }

            if ( anatlyzerEditor != null ) {
                ((FileEditorMapping) mapping).setDefaultEditor((EditorDescriptor) anatlyzerEditor);
                break;
            }
        }
    }
}
项目:eavp    文件:BasicVizServiceFactory.java   
@Override
public void register(IVizService service) {
    if (service != null) {
        String name = service.getName();

        // Put the service in service map so it can be retrieved later
        serviceMap.put(name, service);

        // Register the plot editor as default editor for all file
        // extensions handled by the new viz service
        for (String ext : service.getSupportedExtensions()) {
            EditorRegistry editorReg = (EditorRegistry) PlatformUI
                    .getWorkbench().getEditorRegistry();
            EditorDescriptor editor = (EditorDescriptor) editorReg
                    .findEditor("org.eclipse.eavp.viz.service.PlotEditor");
            FileEditorMapping mapping = new FileEditorMapping(ext);
            mapping.addEditor(editor);
            mapping.setDefaultEditor(editor);

            IFileEditorMapping[] mappings = editorReg
                    .getFileEditorMappings();
            FileEditorMapping[] newMappings = new FileEditorMapping[mappings.length
                    + 1];
            for (int i = 0; i < mappings.length; i++) {
                newMappings[i] = (FileEditorMapping) mappings[i];
            }
            newMappings[mappings.length] = mapping;
            editorReg.setFileEditorMappings(newMappings);
        }

        logger.info("VizServiceFactory message: " + "Viz service \"" + name
                + "\" registered.");
    }

    return;
}
项目:jd-eclipse    文件:JavaDecompilerPlugin.java   
public void run()
{
    EditorRegistry registry = (EditorRegistry)
        WorkbenchPlugin.getDefault().getEditorRegistry();

    IFileEditorMapping[] mappings = registry.getFileEditorMappings();
    IFileEditorMapping c = null;
    IFileEditorMapping cws = null;

    // Search Class file editor mappings
    for (IFileEditorMapping mapping : mappings) 
    {
        if (mapping.getExtension().equals("class")) 
        {
            // ... Helios 3.6, Indigo 3.7, Juno 4.2, Kepler 4.3, ...
            c = mapping;
        }
        else if (mapping.getExtension().equals("class without source")) 
        {
            // Juno 4.2, Kepler 4.3, ...
            cws = mapping;
        }
    }

    if ((c != null) && (cws != null))
    {
        // Search JD editor descriptor on "class" extension
        for (IEditorDescriptor descriptor : c.getEditors())
        {       
            if (descriptor.getId().equals(EDITOR_ID))
            {
                // Remove JD editor on "class" extension
                //((FileEditorMapping)c).removeEditor((EditorDescriptor)descriptor);

                // Set JD as default editor on "class without source" extension
                registry.setDefaultEditor(
                    "." + cws.getExtension(), descriptor.getId());
                break;
            }
        }

        // Restore the default editor for "class" extension
        IEditorDescriptor defaultClassFileEditor = 
            registry.findEditor(JavaUI.ID_CF_EDITOR);   
        if (defaultClassFileEditor != null)
        {
            registry.setDefaultEditor(
                "." + c.getExtension(), JavaUI.ID_CF_EDITOR);
        }               

        registry.setFileEditorMappings((FileEditorMapping[]) mappings);
        registry.saveAssociations();            
    }
}
项目:eclipsensis    文件:FileAssociationChecker.java   
private void scheduleJob(final FileAssociationDef def)
{
    if (def != null) {
        Job job = new UIJob(mJobName) {
            private boolean isValidEditor(String[] editorIds, IEditorDescriptor descriptor)
            {
                if (descriptor != null) {
                    String id = descriptor.getId();
                    for (int i = 0; i < editorIds.length; i++) {
                        if (editorIds[i].equals(id)) {
                            return true;
                        }
                    }
                }
                return false;
            }

            @Override
            public IStatus runInUIThread(final IProgressMonitor monitor)
            {
                if (monitor.isCanceled()) {
                    return Status.CANCEL_STATUS;
                }
                if (!cCheckedAssociations.contains(def.getAssociationId())) {
                    final boolean toggleState = getFileAssociationChecking(def.getAssociationId());
                    if (toggleState) {
                        cCheckedAssociations.add(def.getAssociationId());
                        final String[] fileTypes = def.getFileTypes();
                        for (int i = 0; i < fileTypes.length; i++) {
                            if (monitor.isCanceled()) {
                                return Status.CANCEL_STATUS;
                            }
                            if (!isValidEditor(def.getEditorIds(), mEditorRegistry.getDefaultEditor(fileTypes[i]))) {
                                if (!monitor.isCanceled()) {
                                    String[] args = new String[]{def.getFileTypesName(), def.getEditorsName()};
                                    MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoCancelQuestion(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                                            mDialogTitleFormat.format(args), mDialogMessageFormat.format(args), mDialogToggleMessageFormat.format(args), !toggleState, null, null);
                                    int rc = dialog.getReturnCode();
                                    switch (rc)
                                    {
                                        case IDialogConstants.YES_ID:
                                        {
                                            for (int j = 0; j < fileTypes.length; j++) {
                                                mEditorRegistry.setDefaultEditor(fileTypes[j], def.getEditorIds()[0]);
                                            }
                                            //Cast to inner class because otherwise it cannot be saved.
                                            ((EditorRegistry)mEditorRegistry).saveAssociations();
                                            //Fall through to next case to save the toggle state
                                        }
                                            //$FALL-THROUGH$
                                        case IDialogConstants.NO_ID:
                                        {
                                            boolean newToggleState = !dialog.getToggleState();
                                            if (toggleState != newToggleState) {
                                                setFileAssociationChecking(def.getAssociationId(), newToggleState);
                                            }
                                            break;
                                        }
                                        case IDialogConstants.CANCEL_ID:
                                            return Status.CANCEL_STATUS;
                                    }
                                }
                                break;
                            }
                        }
                    }
                }
                if (monitor.isCanceled()) {
                    return Status.CANCEL_STATUS;
                }
                else {
                    return Status.OK_STATUS;
                }
            }
        };
        job.setRule(cSchedulingRule);
        job.schedule(5000);
    }
}