blob: 3fdfc9760835d36c7bb3762177cc9b74146f74b9 [file] [log] [blame]
/*
* Copyright 2000-2009 JetBrains s.r.o.
*
* 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.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.text.MessageFormat;
import java.util.ResourceBundle;
public class Main {
private JComponent myComponent;
private static ResourceBundle ourBundle = ResourceBundle.getBundle("RuntimeBundle");
// Note: this class should not be obfuscated
public static void main(String[] args) {
Main f = new Main();
JFrame frame = new JFrame(ourBundle.getString("form.preview.title"));
frame.setContentPane(f.myComponent);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Add menu bar
final JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
final JMenu menuFile = new JMenu(ourBundle.getString("form.menu.preview"));
menuFile.setMnemonic(ourBundle.getString("form.menu.preview.mnemonic").charAt(0));
menuFile.add(new JMenuItem(new MyPackAction(frame)));
menuFile.add(new JMenuItem(new MyExitAction()));
menuBar.add(menuFile);
final JMenu viewMenu = new JMenu(ourBundle.getString("form.menu.laf"));
viewMenu.setMnemonic(ourBundle.getString("form.menu.laf.mnemonic").charAt(0));
menuBar.add(viewMenu);
final UIManager.LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
for(int i = 0; i < lafs.length; i++){
viewMenu.add(new MySetLafAction(frame, lafs[i]));
}
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static final class MyExitAction extends AbstractAction{
public MyExitAction() {
super(ourBundle.getString("form.menu.file.exit"));
}
public void actionPerformed(final ActionEvent e) {
System.exit(0);
}
}
private static final class MyPackAction extends AbstractAction{
private final JFrame myFrame;
public MyPackAction(final JFrame frame) {
super(ourBundle.getString("form.menu.view.pack"));
myFrame = frame;
}
public void actionPerformed(final ActionEvent e) {
myFrame.pack();
}
}
private static final class MySetLafAction extends AbstractAction{
private final JFrame myFrame;
private final UIManager.LookAndFeelInfo myInfo;
public MySetLafAction(final JFrame frame, final UIManager.LookAndFeelInfo info) {
super(info.getName());
myFrame = frame;
myInfo = info;
}
public void actionPerformed(ActionEvent e) {
try{
UIManager.setLookAndFeel(myInfo.getClassName());
SwingUtilities.updateComponentTreeUI(myFrame);
Dimension prefSize = myFrame.getPreferredSize();
if(prefSize.width > myFrame.getWidth() || prefSize.height > myFrame.getHeight()){
myFrame.pack();
}
}
catch(Exception exc){
JOptionPane.showMessageDialog(
myFrame,
MessageFormat.format(ourBundle.getString("error.cannot.change.look.feel"), new Object[] {exc.getMessage()}),
ourBundle.getString("error.title"),
JOptionPane.ERROR_MESSAGE
);
}
}
}
}