private void okClicked(java.awt.event.MouseEvent evt) {

		//Pattern pentru verificarea corectitudinii datelor introduse in TextFields
		Pattern p = Pattern.compile("[0-9]");
	
		// numar elementele in total; e indice pt graphicElements
		int ii = -1;
		// numar doar atributele; e indice pt checkboxes
		int jj = -1;

		// completez parametrii
		for (int i = 2; i < params.size(); i++) {

			SimpleTypeParameter param = params.get(i);
			ii++;

			// caz special - cand parametrul are restrictie de tip enumeration
			if (param.getRestrictions().enumeration != null) {

				param.setValue(((JComboBox<String>) graphicElements.get(ii))
						.getSelectedItem().toString());
			} else {

				String type = param.getBaseType();

				if (type.equals("decimal") || type.equals("integer")
						|| type.equals("int")
						|| type.equals("negativeInteger")
						|| type.equals("nonNegativeInteger")
						|| type.equals("nonPositiveInteger")
						|| type.equals("positiveInteger")
						|| type.equals("float") || type.equals("double")) {

					param.setValue(((JSpinner) graphicElements.get(ii))
							.getValue().toString());
				}

				if (type.equals("string")) {

					if (((JTextField) graphicElements.get(ii)).getText()
							.isEmpty()) {
						errorLabel.setText(eroare1);
						graphicElements.get(ii).requestFocus();
						return;
					}

					if ((p.matcher(((JTextField) graphicElements.get(ii))
							.getText()).find())) {

						errorLabel.setText(eroare2);
						graphicElements.get(ii).requestFocus();
						return;
					}

					param.setValue(((JTextField) graphicElements.get(ii))
							.getText());
				}
			}
			// daca e de tip complex, atunci se ia panelul corespunzator si
			// se parcurg toate componentele din el

			if (param instanceof ComplexTypeParameter) {

				ArrayList<Attribute> attributes = ((ComplexTypeParameter) param)
						.getAttributes();

				for (int j = 0; j < attributes.size(); j++) {

					int coord = ii + j;
					jj++;

					Attribute attr = attributes.get(j);

					JCheckBox elemName = checkboxes.get(jj);

					// daca utilizatorul vrea acel atribut, atunci i se
					// completeaza valoarea
					if (elemName.isSelected()) {

						// caz special - cand parametrul are restrictie de tip enumeration
						if (attr.getRestrictions().enumeration != null) {

							attr.setValue(((JComboBox<String>) graphicElements
									.get(coord)).getSelectedItem()
									.toString());
						} else {

							String type = attr.getBaseType();

							if (type.equals("decimal")
									|| type.equals("integer")
									|| type.equals("int")
									|| type.equals("negativeInteger")
									|| type.equals("nonNegativeInteger")
									|| type.equals("nonPositiveInteger")
									|| type.equals("positiveInteger")
									|| type.equals("float")
									|| type.equals("double")) {

								attr.setValue(((JSpinner) graphicElements
										.get(coord)).getValue().toString());
							}

							if (type.equals("string")) {

								if (((JTextField) graphicElements
										.get(coord)).getText().isEmpty()) {
									errorLabel.setText(eroare1);
									graphicElements.get(coord)
											.requestFocus();
									return;
								}

								if ((p.matcher(((JTextField) graphicElements
										.get(coord)).getText()).find())) {

									errorLabel.setText(eroare2);
									graphicElements.get(coord)
											.requestFocus();
									return;
								}

								attr.setValue(((JTextField) graphicElements
										.get(coord)).getText());
							}
						}
					}
				}

				ii += attributes.size() - 1;
			}
		}

		//Se trimite operatia finala in fereastra de binarizare / preprocesare
		motherWindow.addExec(crtOp);
		close();
	}