Example usage for com.intellij.openapi.ui SplitterProportionsData externalizeFromDimensionService

List of usage examples for com.intellij.openapi.ui SplitterProportionsData externalizeFromDimensionService

Introduction

In this page you can find the example usage for com.intellij.openapi.ui SplitterProportionsData externalizeFromDimensionService.

Prototype

void externalizeFromDimensionService(@NonNls String key);

Source Link

Usage

From source file:com.intellij.history.integration.ui.views.HistoryDialog.java

License:Apache License

private void restoreSplitterProportion() {
    SplitterProportionsData d = createSplitterData();
    d.externalizeFromDimensionService(getPropertiesKey());
    d.restoreSplitterProportions(mySplitter);
}

From source file:org.intellij.plugins.intelliLang.InjectionsSettingsUI.java

License:Apache License

private void doImportAction(final DataContext dataContext) {
    final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, true, false, true, false) {
        @Override/* w w  w.  ja  va  2  s  .  co  m*/
        public boolean isFileVisible(VirtualFile file, boolean showHiddenFiles) {
            return super.isFileVisible(file, showHiddenFiles) && (file.isDirectory()
                    || "xml".equals(file.getExtension()) || file.getFileType() instanceof ArchiveFileType);
        }

        @Override
        public boolean isFileSelectable(VirtualFile file) {
            return "xml".equalsIgnoreCase(file.getExtension());
        }
    };
    descriptor
            .setDescription("Please select the configuration file (usually named IntelliLang.xml) to import.");
    descriptor.setTitle("Import Configuration");

    descriptor.putUserData(LangDataKeys.MODULE_CONTEXT, LangDataKeys.MODULE.getData(dataContext));

    final SplitterProportionsData splitterData = new SplitterProportionsDataImpl();
    splitterData.externalizeFromDimensionService("IntelliLang.ImportSettingsKey.SplitterProportions");

    final VirtualFile file = FileChooser.chooseFile(descriptor, myProject, null);
    if (file == null) {
        return;
    }
    try {
        final Configuration cfg = Configuration.load(file.getInputStream());
        if (cfg == null) {
            Messages.showWarningDialog(myProject,
                    "The selected file does not contain any importable configuration.", "Nothing to Import");
            return;
        }
        final CfgInfo info = getDefaultCfgInfo();
        final Map<String, Set<InjInfo>> currentMap = ContainerUtil.classify(info.injectionInfos.iterator(),
                new Convertor<InjInfo, String>() {
                    @Override
                    public String convert(final InjInfo o) {
                        return o.injection.getSupportId();
                    }
                });
        final List<BaseInjection> originalInjections = new ArrayList<BaseInjection>();
        final List<BaseInjection> newInjections = new ArrayList<BaseInjection>();
        //// remove duplicates
        //for (String supportId : InjectorUtils.getActiveInjectionSupportIds()) {
        //  final Set<BaseInjection> currentInjections = currentMap.get(supportId);
        //  if (currentInjections == null) continue;
        //  for (BaseInjection injection : currentInjections) {
        //    Configuration.importInjections(newInjections, Collections.singleton(injection), originalInjections, newInjections);
        //  }
        //}
        //myInjections.clear();
        //myInjections.addAll(newInjections);

        for (String supportId : InjectorUtils.getActiveInjectionSupportIds()) {
            ArrayList<InjInfo> list = new ArrayList<InjInfo>(
                    ObjectUtils.notNull(currentMap.get(supportId), Collections.<InjInfo>emptyList()));
            final List<BaseInjection> currentInjections = getInjectionList(list);
            final List<BaseInjection> importingInjections = cfg.getInjections(supportId);
            if (currentInjections == null) {
                newInjections.addAll(importingInjections);
            } else {
                Configuration.importInjections(currentInjections, importingInjections, originalInjections,
                        newInjections);
            }
        }
        info.replace(originalInjections, newInjections);
        myInjectionsTable.getListTableModel().setItems(getInjInfoList(myInfos));
        final int n = newInjections.size();
        if (n > 1) {
            Messages.showInfoMessage(myProject, n + " entries have been successfully imported",
                    "Import Successful");
        } else if (n == 1) {
            Messages.showInfoMessage(myProject, "One entry has been successfully imported",
                    "Import Successful");
        } else {
            Messages.showInfoMessage(myProject, "No new entries have been imported", "Import");
        }
    } catch (Exception ex) {
        Configuration.LOG.error(ex);

        final String msg = ex.getLocalizedMessage();
        Messages.showErrorDialog(myProject, msg != null && msg.length() > 0 ? msg : ex.toString(),
                "Import Failed");
    }
}