package org.f2o.absurdum.puck.gui.dialog;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Desktop;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import org.f2o.absurdum.puck.gui.PuckFrame;
import org.f2o.absurdum.puck.i18n.UIMessages;
import eu.irreality.age.windowing.DialogUtils;
public class DocumentationLinkDialog extends JDialog
{
private JButton bClose = new JButton(UIMessages.getInstance().getMessage("button.clo"));
private void open(URI uri) {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
try {
desktop.browse(uri);
} catch (IOException e) {
JOptionPane.showMessageDialog(this, UIMessages.getInstance().getMessage("online.documentation.browser.error") );
}
} else {
JOptionPane.showMessageDialog(this, UIMessages.getInstance().getMessage("online.documentation.browser.error") );
}
}
public DocumentationLinkDialog ( final PuckFrame parent , boolean modal )
{
super(parent,modal);
this.setTitle(UIMessages.getInstance().getMessage("menu.help.toc"));
this.getContentPane().setLayout( new BorderLayout() );
JPanel mainPanel = new JPanel();
JPanel buttonsPanel = new JPanel();
/*
JLabel label = new JLabel(
"<html><p>Puedes encontrar ayuda detallada sobre c�mo crear aventuras en PUCK en su documentaci�n online:</p>" +
"<a href=\"http://www.caad.es/aetheria/doc\">http://www.caad.es/aetheria/doc</a></html>"
);
*/
//mainPanel.add(label);
try
{
final URI uri = new URI("http://www.caad.es/aetheria/doc/");
JButton button = new JButton();
button
.setText(
UIMessages.getInstance().getMessage("online.documentation")
//"<html>" +
//"<p>Puedes consultar informaci�n detallada sobre c�mo construir mundos en PUCK en la documentaci�n online: " +
//"<FONT color=\"#000099\"><U>http://www.caad.es/aetheria/doc/</U></FONT>.</p></html>"
);
button.setHorizontalAlignment(SwingConstants.LEFT);
button.setBorderPainted(false);
button.setOpaque(false);
button.setBackground(Color.WHITE);
button.setToolTipText(uri.toString());
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
open(uri);
}
});
mainPanel.add(button);
}
catch ( URISyntaxException use )
{
use.printStackTrace();
}
bClose.addActionListener ( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
DocumentationLinkDialog.this.dispose();
}
}
);
DialogUtils.registerEscapeAction(this);
DialogUtils.registerCloseAction(this,KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0));
buttonsPanel.setLayout(new BorderLayout());
buttonsPanel.add(bClose,BorderLayout.EAST);
this.getContentPane().add(mainPanel,BorderLayout.CENTER);
this.getContentPane().add(buttonsPanel,BorderLayout.SOUTH);
pack();
setLocationRelativeTo(null);
}
}