simplify GTDUCollector a bit more
[idea/community.git] / java / idea-ui / src / com / intellij / projectImport / ProjectFormatPanel.java
1 // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.projectImport;
3
4 import com.intellij.ide.JavaUiBundle;
5 import com.intellij.ide.util.PropertiesComponent;
6 import com.intellij.ide.util.projectWizard.WizardContext;
7 import com.intellij.openapi.components.StorageScheme;
8 import com.intellij.openapi.project.Project;
9 import com.intellij.openapi.util.NlsContexts;
10 import org.jetbrains.annotations.NotNull;
11
12 import javax.swing.*;
13
14 public class ProjectFormatPanel {
15   private static final String STORAGE_FORMAT_PROPERTY = "default.storage.format";
16   public final @NlsContexts.Label String DIR_BASED = JavaUiBundle.message("label.directory.based", Project.DIRECTORY_STORE_FOLDER);
17   private final @NlsContexts.Label String FILE_BASED = JavaUiBundle.message("label.ipr.file.based");
18
19   private JComboBox<String> myStorageFormatCombo;
20   private JPanel myWholePanel;
21
22   public ProjectFormatPanel() {
23     myStorageFormatCombo.insertItemAt(DIR_BASED, 0);
24     myStorageFormatCombo.insertItemAt(FILE_BASED, 1);
25     myStorageFormatCombo.setSelectedItem(PropertiesComponent.getInstance().getValue(STORAGE_FORMAT_PROPERTY, DIR_BASED));
26   }
27
28   public JPanel getPanel() {
29     return myWholePanel;
30   }
31
32   @NotNull
33   public JComboBox<String> getStorageFormatComboBox() {
34     return myStorageFormatCombo;
35   }
36
37   public void updateData(@NotNull WizardContext context) {
38     StorageScheme format = FILE_BASED.equals(myStorageFormatCombo.getSelectedItem()) ? StorageScheme.DEFAULT : StorageScheme.DIRECTORY_BASED;
39     context.setProjectStorageFormat(format);
40     PropertiesComponent.getInstance().setValue(STORAGE_FORMAT_PROPERTY, isDefault() ? FILE_BASED : DIR_BASED, DIR_BASED);
41   }
42
43   public void setVisible(boolean visible) {
44     myWholePanel.setVisible(visible);
45   }
46
47   public boolean isDefault() {
48     return FILE_BASED.equals(myStorageFormatCombo.getSelectedItem());
49   }
50 }