package io.andrewohara.tinkertime.views.modView; import io.andrewohara.common.views.selectorPanel.SelectorView; import io.andrewohara.tinkertime.models.mod.Mod; import java.awt.BorderLayout; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class ReadmePanel extends SelectorView.AbstractSelectorView<Mod> { private final JPanel panel = new JPanel(); private JTextArea textArea; public ReadmePanel(){ textArea = new JTextArea(); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); textArea.setEditable(false); JScrollPane scrollPane = new JScrollPane(textArea); scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scrollPane.getVerticalScrollBar().setUnitIncrement(10); panel.setVisible(false); panel.setLayout(new BorderLayout()); panel.add(new JLabel("<html><b>Readme:</b></html"), BorderLayout.NORTH); panel.add(scrollPane, BorderLayout.CENTER); } @Override protected void onElementChanged(Mod mod) { String readmeText = mod.getReadmeText(); textArea.setText(readmeText); textArea.setCaretPosition(0); panel.setVisible(readmeText != null && !readmeText.trim().isEmpty()); } @Override public JComponent getComponent() { return panel; } }