/plugins/ColumnRuler/tags/release-1_0_0/org/jedit/plugins/columnruler/MarkManager.java

# · Java · 117 lines · 92 code · 25 blank · 0 comment · 9 complexity · 219065cc9eeb0afc4a22d3985ac155de MD5 · raw file

  1. package org.jedit.plugins.columnruler;
  2. import java.awt.Color;
  3. import java.util.*;
  4. import org.gjt.sp.jedit.*;
  5. import org.jedit.plugins.columnruler.event.*;
  6. public class MarkManager {
  7. private static MarkManager instance;
  8. private List<StaticMark> marks;
  9. private List<MarkManagerListener> listeners;
  10. private MarkManager() {
  11. listeners = new ArrayList<MarkManagerListener>();
  12. loadMarks();
  13. }
  14. public void addMarkManagerListener(MarkManagerListener l) {
  15. listeners.add(l);
  16. }
  17. public void removeMarkManagerListener(MarkManagerListener l) {
  18. listeners.remove(l);
  19. }
  20. public void loadMarks() {
  21. marks = new ArrayList<StaticMark>();
  22. int i = 0;
  23. String name = jEdit.getProperty("options.columnruler.marks." + i + ".name");
  24. while (name != null) {
  25. StaticMark m = new StaticMark(name);
  26. m.setColumn(jEdit.getIntegerProperty("options.columnruler.marks." + i + ".column", 0));
  27. m.setColor(jEdit.getColorProperty("options.columnruler.marks." + i + ".color", Color.WHITE));
  28. m.setSize(jEdit.getIntegerProperty("options.columnruler.marks." + i + ".size", 1));
  29. marks.add(m);
  30. i++;
  31. name = jEdit.getProperty("options.columnruler.marks." + i + ".name");
  32. }
  33. }
  34. public void save() {
  35. int i = 0;
  36. for (i = 0; i < marks.size(); i++) {
  37. StaticMark mark = marks.get(i);
  38. jEdit.setProperty("options.columnruler.marks." + i + ".name", mark.getName());
  39. jEdit.setIntegerProperty("options.columnruler.marks." + i + ".column", mark.getColumn());
  40. jEdit.setColorProperty("options.columnruler.marks." + i + ".color", mark.getColor());
  41. jEdit.setBooleanProperty("options.columnruler.marks." + i + ".guide", mark.isGuideVisible());
  42. }
  43. jEdit.unsetProperty("options.columnruler.marks." + i + ".name");
  44. }
  45. public static MarkManager getInstance() {
  46. if (instance == null) {
  47. instance = new MarkManager();
  48. }
  49. return instance;
  50. }
  51. public void addMark(StaticMark m) {
  52. addMark(m, true);
  53. }
  54. public void addMark(StaticMark m, boolean notify) {
  55. marks.add(m);
  56. if (notify) {
  57. fireMarkAdded(m);
  58. }
  59. }
  60. public void removeMark(StaticMark m) {
  61. marks.remove(m);
  62. fireMarkRemoved(m);
  63. }
  64. public void removeAll() {
  65. marks.clear();
  66. fireMarksUpdated();
  67. }
  68. public boolean containsMark(StaticMark m) {
  69. return marks.contains(m);
  70. }
  71. public List<StaticMark> getMarks() {
  72. return marks;
  73. }
  74. public int getMarkCount() {
  75. return marks.size();
  76. }
  77. protected void fireMarkAdded(StaticMark m) {
  78. for (MarkManagerListener l : listeners) {
  79. l.markAdded(m);
  80. }
  81. }
  82. protected void fireMarkRemoved(StaticMark m) {
  83. for (MarkManagerListener l : listeners) {
  84. l.markRemoved(m);
  85. }
  86. }
  87. protected void fireMarksUpdated() {
  88. for (MarkManagerListener l : listeners) {
  89. l.marksUpdated();
  90. }
  91. }
  92. }