public DialogRoomWizard() {
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
		setModal(true);
		setTitle("Create Room");
		setResizable(false);
		setBounds(100, 100, 450, 300);
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.NORTH);
		
		JLabel lblLabel = new JLabel("Label:");
		lblLabel.setFont(new Font("Tahoma", Font.BOLD, 11));
		
		txtLabel = new JTextField();
		txtLabel.setColumns(10);
		
		DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();
		
		for (String s : RoomObjects.getTypes()) {
			model.addElement(s);
		}
		
		JLabel lblIcon = new JLabel("Icon:");
		lblIcon.setFont(new Font("Tahoma", Font.BOLD, 11));
		
		iconBox = new JIconComboBox();
		
		JLabel lblColor = new JLabel("Color:");
		lblColor.setFont(new Font("Tahoma", Font.BOLD, 11));
		
		colorBox = new JColorComboBox();
		
		GroupLayout gl_contentPanel = new GroupLayout(contentPanel);
		gl_contentPanel.setHorizontalGroup(
			gl_contentPanel.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPanel.createSequentialGroup()
					.addContainerGap()
					.addGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING)
						.addGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING, false)
							.addComponent(txtLabel, GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE)
							.addComponent(lblLabel))
						.addComponent(lblIcon)
						.addComponent(lblColor)
						.addGroup(gl_contentPanel.createParallelGroup(Alignment.TRAILING, false)
							.addComponent(iconBox, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
							.addComponent(colorBox, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 116, GroupLayout.PREFERRED_SIZE)))
					.addContainerGap(189, Short.MAX_VALUE))
		);
		gl_contentPanel.setVerticalGroup(
			gl_contentPanel.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPanel.createSequentialGroup()
					.addContainerGap()
					.addComponent(lblLabel)
					.addPreferredGap(ComponentPlacement.RELATED)
					.addComponent(txtLabel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.RELATED)
					.addComponent(lblIcon)
					.addPreferredGap(ComponentPlacement.RELATED)
					.addComponent(iconBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addComponent(lblColor)
					.addPreferredGap(ComponentPlacement.RELATED)
					.addComponent(colorBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
					.addContainerGap(79, Short.MAX_VALUE))
		);
		contentPanel.setLayout(gl_contentPanel);
		{
			JPanel buttonPane = new JPanel();
			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
			getContentPane().add(buttonPane, BorderLayout.SOUTH);
			{
				JButton okButton = new JButton("OK");
				okButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						try {
							if (room == null) {
								Logger.log("Creating new room");
								
								Room room = new Room(txtLabel.getText().trim(), iconBox.getSelectedItem().toString(), colorBox.getSelectedItem().toString(), new ArrayList<RoomObject>());
								
								Rooms.createRoom(room);
							} else {
								room.setLabel(txtLabel.getText().trim());
								room.setColor(colorBox.getColor());
								room.setIcon(IconUtils.getIcon("icon_" + iconBox.getSelectedItem().toString()));
								room.setStringIcon(iconBox.getSelectedItem().toString());
								FrameMain.instance.reloadTree();
							}
							
							dispose();
							setVisible(false);
						} catch (Exception e1) {
							e1.printStackTrace();
						}
					}
				});
				okButton.setActionCommand("OK");
				buttonPane.add(okButton);
				getRootPane().setDefaultButton(okButton);
			}
			{
				JButton cancelButton = new JButton("Cancel");
				cancelButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent arg0) {
						dispose();
						setVisible(false);
					}
				});
				cancelButton.setActionCommand("Cancel");
				buttonPane.add(cancelButton);
			}
		}
	}