/* * 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; } } }