private void initComponent() {
		
		this.getContentPane().setLayout(new GridBagLayout());
		
		/* 	SURVIVORS  */
		JPanel survivorsPanel = new JPanel();


		survivorsPanel.setLayout(new GridBagLayout());
		
		this.willBePartOfTheTeam = new JCheckBox[this.availableSurvivors.size()];
		int i = 0;
		for (Survivor currentSurvivor : this.availableSurvivors) {
			willBePartOfTheTeam[i] = new JCheckBox();

			GridBagConstraints constraints;


			// Current survivor description
			constraints = new GridBagConstraints();
			constraints.gridx = 0;
			constraints.gridy = i;
			constraints.insets= new Insets(0, 10, 0, 10);
			constraints.anchor = GridBagConstraints.PAGE_START;
			survivorsPanel.add(new JLabel(currentSurvivor.toString()), constraints);
			
			// Current checkBox
			constraints = new GridBagConstraints();
			constraints.gridx = 1;
			constraints.gridy = i;
			survivorsPanel.add(willBePartOfTheTeam[i], constraints);
			
			this.willBePartOfTheTeam[i].addChangeListener(new ChangeListener() {
				@Override
				public void stateChanged(ChangeEvent e) {
					updateOkButton();
				}
			});
			
			i++;
		}
				
		survivorsPanel.setBackground(Color.cyan);
		
		
		
		/*	MAP INFO 	*/
		JPanel zoneInfoPanel = new JPanel();
		final JLabel zoneInfoLabel = new JLabel("You haven't chosen a zone"); // final because of the ActionListener below
		zoneInfoPanel.add(zoneInfoLabel);
		zoneInfoPanel.setBackground(Color.white);

		
		/*	MAP CHOOSING */
		JPanel mapPanel = new JPanel();
		mapPanel.setLayout(new GridBagLayout());
		
		for (int x = 0 ; x < this.map.getWidth() ; x++) {
			for (int y = 0 ; y < this.map.getHeight() ; y++) {				
				JButton currentZoneButton = new JButton();
				if (isMainBaseLocation(x, y)) {
					currentZoneButton.setText("BASE");
				} 
				else {
					currentZoneButton.setText(this.getZoneFromMap(x, y).getName());
				}
				
				GridBagConstraints currentButtonConstraints = new GridBagConstraints();
				currentButtonConstraints.gridx = x;
				currentButtonConstraints.gridy = y;
				currentButtonConstraints.anchor = GridBagConstraints.WEST;
				
				final int X = x, Y = y; // Because the anonymous method below needs final.
				currentZoneButton.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						updateOkButton();
					}
				});
				currentZoneButton.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						currentChosenRaidZone = getZoneFromMap(X, Y);
						zoneInfoLabel.setText("You will raid : " + currentChosenRaidZone.getName());
					}
				});
				currentZoneButton.setEnabled(!this.zonesUnraidable.contains(this.getZoneFromMap(x, y))
												&& 
											 !isMainBaseLocation(x, y));

				
				mapPanel.add(currentZoneButton, currentButtonConstraints);
			}
		}
		
		/*	OK CANCEL Buttons */		
		JPanel closeButtonsPanel = new JPanel();
		
		this.okButton = new JButton("Ok");
		this.okButton.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				sendData = true;
				updateRaidSettings();
				setVisible(false);
			}
		});
		this.updateOkButton();
		
		
		
		JButton cancelButton = new JButton("Cancel");
		cancelButton.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				setVisible(false);
			}
		});
		closeButtonsPanel.add(this.okButton);
		closeButtonsPanel.add(cancelButton);
		
		
		// Adding all JPanel to Dialog.
		GridBagConstraints panelConstraint = new GridBagConstraints();
		
		panelConstraint.gridx = 0;
		panelConstraint.gridy = 0;
		this.getContentPane().add(survivorsPanel, panelConstraint);
		
		panelConstraint.gridx = 1;
		this.getContentPane().add(zoneInfoPanel, panelConstraint);
		
		panelConstraint.gridx = 0;
		panelConstraint.gridy = 1;
		panelConstraint.gridwidth = GridBagConstraints.REMAINDER;
		this.getContentPane().add(mapPanel, panelConstraint);
		
		panelConstraint.gridy = 2;
		this.getContentPane().add(closeButtonsPanel, panelConstraint);
		
		this.pack();
		this.setLocationRelativeTo(null);
	}