diff --git a/samples/applicationConfigurable/.idea/ant.xml b/samples/applicationConfigurable/.idea/ant.xml
new file mode 100644
index 000000000000..2581ca3fe84c
--- /dev/null
+++ b/samples/applicationConfigurable/.idea/ant.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/samples/applicationConfigurable/.idea/compiler.xml b/samples/applicationConfigurable/.idea/compiler.xml
new file mode 100644
index 000000000000..97c9ca5c8b0a
--- /dev/null
+++ b/samples/applicationConfigurable/.idea/compiler.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/applicationConfigurable/.idea/copyright/profiles_settings.xml b/samples/applicationConfigurable/.idea/copyright/profiles_settings.xml
new file mode 100644
index 000000000000..3572571ad83c
--- /dev/null
+++ b/samples/applicationConfigurable/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/applicationConfigurable/.idea/encodings.xml b/samples/applicationConfigurable/.idea/encodings.xml
new file mode 100644
index 000000000000..e206d70d8595
--- /dev/null
+++ b/samples/applicationConfigurable/.idea/encodings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/samples/applicationConfigurable/.idea/misc.xml b/samples/applicationConfigurable/.idea/misc.xml
new file mode 100644
index 000000000000..47c15629633a
--- /dev/null
+++ b/samples/applicationConfigurable/.idea/misc.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/applicationConfigurable/.idea/modules.xml b/samples/applicationConfigurable/.idea/modules.xml
new file mode 100644
index 000000000000..c1ce2c1e48e4
--- /dev/null
+++ b/samples/applicationConfigurable/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/samples/applicationConfigurable/.idea/uiDesigner.xml b/samples/applicationConfigurable/.idea/uiDesigner.xml
new file mode 100644
index 000000000000..3b0002030884
--- /dev/null
+++ b/samples/applicationConfigurable/.idea/uiDesigner.xml
@@ -0,0 +1,125 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
diff --git a/samples/applicationConfigurable/.idea/vcs.xml b/samples/applicationConfigurable/.idea/vcs.xml
new file mode 100644
index 000000000000..def6a6a18457
--- /dev/null
+++ b/samples/applicationConfigurable/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/samples/applicationConfigurable/META-INF/plugin.xml b/samples/applicationConfigurable/META-INF/plugin.xml
new file mode 100644
index 000000000000..09db9b20e722
--- /dev/null
+++ b/samples/applicationConfigurable/META-INF/plugin.xml
@@ -0,0 +1,23 @@
+
+ Plugin name here
+ short description of the plugin
+ 1.0
+ YourCompany
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/applicationConfigurable/applicationConfigurable.iml b/samples/applicationConfigurable/applicationConfigurable.iml
new file mode 100644
index 000000000000..6bada6d4c479
--- /dev/null
+++ b/samples/applicationConfigurable/applicationConfigurable.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/applicationConfigurable/src/META-INF/plugin.xml b/samples/applicationConfigurable/src/META-INF/plugin.xml
new file mode 100644
index 000000000000..b7a4e94d0b1e
--- /dev/null
+++ b/samples/applicationConfigurable/src/META-INF/plugin.xml
@@ -0,0 +1,25 @@
+
+ MY_IDE_Settings
+ This sample plugin illustrates how to contribute to the applicationConfigurable extension point in the IDEA core.
+
+ 1.0
+ JetBrains
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/applicationConfigurable/src/MyPack/IDEdialog.form b/samples/applicationConfigurable/src/MyPack/IDEdialog.form
new file mode 100644
index 000000000000..2d6d487e5130
--- /dev/null
+++ b/samples/applicationConfigurable/src/MyPack/IDEdialog.form
@@ -0,0 +1,83 @@
+
+
diff --git a/samples/applicationConfigurable/src/MyPack/IDEdialog.java b/samples/applicationConfigurable/src/MyPack/IDEdialog.java
new file mode 100644
index 000000000000..25a3239adc42
--- /dev/null
+++ b/samples/applicationConfigurable/src/MyPack/IDEdialog.java
@@ -0,0 +1,77 @@
+package MyPack;
+
+import com.intellij.ide.ui.UISettings;
+import com.intellij.util.ui.UIUtil;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.*;
+
+public class IDEdialog extends JDialog {
+ private JPanel contentPane;
+ private JPanel Name;
+ public JComboBox myFontCombo;
+ public JComboBox myFontSize;
+ public JLabel menuFontSettingsLabel;
+ public JButton ButtonRestoreDefaultFont;
+ private String Buffer;
+
+
+ public IDEdialog() {
+ setContentPane(contentPane);
+ setModal(true);
+ UISettings settings = UISettings.getInstance();
+ myFontCombo.setModel(new DefaultComboBoxModel(UIUtil.getValidFontNames(false)));
+ myFontSize.setModel(new DefaultComboBoxModel(UIUtil.getStandardFontSizes()));
+ myFontCombo.setSelectedItem(settings.FONT_FACE);
+ myFontSize.setSelectedItem( String.valueOf(settings.FONT_SIZE));
+
+// Configure the Set Default Font button.
+
+ MyButtonListener actionListener = new MyButtonListener();
+ actionListener.button=ButtonRestoreDefaultFont;
+ actionListener.myFontCombo= myFontCombo;
+ actionListener.myFontSize= myFontSize;
+ ButtonRestoreDefaultFont.addActionListener(actionListener);
+
+
+// call onCancel() when cross is clicked
+ setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
+ addWindowListener(new WindowAdapter() {
+ public void windowClosing(WindowEvent e) {
+ onCancel();
+ }
+ });
+
+// call onCancel() on ESCAPE
+ contentPane.registerKeyboardAction(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ onCancel();
+ }
+ }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
+ }
+
+ private void onOK() {
+// add your code here
+
+
+ dispose();
+ }
+
+
+ private void onCancel() {
+// add your code here if necessary
+ dispose();
+ }
+
+
+
+ public static void main(String[] args) {
+ IDEdialog dialog = new IDEdialog();
+ dialog.pack();
+ dialog.setVisible(true);
+ System.exit(0);
+ }
+
+
+}
diff --git a/samples/applicationConfigurable/src/MyPack/ImagesConfigurable.png b/samples/applicationConfigurable/src/MyPack/ImagesConfigurable.png
new file mode 100644
index 000000000000..c261ba3ffa9a
Binary files /dev/null and b/samples/applicationConfigurable/src/MyPack/ImagesConfigurable.png differ
diff --git a/samples/applicationConfigurable/src/MyPack/MyButtonListener.java b/samples/applicationConfigurable/src/MyPack/MyButtonListener.java
new file mode 100644
index 000000000000..19db446f2de1
--- /dev/null
+++ b/samples/applicationConfigurable/src/MyPack/MyButtonListener.java
@@ -0,0 +1,44 @@
+package MyPack;
+
+import com.intellij.ide.ui.LafManager;
+import com.intellij.ide.ui.UISettings;
+
+import javax.swing.*;
+import javax.swing.plaf.ButtonUI;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: Alexey.Chursin
+ * Date: Aug 7, 2010
+ * Time: 9:36:45 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class MyButtonListener implements ActionListener {
+
+
+ public JButton button;
+ public JComboBox myFontCombo;
+ public JComboBox myFontSize;
+
+
+ public void actionPerformed(ActionEvent e) {
+
+ UISettings settings = UISettings.getInstance();
+ LafManager lafManager = LafManager.getInstance();
+ settings.FONT_FACE="Segoe UI";
+ settings.FONT_SIZE=12;
+ myFontCombo.setSelectedItem(settings.FONT_FACE);
+ myFontSize.setSelectedItem( String.valueOf(settings.FONT_SIZE));
+ settings.fireUISettingsChanged();
+ lafManager.updateUI();
+
+
+
+
+ }
+
+ }
+
diff --git a/samples/applicationConfigurable/src/MyPack/MyExtensConfigurable.java b/samples/applicationConfigurable/src/MyPack/MyExtensConfigurable.java
new file mode 100644
index 000000000000..5208ca97ee88
--- /dev/null
+++ b/samples/applicationConfigurable/src/MyPack/MyExtensConfigurable.java
@@ -0,0 +1,74 @@
+package MyPack;
+
+
+import com.intellij.ide.ui.LafManager;
+import com.intellij.ide.ui.UISettings;
+import com.intellij.openapi.options.Configurable;
+import com.intellij.openapi.ui.Messages;
+
+
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: Alexey.Chursin
+ * Date: Jul 30, 2010
+ * Time: 5:59:43 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class MyExtensConfigurable implements Configurable {
+ private JComponent myComponent;
+ private IDEdialog Mydialog;
+
+ public String getDisplayName() {
+ return "Menu Font";
+ }
+
+ public boolean isModified() {
+
+
+ return true;
+ }
+
+ public JComponent createComponent() {
+ Mydialog = new IDEdialog();
+ myComponent= (JComponent) Mydialog.getComponent(0);
+ return myComponent ;
+
+ }
+
+ public Icon getIcon() {
+ return null;
+
+ }
+
+ public void apply() {
+ UISettings settings = UISettings.getInstance();
+ LafManager lafManager = LafManager.getInstance();
+ String _fontFace = (String)Mydialog.myFontCombo.getSelectedItem();
+ String _fontSize_STR = (String)Mydialog.myFontSize.getSelectedItem();
+ int _fontSize= Integer.parseInt(_fontSize_STR);
+
+ if (_fontSize != settings.FONT_SIZE || !settings.FONT_FACE.equals(_fontFace)) {
+ settings.FONT_SIZE = _fontSize;
+ settings.FONT_FACE = _fontFace;
+ settings.fireUISettingsChanged();
+ lafManager.updateUI();
+ }
+
+ }
+
+ public void disposeUIResources() {
+
+ }
+
+ public String getHelpTopic() {
+ return "preferences.lookFeel";
+ }
+
+ public void reset() {
+
+ }
+
+}