/**
*
*/
package com.aionemu.packetsamurai.parser.valuereader;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import com.aionemu.packetsamurai.PacketSamurai;
import com.aionemu.packetsamurai.gui.Main;
import com.aionemu.packetsamurai.parser.datatree.StringValuePart;
import com.aionemu.packetsamurai.parser.datatree.ValuePart;
/**
* @author Ulysses R. Ribeiro
*
*/
public class HTMLReader implements Reader
{
public <T extends Enum<T>> T getEnum(ValuePart part)
{
return null;
}
public boolean loadReaderFromXML(Node n)
{
return true;
}
public String read(ValuePart part)
{
if (part instanceof StringValuePart)
{
return ((StringValuePart)part).getStringValue();
}
PacketSamurai.getUserInterface().log("ERROR: HTML Reader set on a non String part: "+part.getModelPart().getName());
return "";
}
public JComponent readToComponent(ValuePart part)
{
JButton view = new JButton("View");
view.addActionListener(new ButtonActionListener(this.read(part)));
view.setActionCommand("clicked");
return view;
}
public boolean saveReaderToXML(Element element, Document doc)
{
return true;
}
public boolean supportsEnum()
{
return false;
}
class ButtonActionListener implements ActionListener
{
private String _html;
public ButtonActionListener(String html)
{
_html = html;
}
public void actionPerformed(ActionEvent e)
{
JDialog dlg = new JDialog(((Main) PacketSamurai.getUserInterface()).getMainFrame(),"HTML");
dlg.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dlg.setSize(350, 400);
dlg.setLocationRelativeTo(((Main) PacketSamurai.getUserInterface()).getMainFrame());
JTabbedPane tabPane = new JTabbedPane();
// HTML
JEditorPane htmlDisplay = new JEditorPane();
htmlDisplay.setEditable(false);
htmlDisplay.setContentType("text/html");
htmlDisplay.setText(_html);
// Source
JEditorPane sourceDisplay = new JEditorPane();
sourceDisplay.setEditable(false);
sourceDisplay.setContentType("text/plain");
sourceDisplay.setText(_html);
tabPane.add(new JScrollPane(htmlDisplay), "HTML");
tabPane.add(new JScrollPane(sourceDisplay), "Source");
dlg.add(tabPane);
dlg.setVisible(true);
}
}
}