1. package org.jr.swing;
  2. /**
  3. * Copyright: Copyright (c) 2002-2004
  4. * Company: JavaResearch(http://www.javaresearch.org)
  5. * 最后更新日期:2003年3月7日
  6. * @author Cherami
  7. */
  8. import org.jr.*;
  9. /**
  10. * 主菜单属性的抽象。
  11. * <p>目前只包括菜单的显示文字
  12. * @since 0.4
  13. */
  14. public class MenuProperty
  15. extends CharSplitProperty {
  16. /**
  17. * 菜单的显示文字。
  18. * @since 0.4
  19. */
  20. public final String text;
  21. /**
  22. * 菜单的加速键。
  23. * @since 0.4
  24. */
  25. public final String mnemonic;
  26. /**
  27. * 显示文字的属性索引。
  28. * @since 0.4
  29. */
  30. public static final int TEXT = 0;
  31. /**
  32. * 快捷键的属性索引。
  33. * @since 0.4
  34. */
  35. public static final int MNEMONIC = 1;
  36. private static final int LEAST_PROPERTY = 1;
  37. private static final int PROPERTY_COUNT = 2;
  38. /**
  39. * 构造方法,根据原始信息解析得到需要的各个子信息,解析的分隔符为'*'。
  40. * @param source 未经解析的原始信息
  41. * @since 0.4
  42. */
  43. public MenuProperty(String source) {
  44. this(source, '*');
  45. }
  46. /**
  47. * 构造方法,根据原始信息解析得到需要的各个子信息。
  48. * @param source 未经解析的原始信息
  49. * @param splitChar 解析的分隔符
  50. * @since 0.4
  51. */
  52. public MenuProperty(String source, char splitChar) {
  53. super(source, splitChar);
  54. text = getProperty(TEXT);
  55. mnemonic = getProperty(MNEMONIC);
  56. }
  57. /**
  58. * 得到属性应有的最少个数。
  59. * @return 属性应有的最少个数,现在值为1。
  60. * @since 0.4
  61. */
  62. public int getLeastPropertyCount() {
  63. return LEAST_PROPERTY;
  64. }
  65. /**
  66. * 得到属性应有的个数。
  67. * 由于对于具体的的项目而言,其需要的属性个数是不同的,因此此方法被定义为抽象的。
  68. * @return 应有的属性个数
  69. * @since 0.4
  70. */
  71. public int getPropertyCount() {
  72. return PROPERTY_COUNT;
  73. }
  74. /**
  75. * 得到属性数组中的指定索引的属性不存在时的返回值。
  76. * @param index 属性数组中的索引
  77. * @return 属性数组中的指定索引的属性不存在时的返回值
  78. * @since 0.4
  79. */
  80. public String getDefaultProperty(int index) {
  81. switch (index) {
  82. case TEXT:
  83. return "Menu " + getNumber();
  84. case MNEMONIC:
  85. return "";
  86. default:
  87. return "";
  88. }
  89. }
  90. }