Pokud váš modul plug-in čte textové soubory, měl by dodržovat předvolbu kódování textových souborů na pracovní ploše.
Textové soubory se kódují různě, v závislosti na platformě a národním prostředí. Většina času s použitím výchozího kódování textového souboru pro národní prostředí hostitelského operačního systému je dostatečná. Avšak uživatel může chtít v některých případech pracovat s textovými soubory, které pocházejí z jiného zdroje. Vzhledem ke schopnosti používat platformu v síťově propojeném týmovém prostředí je možné, že uživatelé budou chtít pracovat s textovými soubory, které používají kódovací schémata odlišná od jejich nativního kódovacího schématu, aby si mohli snadno vyměňovat soubory s jinými týmy.
Z tohoto důvodu pracovní plocha definuje svůj vlastní profil kódování, který uživatel určí v dialogovém okně Předvolby. Uživatelé mohou kódování zvolit z dostupných voleb na stránce předvoleb Obecné > Editory nebo mohou své vlastní kódování zadat přímo. Moduly plug-in, které interpretují textové soubory, jako například editory a tvůrce, by měly spíše konzultovat předvolbu kódování pracovní plochy, než předpokládat použití kódování nainstalovaného operačního systému.
Předvolby kódování získáte pomocí ResourcesPlugin.getEncoding(). Toto kódování by se mělo předat čtecím programům java.io , namísto použití kódování výchozího systému. Chcete-li sledovat změny provedené v této předvolbě, můžete zapojit listener na předvolby ResourcesPlugin a reagovat na změny v ResourcesPlugin.PREF_ENCODING. Následující příklad pochází z výchozího textového editoru:
public void initialize(StatusTextEditor textEditor) { fTextEditor= textEditor; fPropertyChangeListener= new Preferences.IPropertyChangeListener() { public void propertyChange(Preferences.PropertyChangeEvent e) { if (ResourcesPlugin.PREF_ENCODING.equals(e.getProperty())) setEncoding(null, false); } }; Preferences p= ResourcesPlugin.getPlugin().getPluginPreferences(); p.addPropertyChangeListener(fPropertyChangeListener); fEncodingActionGroup= new EncodingActionGroup(fTextEditor); fEncodingActionGroup.update(); }
Uživatelé mohou také změnit kódování pro konkrétní soubor v nabídce Upravit > Kódování daného editoru. Pokud manipulujete s textem v otevřeném editoru, měli byste raději použít IEncodingSupport.getEncoding(), abyste získali kódování pro konkrétní editor. Následující příklad ukazuje, jakým způsobem získat tyto informace z editoru:
IEncodingSupport encodingSupport = (IEncodingSupport) editor.getAdapter(IEncodingSupport.class); String encoding = encodingSupport.getEncoding();