/*
Copyright (C) 2001, 2007 United States Government as represented by
the Administrator of the National Aeronautics and Space Administration.
All Rights Reserved.
*/
package gov.nasa.worldwind.applications.sar;
import gov.nasa.worldwind.util.Logging;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;
/**
* @author dcollins
* @version $Id: AboutDialog.java 4947 2008-04-07 21:01:02Z dcollins $
*/
public class AboutDialog
{
private Object content;
private String contentType;
private Dimension preferredSize;
public AboutDialog()
{
}
public Object getContent()
{
return this.content;
}
public void setContent(Object content)
{
this.content = content;
}
public String getContentType()
{
return this.contentType;
}
public void setContentType(String contentType)
{
this.contentType = contentType;
}
public Dimension getPreferredSize()
{
return this.preferredSize;
}
public void setPreferredSize(Dimension preferredSize)
{
this.preferredSize = preferredSize;
}
public void showDialog(Component parentComponent)
{
Component component = makeContentComponent();
showContentDialog(parentComponent, component);
}
private static void showContentDialog(Component parentComponent, Component component)
{
try
{
final JDialog dialog;
if (parentComponent instanceof Dialog)
dialog = new JDialog((Dialog) parentComponent);
else if (parentComponent instanceof Frame)
dialog = new JDialog((Frame) parentComponent);
else
dialog = new JDialog();
component.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent event) {
dialog.setVisible(false);
dialog.dispose();
}
});
dialog.getContentPane().setLayout(new BorderLayout());
dialog.getContentPane().add(component, BorderLayout.CENTER);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setModal(true);
dialog.setResizable(false);
dialog.pack();
SAR2.centerWindowInDesktop(dialog);
dialog.setVisible(true);
}
catch (Exception e)
{
String message = "Exception while displaying content dialog";
Logging.logger().log(java.util.logging.Level.SEVERE, message, e);
}
}
private Component makeContentComponent()
{
JEditorPane editor = null;
try
{
if (this.content != null)
{
URL url = getClass().getResource(this.content.toString());
editor = new JEditorPane();
if (this.contentType != null)
editor.setContentType(this.contentType);
editor.setPage(url);
}
if (editor != null)
{
editor.setEditable(false);
if (this.preferredSize != null)
editor.setPreferredSize(this.preferredSize);
}
}
catch (Exception e)
{
String message = "Exception while fetching content";
Logging.logger().log(java.util.logging.Level.SEVERE, message, e);
editor = null;
}
return editor;
}
}