List of usage examples for com.intellij.openapi.options UnnamedConfigurable createComponent
@Nullable JComponent createComponent();
From source file:com.goide.configuration.GoLibrariesConfigurableProvider.java
License:Apache License
@Nullable private Configurable createConfigurable(final boolean dialogMode) { return new CompositeConfigurable<UnnamedConfigurable>() { @Nullable//from ww w. j a va2 s . c om @Override public JComponent createComponent() { List<UnnamedConfigurable> configurables = getConfigurables(); Collection<HideableDecorator> hideableDecorators = ContainerUtil.newHashSet(); GridLayoutManager layoutManager = new GridLayoutManager(configurables.size() + 1, 1, new Insets(0, 0, 0, 0), -1, -1); JPanel rootPanel = new JPanel(layoutManager); Spacer spacer = new Spacer(); rootPanel.add(spacer, new GridConstraints(configurables.size(), 0, 1, 1, GridConstraints.ANCHOR_SOUTH, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null)); for (int i = 0; i < configurables.size(); i++) { UnnamedConfigurable configurable = configurables.get(i); JComponent configurableComponent = configurable.createComponent(); assert configurableComponent != null; JPanel hideablePanel = new JPanel(new BorderLayout()); rootPanel.add(hideablePanel, configurableConstrains(i)); if (configurable instanceof Configurable) { String displayName = ((Configurable) configurable).getDisplayName(); ListenableHideableDecorator decorator = new ListenableHideableDecorator(hideablePanel, displayName, configurableComponent); decorator.addListener(new MyHideableDecoratorListener(layoutManager, hideablePanel, spacer, hideableDecorators, configurableExpandedPropertyKey((Configurable) configurable))); hideableDecorators.add(decorator); decorator.setOn(isConfigurableExpanded(i, (Configurable) configurable)); } } if (dialogMode) { rootPanel.setPreferredSize(new Dimension(400, 600)); } rootPanel.revalidate(); return rootPanel; } @NotNull @Override protected List<UnnamedConfigurable> createConfigurables() { List<UnnamedConfigurable> result = ContainerUtil.newArrayList(); String[] urlsFromEnv = ContainerUtil.map2Array(GoSdkUtil.getGoPathsRootsFromEnvironment(), String.class, new Function<VirtualFile, String>() { @Override public String fun(VirtualFile file) { return file.getUrl(); } }); result.add(new GoLibrariesConfigurable("Global libraries", GoApplicationLibrariesService.getInstance(), urlsFromEnv)); if (!myProject.isDefault()) { result.add(new GoLibrariesConfigurable("Project libraries", GoProjectLibrariesService.getInstance(myProject))); result.add(new GoModuleAwareConfigurable(myProject, "Module libraries", null) { @NotNull @Override protected UnnamedConfigurable createModuleConfigurable(@NotNull Module module) { return new GoLibrariesConfigurable("Module libraries", GoModuleLibrariesService.getInstance(module)); } }); } return result; } @NotNull @Nls @Override public String getDisplayName() { return "Go Libraries"; } @Nullable @Override public String getHelpTopic() { return null; } @NotNull private GridConstraints configurableConstrains(int i) { return new GridConstraints(i, 0, 1, 1, GridConstraints.ANCHOR_NORTHEAST, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_GROW | GridConstraints.SIZEPOLICY_WANT_GROW | GridConstraints.SIZEPOLICY_CAN_SHRINK, GridConstraints.SIZEPOLICY_CAN_GROW | GridConstraints.SIZEPOLICY_CAN_SHRINK, null, null, null); } private boolean isConfigurableExpanded(int index, @NotNull Configurable configurable) { return PropertiesComponent.getInstance(myProject) .getBoolean(configurableExpandedPropertyKey(configurable), index < 2); } private void storeConfigurableExpandedProperty(@NotNull String storeKey, @NotNull Boolean value) { PropertiesComponent.getInstance(myProject).setValue(storeKey, value.toString()); } private String configurableExpandedPropertyKey(@NotNull Configurable configurable) { String keyName = "configurable " + configurable.getDisplayName() + " is expanded".toLowerCase(Locale.US); return StringUtil.replaceChar(keyName, ' ', '.'); } class MyHideableDecoratorListener extends ListenableHideableDecorator.MyListener { private final GridLayoutManager myLayoutManager; private final JPanel myHideablePanel; @NotNull private final String myStoreKey; private final Spacer mySpacer; private final Collection<HideableDecorator> myHideableDecorators; public MyHideableDecoratorListener(@NotNull GridLayoutManager layoutManager, @NotNull JPanel hideablePanel, @NotNull Spacer spacer, @NotNull Collection<HideableDecorator> hideableDecorators, @NotNull String storeKey) { myLayoutManager = layoutManager; myHideablePanel = hideablePanel; myStoreKey = storeKey; mySpacer = spacer; myHideableDecorators = hideableDecorators; } @Override public void on() { GridConstraints c = myLayoutManager.getConstraintsForComponent(myHideablePanel); c.setVSizePolicy(c.getVSizePolicy() | GridConstraints.SIZEPOLICY_WANT_GROW); GridConstraints spacerConstraints = myLayoutManager.getConstraintsForComponent(mySpacer); spacerConstraints.setVSizePolicy( spacerConstraints.getVSizePolicy() & ~GridConstraints.SIZEPOLICY_WANT_GROW); storeConfigurableExpandedProperty(myStoreKey, Boolean.TRUE); } @Override public void beforeOff() { GridConstraints c = myLayoutManager.getConstraintsForComponent(myHideablePanel); c.setVSizePolicy(c.getVSizePolicy() & ~GridConstraints.SIZEPOLICY_WANT_GROW); } @Override public void afterOff() { if (isAllDecoratorsCollapsed()) { GridConstraints c = myLayoutManager.getConstraintsForComponent(mySpacer); c.setVSizePolicy(c.getVSizePolicy() | GridConstraints.SIZEPOLICY_WANT_GROW); } storeConfigurableExpandedProperty(myStoreKey, Boolean.FALSE); } private boolean isAllDecoratorsCollapsed() { for (HideableDecorator hideableDecorator : myHideableDecorators) { if (hideableDecorator.isExpanded()) { return false; } } return true; } } }; }
From source file:com.intellij.application.options.editor.EditorAppearanceConfigurable.java
License:Apache License
@Override public JComponent createComponent() { for (UnnamedConfigurable provider : getConfigurables()) { myAddonPanel.add(provider.createComponent(), new GridBagConstraints(0, GridBagConstraints.RELATIVE, 1, 1, 0, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 15, 0), 0, 0)); }//from ww w .j a va 2s . c om return myRootPanel; }
From source file:com.intellij.codeEditor.printing.ExportToHTMLDialog.java
License:Apache License
@Override protected JComponent createCenterPanel() { OptionGroup optionGroup = new OptionGroup(CodeEditorBundle.message("export.to.html.options.group")); myCbLineNumbers = new JCheckBox( CodeEditorBundle.message("export.to.html.options.show.line.numbers.checkbox")); optionGroup.add(myCbLineNumbers);/*from ww w. jav a 2 s . c o m*/ for (UnnamedConfigurable printOption : myExtensions) { optionGroup.add(printOption.createComponent()); } myCbOpenInBrowser = new JCheckBox(CodeEditorBundle.message("export.to.html.open.generated.html.checkbox")); optionGroup.add(myCbOpenInBrowser); return optionGroup.createPanel(); }
From source file:com.intellij.execution.impl.RunConfigurable.java
License:Apache License
@Override public JComponent createComponent() { for (RunConfigurationsSettings each : Extensions.getExtensions(RunConfigurationsSettings.EXTENSION_POINT)) { UnnamedConfigurable configurable = each.createConfigurable(); myAdditionalSettings.add(Pair.create(configurable, configurable.createComponent())); }// w ww . j ava2 s .c o m myWholePanel = new JPanel(new BorderLayout()); mySplitter.setFirstComponent(createLeftPanel()); mySplitter.setSecondComponent(myRightPanel); myWholePanel.add(mySplitter, BorderLayout.CENTER); updateDialog(); Dimension d = myWholePanel.getPreferredSize(); d.width = Math.max(d.width, 800); d.height = Math.max(d.height, 600); myWholePanel.setPreferredSize(d); mySplitter.setProportion(myProperties.getFloat(DIVIDER_PROPORTION, 0.3f)); return myWholePanel; }
From source file:com.intellij.plugins.haxe.ide.projectStructure.ui.HaxeConfigurationEditor.java
License:Apache License
private void initExtensions() { final HaxeModuleSettings settings = HaxeModuleSettings.getInstance(myModule); final HaxeModuleConfigurationExtensionPoint[] extensionPoints = HaxeModuleConfigurationExtensionPoint.EP_NAME .getExtensions();/*from ww w .j a va 2 s .com*/ if (extensionPoints.length > 0) { final GridLayoutManager layoutManager = new GridLayoutManager(extensionPoints.length, 1); myAdditionalComponentPanel.setLayout(layoutManager); } for (int i = 0; i < extensionPoints.length; i++) { HaxeModuleConfigurationExtensionPoint extensionPoint = extensionPoints[i]; final GridConstraints gridConstraints = new GridConstraints(); gridConstraints.setFill(GridConstraints.FILL_HORIZONTAL); gridConstraints.setRow(i); final UnnamedConfigurable configurable = extensionPoint.createConfigurable(settings); configurables.add(configurable); myAdditionalComponentPanel.add(configurable.createComponent(), gridConstraints); } }
From source file:io.ballerina.plugins.idea.configuration.BallerinaLibrariesConfigurableProvider.java
License:Open Source License
@NotNull private Configurable createConfigurable(boolean dialogMode) { return new CompositeConfigurable<UnnamedConfigurable>() { @NotNull//from w w w. j a v a 2 s. c o m @Override public JComponent createComponent() { List<UnnamedConfigurable> configurables = getConfigurables(); Collection<HideableDecorator> hideableDecorators = new HashSet<>(); GridLayoutManager layoutManager = new GridLayoutManager(configurables.size() + 1, 1, JBUI.emptyInsets(), -1, -1); JPanel rootPanel = new JPanel(layoutManager); Spacer spacer = new Spacer(); rootPanel.add(spacer, new GridConstraints(configurables.size(), 0, 1, 1, GridConstraints.ANCHOR_SOUTH, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null)); for (int i = 0; i < configurables.size(); i++) { UnnamedConfigurable configurable = configurables.get(i); JComponent configurableComponent = configurable.createComponent(); assert configurableComponent != null; JPanel hideablePanel = new JPanel(new BorderLayout()); rootPanel.add(hideablePanel, configurableConstrains(i)); if (configurable instanceof Configurable) { String displayName = ((Configurable) configurable).getDisplayName(); ListenableHideableDecorator decorator = new ListenableHideableDecorator(hideablePanel, displayName, configurableComponent); decorator.addListener(new MyHideableDecoratorListener(layoutManager, hideablePanel, spacer, hideableDecorators, configurableExpandedPropertyKey((Configurable) configurable))); hideableDecorators.add(decorator); decorator.setOn(isConfigurableExpanded(i, (Configurable) configurable)); } } if (dialogMode) { rootPanel.setPreferredSize(new Dimension(400, 600)); } rootPanel.revalidate(); return rootPanel; } @NotNull @Override protected List<UnnamedConfigurable> createConfigurables() { List<UnnamedConfigurable> result = new ArrayList<>(); String[] urlsFromEnv = ContainerUtil.map2Array( BallerinaSdkUtils.getBallerinaPathsRootsFromEnvironment(), String.class, VirtualFile::getUrl); result.add(new BallerinaLibrariesConfigurable("Global libraries", BallerinaApplicationLibrariesService.getInstance(), urlsFromEnv)); if (!myProject.isDefault()) { result.add(new BallerinaLibrariesConfigurable("Project libraries", BallerinaProjectLibrariesService.getInstance(myProject))); } return result; } @NotNull @Nls @Override public String getDisplayName() { return "Ballerina Libraries"; } @Nullable @Override public String getHelpTopic() { return null; } @NotNull private GridConstraints configurableConstrains(int i) { return new GridConstraints(i, 0, 1, 1, GridConstraints.ANCHOR_NORTHEAST, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_GROW | GridConstraints.SIZEPOLICY_WANT_GROW | GridConstraints.SIZEPOLICY_CAN_SHRINK, GridConstraints.SIZEPOLICY_CAN_GROW | GridConstraints.SIZEPOLICY_CAN_SHRINK, null, null, null); } private boolean isConfigurableExpanded(int index, @NotNull Configurable configurable) { return PropertiesComponent.getInstance(myProject) .getBoolean(configurableExpandedPropertyKey(configurable), index < 2); } private void storeConfigurableExpandedProperty(@NotNull String storeKey, @NotNull Boolean value) { PropertiesComponent.getInstance(myProject).setValue(storeKey, value.toString()); } private String configurableExpandedPropertyKey(@NotNull Configurable configurable) { String keyName = "configurable " + configurable.getDisplayName() + " is expanded".toLowerCase(Locale.US); return keyName.replace(' ', '.'); } class MyHideableDecoratorListener extends ListenableHideableDecorator.MyListener { private final GridLayoutManager myLayoutManager; private final JPanel myHideablePanel; @NotNull private final String myStoreKey; private final Spacer mySpacer; private final Collection<HideableDecorator> myHideableDecorators; MyHideableDecoratorListener(@NotNull GridLayoutManager layoutManager, @NotNull JPanel hideablePanel, @NotNull Spacer spacer, @NotNull Collection<HideableDecorator> hideableDecorators, @NotNull String storeKey) { myLayoutManager = layoutManager; myHideablePanel = hideablePanel; myStoreKey = storeKey; mySpacer = spacer; myHideableDecorators = hideableDecorators; } @Override public void on() { GridConstraints c = myLayoutManager.getConstraintsForComponent(myHideablePanel); c.setVSizePolicy(c.getVSizePolicy() | GridConstraints.SIZEPOLICY_WANT_GROW); GridConstraints spacerConstraints = myLayoutManager.getConstraintsForComponent(mySpacer); spacerConstraints.setVSizePolicy( spacerConstraints.getVSizePolicy() & ~GridConstraints.SIZEPOLICY_WANT_GROW); storeConfigurableExpandedProperty(myStoreKey, Boolean.TRUE); } @Override public void beforeOff() { GridConstraints c = myLayoutManager.getConstraintsForComponent(myHideablePanel); c.setVSizePolicy(c.getVSizePolicy() & ~GridConstraints.SIZEPOLICY_WANT_GROW); } @Override public void afterOff() { if (isAllDecoratorsCollapsed()) { GridConstraints c = myLayoutManager.getConstraintsForComponent(mySpacer); c.setVSizePolicy(c.getVSizePolicy() | GridConstraints.SIZEPOLICY_WANT_GROW); } storeConfigurableExpandedProperty(myStoreKey, Boolean.FALSE); } private boolean isAllDecoratorsCollapsed() { for (HideableDecorator hideableDecorator : myHideableDecorators) { if (hideableDecorator.isExpanded()) { return false; } } return true; } } }; }
From source file:org.ballerinalang.plugins.idea.configuration.BallerinaLibrariesConfigurableProvider.java
License:Open Source License
@Nullable private Configurable createConfigurable(boolean dialogMode) { return new CompositeConfigurable<UnnamedConfigurable>() { @Nullable/*from w ww . j av a 2 s . c o m*/ @Override public JComponent createComponent() { List<UnnamedConfigurable> configurables = getConfigurables(); Collection<HideableDecorator> hideableDecorators = ContainerUtil.newHashSet(); GridLayoutManager layoutManager = new GridLayoutManager(configurables.size() + 1, 1, new Insets(0, 0, 0, 0), -1, -1); JPanel rootPanel = new JPanel(layoutManager); Spacer spacer = new Spacer(); rootPanel.add(spacer, new GridConstraints(configurables.size(), 0, 1, 1, GridConstraints.ANCHOR_SOUTH, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null)); for (int i = 0; i < configurables.size(); i++) { UnnamedConfigurable configurable = configurables.get(i); JComponent configurableComponent = configurable.createComponent(); assert configurableComponent != null; JPanel hideablePanel = new JPanel(new BorderLayout()); rootPanel.add(hideablePanel, configurableConstrains(i)); if (configurable instanceof Configurable) { String displayName = ((Configurable) configurable).getDisplayName(); ListenableHideableDecorator decorator = new ListenableHideableDecorator(hideablePanel, displayName, configurableComponent); decorator.addListener(new MyHideableDecoratorListener(layoutManager, hideablePanel, spacer, hideableDecorators, configurableExpandedPropertyKey((Configurable) configurable))); hideableDecorators.add(decorator); decorator.setOn(isConfigurableExpanded(i, (Configurable) configurable)); } } if (dialogMode) { rootPanel.setPreferredSize(new Dimension(400, 600)); } rootPanel.revalidate(); return rootPanel; } @NotNull @Override protected List<UnnamedConfigurable> createConfigurables() { List<UnnamedConfigurable> result = ContainerUtil.newArrayList(); String[] urlsFromEnv = ContainerUtil.map2Array( BallerinaSdkUtil.getBallerinaPathsRootsFromEnvironment(), String.class, VirtualFile::getUrl); result.add(new BallerinaLibrariesConfigurable("Global libraries", BallerinaApplicationLibrariesService.getInstance(), urlsFromEnv)); if (!myProject.isDefault()) { result.add(new BallerinaLibrariesConfigurable("Project libraries", BallerinaProjectLibrariesService.getInstance(myProject))); } return result; } @NotNull @Nls @Override public String getDisplayName() { return "Ballerina Libraries"; } @Nullable @Override public String getHelpTopic() { return null; } @NotNull private GridConstraints configurableConstrains(int i) { return new GridConstraints(i, 0, 1, 1, GridConstraints.ANCHOR_NORTHEAST, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_GROW | GridConstraints.SIZEPOLICY_WANT_GROW | GridConstraints.SIZEPOLICY_CAN_SHRINK, GridConstraints.SIZEPOLICY_CAN_GROW | GridConstraints.SIZEPOLICY_CAN_SHRINK, null, null, null); } private boolean isConfigurableExpanded(int index, @NotNull Configurable configurable) { return PropertiesComponent.getInstance(myProject) .getBoolean(configurableExpandedPropertyKey(configurable), index < 2); } private void storeConfigurableExpandedProperty(@NotNull String storeKey, @NotNull Boolean value) { PropertiesComponent.getInstance(myProject).setValue(storeKey, value.toString()); } private String configurableExpandedPropertyKey(@NotNull Configurable configurable) { String keyName = "configurable " + configurable.getDisplayName() + " is expanded".toLowerCase(Locale.US); return StringUtil.replaceChar(keyName, ' ', '.'); } class MyHideableDecoratorListener extends ListenableHideableDecorator.MyListener { private final GridLayoutManager myLayoutManager; private final JPanel myHideablePanel; @NotNull private final String myStoreKey; private final Spacer mySpacer; private final Collection<HideableDecorator> myHideableDecorators; public MyHideableDecoratorListener(@NotNull GridLayoutManager layoutManager, @NotNull JPanel hideablePanel, @NotNull Spacer spacer, @NotNull Collection<HideableDecorator> hideableDecorators, @NotNull String storeKey) { myLayoutManager = layoutManager; myHideablePanel = hideablePanel; myStoreKey = storeKey; mySpacer = spacer; myHideableDecorators = hideableDecorators; } @Override public void on() { GridConstraints c = myLayoutManager.getConstraintsForComponent(myHideablePanel); c.setVSizePolicy(c.getVSizePolicy() | GridConstraints.SIZEPOLICY_WANT_GROW); GridConstraints spacerConstraints = myLayoutManager.getConstraintsForComponent(mySpacer); spacerConstraints.setVSizePolicy( spacerConstraints.getVSizePolicy() & ~GridConstraints.SIZEPOLICY_WANT_GROW); storeConfigurableExpandedProperty(myStoreKey, Boolean.TRUE); } @Override public void beforeOff() { GridConstraints c = myLayoutManager.getConstraintsForComponent(myHideablePanel); c.setVSizePolicy(c.getVSizePolicy() & ~GridConstraints.SIZEPOLICY_WANT_GROW); } @Override public void afterOff() { if (isAllDecoratorsCollapsed()) { GridConstraints c = myLayoutManager.getConstraintsForComponent(mySpacer); c.setVSizePolicy(c.getVSizePolicy() | GridConstraints.SIZEPOLICY_WANT_GROW); } storeConfigurableExpandedProperty(myStoreKey, Boolean.FALSE); } private boolean isAllDecoratorsCollapsed() { for (HideableDecorator hideableDecorator : myHideableDecorators) { if (hideableDecorator.isExpanded()) { return false; } } return true; } } }; }
From source file:org.jetbrains.idea.maven.project.MavenImportingConfigurable.java
License:Apache License
public JComponent createComponent() { final JPanel panel = mySettingsForm.getAdditionalSettingsPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); JPanel useMaven3Panel = new JPanel(new BorderLayout()); useMaven3Panel.add(myUseMaven3CheckBox, BorderLayout.WEST); panel.add(useMaven3Panel);/* w ww . j av a2 s . co m*/ JPanel embedderVMOptionPanel = new JPanel(new BorderLayout()); JLabel vmOptionLabel = new JLabel("VM options for importer:"); embedderVMOptionPanel.add(vmOptionLabel, BorderLayout.WEST); vmOptionLabel.setLabelFor(myEmbedderVMOptions); embedderVMOptionPanel.add(myEmbedderVMOptions); panel.add(embedderVMOptionPanel); for (final UnnamedConfigurable additionalConfigurable : myAdditionalConfigurables) { panel.add(additionalConfigurable.createComponent()); } return mySettingsForm.createComponent(); }