package org.javabuilders.swing.samples;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DateFormat;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.event.ChangeEvent;
import org.javabuilders.BuildResult;
import org.javabuilders.event.BuildAdapter;
import org.javabuilders.event.BuildEvent;
import org.javabuilders.swing.SwingJavaBuilder;
import org.javabuilders.swing.plugin.glazedlists.SwingGlazedListsConfig;
import org.javabuilders.util.BuilderUtils;
@SuppressWarnings({ "unused", "serial" })
public class SwingSamplesFrame extends JFrame {
//common init, used by unit tests as well
public static void init() {
try {
SwingJavaBuilder.initSystemLookAndFeel();
//register global resource bundle
SwingGlazedListsConfig.init();
SwingJavaBuilder.getConfig().addResourceBundle("org.javabuilders.swing.samples.SwingSamplesResources");
//prototypes
SwingJavaBuilder.getConfig().prototype("JButton(name=btnEdit, text=Edit, onAction=edit, icon=/org/javabuilders/swing/samples/images/document-open.png)");
SwingJavaBuilder.getConfig().prototype("JButton(name=btnAdd, text=Add, onAction=addNew, icon=/org/javabuilders/swing/samples/images/document-new.png)");
SwingJavaBuilder.getConfig().prototype("JButton(name=btnDelete, text=Delete, onAction=delete, icon=/org/javabuilders/swing/samples/images/edit-delete.png)");
//event listeners
SwingJavaBuilder.getConfig().addBuildListener(new BuildAdapter() {
@Override
public void buildStarted(BuildEvent evt) {
//System.out.println(("Build started from caller: " + evt.getSource()));
}
@Override
public void buildEnded(BuildEvent evt) {
//System.out.println(("Build ended for root object: " + evt.getResult().getRoot()));
}
});
} catch (Exception ex) {
ex.printStackTrace(System.err);
}
}
private PropertyChangeSupport support = new PropertyChangeSupport(this);
private String yaml = BuilderUtils.getYamlContent(SwingJavaBuilder.getConfig(), this.getClass());
//getFileContent(this.getClass(),SwingJavaBuilder.getConfig().getYamlExtension());
private ComponentsPanel componentsPanel;
private FlowLayoutPanel flowLayoutPanel;
private CardLayoutPanel cardLayoutPanel;
private MigLayoutPanel1 migLayoutPanel1;
private MigLayoutPanel2 migLayoutPanel2;
private MigLayoutPanel3 migLayoutPanel3;
private EventsPanel eventsPanel;
private BorderPanel borderPanel;
private LayoutManagerShowdownChallenge layoutChallengePanel;
private ValidatorsPanel validatorsPanel;
private UserSubmissionsPanel usersPanel;
private FormattedInputPanel formattedInputPanel;
private ListBindingPanel listPanel;
private JTextArea eventsLog;
private GlazedListsSamplePanel glazedListsPanel;
private JDesktopPanePanel desktopPanePanel;
private AlignmentAndSizesPanel alignmentSizesPanel;
private GlazedListsEditablePanel glazedListsEditablePanel;
//usually the last variable in the list of instance variables...
private BuildResult result;
public SwingSamplesFrame() throws Exception {
long start = System.currentTimeMillis();
result = SwingJavaBuilder.build(this);
long end = System.currentTimeMillis();
System.out.println("BUILD TIME: " + (end - start));
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
support.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
support.removePropertyChangeListener(listener);
}
private void onFileNew() {
JOptionPane.showMessageDialog(this,"File.New 'onAction=onFileNew' was invoked and executed the frame's private onFileNew() method");
}
private void onFileOpen() {
JOptionPane.showInputDialog("Open a file:");
}
private void onHelpAbout() {
JOptionPane.showMessageDialog(this,"Help.About 'onAction=onHelpAbout' was invoked and executed the frame's private onHelpAbout() method");
}
private void onSave() {
JOptionPane.showMessageDialog(this,"Save!");
}
private void exit() {
setVisible(false);
dispose();
}
private void option1(ActionEvent evt) {
JOptionPane.showMessageDialog(this,"Option1 'onAction=option1' was invoked and executed the frame's private void option1() method");
}
private void onWindowEvent(WindowEvent evt) {
if (eventsLog != null) {
eventsLog.setText(evt.paramString() + "\n" + eventsLog.getText());
}
}
private void onTabChanged(ChangeEvent evt) {
if (eventsLog != null) {
eventsLog.setText("TAB CHANGE: " + evt.getSource() + "\n" + eventsLog.getText());
}
}
private void copy(ActionEvent evt) {
JOptionPane.showMessageDialog(this, "Copy invoked!");
}
private void paste(ActionEvent evt) {
JOptionPane.showMessageDialog(this, "Paste invoked!");
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
init();
new SwingSamplesFrame().setVisible(true);
} catch (Exception ex) {
ex.printStackTrace(System.err);
}
}
});
}
public String getYaml() {
return yaml;
}
}