package name.abuchen.portfolio.ui.parts; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Paths; import javax.annotation.PostConstruct; import javax.inject.Inject; import org.eclipse.e4.core.services.log.Logger; import org.eclipse.e4.ui.model.application.ui.basic.MPart; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import name.abuchen.portfolio.ui.UIConstants; @SuppressWarnings("restriction") public class TextViewerPart { @Inject private Logger logger; @PostConstruct public void createComposite(Composite parent, MPart part) { String filename = part.getPersistedState().get(UIConstants.File.PERSISTED_STATE_KEY); Text text = new Text(parent, SWT.READ_ONLY | SWT.H_SCROLL | SWT.V_SCROLL); part.setLabel(filename); try { byte[] encoded = Files.readAllBytes(Paths.get(filename)); String content = Charset.defaultCharset().decode(ByteBuffer.wrap(encoded)).toString(); text.setText(content); } catch (IOException e) { logger.error(e); } } }