code: private void cmdCreateMappingActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_cmdCreateMappingActionPerformed
  		// Stop any editing action and save whatever in the text field
  		if (!pnlPropertyEditorList.isEmpty() && pnlPropertyEditorList.isEditing()) {
  			pnlPropertyEditorList.stopCellEditing();
  		}
  		try {
  			// Prepare the mapping source
  			String source = txtQueryEditor.getText();
  
  			if (source.isEmpty()) {
  				JOptionPane.showMessageDialog(this, "ERROR: The SQL source cannot be empty", "Error", JOptionPane.ERROR_MESSAGE);
  				return;
  			}
  			String subjectTargetString = predicateSubjectMap.getTargetMapping();
  			if(subjectTargetString.equals(":")){
  				JOptionPane.showMessageDialog(this, "ERROR: Focus on URI cannot be empty", "Error", JOptionPane.ERROR_MESSAGE);
  				return;
  			}
  			// Prepare the mapping target
  			List<MapItem> predicateObjectMapsList = pnlPropertyEditorList.getPredicateObjectMapsList();
  			ImmutableList<TargetAtom> target = prepareTargetQuery(predicateSubjectMap, predicateObjectMapsList);
  
  			if (target.isEmpty()) {
  				JOptionPane.showMessageDialog(this, "ERROR: The target cannot be empty. Add a class or a property", "Error", JOptionPane.ERROR_MESSAGE);
  				return;
  			}
  			// Create the mapping axiom
  			SQLPPTriplesMap mappingAxiom = new OntopNativeSQLPPTriplesMap(MAPPING_FACTORY.getSQLQuery(source), target);
  			obdaModel.addTriplesMap(mappingAxiom, false);
  
  			// Clear the form afterwards
  			clearForm();
  		} catch (DuplicateMappingException e) {
  			DialogUtils.showQuickErrorDialog(null, e, "Duplicate mapping identification.");
  			return;
  		} catch (NullPointerException e) {
  			DialogUtils.showQuickErrorDialog(null, new Exception("Data source has not been defined."));
  			return;
  		} catch (RuntimeException e) {
  			DialogUtils.showQuickErrorDialog(null, e, "Empty property mapping.");
  			return;
  		}
  	}
docs: GEN-LAST:event_cmdClearAllActionPerformed