package org.isatools.isacreator.orcid.gui; import com.explodingpixels.macwidgets.IAppWidgetFactory; import org.isatools.isacreator.common.UIHelper; import org.isatools.isacreator.orcid.model.OrcidAuthor; import org.jdesktop.fuse.InjectedResource; import org.jdesktop.fuse.ResourceInjector; import javax.swing.*; import javax.swing.border.EmptyBorder; import javax.swing.text.html.HTMLEditorKit; import java.awt.*; /** * Created by the ISATeam. * User: agbeltran * Date: 23/05/2013 * Time: 15:32 * * @author <a href="mailto:alejandra.gonzalez.beltran@gmail.com">Alejandra Gonzalez-Beltran</a> */ public class OrcidSearchResultsPanel extends JPanel { private JEditorPane resultInfo; private JScrollPane resultScroller; @InjectedResource private ImageIcon connectionError; public OrcidSearchResultsPanel() { ResourceInjector.get("orcidlookup-package.style").inject(this); setLayout(new BorderLayout()); setBackground(UIHelper.BG_COLOR); resultInfo = new JEditorPane(); resultInfo.setContentType("text/html"); resultInfo.setEditable(false); resultInfo.setBackground(UIHelper.BG_COLOR); resultInfo.setAutoscrolls(true); resultInfo.setEditorKit(new HTMLEditorKit()); resultScroller = new JScrollPane(resultInfo, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); resultScroller.setBorder(new EmptyBorder(2, 2, 2, 2)); resultScroller.setPreferredSize(new Dimension(480, 270)); IAppWidgetFactory.makeIAppScrollPane(resultScroller); } public void showOrcidContact(OrcidAuthor currentOrcidContact) { reformResultData(currentOrcidContact, resultInfo); removeAll(); add(resultScroller); revalidate(); repaint(); } private void reformResultData(OrcidAuthor contact, JEditorPane htmlPane) { String header = "<html>" + "<head>" + "<style type=\"text/css\">" + "<!--" + ".titleFont {" + " font-family: Verdana;" + " font-size: 9px;" + " color: #006838;" + "}" + ".authorFont {" + " font-family: Verdana;" + " font-size: 8px;" + " color: #009444;" + "}" + ".abstractFont {" + " font-family: Verdana;" + " font-size: 8px;" + " color: #39B54A;" + "}" + ".otherInfoSectionFont {" + " font-family: Verdana;" + " font-size: 8px;" + " color: #8DC63F;" + "}" + ".otherInfoValueFont {" + " font-family: Verdana;" + " font-size: 8px;" + " color: #006838;" + "}" + "-->" + "</style>" + "</head>" + "<body class=\"bodyFont\">"; StringBuffer result = new StringBuffer(); result.append(header); if (contact != null) { result.append("<div align=\"left\">"); result.append("<span class=\"titleFont\">").append(contact.getGivenNames()+" "+contact.getFamilyName()).append("</span><p/>"); if (contact.getEmail()!=null){ result.append("<span class=\"authorFont\">").append(contact.getEmail()).append("</span><p/>"); } // if (!p.getAbstractText().trim().equals("")) { // result.append("<span class=\"abstractFont\">").append(p.getAbstractText().trim()).append("</span><p/>"); // } // result.append("<span class=\"otherInfoSectionFont\">PUBMED ID:</span><span class=\"otherInfoValueFont\">").append(p.getPubmedId()).append("</span><p/>"); //result.append("<span class=\"otherInfoSectionFont\">DOI:</span><span class=\"otherInfoValueFont\">").append(p.getPublicationDOI().toUpperCase()).append("</span><p/>"); result.append("<p/>"); result.append("</div>"); } result.append("</body></html>"); htmlPane.setText(result.toString()); htmlPane.setCaretPosition(0); htmlPane.revalidate(); } public void showError() { removeAll(); add(new JLabel(connectionError)); revalidate(); repaint(); } }