A sample plugin.
authorunknown <Alexey.Chursin@.Labs.IntelliJ.Net>
Mon, 23 Aug 2010 16:04:13 +0000 (20:04 +0400)
committerunknown <Alexey.Chursin@.Labs.IntelliJ.Net>
Tue, 24 Aug 2010 17:12:16 +0000 (21:12 +0400)
16 files changed:
samples/applicationConfigurable/.idea/ant.xml [new file with mode: 0644]
samples/applicationConfigurable/.idea/compiler.xml [new file with mode: 0644]
samples/applicationConfigurable/.idea/copyright/profiles_settings.xml [new file with mode: 0644]
samples/applicationConfigurable/.idea/encodings.xml [new file with mode: 0644]
samples/applicationConfigurable/.idea/misc.xml [new file with mode: 0644]
samples/applicationConfigurable/.idea/modules.xml [new file with mode: 0644]
samples/applicationConfigurable/.idea/uiDesigner.xml [new file with mode: 0644]
samples/applicationConfigurable/.idea/vcs.xml [new file with mode: 0644]
samples/applicationConfigurable/META-INF/plugin.xml [new file with mode: 0644]
samples/applicationConfigurable/applicationConfigurable.iml [new file with mode: 0644]
samples/applicationConfigurable/src/META-INF/plugin.xml [new file with mode: 0644]
samples/applicationConfigurable/src/MyPack/IDEdialog.form [new file with mode: 0644]
samples/applicationConfigurable/src/MyPack/IDEdialog.java [new file with mode: 0644]
samples/applicationConfigurable/src/MyPack/ImagesConfigurable.png [new file with mode: 0644]
samples/applicationConfigurable/src/MyPack/MyButtonListener.java [new file with mode: 0644]
samples/applicationConfigurable/src/MyPack/MyExtensConfigurable.java [new file with mode: 0644]

diff --git a/samples/applicationConfigurable/.idea/ant.xml b/samples/applicationConfigurable/.idea/ant.xml
new file mode 100644 (file)
index 0000000..2581ca3
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AntConfiguration">
+    <defaultAnt bundledAnt="true" />
+  </component>
+</project>
+
diff --git a/samples/applicationConfigurable/.idea/compiler.xml b/samples/applicationConfigurable/.idea/compiler.xml
new file mode 100644 (file)
index 0000000..97c9ca5
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <option name="DEFAULT_COMPILER" value="Javac" />
+    <resourceExtensions>
+      <entry name=".+\.(properties|xml|html|dtd|tld)" />
+      <entry name=".+\.(gif|png|jpeg|jpg)" />
+    </resourceExtensions>
+    <wildcardResourcePatterns>
+      <entry name="?*.properties" />
+      <entry name="?*.xml" />
+      <entry name="?*.gif" />
+      <entry name="?*.png" />
+      <entry name="?*.jpeg" />
+      <entry name="?*.jpg" />
+      <entry name="?*.html" />
+      <entry name="?*.dtd" />
+      <entry name="?*.tld" />
+      <entry name="?*.ftl" />
+    </wildcardResourcePatterns>
+    <annotationProcessing enabled="false" useClasspath="true" />
+  </component>
+</project>
+
diff --git a/samples/applicationConfigurable/.idea/copyright/profiles_settings.xml b/samples/applicationConfigurable/.idea/copyright/profiles_settings.xml
new file mode 100644 (file)
index 0000000..3572571
--- /dev/null
@@ -0,0 +1,5 @@
+<component name="CopyrightManager">
+  <settings default="">
+    <module2copyright />
+  </settings>
+</component>
\ No newline at end of file
diff --git a/samples/applicationConfigurable/.idea/encodings.xml b/samples/applicationConfigurable/.idea/encodings.xml
new file mode 100644 (file)
index 0000000..e206d70
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
+</project>
+
diff --git a/samples/applicationConfigurable/.idea/misc.xml b/samples/applicationConfigurable/.idea/misc.xml
new file mode 100644 (file)
index 0000000..47c1562
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="DependencyValidationManager">
+    <option name="SKIP_IMPORT_STATEMENTS" value="false" />
+  </component>
+  <component name="JavadocGenerationManager">
+    <option name="OUTPUT_DIRECTORY" />
+    <option name="OPTION_SCOPE" value="protected" />
+    <option name="OPTION_HIERARCHY" value="true" />
+    <option name="OPTION_NAVIGATOR" value="true" />
+    <option name="OPTION_INDEX" value="true" />
+    <option name="OPTION_SEPARATE_INDEX" value="true" />
+    <option name="OPTION_DOCUMENT_TAG_USE" value="false" />
+    <option name="OPTION_DOCUMENT_TAG_AUTHOR" value="false" />
+    <option name="OPTION_DOCUMENT_TAG_VERSION" value="false" />
+    <option name="OPTION_DOCUMENT_TAG_DEPRECATED" value="true" />
+    <option name="OPTION_DEPRECATED_LIST" value="true" />
+    <option name="OTHER_OPTIONS" value="" />
+    <option name="HEAP_SIZE" />
+    <option name="LOCALE" />
+    <option name="OPEN_IN_BROWSER" value="true" />
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_5" assert-keyword="true" jdk-15="true" project-jdk-name="IDEA IC-96.705" project-jdk-type="IDEA JDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
+
diff --git a/samples/applicationConfigurable/.idea/modules.xml b/samples/applicationConfigurable/.idea/modules.xml
new file mode 100644 (file)
index 0000000..c1ce2c1
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/applicationConfigurable.iml" filepath="$PROJECT_DIR$/applicationConfigurable.iml" />
+    </modules>
+  </component>
+</project>
+
diff --git a/samples/applicationConfigurable/.idea/uiDesigner.xml b/samples/applicationConfigurable/.idea/uiDesigner.xml
new file mode 100644 (file)
index 0000000..3b00020
--- /dev/null
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>
+
diff --git a/samples/applicationConfigurable/.idea/vcs.xml b/samples/applicationConfigurable/.idea/vcs.xml
new file mode 100644 (file)
index 0000000..def6a6a
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="" />
+  </component>
+</project>
+
diff --git a/samples/applicationConfigurable/META-INF/plugin.xml b/samples/applicationConfigurable/META-INF/plugin.xml
new file mode 100644 (file)
index 0000000..09db9b2
--- /dev/null
@@ -0,0 +1,23 @@
+<idea-plugin version="2">
+  <name>Plugin name here</name>
+  <description>short description of the plugin</description>
+  <version>1.0</version>
+  <vendor>YourCompany</vendor>
+  <idea-version since-build="8000"/>
+
+  <application-components>
+    <!-- Add your application components here -->
+  </application-components>
+
+  <project-components>
+    <!-- Add your project components here -->
+  </project-components>
+
+  <actions>
+    <!-- Add your actions here -->
+  </actions>
+
+  <extensions defaultExtensionNs="com.intellij">
+    <!-- Add your extensions here -->
+  </extensions>
+</idea-plugin>
\ No newline at end of file
diff --git a/samples/applicationConfigurable/applicationConfigurable.iml b/samples/applicationConfigurable/applicationConfigurable.iml
new file mode 100644 (file)
index 0000000..6bada6d
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PLUGIN_MODULE" version="4">
+  <component name="DevKit.ModuleBuildProperties" url="file://$MODULE_DIR$/src/META-INF/plugin.xml" />
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="jdk" jdkName="IDEA IC-96.705" jdkType="IDEA JDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
+
diff --git a/samples/applicationConfigurable/src/META-INF/plugin.xml b/samples/applicationConfigurable/src/META-INF/plugin.xml
new file mode 100644 (file)
index 0000000..b7a4e94
--- /dev/null
@@ -0,0 +1,25 @@
+<idea-plugin version="2">
+  <name>MY_IDE_Settings</name>
+  <description>This sample plugin illustrates how to contribute to the applicationConfigurable extension point in the IDEA core.
+  </description>
+  <version>1.0</version>
+  <vendor>JetBrains</vendor>
+  <idea-version since-build="8000"/>
+
+  <application-components>
+    <!-- Add your application components here -->
+  </application-components>
+
+  <project-components>
+    <!-- Add your project components here -->
+  </project-components>
+
+  <actions>
+    <!-- Add your actions here -->
+  </actions>
+
+  <extensions defaultExtensionNs="com.intellij">
+    <!-- Add your extensions here -->
+      <applicationConfigurable implementation="MyPack.MyExtensConfigurable"></applicationConfigurable>
+  </extensions>
+</idea-plugin>
\ 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 (file)
index 0000000..2d6d487
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="MyPack.IDEdialog">
+  <grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+    <margin top="10" left="10" bottom="10" right="10"/>
+    <constraints>
+      <xy x="48" y="54" width="436" height="297"/>
+    </constraints>
+    <properties/>
+    <border type="none"/>
+    <children>
+      <grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+        <margin top="0" left="0" bottom="0" right="0"/>
+        <constraints>
+          <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
+        </constraints>
+        <properties/>
+        <border type="none"/>
+        <children/>
+      </grid>
+      <grid id="e3588" binding="Name" layout-manager="GridLayoutManager" row-count="4" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+        <margin top="0" left="0" bottom="0" right="0"/>
+        <constraints>
+          <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
+        </constraints>
+        <properties/>
+        <border type="none"/>
+        <children>
+          <component id="b680c" class="javax.swing.JComboBox" binding="myFontSize">
+            <constraints>
+              <grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="9" fill="1" indent="0" use-parent-layout="false"/>
+            </constraints>
+            <properties/>
+          </component>
+          <component id="cab70" class="javax.swing.JComboBox" binding="myFontCombo">
+            <constraints>
+              <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="9" fill="1" indent="0" use-parent-layout="false"/>
+            </constraints>
+            <properties/>
+          </component>
+          <component id="e0d0a" class="javax.swing.JLabel" binding="menuFontSettingsLabel">
+            <constraints>
+              <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="1" fill="0" indent="0" use-parent-layout="false"/>
+            </constraints>
+            <properties>
+              <font name="Segoe UI" size="14" style="0"/>
+              <text value="Current menu font settings:"/>
+            </properties>
+          </component>
+          <component id="f84bf" class="javax.swing.JLabel">
+            <constraints>
+              <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="9" fill="0" indent="0" use-parent-layout="false"/>
+            </constraints>
+            <properties>
+              <alignmentX value="1.0"/>
+              <text value="Font Name:"/>
+              <verifyInputWhenFocusTarget value="false"/>
+            </properties>
+          </component>
+          <component id="20945" class="javax.swing.JLabel">
+            <constraints>
+              <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="9" fill="0" indent="0" use-parent-layout="false"/>
+            </constraints>
+            <properties>
+              <alignmentX value="1.0"/>
+              <text value="Font Size:"/>
+            </properties>
+          </component>
+          <component id="a38e1" class="javax.swing.JButton" binding="ButtonRestoreDefaultFont">
+            <constraints>
+              <grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                <preferred-size width="5" height="50"/>
+                <maximum-size width="150" height="30"/>
+              </grid>
+            </constraints>
+            <properties>
+              <text value="Default Font"/>
+            </properties>
+          </component>
+        </children>
+      </grid>
+    </children>
+  </grid>
+</form>
diff --git a/samples/applicationConfigurable/src/MyPack/IDEdialog.java b/samples/applicationConfigurable/src/MyPack/IDEdialog.java
new file mode 100644 (file)
index 0000000..25a3239
--- /dev/null
@@ -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 (file)
index 0000000..c261ba3
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 (file)
index 0000000..19db446
--- /dev/null
@@ -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 (file)
index 0000000..5208ca9
--- /dev/null
@@ -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() {
+        
+    }
+
+}