001package com.ganteater.ae.desktop.view; 002 003import java.awt.BorderLayout; 004import java.awt.Color; 005import java.util.Properties; 006 007import javax.swing.JEditorPane; 008import javax.swing.JScrollPane; 009 010import org.apache.commons.lang.ObjectUtils; 011 012import com.ganteater.ae.AEManager; 013import com.ganteater.ae.desktop.ui.HyperlinkAdapter; 014 015public class HTMLPanel extends PresentationPanel { 016 017 private static final long serialVersionUID = 1L; 018 private String fFrameId = null; 019 private String fTitle = ""; 020 private JEditorPane displayEditorPane = null; 021 022 private boolean append; 023 024 private StringBuilder text = new StringBuilder(); 025 026 public HTMLPanel(Properties params, AEManager manager) { 027 super(params); 028 029 append = Boolean.valueOf(params.getProperty("append", "false")); 030 031 displayEditorPane = new JEditorPane(); 032 displayEditorPane.setContentType("text/html"); 033 displayEditorPane.setEditable(false); 034 displayEditorPane.addHyperlinkListener(new HyperlinkAdapter(manager)); 035 036 add(new JScrollPane(displayEditorPane), BorderLayout.CENTER); 037 } 038 039 public String getFrameId() { 040 return fFrameId; 041 } 042 043 public String getTitle() { 044 return fTitle; 045 } 046 047 @Override 048 public void out(Object value, Properties properties) { 049 if (append) { 050 text.append(value); 051 } else { 052 text = new StringBuilder(ObjectUtils.toString(value)); 053 } 054 055 if (displayEditorPane != null) { 056 displayEditorPane.setText(text.toString()); 057 } 058 } 059 060 @Override 061 public void setEnabled(boolean enabled) { 062 setBackground(Color.lightGray); 063 super.setEnabled(enabled); 064 } 065 066}