⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cachingtextformatter.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 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 + -