/*
* Copyright 2011 Uwe Krueger.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mandelsoft.mand.tool;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.util.ResourceBundle;
import javax.swing.AbstractAction;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.mandelsoft.swing.WindowControlAction;
/**
*
* @author Uwe Krüger
*/
public class AboutBox extends JDialog {
public AboutBox(Window parent)
{
super(parent);
initComponents();
getRootPane().setDefaultButton(closeButton);
}
public void closeAboutBox()
{
dispose();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {
closeButton = new JButton();
JLabel appTitleLabel = new JLabel();
JLabel versionLabel = new JLabel();
JLabel appVersionLabel = new JLabel();
JLabel vendorLabel = new JLabel();
JLabel appVendorLabel = new JLabel();
JLabel homepageLabel = new JLabel();
JLabel appHomepageLabel = new JLabel();
JLabel appDescLabel = new JLabel();
JLabel imageLabel = new JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
ResourceBundle bundle=ResourceBundle.getBundle("com.mandelsoft.mand.tool.resc.MandTool");
setTitle(bundle.getString("Application.title")); // NOI18N
setModal(true);
setName("aboutBox"); // NOI18N
setResizable(false);
closeButton.setAction(new AbstractAction("close") {
public void actionPerformed(ActionEvent e)
{
closeAboutBox();
}
});
closeButton.setName("closeButton"); // NOI18N
JPanel buttons=new JPanel();
JButton button=new JButton();
button.setAction(new AbstractAction("News") {
public void actionPerformed(ActionEvent e)
{
News n=new News(AboutBox.this);
n.setVisible(true);
}
});
buttons.add(button);
button=new JButton();
button.setAction(new WindowControlAction(getOwner(),"Help") {
@Override
protected Window createWindow(Window owner)
{
closeAboutBox();
return new Help(owner);
}
});
buttons.add(button);
buttons.add(closeButton);
appTitleLabel.setFont(appTitleLabel.getFont().deriveFont(appTitleLabel.getFont().getStyle() | java.awt.Font.BOLD, appTitleLabel.getFont().getSize()+4));
appTitleLabel.setText(bundle.getString("Application.title"));
appTitleLabel.setName("appTitleLabel"); // NOI18N
versionLabel.setFont(versionLabel.getFont().deriveFont(versionLabel.getFont().getStyle() | java.awt.Font.BOLD));
versionLabel.setText("Version:"); // NOI18N
versionLabel.setName("versionLabel"); // NOI18N
appVersionLabel.setFont(homepageLabel.getFont().deriveFont(java.awt.Font.PLAIN));
appVersionLabel.setText(bundle.getString("Application.version"));
appVersionLabel.setName("appVersionLabel"); // NOI18N
vendorLabel.setFont(vendorLabel.getFont().deriveFont(vendorLabel.getFont().getStyle() | java.awt.Font.BOLD));
vendorLabel.setText("Vendor:"); // NOI18N
vendorLabel.setName("vendorLabel"); // NOI18N
appVendorLabel.setFont(appVendorLabel.getFont().deriveFont(java.awt.Font.PLAIN));
appVendorLabel.setText(bundle.getString("Application.vendor")); // NOI18N
appVendorLabel.setName("appVendorLabel"); // NOI18N
homepageLabel.setFont(homepageLabel.getFont().deriveFont(homepageLabel.getFont().getStyle() | java.awt.Font.BOLD));
homepageLabel.setText("Homepage:"); // NOI18N
homepageLabel.setName("homepageLabel"); // NOI18N
appHomepageLabel.setFont(homepageLabel.getFont().deriveFont(java.awt.Font.PLAIN));
appHomepageLabel.setText(bundle.getString("Application.homepage")); // NOI18N
appHomepageLabel.setName("appHomepageLabel"); // NOI18N
appDescLabel.setFont(homepageLabel.getFont().deriveFont(java.awt.Font.PLAIN));
appDescLabel.setText(bundle.getString("Application.description")); // NOI18N
appDescLabel.setName("appDescLabel"); // NOI18N
imageLabel.setIcon(createImageIcon("resc/about.png","Mandelbrot")); // NOI18N
imageLabel.setName("imageLabel"); // NOI18N
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(imageLabel)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(versionLabel)
.addComponent(vendorLabel)
.addComponent(homepageLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(appVersionLabel)
.addComponent(appVendorLabel)
.addComponent(appHomepageLabel)))
.addComponent(appTitleLabel, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(appDescLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE)
.addComponent(buttons))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(imageLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(appTitleLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(appDescLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(versionLabel)
.addComponent(appVersionLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(vendorLabel)
.addComponent(appVendorLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(homepageLabel)
.addComponent(appHomepageLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 19, Short.MAX_VALUE)
.addComponent(buttons)
.addContainerGap())
);
pack();
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton closeButton;
// End of variables declaration//GEN-END:variables
protected ImageIcon createImageIcon(String path,
String description)
{
java.net.URL imgURL=getClass().getResource(path);
if (imgURL!=null) {
return new ImageIcon(imgURL, description);
}
else {
System.err.println("Couldn't find file: "+path);
return null;
}
}
}