From 735de53062ddb671ab1ffbdf11d9ed06cc281935 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 23 Aug 2010 20:04:13 +0400 Subject: [PATCH] A sample plugin. --- samples/applicationConfigurable/.idea/ant.xml | 7 + .../.idea/compiler.xml | 24 ++++ .../.idea/copyright/profiles_settings.xml | 5 + .../.idea/encodings.xml | 5 + .../applicationConfigurable/.idea/misc.xml | 27 ++++ .../applicationConfigurable/.idea/modules.xml | 9 ++ .../.idea/uiDesigner.xml | 125 ++++++++++++++++++ samples/applicationConfigurable/.idea/vcs.xml | 7 + .../META-INF/plugin.xml | 23 ++++ .../applicationConfigurable.iml | 13 ++ .../src/META-INF/plugin.xml | 25 ++++ .../src/MyPack/IDEdialog.form | 83 ++++++++++++ .../src/MyPack/IDEdialog.java | 77 +++++++++++ .../src/MyPack/ImagesConfigurable.png | Bin 0 -> 2391 bytes .../src/MyPack/MyButtonListener.java | 44 ++++++ .../src/MyPack/MyExtensConfigurable.java | 74 +++++++++++ 16 files changed, 548 insertions(+) create mode 100644 samples/applicationConfigurable/.idea/ant.xml create mode 100644 samples/applicationConfigurable/.idea/compiler.xml create mode 100644 samples/applicationConfigurable/.idea/copyright/profiles_settings.xml create mode 100644 samples/applicationConfigurable/.idea/encodings.xml create mode 100644 samples/applicationConfigurable/.idea/misc.xml create mode 100644 samples/applicationConfigurable/.idea/modules.xml create mode 100644 samples/applicationConfigurable/.idea/uiDesigner.xml create mode 100644 samples/applicationConfigurable/.idea/vcs.xml create mode 100644 samples/applicationConfigurable/META-INF/plugin.xml create mode 100644 samples/applicationConfigurable/applicationConfigurable.iml create mode 100644 samples/applicationConfigurable/src/META-INF/plugin.xml create mode 100644 samples/applicationConfigurable/src/MyPack/IDEdialog.form create mode 100644 samples/applicationConfigurable/src/MyPack/IDEdialog.java create mode 100644 samples/applicationConfigurable/src/MyPack/ImagesConfigurable.png create mode 100644 samples/applicationConfigurable/src/MyPack/MyButtonListener.java create mode 100644 samples/applicationConfigurable/src/MyPack/MyExtensConfigurable.java 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 0000000000000000000000000000000000000000..c261ba3ffa9a511f2377df7aeb4ded83bd5e9c2e GIT binary patch literal 2391 zcmWlbdsvcZAIBd>5%noMtbE8ROw-)7K&W)-E4ogarOn#1G!X*XmIawn+SVa9G=&dHS^8792Q{`yv6Lc_7&F?2IkPXYEYLI>1fM%3)-% zfk+mY$tFghU~t&+Yz8YYeUKdn0Jxdx9gzof$C(xsrNI&QMF6wgFX70TXvZ7m^fN=; z%k+#)N>D~Rg%ZR|r&Tol;^A}s1pmU%%K;qGFRg^DEVTT530lwDBq9FLEAv-h@BN~8 zVY2OENyA#Vcu>>WVXR0@LkDHgsxl_yF)JbxJgePP+ZYRKpGI1tNv1V_APC*%52&4a z)_Uutl$+XnggIKipnap1U8n{zE&PSAf1xeBX0N@!!IWYbne& zS7K31XioW70&4i8sWzI9P|=FGq3 zVfXwM*>00r%j;hjs%e_m&^~N=pml}IZ{2L(a;)Y%b0K$;k~m5?%bD*Jq%I zxP~=yt=g+sTRvJmBc=J}@cv`XpF~i(NAWcGB!z56jN-1p;v8=r`mu4}H{T@xtdgD= zgYuJ~n!05$f6v#kX5X#(fc+WA8qC#C_wvK}NRvf(D_BZMo=BazWR`1ZL)|BTi<6&= zTuJV--O(WJw)!Sk3@QY5Rz&P2rb{p!)^Kqb*6v& z)8!SSd&d;z^41;@6ws|HMrm)icA8YmOO$8f^SbFJd-kIE&VzX9>C+HMjF_dEQO-P_>&*EuE7p1nglM?R3R+7!`zd^|wtu3>Knv0oj5Y zFREIqjT%}{ysvTC2}dkhPR{)2aJsqQRVWAy1iyHl1af07Y!Qk{Xtl>IKFh`ml{5%? zX{lk078{OQp167W-k_s+1Yxm^&YMl+v?>DKai>O2B@l}ea9>X71mE^k%SNoJh3osw z7UxjdsUZ_=q=)T%m6zgQVDTAlDV+IVG!vz3pUezV$r}&%Xy4+=S$mg>on02hQcidT zuoAS}nEfjc`#3KU@jMQB)!z&1Jf>laa^Ac6>+um=Oq`UcPL$Lq*?42sdh^uZ0W^1$;Fb0cDl}4X*HZYG!|oz*jalmT(V2`rcuS0B^|g>|ArL zK{kg=pFw*!)f$6jkm* z9%!L6jmVTo>0JIw;rjGMVSX@|9P)j1P}sK5dnI>Itt$PxW5f2t$_!zLx{{-OP>8v* zCN04eSP|jishu`7qLr1ymABD4$ott>c*O2lR|qROqF-rspXo;_ zLV z3~c#!0{(egHuR%$96#UYM;-XCmJ*^I?syX0rTa`)Y=EN#j2t9VDNlZbBfXMfeH^^ zB;lJXYN=s)hKgePo_SPO)?6bgA=F@O-OKx=rS-&E>&ekaMVB^XeOF?HM2nP!NCSg!6iMV zqIkD}Q3Kp8AYU~N4{F~AxWhvz2|AS&F5wxr2E%pF_JSR1F~my(6f$1k zf)^b|kmuqK&FB6OJd@W)9&a76B^dU3uZMRZ4_Pd5-FfRq(76XnEcWij@V-iTjyn7}KOR!docIHj&VNtw!5fleuAQ z6fZM#Qf5cAHNlRZb~x>O=aaNk>ViL7e)pEc&7B}xn+?S(twUPGHNfWECNSqEpVi`S z?YTCvq?+Z27ki4%CTD$oT?RxQjbtn85)EGd2xB6}s;{^_B_*Wpx`B$3bPCEyVVkWr zmuKYMHI8FWg&X_&ZKY$km5JMF7Xbt<&oX>UlmJyXlk_D=I32d15fHsIc1P1!DJB00 DqwKX> literal 0 HcmV?d00001 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() { + + } + +}