📄 cachingtextformatter.java
字号:
/* * Created on 06.03.2005 */package net.sourceforge.ganttproject.time.gregorian;import java.util.Calendar;import java.util.Date;import java.util.HashMap;import net.sourceforge.ganttproject.language.GanttLanguage;import net.sourceforge.ganttproject.language.GanttLanguage.Event;import net.sourceforge.ganttproject.language.GanttLanguage.Listener;import net.sourceforge.ganttproject.time.DateFrameable;import net.sourceforge.ganttproject.time.TimeUnit;import net.sourceforge.ganttproject.time.TimeUnitText;/** * @author bard */public abstract class CachingTextFormatter implements Listener { private final static Calendar ourCalendar = (Calendar) Calendar.getInstance().clone(); private final HashMap myTextCache = new HashMap(); protected CachingTextFormatter() { GanttLanguage.getInstance().addListener(this); } public TimeUnitText format(TimeUnit timeUnit, Date baseDate) { TimeUnitText result = null; Date adjustedLeft = ((DateFrameable) timeUnit).adjustLeft(baseDate); result = getCachedText(adjustedLeft); if (result == null) { result = createTimeUnitText(adjustedLeft); myTextCache.put(adjustedLeft, result); } return result; } protected TimeUnitText getCachedText(Date startDate) { return (TimeUnitText) myTextCache.get(startDate); } public void languageChanged(Event event) { myTextCache.clear(); } protected Calendar getCalendar() { return ourCalendar; } protected abstract TimeUnitText createTimeUnitText(Date adjustedLeft);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -