package br.ufpr.c3sl.view.EnunciationHTML; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionListener; import javax.swing.JCheckBox; import javax.swing.JPanel; import br.ufpr.c3sl.pageHTML.Html; import br.ufpr.c3sl.state.SaveState; import br.ufpr.c3sl.util.Util; import br.ufpr.c3sl.view.PageHTML.JPanelHTML; public class Enunciation extends JPanel implements SaveState { private static final long serialVersionUID = 3743623610914220124L; private JCheckBox jcbShowHideEnun; private JPanelHTML panel; private String text; private static final Font FONT_SHOW_HIDE_TEXT = new Font("Arial", Font.ITALIC, 12); private static final String HIDE_ENUNCIATION = "↑ [Clique Aqui para Esconder o Texto]"; private static final String SHOW_ENUNCIATION = "↓ [Clique Aqui para Aparecer o Texto]"; public Enunciation(String filepath) { this(filepath, true); } public Enunciation(String filepath, boolean showRadioButton) { setMinimumSize(new Dimension(0,0)); jcbShowHideEnun = new JCheckBox(); jcbShowHideEnun.setFont(FONT_SHOW_HIDE_TEXT); this.text = Util.getTextFromFile(getClass(), filepath); setLayout(new BorderLayout()); if (showRadioButton) addComponents(); createComonents(); } @SuppressWarnings("serial") private void createComonents() { panel = new JPanelHTML(){ public Dimension getPreferredSize(){ Dimension d = super.getPreferredSize(); ////d.height = 200; return d; }}; Html html = new Html(text); panel.setTextualContent(html.getCode()); panel.setTitle(html.getTitle()); panel.create(); add(panel, BorderLayout.CENTER); } public void addComponents() { add(jcbShowHideEnun, java.awt.BorderLayout.NORTH); jcbShowHideEnun.setText(HIDE_ENUNCIATION); jcbShowHideEnun.setFocusable(false); buildEventsAndTransientvariables(); } // public boolean enunciationIsVisiable(){ // return panel.isVisible(); // } // // public void setEnuciationVisiable(boolean visible){ // panel.setVisible(visible); // jcbShowHideEnun.setSelected(!visible); // } // public StyleSheet getStyleSheetFromEnun(){ // return panel.getStyleSheetFromEditorPane(); // } private class ActionListenerjrbShowHideEnun implements ActionListener{ public void actionPerformed(java.awt.event.ActionEvent evt) { if (panel.isVisible()) { panel.setVisible(false); jcbShowHideEnun.setText(SHOW_ENUNCIATION); } else { jcbShowHideEnun.setText(HIDE_ENUNCIATION); panel.setVisible(true); } } } @Override public void buildEventsAndTransientvariables() { if (panel != null){ String textualContent = ""; textualContent = panel.getTextualContent(); remove(panel); createComonents(); panel.setTextualContent(textualContent); panel.refreshPane(); if (jcbShowHideEnun.isSelected()){ panel.setVisible(false); } } jcbShowHideEnun.addActionListener(new ActionListenerjrbShowHideEnun()); } }