343022e861afee9e3ae56062582d52aea9a7e65b
[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.util.PropertiesComponent;
5 import com.intellij.ide.util.projectWizard.WizardContext;
6 import com.intellij.openapi.components.StorageScheme;
7 import com.intellij.openapi.project.Project;
8 import org.jetbrains.annotations.NotNull;
9
10 import javax.swing.*;
11
12 public class ProjectFormatPanel {
13   private static final String STORAGE_FORMAT_PROPERTY = "default.storage.format";
14   public static final String DIR_BASED = Project.DIRECTORY_STORE_FOLDER + " (directory based)";
15   private static final String FILE_BASED = ".ipr (file based)";
16
17   private JComboBox<String> myStorageFormatCombo;
18   private JPanel myWholePanel;
19
20   public ProjectFormatPanel() {
21     myStorageFormatCombo.insertItemAt(DIR_BASED, 0);
22     myStorageFormatCombo.insertItemAt(FILE_BASED, 1);
23     myStorageFormatCombo.setSelectedItem(PropertiesComponent.getInstance().getValue(STORAGE_FORMAT_PROPERTY, DIR_BASED));
24   }
25
26   public JPanel getPanel() {
27     return myWholePanel;
28   }
29
30   @NotNull
31   public JComboBox getStorageFormatComboBox() {
32     return myStorageFormatCombo;
33   }
34
35   public void updateData(@NotNull WizardContext context) {
36     StorageScheme format = FILE_BASED.equals(myStorageFormatCombo.getSelectedItem()) ? StorageScheme.DEFAULT : StorageScheme.DIRECTORY_BASED;
37     context.setProjectStorageFormat(format);
38     PropertiesComponent.getInstance().setValue(STORAGE_FORMAT_PROPERTY, isDefault() ? FILE_BASED : DIR_BASED, DIR_BASED);
39   }
40
41   public void setVisible(boolean visible) {
42     myWholePanel.setVisible(visible);
43   }
44
45   public boolean isDefault() {
46     return FILE_BASED.equals(myStorageFormatCombo.getSelectedItem());
47   }
48 }