Search in sources :

Example 1 with ProjectImporterData

use of org.eclipse.che.api.project.shared.dto.ProjectImporterData in project che by eclipse.

the class MainPagePresenter method loadImporters.

private void loadImporters() {
    final Map<String, Set<ProjectImporterDescriptor>> importersByCategory = new LinkedHashMap<>();
    final Unmarshallable<ProjectImporterData> unmarshaller = dtoUnmarshallerFactory.newUnmarshaller(ProjectImporterData.class);
    AsyncRequestCallback<ProjectImporterData> callback = new AsyncRequestCallback<ProjectImporterData>(unmarshaller) {

        @Override
        protected void onSuccess(ProjectImporterData data) {
            List<ProjectImporterDescriptor> result = data.getImporters();
            String defaultImporterId = data.getConfiguration().get(DEFAULT_PROJECT_IMPORTER);
            Iterator<ProjectImporterDescriptor> itr = result.iterator();
            while (itr.hasNext()) {
                ProjectImporterDescriptor importer = itr.next();
                if (importer.getId().equals(defaultImporterId)) {
                    Set<ProjectImporterDescriptor> importersSet = new LinkedHashSet<>();
                    importersSet.add(importer);
                    importersByCategory.put(importer.getCategory(), importersSet);
                    itr.remove();
                }
            }
            ProjectImporterDescriptor defaultImporter = null;
            for (ProjectImporterDescriptor importer : result) {
                if (importer.isInternal() || importer.getCategory() == null || importWizardRegistry.getWizardRegistrar(importer.getId()) == null) {
                    continue;
                }
                if (importersByCategory.containsKey(importer.getCategory())) {
                    importersByCategory.get(importer.getCategory()).add(importer);
                } else {
                    Set<ProjectImporterDescriptor> importersSet = new LinkedHashSet<>();
                    importersSet.add(importer);
                    importersByCategory.put(importer.getCategory(), importersSet);
                }
                if (importer.getId().equals(defaultImporterId)) {
                    defaultImporter = importer;
                }
            }
            setImporters(defaultImporter);
        }

        private void setImporters(final ProjectImporterDescriptor defaultImporter) {
            new Timer() {

                @Override
                public void run() {
                    view.setImporters(importersByCategory);
                    view.selectImporter(defaultImporter != null ? defaultImporter : importersByCategory.get(importersByCategory.keySet().iterator().next()).iterator().next());
                }
            }.schedule(300);
        }

        @Override
        protected void onFailure(Throwable exception) {
            notificationManager.notify(locale.failedToImportProject(), FAIL, FLOAT_MODE);
        }
    };
    projectImportersService.getProjectImporters(appContext.getDevMachine(), callback);
}
Also used : LinkedHashSet(java.util.LinkedHashSet) LinkedHashSet(java.util.LinkedHashSet) Set(java.util.Set) AsyncRequestCallback(org.eclipse.che.ide.rest.AsyncRequestCallback) LinkedHashMap(java.util.LinkedHashMap) ProjectImporterDescriptor(org.eclipse.che.api.project.shared.dto.ProjectImporterDescriptor) ProjectImporterData(org.eclipse.che.api.project.shared.dto.ProjectImporterData) Timer(com.google.gwt.user.client.Timer)

Aggregations

Timer (com.google.gwt.user.client.Timer)1 LinkedHashMap (java.util.LinkedHashMap)1 LinkedHashSet (java.util.LinkedHashSet)1 Set (java.util.Set)1 ProjectImporterData (org.eclipse.che.api.project.shared.dto.ProjectImporterData)1 ProjectImporterDescriptor (org.eclipse.che.api.project.shared.dto.ProjectImporterDescriptor)1 AsyncRequestCallback (org.eclipse.che.ide.rest.AsyncRequestCallback)1