package jcconf.groovy;

import static java.util.Collections.*;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

import com.apple.eawt.FullScreenUtilities;
import com.cedarsoftware.util.io.JsonReader;

import jcconf.groovy.model.Episode;

public class Main {

	public static void main(String[] args) {
		SwingUtilities.invokeLater(Main::start);
	}

	public static void start() {
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
			UIManager.put("TitledBorder.border", UIManager.getBorder("InsetBorder.aquaVariant"));

			ScriptableTable table = new ScriptableTable(getSampleData());

			JFrame window = new JFrame(table.getClass().getName());
			window.setContentPane(table.createContentPane());
			window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			window.setLocationByPlatform(true);
			window.setSize(800, 600);

			FullScreenUtilities.setWindowCanFullScreen(window, true); // Mac OS X only

			window.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static Object[] getSampleData() throws IOException {
		Map<String, Object> options = new HashMap<String, Object>();
		options.put(JsonReader.TYPE_NAME_MAP, singletonMap(Episode.class.getName(), Episode.class.getSimpleName()));

		try (InputStream in = Main.class.getResourceAsStream("SampleData.json")) {
			return (Object[]) JsonReader.jsonToJava(in, options);
		}
	}

}
@@ -536,163 +536,29 @@
 %0A%09%09%09
-UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());%0A%09%09%09UIManager.put(%22TitledBorder.border%22, UIManager.getBorder(%22InsetBorder.aquaVariant%22)
+setSystemLookAndFeel(
 );%0A%0A
@@ -865,16 +865,606 @@
 0);%0A%0A%09%09%09
+setWindowCanFullScreen(window);%0A%0A%09%09%09window.setVisible(true);%0A%09%09%7D catch (Throwable e) %7B%0A%09%09%09e.printStackTrace();%0A%09%09%7D%0A%09%7D%0A%0A%09private static void setSystemLookAndFeel() %7B%0A%09%09try %7B%0A%09%09%09UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());%0A%0A%09%09%09if (%22Mac OS X%22.equals(System.getProperty(%22os.name%22))) %7B%0A%09%09%09%09UIManager.put(%22TitledBorder.border%22, UIManager.getBorder(%22InsetBorder.aquaVariant%22));%0A%09%09%09%7D%0A%09%09%7D catch (Exception e) %7B%0A%09%09%09e.printStackTrace();%0A%09%09%7D%0A%09%7D%0A%0A%09private static void setWindowCanFullScreen(JFrame window) %7B%0A%09%09try %7B%0A%09%09%09if (%22Mac OS X%22.equals(System.getProperty(%22os.name%22))) %7B%0A%09%09%09%09
 FullScre
@@ -1510,61 +1510,20 @@
 ow, 
-true); // Mac OS X only%0A%0A%09%09%09window.setVisible(
 true);%0A
+%09%09%09%7D%0A
 %09%09%7D 

Make sure app works on all platforms without errors