Se o plug-in se destinar a ler ficheiros de texto, deverá respeitar a preferência de codificação de ficheiros de texto na área de trabalho.
Os ficheiros de texto são codificados de maneira diferente consoante a plataforma e o locale. Regra geral, basta utilizar a codificação de ficheiros de texto do sistema operativo central para o locale. Todavia, um utilizador poderá optar por trabalhar com ficheiros de texto oriundos de outra fonte. Perante a capacidade de utilizar a plataforma num ambiente de equipa em rede, é certamente possível que os utilizadores queiram trabalhar com ficheiros de texto que usem um esquema de codificação diferente do esquema de codificação nativo, a fim de trocarem facilmente ficheiros com outra equipa.
Por esta razão, a área de trabalho define o seu próprio perfil de codificação que é especificado pelo utilizador na caixa de diálogo Preferências.
Os utilizadores podem seleccionar as escolhas de codificação disponíveis
na página de preferências
Geral >
Espaço de Trabalho ou introduzir a própria codificação. Os plug-ins que interpretam ficheiros de texto como, por exemplo, editores e construtores, devem consultar a preferência de codificação da área de trabalho em vez de supor que está a ser usada a codificação do sistema operativo instalado.
Poderá obter a preferência de codificação com ResourcesPlugin.getEncoding(). Esta codificação deve ser transmitida a leitores java.io em vez de utilizar a codificação de sistema predefinida. Se quiser acompanhar as alterações a esta preferência, poderá ligar um ouvinte via gancho às preferências de ResourcesPlugin e reagir a alterações em ResourcesPlugin.PREF_ENCODING. O exemplo seguinte vem do editor de texto predefinido:
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(); }
Os utilizadores também poderão alterar a codificação de determinado ficheiro no menu Editar > Codificação de um editor. Se manipular texto dentro de um editor aberto, deverá usar IEncodingSupport.getEncoding() para poder obter a codificação para esse editor. O exemplo seguinte mostra como obter estas informações de junto de um editor:
IEncodingSupport encodingSupport = (IEncodingSupport) editor.getAdapter(IEncodingSupport.class); String encoding = encodingSupport.getEncoding();