private void initGUI() {
		frame = new JFrame("Unreal Object Importer v0.01");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(100, 100, 900, 600);
		
		uog = new UnrealObjectGenerator();
		listener = new UOIActionListener(this,uog);
		
		
		menuBar = new JMenuBar();
		frame.setJMenuBar(menuBar);
		
		newMenuFile = new JMenu("File");
		newMenuFile.setMnemonic('F');
		menuBar.add(newMenuFile);
		
		mntmImportCsvFile = new JMenuItem("Import CSV File");
		mntmImportCsvFile.setActionCommand("ImportData");
		mntmImportCsvFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
		mntmImportCsvFile.setMnemonic(KeyEvent.VK_I);
		mntmImportCsvFile.addActionListener(listener);
		newMenuFile.add(mntmImportCsvFile);
		
		mntmExportCsvFile = new JMenuItem("Export CSV File");
		mntmExportCsvFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK));
		mntmExportCsvFile.setMnemonic(KeyEvent.VK_E);
		mntmExportCsvFile.setEnabled(false);
		mntmExportCsvFile.setActionCommand("ExportData");
		mntmExportCsvFile.addActionListener(listener);
		newMenuFile.add(mntmExportCsvFile);
		
		mntmExit = new JMenuItem("Exit");
		mntmExit.setActionCommand("Exit");
		mntmExit.addActionListener(listener);
		newMenuFile.add(mntmExit);
		
		mnEdit = new JMenu("Edit");
		menuBar.add(mnEdit);
		
		mntmTemplateEditor = new JMenuItem("Template Editor");
		mnEdit.add(mntmTemplateEditor);
		
		mnOptions = new JMenu("Options");
		menuBar.add(mnOptions);
		
		mntmDataTypes = new JMenuItem("Data Types");
		mnOptions.add(mntmDataTypes);
		
		newMenuHelp = new JMenu("Help");
		newMenuHelp.setMnemonic('H');
		menuBar.add(newMenuHelp);
		
		mntmAbout = new JMenuItem("About");
		mntmAbout.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_0, ActionEvent.ALT_MASK));
		mntmAbout.setMnemonic(KeyEvent.VK_A);
		mntmAbout.setActionCommand("About");
		mntmAbout.addActionListener(listener);
		newMenuHelp.add(mntmAbout);
		
		
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		frame.setContentPane(contentPane);
		contentPane.setLayout(new BorderLayout(0, 0));
		
		templatePanel = new JPanel();
		contentPane.add(templatePanel, BorderLayout.WEST);
		templatePanel.setLayout(new BorderLayout(0, 0));
		
		panel_1 = new JPanel();
		templatePanel.add(panel_1, BorderLayout.CENTER);
		panel_1.setLayout(new BorderLayout(0, 0));
		
		templateList = new JList();
		panel_1.add(templateList);
		
		panel_2 = new JPanel();
		templatePanel.add(panel_2, BorderLayout.SOUTH);
		panel_2.setLayout(new BoxLayout(panel_2, BoxLayout.Y_AXIS));
		
		btnImportTemplate = new JButton("Import Template");
		btnImportTemplate.setEnabled(false);
		panel_2.add(btnImportTemplate);
		
		btnExportTemplate = new JButton("Export Template");
		btnExportTemplate.setEnabled(false);
		panel_2.add(btnExportTemplate);
		
		btnDeleteTemplate = new JButton("Delete Template");
		btnDeleteTemplate.setEnabled(false);
		panel_2.add(btnDeleteTemplate);
		
		btnCreateTemplate = new JButton("Create Template");
		btnCreateTemplate.setEnabled(false);
		panel_2.add(btnCreateTemplate);
		
		editorPanel = new JPanel();
		editorPanel.setLayout(new BorderLayout(5, 5));
		//panel_2.setPreferredSize(new Dimension(300,100));
		
		editorPane = new JEditorPane();
		editorPane.setPreferredSize(new Dimension(150,300));
		editorPanel.add(editorPane);
		contentPane.add(editorPanel, BorderLayout.CENTER);
		
		editorLabel = new JLabel("Edit Template");
		editorLabel.setHorizontalAlignment(SwingConstants.CENTER);
		editorPanel.add(editorLabel, BorderLayout.NORTH);
		
		horizontalStrut_1 = Box.createHorizontalStrut(10);
		editorPanel.add(horizontalStrut_1, BorderLayout.WEST);
		
		btnSaveTemplate = new JButton("Save Template");
		btnSaveTemplate.setEnabled(false);
		editorPanel.add(btnSaveTemplate, BorderLayout.SOUTH);
		
		exportPanel = new JPanel();
		contentPane.add(exportPanel, BorderLayout.SOUTH);
		exportPanel.setLayout(new BoxLayout(exportPanel, BoxLayout.X_AXIS));
		
		progressBar = new JProgressBar();
		exportPanel.add(progressBar);
		
		btnExportToFile = new JButton("Export to File");
		btnExportToFile.addActionListener(listener);
		btnExportToFile.setActionCommand("ExportToFile");
		exportPanel.add(btnExportToFile);
		
		btnExportUDK = new JButton("Export to UDK");
		btnExportUDK.addActionListener(listener);
		btnExportUDK.setActionCommand("ExportToUDK");
		btnExportUDK.setEnabled(false);
		exportPanel.add(btnExportUDK);
		
		eastPanel = new JPanel();
		contentPane.add(eastPanel, BorderLayout.EAST);
		eastPanel.setLayout(new BorderLayout(0, 0));
		
		csvPanel = new JPanel();
		csvPanel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Generated/Imported Data", TitledBorder.CENTER, TitledBorder.TOP, null, null));
		eastPanel.add(csvPanel, BorderLayout.WEST);
		csvPanel.setLayout(new BorderLayout(0, 5));
		
		csvButtonPanel = new JPanel();
		csvPanel.add(csvButtonPanel, BorderLayout.SOUTH);
		
		btnImportData = new JButton("Import Data");
		btnImportData.addActionListener(listener);
		btnImportData.setActionCommand("ImportData");
		csvButtonPanel.add(btnImportData);
		
		btnExportData = new JButton("Export Data");
		btnExportData.addActionListener(listener);
		btnExportData.setActionCommand("ExportData");
		csvButtonPanel.add(btnExportData);
		
		btnDeleteData = new JButton("Delete Data");
		btnDeleteData.addActionListener(listener);
		btnDeleteData.setActionCommand("DeleteData");
		csvButtonPanel.add(btnDeleteData);
		
		dataTabbedPane = new JTabbedPane(JTabbedPane.LEFT);
		dataTabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
		csvPanel.add(dataTabbedPane, BorderLayout.CENTER);
		stmTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = 1644914926188532820L;
			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		stmTable.setFillsViewportHeight(true);
		
		stmTable.setRowSorter(new TableRowSorter<TableModel>(stmTable.getModel()));
		//table.setPreferredScrollableViewportSize(new Dimension(350,200));
		JScrollPane stmScrollPane = new JScrollPane(stmTable);
		dataTabbedPane.addTab("Static Mesh", null, stmScrollPane, null);
		stmScrollPane.setPreferredSize(new Dimension(300, 400));
		
		skmTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = 2934341431134712089L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		skmTable.setFillsViewportHeight(true);
		skmTable.setRowSorter(new TableRowSorter<TableModel>(skmTable.getModel()));
		skmScrollPane = new JScrollPane(skmTable);
		skmScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("Skeletal Mesh", null, skmScrollPane, null);
		
		paTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = 8049413374591816674L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		paTable.setFillsViewportHeight(true);
		paTable.setRowSorter(new TableRowSorter<TableModel>(paTable.getModel()));
		paScrollPane = new JScrollPane(paTable);
		paScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("Physics Asset", null, paScrollPane, null);
		
		ipaTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = 8477589953561084772L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		ipaTable.setFillsViewportHeight(true);
		ipaTable.setRowSorter(new TableRowSorter<TableModel>(ipaTable.getModel()));
		ipaScrollPane = new JScrollPane(ipaTable);
		ipaScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("InterPActor", null, ipaScrollPane, null);
		
		rbTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = -9223019953683087377L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		rbTable.setFillsViewportHeight(true);
		rbTable.setRowSorter(new TableRowSorter<TableModel>(rbTable.getModel()));
		rbScrollPane = new JScrollPane(rbTable);
		rbScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("Rigid Body", null, rbScrollPane, null);
		
		assTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = 6620054039964342009L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		assTable.setFillsViewportHeight(true);
		assTable.setRowSorter(new TableRowSorter<TableModel>(assTable.getModel()));
		assScrollPane = new JScrollPane(assTable);
		assScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("Ambient Sound Simple", null, assScrollPane, null);
		
		asTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = 2499025067832878542L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		asTable.setFillsViewportHeight(true);
		asTable.setRowSorter(new TableRowSorter<TableModel>(asTable.getModel()));
		asScrollPane = new JScrollPane(asTable);
		asScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("Ambient Sound", null, asScrollPane, null);
		
		stTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = 7054958191871107555L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		stTable.setFillsViewportHeight(true);
		stTable.setRowSorter(new TableRowSorter<TableModel>(stTable.getModel()));
		stScrollPane = new JScrollPane(stTable);
		stScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("SpeedTree", null, stScrollPane, null);
		
		emTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = -3434938191473255487L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		emTable.setFillsViewportHeight(true);
		emTable.setRowSorter(new TableRowSorter<TableModel>(emTable.getModel()));
		emScrollPane = new JScrollPane(emTable);
		emScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("Emitter", null, emScrollPane, null);
		
		cmTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = -4379627737992816694L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		cmTable.setFillsViewportHeight(true);
		cmTable.setRowSorter(new TableRowSorter<TableModel>(cmTable.getModel()));
		cmScrollPane = new JScrollPane(cmTable);
		cmScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("Custom", null, cmScrollPane, null);
		
		imTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = -1049825752520213310L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		imTable.setFillsViewportHeight(true);
		imTable.setRowSorter(new TableRowSorter<TableModel>(imTable.getModel()));
		imScrollPane = new JScrollPane(imTable);
		imScrollPane.setPreferredSize(new Dimension(200, 400));
		dataTabbedPane.addTab("Imported", null, imScrollPane, null);
		
		generatePanel = new JPanel();
		generatePanel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Generate Actors", TitledBorder.CENTER, TitledBorder.TOP, null, new Color(0, 0, 0)));
		generatePanel.setPreferredSize(new Dimension(600,480));
		eastPanel.add(generatePanel, BorderLayout.EAST);
		generatePanel.setLayout(new BorderLayout(5, 0));
		
		generateTabbedPane = new JTabbedPane(JTabbedPane.LEFT);
		generateTabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
		generatePanel.add(generateTabbedPane, BorderLayout.CENTER);
		
		stmPanel = new JPanel();
		generateTabbedPane.addTab("Static Mesh", null, stmPanel, null);
		stmPanel.setLayout(new BorderLayout(0, 0));
		
		stmGenerateButtonPanel = new JPanel();
		stmPanel.add(stmGenerateButtonPanel, BorderLayout.NORTH);
		stmGenerateButtonPanel.setLayout(new BorderLayout(0, 0));
		
		stmGenerateButtonRightPanel = new JPanel();
		stmGenerateButtonPanel.add(stmGenerateButtonRightPanel, BorderLayout.EAST);
		
		btnSTMCreate = new JButton("Generate Static Meshes");
		btnSTMCreate.addActionListener(listener);
		btnSTMCreate.setActionCommand("GenerateSTM");
		stmGenerateButtonRightPanel.add(btnSTMCreate);
		
		btnSTMDefault = new JButton("Restore Defaults");
		stmGenerateButtonRightPanel.add(btnSTMDefault);
		
		stmGenerateButtonLeftPanel = new JPanel();
		stmGenerateButtonPanel.add(stmGenerateButtonLeftPanel, BorderLayout.CENTER);
		
		lblSTMCount = new JLabel("Count");
		lblSTMCount.setHorizontalAlignment(SwingConstants.CENTER);
		stmGenerateButtonLeftPanel.add(lblSTMCount);
		
		NumberFormat stmformatter = NumberFormat.getNumberInstance();
		stmformatter.setMaximumFractionDigits(0);
		stmformatter.setGroupingUsed(false);
		stmCountField = new JFormattedTextField(stmformatter); //NumberFormat.GetNumberInstance()
		stmCountField.setHorizontalAlignment(SwingConstants.CENTER);
		//stmCountField.setValue(1);
		stmGenerateButtonLeftPanel.add(stmCountField);
		stmCountField.setColumns(10);
		
		stmGeneratePanel = new JPanel();
		stmPanel.add(stmGeneratePanel, BorderLayout.CENTER);
		stmGeneratePanel.setLayout(new GridLayout(0, 2, 0, 0));
		
		stmMeshPanel = new JPanel();
		stmMeshPanel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Mesh Information", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		stmGeneratePanel.add(stmMeshPanel);
		GridBagLayout gbl_stmMeshPanel = new GridBagLayout();
		gbl_stmMeshPanel.columnWidths = new int[] {60, 60, 0};
		gbl_stmMeshPanel.rowHeights = new int[]{32, 32, 32, 0};
		gbl_stmMeshPanel.columnWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
		gbl_stmMeshPanel.rowWeights = new double[]{0.0, 0.0, 0.0, Double.MIN_VALUE};
		stmMeshPanel.setLayout(gbl_stmMeshPanel);
		
		lblSTMMesh = new JLabel("Mesh");
		GridBagConstraints gbc_lblSTMMesh = new GridBagConstraints();
		gbc_lblSTMMesh.fill = GridBagConstraints.BOTH;
		gbc_lblSTMMesh.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMMesh.gridx = 0;
		gbc_lblSTMMesh.gridy = 0;
		stmMeshPanel.add(lblSTMMesh, gbc_lblSTMMesh);
		
		stmMeshField = new JFormattedTextField();
		GridBagConstraints gbc_stmMeshField = new GridBagConstraints();
		gbc_stmMeshField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmMeshField.insets = new Insets(0, 0, 5, 0);
		gbc_stmMeshField.gridx = 1;
		gbc_stmMeshField.gridy = 0;
		stmMeshPanel.add(stmMeshField, gbc_stmMeshField);
		stmMeshField.setColumns(10);
		
		lblSTMTag = new JLabel("Tag");
		GridBagConstraints gbc_lblSTMTag = new GridBagConstraints();
		gbc_lblSTMTag.fill = GridBagConstraints.BOTH;
		gbc_lblSTMTag.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMTag.gridx = 0;
		gbc_lblSTMTag.gridy = 1;
		stmMeshPanel.add(lblSTMTag, gbc_lblSTMTag);
		
		stmTagField = new JTextField();
		GridBagConstraints gbc_stmTagField = new GridBagConstraints();
		gbc_stmTagField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmTagField.insets = new Insets(0, 0, 5, 0);
		gbc_stmTagField.gridx = 1;
		gbc_stmTagField.gridy = 1;
		stmMeshPanel.add(stmTagField, gbc_stmTagField);
		stmTagField.setColumns(10);
		
		lblSTMLayer = new JLabel("Layer");
		GridBagConstraints gbc_lblSTMLayer = new GridBagConstraints();
		gbc_lblSTMLayer.fill = GridBagConstraints.BOTH;
		gbc_lblSTMLayer.insets = new Insets(0, 0, 0, 5);
		gbc_lblSTMLayer.gridx = 0;
		gbc_lblSTMLayer.gridy = 2;
		stmMeshPanel.add(lblSTMLayer, gbc_lblSTMLayer);
		
		stmLayerField = new JFormattedTextField();
		GridBagConstraints gbc_stmLayerField = new GridBagConstraints();
		gbc_stmLayerField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmLayerField.gridx = 1;
		gbc_stmLayerField.gridy = 2;
		stmMeshPanel.add(stmLayerField, gbc_stmLayerField);
		stmLayerField.setColumns(10);
		
		stmLightPanel = new JPanel();
		stmLightPanel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Lightmap", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
		stmGeneratePanel.add(stmLightPanel);
		GridBagLayout gbl_stmLightPanel = new GridBagLayout();
		gbl_stmLightPanel.columnWidths = new int[]{60, 60, 0};
		gbl_stmLightPanel.rowHeights = new int[]{32, 32, 32, 0};
		gbl_stmLightPanel.columnWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
		gbl_stmLightPanel.rowWeights = new double[]{0.0, 0.0, 0.0, Double.MIN_VALUE};
		stmLightPanel.setLayout(gbl_stmLightPanel);
		
		lblSTMOverride = new JLabel("bOverrideLightMapRes");
		GridBagConstraints gbc_lblSTMOverride = new GridBagConstraints();
		gbc_lblSTMOverride.fill = GridBagConstraints.BOTH;
		gbc_lblSTMOverride.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMOverride.gridx = 0;
		gbc_lblSTMOverride.gridy = 0;
		stmLightPanel.add(lblSTMOverride, gbc_lblSTMOverride);
		
		chckbxSTMOverride = new JCheckBox("");
		GridBagConstraints gbc_chckbxSTMOverride = new GridBagConstraints();
		gbc_chckbxSTMOverride.insets = new Insets(0, 0, 5, 0);
		gbc_chckbxSTMOverride.gridx = 1;
		gbc_chckbxSTMOverride.gridy = 0;
		stmLightPanel.add(chckbxSTMOverride, gbc_chckbxSTMOverride);
		
		lblSTMRes = new JLabel("OverriddenLightMapRes");
		GridBagConstraints gbc_lblSTMRes = new GridBagConstraints();
		gbc_lblSTMRes.fill = GridBagConstraints.BOTH;
		gbc_lblSTMRes.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMRes.gridx = 0;
		gbc_lblSTMRes.gridy = 1;
		stmLightPanel.add(lblSTMRes, gbc_lblSTMRes);
		
		stmResField = new JFormattedTextField();
		stmResField.setHorizontalAlignment(SwingConstants.CENTER);
		stmResField.setColumns(10);
		GridBagConstraints gbc_stmResField = new GridBagConstraints();
		gbc_stmResField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmResField.insets = new Insets(0, 0, 5, 0);
		gbc_stmResField.gridx = 1;
		gbc_stmResField.gridy = 1;
		stmLightPanel.add(stmResField, gbc_stmResField);
		
		stmLightingPanel = new JPanel();
		stmLightingPanel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Lighting", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
		stmGeneratePanel.add(stmLightingPanel);
		GridBagLayout gbl_stmLightingPanel = new GridBagLayout();
		gbl_stmLightingPanel.columnWidths = new int[]{60, 60, 0};
		gbl_stmLightingPanel.rowHeights = new int[]{32, 32, 32, 0};
		gbl_stmLightingPanel.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
		gbl_stmLightingPanel.rowWeights = new double[]{0.0, 0.0, 0.0, Double.MIN_VALUE};
		stmLightingPanel.setLayout(gbl_stmLightingPanel);
		
		lblSTMPrec = new JLabel("bUsePrecomputedShadows");
		GridBagConstraints gbc_lblSTMPrec = new GridBagConstraints();
		gbc_lblSTMPrec.fill = GridBagConstraints.BOTH;
		gbc_lblSTMPrec.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMPrec.gridx = 0;
		gbc_lblSTMPrec.gridy = 0;
		stmLightingPanel.add(lblSTMPrec, gbc_lblSTMPrec);
		
		chckbxSTMPrec = new JCheckBox("");
		GridBagConstraints gbc_chckbxSTMPrec = new GridBagConstraints();
		gbc_chckbxSTMPrec.insets = new Insets(0, 0, 5, 0);
		gbc_chckbxSTMPrec.gridx = 1;
		gbc_chckbxSTMPrec.gridy = 0;
		stmLightingPanel.add(chckbxSTMPrec, gbc_chckbxSTMPrec);
		
		lblSTMChannels = new JLabel("LightingChannels");
		GridBagConstraints gbc_lblSTMChannels = new GridBagConstraints();
		gbc_lblSTMChannels.fill = GridBagConstraints.BOTH;
		gbc_lblSTMChannels.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMChannels.gridx = 0;
		gbc_lblSTMChannels.gridy = 1;
		stmLightingPanel.add(lblSTMChannels, gbc_lblSTMChannels);
		
		cbSTMChannels = new JComboBox();
		GridBagConstraints gbc_cbSTMChannels = new GridBagConstraints();
		gbc_cbSTMChannels.insets = new Insets(0, 0, 5, 0);
		gbc_cbSTMChannels.fill = GridBagConstraints.HORIZONTAL;
		gbc_cbSTMChannels.gridx = 1;
		gbc_cbSTMChannels.gridy = 1;
		stmLightingPanel.add(cbSTMChannels, gbc_cbSTMChannels);
		
		lblSTMSelChan = new JLabel("Selected Lighting Channel");
		GridBagConstraints gbc_lblSTMSelChan = new GridBagConstraints();
		gbc_lblSTMSelChan.fill = GridBagConstraints.BOTH;
		gbc_lblSTMSelChan.insets = new Insets(0, 0, 0, 5);
		gbc_lblSTMSelChan.gridx = 0;
		gbc_lblSTMSelChan.gridy = 2;
		stmLightingPanel.add(lblSTMSelChan, gbc_lblSTMSelChan);
		
		chckbxSTMSelChan = new JCheckBox("");
		GridBagConstraints gbc_chckbxSTMSelChan = new GridBagConstraints();
		gbc_chckbxSTMSelChan.gridx = 1;
		gbc_chckbxSTMSelChan.gridy = 2;
		stmLightingPanel.add(chckbxSTMSelChan, gbc_chckbxSTMSelChan);
		
		stmLocPanel = new JPanel();
		stmLocPanel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Location", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
		stmGeneratePanel.add(stmLocPanel);
		GridBagLayout gbl_stmLocPanel = new GridBagLayout();
		gbl_stmLocPanel.columnWidths = new int[] {50, 58, 50, 50, 0};
		gbl_stmLocPanel.rowHeights = new int[] {30, 30, 30, 30, 0};
		gbl_stmLocPanel.columnWeights = new double[]{0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE};
		gbl_stmLocPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		stmLocPanel.setLayout(gbl_stmLocPanel);
		
		lblSTMLX = new JLabel("Min-X");
		GridBagConstraints gbc_lblSTMLX = new GridBagConstraints();
		gbc_lblSTMLX.fill = GridBagConstraints.BOTH;
		gbc_lblSTMLX.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMLX.gridx = 0;
		gbc_lblSTMLX.gridy = 0;
		stmLocPanel.add(lblSTMLX, gbc_lblSTMLX);
		
		stmLMinXField = new JFormattedTextField();
		stmLMinXField.setHorizontalAlignment(SwingConstants.CENTER);
		stmLMinXField.setColumns(10);
		GridBagConstraints gbc_stmLMinXField = new GridBagConstraints();
		gbc_stmLMinXField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmLMinXField.insets = new Insets(0, 0, 5, 5);
		gbc_stmLMinXField.gridx = 1;
		gbc_stmLMinXField.gridy = 0;
		stmLocPanel.add(stmLMinXField, gbc_stmLMinXField);
		
		lblSTMLMaxX = new JLabel("Max-X");
		GridBagConstraints gbc_lblSTMLMaxX = new GridBagConstraints();
		gbc_lblSTMLMaxX.fill = GridBagConstraints.BOTH;
		gbc_lblSTMLMaxX.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMLMaxX.gridx = 2;
		gbc_lblSTMLMaxX.gridy = 0;
		stmLocPanel.add(lblSTMLMaxX, gbc_lblSTMLMaxX);
		
		stmLMaxXField = new JFormattedTextField();
		stmLMaxXField.setHorizontalAlignment(SwingConstants.CENTER);
		GridBagConstraints gbc_stmLMaxXField = new GridBagConstraints();
		gbc_stmLMaxXField.insets = new Insets(0, 0, 5, 0);
		gbc_stmLMaxXField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmLMaxXField.gridx = 3;
		gbc_stmLMaxXField.gridy = 0;
		stmLocPanel.add(stmLMaxXField, gbc_stmLMaxXField);
		stmLMaxXField.setColumns(10);
		
		lblSTMLY = new JLabel("Min-Y");
		GridBagConstraints gbc_lblSTMLY = new GridBagConstraints();
		gbc_lblSTMLY.fill = GridBagConstraints.BOTH;
		gbc_lblSTMLY.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMLY.gridx = 0;
		gbc_lblSTMLY.gridy = 1;
		stmLocPanel.add(lblSTMLY, gbc_lblSTMLY);
		
		stmLMinYField = new JFormattedTextField();
		stmLMinYField.setHorizontalAlignment(SwingConstants.CENTER);
		stmLMinYField.setColumns(10);
		GridBagConstraints gbc_stmLMinYField = new GridBagConstraints();
		gbc_stmLMinYField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmLMinYField.insets = new Insets(0, 0, 5, 5);
		gbc_stmLMinYField.gridx = 1;
		gbc_stmLMinYField.gridy = 1;
		stmLocPanel.add(stmLMinYField, gbc_stmLMinYField);
		
		lblSTMLMaxY = new JLabel("Max-Y");
		GridBagConstraints gbc_lblSTMLMaxY = new GridBagConstraints();
		gbc_lblSTMLMaxY.fill = GridBagConstraints.BOTH;
		gbc_lblSTMLMaxY.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMLMaxY.gridx = 2;
		gbc_lblSTMLMaxY.gridy = 1;
		stmLocPanel.add(lblSTMLMaxY, gbc_lblSTMLMaxY);
		
		stmLMaxYField = new JFormattedTextField();
		stmLMaxYField.setHorizontalAlignment(SwingConstants.CENTER);
		GridBagConstraints gbc_stmLMaxYField = new GridBagConstraints();
		gbc_stmLMaxYField.insets = new Insets(0, 0, 5, 0);
		gbc_stmLMaxYField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmLMaxYField.gridx = 3;
		gbc_stmLMaxYField.gridy = 1;
		stmLocPanel.add(stmLMaxYField, gbc_stmLMaxYField);
		stmLMaxYField.setColumns(10);
		
		lblSTMLZ = new JLabel("Min-Z");
		GridBagConstraints gbc_lblSTMLZ = new GridBagConstraints();
		gbc_lblSTMLZ.fill = GridBagConstraints.BOTH;
		gbc_lblSTMLZ.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMLZ.gridx = 0;
		gbc_lblSTMLZ.gridy = 2;
		stmLocPanel.add(lblSTMLZ, gbc_lblSTMLZ);
		
		stmLMinZField = new JFormattedTextField();
		stmLMinZField.setHorizontalAlignment(SwingConstants.CENTER);
		stmLMinZField.setColumns(10);
		GridBagConstraints gbc_stmLMinZField = new GridBagConstraints();
		gbc_stmLMinZField.insets = new Insets(0, 0, 5, 5);
		gbc_stmLMinZField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmLMinZField.gridx = 1;
		gbc_stmLMinZField.gridy = 2;
		stmLocPanel.add(stmLMinZField, gbc_stmLMinZField);
		
		lblSTMLMaxZ = new JLabel("Max-Z");
		GridBagConstraints gbc_lblSTMLMaxZ = new GridBagConstraints();
		gbc_lblSTMLMaxZ.fill = GridBagConstraints.BOTH;
		gbc_lblSTMLMaxZ.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMLMaxZ.gridx = 2;
		gbc_lblSTMLMaxZ.gridy = 2;
		stmLocPanel.add(lblSTMLMaxZ, gbc_lblSTMLMaxZ);
		
		stmLMaxZField = new JFormattedTextField();
		stmLMaxZField.setHorizontalAlignment(SwingConstants.CENTER);
		GridBagConstraints gbc_stmLMaxZField = new GridBagConstraints();
		gbc_stmLMaxZField.insets = new Insets(0, 0, 5, 0);
		gbc_stmLMaxZField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmLMaxZField.gridx = 3;
		gbc_stmLMaxZField.gridy = 2;
		stmLocPanel.add(stmLMaxZField, gbc_stmLMaxZField);
		stmLMaxZField.setColumns(10);
		
		lblSTMLUseRange = new JLabel("Use Range?");
		GridBagConstraints gbc_lblSTMLUseRange = new GridBagConstraints();
		gbc_lblSTMLUseRange.insets = new Insets(0, 0, 0, 5);
		gbc_lblSTMLUseRange.gridx = 0;
		gbc_lblSTMLUseRange.gridy = 3;
		stmLocPanel.add(lblSTMLUseRange, gbc_lblSTMLUseRange);
		
		chckbxSTMLRange = new JCheckBox("");
		GridBagConstraints gbc_chckbxSTMLRange = new GridBagConstraints();
		gbc_chckbxSTMLRange.insets = new Insets(0, 0, 0, 5);
		gbc_chckbxSTMLRange.gridx = 1;
		gbc_chckbxSTMLRange.gridy = 3;
		stmLocPanel.add(chckbxSTMLRange, gbc_chckbxSTMLRange);
		
		stmRotPanel = new JPanel();
		stmRotPanel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Rotation", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
		stmGeneratePanel.add(stmRotPanel);
		GridBagLayout gbl_stmRotPanel = new GridBagLayout();
		gbl_stmRotPanel.columnWidths = new int[]{50, 58, 50, 50, 0};
		gbl_stmRotPanel.rowHeights = new int[] {30, 30, 30, 30, 0};
		gbl_stmRotPanel.columnWeights = new double[]{0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE};
		gbl_stmRotPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		stmRotPanel.setLayout(gbl_stmRotPanel);
		
		lblSTMRX = new JLabel("Min-X");
		GridBagConstraints gbc_lblSTMRX = new GridBagConstraints();
		gbc_lblSTMRX.fill = GridBagConstraints.BOTH;
		gbc_lblSTMRX.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMRX.gridx = 0;
		gbc_lblSTMRX.gridy = 0;
		stmRotPanel.add(lblSTMRX, gbc_lblSTMRX);
		
		stmRMinXField = new JFormattedTextField();
		stmRMinXField.setHorizontalAlignment(SwingConstants.CENTER);
		stmRMinXField.setColumns(10);
		GridBagConstraints gbc_stmRMinXField = new GridBagConstraints();
		gbc_stmRMinXField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmRMinXField.insets = new Insets(0, 0, 5, 5);
		gbc_stmRMinXField.gridx = 1;
		gbc_stmRMinXField.gridy = 0;
		stmRotPanel.add(stmRMinXField, gbc_stmRMinXField);
		
		lblSTMRMaxX = new JLabel("Max-X");
		GridBagConstraints gbc_lblSTMRMaxX = new GridBagConstraints();
		gbc_lblSTMRMaxX.fill = GridBagConstraints.BOTH;
		gbc_lblSTMRMaxX.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMRMaxX.gridx = 2;
		gbc_lblSTMRMaxX.gridy = 0;
		stmRotPanel.add(lblSTMRMaxX, gbc_lblSTMRMaxX);
		
		stmRMaxXField = new JFormattedTextField();
		stmRMaxXField.setHorizontalAlignment(SwingConstants.CENTER);
		stmRMaxXField.setColumns(10);
		GridBagConstraints gbc_stmRMaxXField = new GridBagConstraints();
		gbc_stmRMaxXField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmRMaxXField.insets = new Insets(0, 0, 5, 0);
		gbc_stmRMaxXField.gridx = 3;
		gbc_stmRMaxXField.gridy = 0;
		stmRotPanel.add(stmRMaxXField, gbc_stmRMaxXField);
		
		lblSTMRY = new JLabel("Min-Y");
		GridBagConstraints gbc_lblSTMRY = new GridBagConstraints();
		gbc_lblSTMRY.fill = GridBagConstraints.BOTH;
		gbc_lblSTMRY.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMRY.gridx = 0;
		gbc_lblSTMRY.gridy = 1;
		stmRotPanel.add(lblSTMRY, gbc_lblSTMRY);
		
		stmRMinYField = new JFormattedTextField();
		stmRMinYField.setHorizontalAlignment(SwingConstants.CENTER);
		stmRMinYField.setColumns(10);
		GridBagConstraints gbc_stmRMinYField = new GridBagConstraints();
		gbc_stmRMinYField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmRMinYField.insets = new Insets(0, 0, 5, 5);
		gbc_stmRMinYField.gridx = 1;
		gbc_stmRMinYField.gridy = 1;
		stmRotPanel.add(stmRMinYField, gbc_stmRMinYField);
		
		lblSTMRMaxY = new JLabel("Max-Y");
		GridBagConstraints gbc_lblSTMRMaxY = new GridBagConstraints();
		gbc_lblSTMRMaxY.fill = GridBagConstraints.BOTH;
		gbc_lblSTMRMaxY.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMRMaxY.gridx = 2;
		gbc_lblSTMRMaxY.gridy = 1;
		stmRotPanel.add(lblSTMRMaxY, gbc_lblSTMRMaxY);
		
		stmRMaxYField = new JFormattedTextField();
		stmRMaxYField.setHorizontalAlignment(SwingConstants.CENTER);
		stmRMaxYField.setColumns(10);
		GridBagConstraints gbc_stmRMaxYField = new GridBagConstraints();
		gbc_stmRMaxYField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmRMaxYField.insets = new Insets(0, 0, 5, 0);
		gbc_stmRMaxYField.gridx = 3;
		gbc_stmRMaxYField.gridy = 1;
		stmRotPanel.add(stmRMaxYField, gbc_stmRMaxYField);
		
		lblSTMRZ = new JLabel("Min-Z");
		GridBagConstraints gbc_lblSTMRZ = new GridBagConstraints();
		gbc_lblSTMRZ.fill = GridBagConstraints.BOTH;
		gbc_lblSTMRZ.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMRZ.gridx = 0;
		gbc_lblSTMRZ.gridy = 2;
		stmRotPanel.add(lblSTMRZ, gbc_lblSTMRZ);
		
		stmRMinZField = new JFormattedTextField();
		stmRMinZField.setHorizontalAlignment(SwingConstants.CENTER);
		stmRMinZField.setColumns(10);
		GridBagConstraints gbc_stmRMinZField = new GridBagConstraints();
		gbc_stmRMinZField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmRMinZField.insets = new Insets(0, 0, 5, 5);
		gbc_stmRMinZField.gridx = 1;
		gbc_stmRMinZField.gridy = 2;
		stmRotPanel.add(stmRMinZField, gbc_stmRMinZField);
		
		lblSTMRMaxZ = new JLabel("Max-Z");
		GridBagConstraints gbc_lblSTMRMaxZ = new GridBagConstraints();
		gbc_lblSTMRMaxZ.fill = GridBagConstraints.BOTH;
		gbc_lblSTMRMaxZ.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMRMaxZ.gridx = 2;
		gbc_lblSTMRMaxZ.gridy = 2;
		stmRotPanel.add(lblSTMRMaxZ, gbc_lblSTMRMaxZ);
		
		stmRMaxZField = new JFormattedTextField();
		stmRMaxZField.setHorizontalAlignment(SwingConstants.CENTER);
		stmRMaxZField.setColumns(10);
		GridBagConstraints gbc_stmRMaxZField = new GridBagConstraints();
		gbc_stmRMaxZField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmRMaxZField.insets = new Insets(0, 0, 5, 0);
		gbc_stmRMaxZField.gridx = 3;
		gbc_stmRMaxZField.gridy = 2;
		stmRotPanel.add(stmRMaxZField, gbc_stmRMaxZField);
		
		lblSTMRRange = new JLabel("Use Range?");
		GridBagConstraints gbc_lblSTMRRange = new GridBagConstraints();
		gbc_lblSTMRRange.insets = new Insets(0, 0, 0, 5);
		gbc_lblSTMRRange.gridx = 0;
		gbc_lblSTMRRange.gridy = 3;
		stmRotPanel.add(lblSTMRRange, gbc_lblSTMRRange);
		
		chckbxSTMRRange = new JCheckBox("");
		GridBagConstraints gbc_chckbxSTMRRange = new GridBagConstraints();
		gbc_chckbxSTMRRange.insets = new Insets(0, 0, 0, 5);
		gbc_chckbxSTMRRange.gridx = 1;
		gbc_chckbxSTMRRange.gridy = 3;
		stmRotPanel.add(chckbxSTMRRange, gbc_chckbxSTMRRange);
		
		stmScaPanel = new JPanel();
		stmScaPanel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Scale", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
		stmGeneratePanel.add(stmScaPanel);
		GridBagLayout gbl_stmScaPanel = new GridBagLayout();
		gbl_stmScaPanel.columnWidths = new int[] {50, 58, 50, 50, 0};
		gbl_stmScaPanel.rowHeights = new int[] {30, 30, 30, 30, 0};
		gbl_stmScaPanel.columnWeights = new double[]{0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE};
		gbl_stmScaPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		stmScaPanel.setLayout(gbl_stmScaPanel);
		
		lblSTMSX = new JLabel("Min-X");
		GridBagConstraints gbc_lblSTMSX = new GridBagConstraints();
		gbc_lblSTMSX.fill = GridBagConstraints.BOTH;
		gbc_lblSTMSX.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMSX.gridx = 0;
		gbc_lblSTMSX.gridy = 0;
		stmScaPanel.add(lblSTMSX, gbc_lblSTMSX);
		
		stmSMinXField = new JFormattedTextField();
		stmSMinXField.setHorizontalAlignment(SwingConstants.CENTER);
		stmSMinXField.setColumns(10);
		GridBagConstraints gbc_stmSMinXField = new GridBagConstraints();
		gbc_stmSMinXField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmSMinXField.insets = new Insets(0, 0, 5, 5);
		gbc_stmSMinXField.gridx = 1;
		gbc_stmSMinXField.gridy = 0;
		stmScaPanel.add(stmSMinXField, gbc_stmSMinXField);
		
		lblSTMSMaxX = new JLabel("Max-X");
		GridBagConstraints gbc_lblSTMSMaxX = new GridBagConstraints();
		gbc_lblSTMSMaxX.fill = GridBagConstraints.BOTH;
		gbc_lblSTMSMaxX.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMSMaxX.gridx = 2;
		gbc_lblSTMSMaxX.gridy = 0;
		stmScaPanel.add(lblSTMSMaxX, gbc_lblSTMSMaxX);
		
		stmSMaxXField = new JFormattedTextField();
		stmSMaxXField.setHorizontalAlignment(SwingConstants.CENTER);
		stmSMaxXField.setColumns(10);
		GridBagConstraints gbc_stmSMaxXField = new GridBagConstraints();
		gbc_stmSMaxXField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmSMaxXField.insets = new Insets(0, 0, 5, 0);
		gbc_stmSMaxXField.gridx = 3;
		gbc_stmSMaxXField.gridy = 0;
		stmScaPanel.add(stmSMaxXField, gbc_stmSMaxXField);
		
		lblSTMSY = new JLabel("Min-Y");
		GridBagConstraints gbc_lblSTMSY = new GridBagConstraints();
		gbc_lblSTMSY.fill = GridBagConstraints.BOTH;
		gbc_lblSTMSY.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMSY.gridx = 0;
		gbc_lblSTMSY.gridy = 1;
		stmScaPanel.add(lblSTMSY, gbc_lblSTMSY);
		
		stmSMinYField = new JFormattedTextField();
		stmSMinYField.setHorizontalAlignment(SwingConstants.CENTER);
		stmSMinYField.setColumns(10);
		GridBagConstraints gbc_stmSMinYField = new GridBagConstraints();
		gbc_stmSMinYField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmSMinYField.insets = new Insets(0, 0, 5, 5);
		gbc_stmSMinYField.gridx = 1;
		gbc_stmSMinYField.gridy = 1;
		stmScaPanel.add(stmSMinYField, gbc_stmSMinYField);
		
		lblSTMSMaxY = new JLabel("Max-Y");
		GridBagConstraints gbc_lblSTMSMaxY = new GridBagConstraints();
		gbc_lblSTMSMaxY.fill = GridBagConstraints.BOTH;
		gbc_lblSTMSMaxY.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMSMaxY.gridx = 2;
		gbc_lblSTMSMaxY.gridy = 1;
		stmScaPanel.add(lblSTMSMaxY, gbc_lblSTMSMaxY);
		
		stmSMaxYField = new JFormattedTextField();
		stmSMaxYField.setHorizontalAlignment(SwingConstants.CENTER);
		stmSMaxYField.setColumns(10);
		GridBagConstraints gbc_stmSMaxYField = new GridBagConstraints();
		gbc_stmSMaxYField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmSMaxYField.insets = new Insets(0, 0, 5, 0);
		gbc_stmSMaxYField.gridx = 3;
		gbc_stmSMaxYField.gridy = 1;
		stmScaPanel.add(stmSMaxYField, gbc_stmSMaxYField);
		
		lblSTMSZ = new JLabel("Min-Z");
		GridBagConstraints gbc_lblSTMSZ = new GridBagConstraints();
		gbc_lblSTMSZ.fill = GridBagConstraints.BOTH;
		gbc_lblSTMSZ.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMSZ.gridx = 0;
		gbc_lblSTMSZ.gridy = 2;
		stmScaPanel.add(lblSTMSZ, gbc_lblSTMSZ);
		
		stmSMinZField = new JFormattedTextField();
		stmSMinZField.setHorizontalAlignment(SwingConstants.CENTER);
		stmSMinZField.setColumns(10);
		GridBagConstraints gbc_stmSMinZField = new GridBagConstraints();
		gbc_stmSMinZField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmSMinZField.insets = new Insets(0, 0, 5, 5);
		gbc_stmSMinZField.gridx = 1;
		gbc_stmSMinZField.gridy = 2;
		stmScaPanel.add(stmSMinZField, gbc_stmSMinZField);
		
		lblSTMSMaxZ = new JLabel("Max-Z");
		GridBagConstraints gbc_lblSTMSMaxZ = new GridBagConstraints();
		gbc_lblSTMSMaxZ.fill = GridBagConstraints.BOTH;
		gbc_lblSTMSMaxZ.insets = new Insets(0, 0, 5, 5);
		gbc_lblSTMSMaxZ.gridx = 2;
		gbc_lblSTMSMaxZ.gridy = 2;
		stmScaPanel.add(lblSTMSMaxZ, gbc_lblSTMSMaxZ);
		
		stmSMaxZField = new JFormattedTextField();
		stmSMaxZField.setHorizontalAlignment(SwingConstants.CENTER);
		stmSMaxZField.setColumns(10);
		GridBagConstraints gbc_stmSMaxZField = new GridBagConstraints();
		gbc_stmSMaxZField.fill = GridBagConstraints.HORIZONTAL;
		gbc_stmSMaxZField.insets = new Insets(0, 0, 5, 0);
		gbc_stmSMaxZField.gridx = 3;
		gbc_stmSMaxZField.gridy = 2;
		stmScaPanel.add(stmSMaxZField, gbc_stmSMaxZField);
		
		lblSTMSRange = new JLabel("Use Range?");
		GridBagConstraints gbc_lblSTMSRange = new GridBagConstraints();
		gbc_lblSTMSRange.insets = new Insets(0, 0, 0, 5);
		gbc_lblSTMSRange.gridx = 0;
		gbc_lblSTMSRange.gridy = 3;
		stmScaPanel.add(lblSTMSRange, gbc_lblSTMSRange);
		
		chckbxSTMSRange = new JCheckBox("");
		GridBagConstraints gbc_chckbxSTMSRange = new GridBagConstraints();
		gbc_chckbxSTMSRange.insets = new Insets(0, 0, 0, 5);
		gbc_chckbxSTMSRange.gridx = 1;
		gbc_chckbxSTMSRange.gridy = 3;
		stmScaPanel.add(chckbxSTMSRange, gbc_chckbxSTMSRange);
		
		lblSTMSUni = new JLabel("Uniform?");
		GridBagConstraints gbc_lblSTMSUni = new GridBagConstraints();
		gbc_lblSTMSUni.insets = new Insets(0, 0, 0, 5);
		gbc_lblSTMSUni.gridx = 2;
		gbc_lblSTMSUni.gridy = 3;
		stmScaPanel.add(lblSTMSUni, gbc_lblSTMSUni);
		
		chckbxSTMRRUni = new JCheckBox("");
		GridBagConstraints gbc_chckbxSTMRRUni = new GridBagConstraints();
		gbc_chckbxSTMRRUni.gridx = 3;
		gbc_chckbxSTMRRUni.gridy = 3;
		stmScaPanel.add(chckbxSTMRRUni, gbc_chckbxSTMRRUni);
		
		skmPanel = new JPanel();
		generateTabbedPane.addTab("Skeletal Mesh", null, skmPanel, null);
		skmPanel.setLayout(new BorderLayout(0, 0));
		
		table = new JTable();
		table.setFillsViewportHeight(true);
		skmPanel.add(table);
		
		panel = new JPanel();
		skmPanel.add(panel, BorderLayout.SOUTH);
		panel.setLayout(new BorderLayout(0, 0));
		
		panel_3 = new JPanel();
		panel.add(panel_3, BorderLayout.WEST);
		panel_3.setLayout(new BoxLayout(panel_3, BoxLayout.Y_AXIS));
		
		btnNewButton = new JButton("New button");
		panel_3.add(btnNewButton);
		
		btnNewButton_1 = new JButton("New button");
		panel_3.add(btnNewButton_1);
		
		panel_4 = new JPanel();
		panel.add(panel_4, BorderLayout.EAST);
		panel_4.setLayout(new GridLayout(0, 2, 0, 0));
		
		btnNewButton_2 = new JButton("New button");
		panel_4.add(btnNewButton_2);
		
		comboBox = new JComboBox();
		panel_4.add(comboBox);
		
		textArea = new JTextArea();
		panel_4.add(textArea);
		
		paPanel = new JPanel();
		generateTabbedPane.addTab("Physics Asset", null, paPanel, null);
		
		ipaPanel = new JPanel();
		generateTabbedPane.addTab("InterPActor", null, ipaPanel, null);
		
		rbPanel = new JPanel();
		generateTabbedPane.addTab("Rigid Body", null, rbPanel, null);
		
		assPanel = new JPanel();
		generateTabbedPane.addTab("Ambient Sound Simple", null, assPanel, null);
		
		asPanel = new JPanel();
		generateTabbedPane.addTab("Ambient Sound", null, asPanel, null);
		
		stPanel = new JPanel();
		generateTabbedPane.addTab("SpeedTree", null, stPanel, null);
		
		emPanel = new JPanel();
		generateTabbedPane.addTab("Emitter", null, emPanel, null);
		
		cmPanel = new JPanel();
		generateTabbedPane.addTab("Custom", null, cmPanel, null);
		
		rawPanel = new JPanel();
		rawPanel.setLayout(new BorderLayout(0, 0));
		generateTabbedPane.addTab("RAW", null, rawPanel, null);
		
		rawTable = new JTable(new DefaultTableModel(){
			private static final long serialVersionUID = -8160506238014147657L;

			@SuppressWarnings({ "unchecked", "rawtypes" })
			@Override
			public Class getColumnClass(int c) {
				return getValueAt(0, c).getClass();
			}
		});
		rawTable.setFillsViewportHeight(true);
		rawTable.setRowSorter(new TableRowSorter<TableModel>(rawTable.getModel()));
		
		rawScrollPane = new JScrollPane(rawTable);
		rawPanel.add(rawScrollPane);
		
		templateRawPanel = new JPanel();
		rawPanel.add(templateRawPanel, BorderLayout.NORTH);
		templateRawPanel.setLayout(new BoxLayout(templateRawPanel, BoxLayout.X_AXIS));
		
		cbRawTemplate = new JComboBox();
		templateRawPanel.add(cbRawTemplate);

		
		genSetPanel = new JPanel();
		generatePanel.add(genSetPanel, BorderLayout.SOUTH);
		genSetPanel.setLayout(new BoxLayout(genSetPanel, BoxLayout.X_AXIS));
		
		chckbxReplace = new JCheckBox("Replace All Data?");
		genSetPanel.add(chckbxReplace);
        
		frame.setLocationRelativeTo(null);
		frame.pack();
		frame.setVisible(true);
	}