/plugins/MyDoggyPlugin/branches/ProjectViewerTrunk/src/myDoggy/OptionPane.java

# · Java · 117 lines · 108 code · 9 blank · 0 comment · 0 complexity · 14e4acab286bf35be2b17ef33dc3d4f7 MD5 · raw file

  1. package myDoggy;
  2. import javax.swing.JCheckBox;
  3. import javax.swing.JComboBox;
  4. import org.gjt.sp.jedit.AbstractOptionPane;
  5. import org.gjt.sp.jedit.jEdit;
  6. import org.noos.xing.mydoggy.PushAwayMode;
  7. @SuppressWarnings("serial")
  8. public class OptionPane extends AbstractOptionPane {
  9. private static final String PREFIX = "options.mydoggy.";
  10. private static final String PUSH_AWAY_MODE_PROP = PREFIX + "pushAwayMode";
  11. private static final String PUSH_AWAY_MODE_LABEL = PUSH_AWAY_MODE_PROP + ".label";
  12. private static final String USE_ALTERNATE_LAYOUT_PROP = PREFIX + "useAlternateLayout";
  13. private static final String USE_ALTERNATE_LAYOUT_LABEL = USE_ALTERNATE_LAYOUT_PROP + ".label";
  14. private static final String FLOAT_ON_TOP_PROP = PREFIX + "floatOnTop";
  15. private static final String FLOAT_ON_TOP_LABEL = FLOAT_ON_TOP_PROP + ".label";
  16. private static final String FLOAT_OS_DECORATIONS_PROP = PREFIX + "floatOsDecorations";
  17. private static final String FLOAT_OS_DECORATIONS_LABEL = FLOAT_OS_DECORATIONS_PROP + ".label";
  18. private static final String FLOAT_ADD_TO_TASKBAR_PROP = PREFIX + "floatAddToTaskBar";
  19. private static final String FLOAT_ADD_TO_TASKBAR_LABEL = FLOAT_ADD_TO_TASKBAR_PROP + ".label";
  20. private static final String ENABLE_PREVIEW_PROP = PREFIX + "enablePreview";
  21. private static final String ENABLE_PREVIEW_LABEL = ENABLE_PREVIEW_PROP + ".label";
  22. private static final String ENABLE_ANIMATIONS_PROP = PREFIX + "enableAnimations";
  23. private static final String ENABLE_ANIMATIONS_LABEL = ENABLE_ANIMATIONS_PROP + ".label";
  24. JComboBox pushAwayMode;
  25. JCheckBox useAlternateLayout;
  26. JCheckBox floatOnTop;
  27. JCheckBox floatOsDecorations;
  28. JCheckBox floatAddToTaskBar;
  29. JCheckBox enablePreview;
  30. JCheckBox enableAnimations;
  31. public OptionPane() {
  32. super("mydoggy");
  33. }
  34. public static void setPushAwayModeProp(PushAwayMode mode)
  35. {
  36. jEdit.setProperty(PUSH_AWAY_MODE_PROP, mode.toString());
  37. }
  38. public static PushAwayMode getPushAwayModeProp() {
  39. String selected = jEdit.getProperty(PUSH_AWAY_MODE_PROP,
  40. PushAwayMode.HORIZONTAL.toString());
  41. return PushAwayMode.valueOf(selected);
  42. }
  43. public static boolean getUseAlternateLayoutProp() {
  44. return jEdit.getBooleanProperty(USE_ALTERNATE_LAYOUT_PROP, true);
  45. }
  46. public static boolean getFloatOnTopProp() {
  47. return jEdit.getBooleanProperty(FLOAT_ON_TOP_PROP, false);
  48. }
  49. public static boolean getFloatOsDecorationsProp() {
  50. return jEdit.getBooleanProperty(FLOAT_OS_DECORATIONS_PROP, false);
  51. }
  52. public static boolean getFloatAddToTaskBarProp() {
  53. return jEdit.getBooleanProperty(FLOAT_ADD_TO_TASKBAR_PROP, false);
  54. }
  55. public static boolean getEnablePreviewProp() {
  56. return jEdit.getBooleanProperty(ENABLE_PREVIEW_PROP, true);
  57. }
  58. public static boolean getEnableAnimationsProp() {
  59. return jEdit.getBooleanProperty(ENABLE_ANIMATIONS_PROP, true);
  60. }
  61. @Override
  62. protected void _init() {
  63. String [] pushAwayModes = new String[] {
  64. PushAwayMode.HORIZONTAL.toString(),
  65. PushAwayMode.VERTICAL.toString(),
  66. PushAwayMode.ANTICLOCKWISE.toString(),
  67. PushAwayMode.MOST_RECENT.toString()
  68. };
  69. pushAwayMode = new JComboBox(pushAwayModes);
  70. pushAwayMode.setSelectedItem(getPushAwayModeProp().toString());
  71. addComponent(jEdit.getProperty(PUSH_AWAY_MODE_LABEL), pushAwayMode);
  72. useAlternateLayout = new JCheckBox(
  73. jEdit.getProperty(USE_ALTERNATE_LAYOUT_LABEL),
  74. getUseAlternateLayoutProp());
  75. addComponent(useAlternateLayout);
  76. floatOnTop = new JCheckBox(
  77. jEdit.getProperty(FLOAT_ON_TOP_LABEL),
  78. getFloatOnTopProp());
  79. addComponent(floatOnTop);
  80. floatOsDecorations = new JCheckBox(
  81. jEdit.getProperty(FLOAT_OS_DECORATIONS_LABEL),
  82. getFloatOsDecorationsProp());
  83. addComponent(floatOsDecorations);
  84. floatAddToTaskBar = new JCheckBox(
  85. jEdit.getProperty(FLOAT_ADD_TO_TASKBAR_LABEL),
  86. getFloatAddToTaskBarProp());
  87. addComponent(floatAddToTaskBar);
  88. enablePreview = new JCheckBox(
  89. jEdit.getProperty(ENABLE_PREVIEW_LABEL),
  90. getEnablePreviewProp());
  91. addComponent(enablePreview);
  92. enableAnimations = new JCheckBox(
  93. jEdit.getProperty(ENABLE_ANIMATIONS_LABEL),
  94. getEnableAnimationsProp());
  95. addComponent(enableAnimations);
  96. }
  97. @Override
  98. protected void _save() {
  99. jEdit.setProperty(PUSH_AWAY_MODE_PROP, (String)pushAwayMode.getSelectedItem());
  100. jEdit.setBooleanProperty(USE_ALTERNATE_LAYOUT_PROP, useAlternateLayout.isSelected());
  101. jEdit.setBooleanProperty(FLOAT_ON_TOP_PROP, floatOnTop.isSelected());
  102. jEdit.setBooleanProperty(FLOAT_OS_DECORATIONS_PROP, floatOsDecorations.isSelected());
  103. jEdit.setBooleanProperty(FLOAT_ADD_TO_TASKBAR_PROP, floatAddToTaskBar.isSelected());
  104. jEdit.setBooleanProperty(ENABLE_PREVIEW_PROP, enablePreview.isSelected());
  105. jEdit.setBooleanProperty(ENABLE_ANIMATIONS_PROP, enableAnimations.isSelected());
  106. jEdit.propertiesChanged();
  107. }
  108. }