public JComponent createComponentImpl() { myPanel = new ClasspathPanelImpl(getState()); myPanel.addListener( new OrderPanelListener() { public void entryMoved() { flushChangesToModel(); } }); final JPanel panel = new JPanel(new BorderLayout()); panel.setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6)); panel.add(myPanel, BorderLayout.CENTER); final ModuleJdkConfigurable jdkConfigurable = new ModuleJdkConfigurable( this, ProjectStructureConfigurable.getInstance(myProject).getProjectJdksModel()) { @Override protected ModifiableRootModel getRootModel() { return getState().getRootModel(); } }; panel.add(jdkConfigurable.createComponent(), BorderLayout.NORTH); jdkConfigurable.reset(); registerDisposable(jdkConfigurable); List<ClasspathStorageProvider> providers = ClasspathStorage.getProviders(); if (providers.size() > 1) { myClasspathFormatPanel = new ClasspathFormatPanel(providers); panel.add(myClasspathFormatPanel, BorderLayout.SOUTH); } return panel; }
@Override public void canApply() throws ConfigurationException { super.canApply(); if (myClasspathFormatPanel != null) { final String storageID = myClasspathFormatPanel.getSelectedClasspathFormat(); ClasspathStorage.getProvider(storageID).assertCompatible(getModel()); } }
@Nullable static String getID(PsiElement place, String alternativeID) { if (alternativeID != null) { final Module module = ModuleUtilCore.findModuleForPsiElement(place); if (module != null) { if (!ClasspathStorage.getStorageType(module).equals(ClasspathStorage.DEFAULT_STORAGE)) { return alternativeID; } } } return null; }
private void setModuleFilePath(String newFilePath) { ClasspathStorage.modulePathChanged(ModuleImpl.this, newFilePath); getMainStorage(ModuleImpl.this).setFile(null, new File(newFilePath)); ComponentsPackage.getStateStore(ModuleImpl.this) .setPath(FileUtilRt.toSystemIndependentName(newFilePath)); }
void apply() throws ConfigurationException { final String storageID = getSelectedClasspathFormat(); ClasspathStorage.getProvider(storageID).assertCompatible(getModel()); ClasspathStorage.setStorageType(getModel(), storageID); }
@NotNull private String getModuleClasspathFormat() { return ClasspathStorage.getStorageType(getModel().getModule()); }