private void loadServiceData(boolean generationMode) {
		// Write service classes headers.
		jTableServiceClasses.setModel(new BasicTableModel(
			serviceClassesList.size(), 2, false));
		jTableServiceClasses.setColumnWidthRelative(
				new double[] {0.3, 0.7});
		TableColumnModel serviceClassesColumnModel = 
			jTableServiceClasses.getColumnModel();
		serviceClassesColumnModel.getColumn(0).setHeaderValue("ID");
		serviceClassesColumnModel.getColumn(1).setHeaderValue("Name");
		jTableServiceClasses.setColumnTextAlignment(
				0, DefaultTableCellRenderer.CENTER);

		// Write service classes data.
		for (int i = 0 ; i < serviceClassesList.size() ; i++) {
			ServiceClass serviceClass = serviceClassesList.get(i);
			jTableServiceClasses.setValueAt(
					serviceClass.getServiceClassId(), i, 0);
			jTableServiceClasses.setValueAt(serviceClass.getName(), i, 1);
			
			if (generationMode) {
				for (ServiceCandidate serviceCandidate : 
					serviceClass.getServiceCandidateList()) {
					serviceCandidatesList.add(serviceCandidate);
				}
			}
		}
		// Write service candidates headers.
		jTableWebServices.setModel(new BasicTableModel(
				serviceCandidatesList.size(), 6, false));
		TableColumnModel webServicesColumnModel = 
			jTableWebServices.getColumnModel();
		String[] headerArray = new String[] {"Service Class ", "ID", 
			"Name", "Costs", "ResponseTime", "Availability"};
		for (int k = 0; k < 6; k++) {
			webServicesColumnModel.getColumn(k).setHeaderValue(
					headerArray[k]);
		}
		jTableWebServices.setColumnTextAlignment(
				0, DefaultTableCellRenderer.CENTER);
		jTableWebServices.setColumnTextAlignment(
				1, DefaultTableCellRenderer.CENTER);
		for (int i = 3; i < 6; i++) {
			jTableWebServices.setColumnTextAlignment(
					i, DefaultTableCellRenderer.RIGHT);
		}
		for (int i = 0; i < serviceClassesList.size(); i++) {
			for (int k = 0; k < serviceClassesList.get(i).
					getServiceCandidateList().size(); k++) {
				ServiceCandidate serviceCandidate = serviceClassesList.get(i).
						getServiceCandidateList().get(k);
				QosVector qosVector = serviceCandidate.getQosVector();
				jTableWebServices.setValueAt(
						serviceCandidate.getServiceCandidateId().
						split("\\.")[0], k, 0);
				jTableWebServices.setValueAt(
						serviceCandidate.getServiceCandidateId(), k, 1);
				jTableWebServices.setValueAt(serviceCandidate.getName(), k, 2);
				jTableWebServices.setValueAt(qosVector.getCosts(), k, 3);
				jTableWebServices.setValueAt(
						qosVector.getResponseTime(), k, 4);
				jTableWebServices.setValueAt(
						qosVector.getAvailability(), k, 5);
			}
		}
		// Write service candidates data.
		for (int k = 0 ; k < serviceCandidatesList.size() ; k++) {
			ServiceCandidate serviceCandidate = 
				serviceCandidatesList.get(k);
			QosVector qosVector = serviceCandidate.getQosVector();
			jTableWebServices.setValueAt(
					serviceCandidate.getServiceCandidateId().
					split("\\.")[0], k, 0);
			jTableWebServices.setValueAt(
					serviceCandidate.getServiceCandidateId(), k, 1);
			jTableWebServices.setValueAt(serviceCandidate.getName(), k, 2);
			jTableWebServices.setValueAt(qosVector.getCosts(), k, 3);
			jTableWebServices.setValueAt(
					qosVector.getResponseTime(), k, 4);
			jTableWebServices.setValueAt(qosVector.getAvailability(), k, 5);
		}
		webServicesLoaded = true;
		checkEnableStartButton();
		setSliderExtremeValues();
		if (generationMode) {
			jSliderMaxCosts.setValue((int) (
					DEFAULT_RELAXATION * (maxCosts + minCosts)));
			jSliderMaxResponseTime.setValue((int) (
					DEFAULT_RELAXATION * (maxResponseTime + minResponseTime)));
			jSliderMinAvailability.setValue((int) (
					DEFAULT_RELAXATION * (maxAvailability + minAvailability)));
		}
		checkInputValue(jTextFieldPopulationSize, 
				MAX_START_POPULATION_SIZE, 1, 
				DEFAULT_START_POPULATION_SIZE);
	}