/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package automenta.netention.demo;
import automenta.netention.app.RunSelfBrowser;
import automenta.netention.app.RunAbout;
import automenta.netention.app.RunDetailEdit;
import automenta.netention.app.RunTextCutup;
import automenta.netention.swing.util.SwingWindow;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import javax.swing.*;
/**
*
* @author seh
*/
public class RunDemos extends JPanel {
private JPanel demoPanel;
private final JTextArea descriptionArea;
public RunDemos(Collection<Demo> demos) {
super(new BorderLayout());
JPanel buttonColumn = new JPanel();
buttonColumn.setLayout(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = 1;
gc.gridy = 1;
gc.weightx = 1.0;
gc.weighty = 0.1;
gc.fill = gc.BOTH;
gc.anchor = gc.NORTH;
for (final Demo d : demos) {
final JButton b = new JButton(d.getName());
b.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) {
setDemo(b, d);
}
});
buttonColumn.add(b, gc);
gc.gridy++;
}
add(new JScrollPane(buttonColumn), BorderLayout.WEST);
descriptionArea = new JTextArea();
descriptionArea.setLineWrap(true);
descriptionArea.setWrapStyleWord(true);
//descriptionArea.setRows(3);
descriptionArea.setFont(descriptionArea.getFont().deriveFont((float) (descriptionArea.getFont().getSize() * 1.5f)));
add(/*new JScrollPane(*/descriptionArea, BorderLayout.NORTH);
}
public void setDemo(JButton b, final Demo d) {
if (demoPanel != null) {
remove(demoPanel);
}
demoPanel = null;
if (d != null) {
demoPanel = d.newPanel();
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {
descriptionArea.setText(d.getClass().getSimpleName() + ": " + d.getDescription());
add(demoPanel, BorderLayout.CENTER);
updateUI();
}
});
} else {
updateUI();
}
}
public static void main(String[] args) {
final List<Demo> demos = new LinkedList();
demos.add(new RunAbout());
demos.add(new RunTextCutup());
demos.add(new RunSelfBrowser());
demos.add(new RunDetailEdit());
//demos.add(new RunFinanceGraph());
//demos.add(new RunSelfGraphPanel());
//demos.add(new RunSpikingGraph());
//demos.add(new RunDialogPanel());
//demos.add(new RunGraphMix());
//demos.add(new DemoRectTilt());
// demos.add(new Demo("Self Browser", "..") {
// @Override public JPanel newPanel() {
// return RunSelfBrowser.newPanel();
// }
// });
// demos.add(new Demo("Detail Editing", "..") {
// @Override public JPanel newPanel() {
// return RunDetailEdit.newPanel();
// }
// });
// demos.add(new Demo("Hyperassociative Finance", "..") {
// @Override public JPanel newPanel() {
// return RunFinanceGraph.newPanel();
// }
// });
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//UIManager.setLookAndFeel(new SubstanceMagellanLookAndFeel());
//UIManager.setLookAndFeel(new SubstanceGraphiteGlassLookAndFeel());
//UIManager.setLookAndFeel(new SubstanceMistAquaLookAndFeel());
//UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Exception ex) {
System.err.println(ex);
}
SwingWindow w = new SwingWindow(new RunDemos(demos), 900, 700, true);
w.setTitle("Netention - Demos");
}
});
}
}