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

📄 ganttlanguage.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
/*************************************************************************** GanttLanguage.java  -  description ------------------- begin                : jan 2003 copyright            : (C) 2003 by Thomas Alexandre email                : alexthomas(at)ganttproject.org ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/package net.sourceforge.ganttproject.language;import java.awt.ComponentOrientation;import java.text.DateFormat;import java.text.FieldPosition;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.EventListener;import java.util.EventObject;import java.util.Locale;import java.util.MissingResourceException;import java.util.ResourceBundle;import javax.swing.UIManager;import net.sourceforge.ganttproject.GanttCalendar;import net.sourceforge.ganttproject.time.gregorian.GregorianCalendar;/** * Class for the language */public class GanttLanguage {    public class Event extends EventObject {        public Event(GanttLanguage language) {            super(language);        }        public GanttLanguage getLanguage() {            return (GanttLanguage) getSource();        }    }    public interface Listener extends EventListener {        public void languageChanged(Event event);    }    private static GanttLanguage ganttLanguage = null;    private ArrayList myListeners = new ArrayList();    public static GanttLanguage getInstance() {        if (ganttLanguage == null) {            ganttLanguage = new GanttLanguage();        }        return ganttLanguage;    }    Locale currentLocale = null;    ResourceBundle i18n = null;    SimpleDateFormat currentDateFormat = null;    SimpleDateFormat shortCurrentDateFormat = null;        DateFormat currentTimeFormat = null;    public static final String MISSING_RESOURCE = "Missing Resource";    private GanttLanguage() {        setLocale(Locale.getDefault());    }    public void setLocale(Locale locale) {        currentLocale = locale;        Locale.setDefault(locale);        currentDateFormat = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.MEDIUM,                currentLocale);        shortCurrentDateFormat = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.SHORT,                currentLocale);        currentTimeFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM,                currentLocale);    	SimpleDateFormat longFormat = (SimpleDateFormat)DateFormat.getDateInstance(DateFormat.LONG, locale);        UIManager.put("JXDatePicker.longFormat", longFormat.toPattern());        UIManager.put("JXDatePicker.mediumFormat", currentDateFormat.toPattern());        UIManager.put("JXDatePicker.shortFormat", shortCurrentDateFormat.toPattern());        UIManager.put("JXDatePicker.numColumns", new Integer(10));        String[] dayShortNames = new String[7];        for (int i=0; i<7; i++) {        	dayShortNames[i] = getDay(i).substring(0, 1);        }        UIManager.put("JXMonthView.daysOfTheWeek", dayShortNames);        String resourceBase = System.getProperty(                "org.ganttproject.resourcebase", "language/i18n");        i18n = ResourceBundle.getBundle(resourceBase, currentLocale);        fireLanguageChanged();    }    /**     * Return the current Locale.     *      * @return The current Locale.     */    public Locale getLocale() {        return currentLocale;    }    /**     * Return the current DateFormat.     *      * @return The current DateFormat.     */    public DateFormat getDateFormat() {        return currentDateFormat;    }    public String formatDate(GanttCalendar date) {        return currentDateFormat.format(date.getTime());    }    public String formatShortDate(GanttCalendar date)    {    	return shortCurrentDateFormat.format(date.getTime());    }        public String formatTime(GanttCalendar date) {        return currentTimeFormat.format(date.getTime());    }    public GanttCalendar parseDate(String date) throws ParseException {        Calendar tmp = Calendar.getInstance(currentLocale);        tmp.setTime(currentDateFormat.parse(date));        return new GanttCalendar(tmp.get(Calendar.YEAR), tmp                .get(Calendar.MONTH), tmp.get(Calendar.DATE));    }    public String getMonth(int m) {        GregorianCalendar month = new GregorianCalendar(2000, m, 1);        SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM",                this.currentLocale);        StringBuffer result = new StringBuffer();        result = dateFormat.format(month.getTime(), result, new FieldPosition(                DateFormat.MONTH_FIELD));        return result.toString();    }    public String getDay(int d) {        GregorianCalendar day = new GregorianCalendar(2000, 1, 1);        while (day.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {            day.add(Calendar.DATE, 1);        }        day.add(Calendar.DATE, d);        SimpleDateFormat dateFormat = new SimpleDateFormat("EEE",                this.currentLocale);        StringBuffer result = new StringBuffer();        result = dateFormat.format(day.getTime(), result, new FieldPosition(                DateFormat.DAY_OF_WEEK_FIELD));        return result.toString();    }    public String getText(String key) {        try {            return i18n.getString(key);        } catch (MissingResourceException e) {            return MISSING_RESOURCE + " '" + key + "'";        }    };    public ComponentOrientation getComponentOrientation() {        return ComponentOrientation.getOrientation(currentLocale);    }    public void addListener(Listener listener) {        myListeners.add(listener);    }    public void removeListener(Listener listener) {        myListeners.remove(listener);    }    private void fireLanguageChanged() {        Event event = new Event(this);        for (int i = 0; i < myListeners.size(); i++) {            Listener next = (Listener) myListeners.get(i);            next.languageChanged(event);        }    }    public SimpleDateFormat createDateFormat(String string) {        return new SimpleDateFormat(string, currentLocale);    }    public String correctLabel(String label) {        int index = label.indexOf('$');        if (index != -1 && label.length() - index > 1) {            label = label.substring(0, index).concat(label.substring(++index));        }        return label;    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -