private void initComponents() {
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosed(WindowEvent e) {
				if (!startPressed) {
					if (script != null) {
						script.ctx.controller.stop();
					}
				}
			}
		});

		for (String category : script.itemCategoriser.getCategorys()) {
			//tab0model.addElement(prettyName(category));
			tab0model.addElement(category);
		}

		tabs.add(tab0 = new JList(tab0model));
		tabs.add(tab1);
		tabs.add(tab2);
		tabs.add(tab3);
		tabs.add(tab4);
		tabs.add(tab5);
		tabs.add(tab6);
		tabs.add(tab7);
		tabs.add(tab8);

		for (int i = 0; i < tabs.size(); i++) {
			JList tab = tabs.get(i);
			tab.addMouseListener(new MenuAdapter(this, tab, tabs, i));
			tab.setTransferHandler(new ListTransferHandler());
			tab.setDropMode(DropMode.INSERT);
			tab.setDragEnabled(true);
		}

		tabbedPane = new JTabbedPane();
		startButton = new JButton("Start Script");
		startButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				start();
			}
		});
		loadButton = new JButton("Load Settings");
		loadButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				load();
			}
		});
		saveButton = new JButton("Save Settings");
		saveButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				save();
			}
		});
		categoryTab = getGeneralTab();
	}