/**********cmbbxIAddTaste*********************************************************************
 * Dietos uzdavinio sprendimo klase
 * -----------------------------------------------------------------------------
 * Atliko: Vidas Razmislevicius IT-3/2,Inga Liutkeviciute IT-3/1 1/1 2006
 * Pradinis kodas paimtas is: https://pilis.if.ktu.lt/~jmockus/dietadoviltis/DietaV4.zip
 *
 *  1. Padaryta, kad butu galima pasirinkti kokiam zmogui bus formuojama dieta:
 *    a) pagal amziu (atskirai vaikams), pagal lyti, pagal fizini aktyvuma
 *    b) galima pasirinkti papildomas savybes - ligos, moterims nestumas ir vaiko zindymo laikotarpis
 * 2. Iskeltas paklaidos koef., dabar ji galima redaguoti. Paklaida - tai kiek
 *     leidziama pazeisti nustatytus apribojimus: ai-p*ai <= xi <= ai+p*ai - tai suteikia didesne sprendiniu aibe
 *     Buvo ivesta tikriausiai todel, kad grieztai lankantis apribojimu, nebudavo gaunamas joks prendinys
 * 3. Pakeista tikslo funkcija. Pridedas maisto ivairumo parametras (91 form., sliden.pdf, 55p) 
 * 4. Sukurti papildomi maisto produktu-patiekalu sarasai:
 *   a) duom.txt - bendras sarasas
 *   b) duomv.txt - maistas vegetarams
 
 * Pradinis kodas: *****
 * is http://soften.ktu.lt/~mockus/dietalast/contdietalast.html
 * -----------------------------------------------------------------------------
 * Komentarai ir pakeitimai: Marijus Doviltis IFM-0/1 2005
 *
 * Atlikta:
 *  1. Kodas papildytas komentarais, sutvarkyti pavadinimai,kad atspindetu tuos
 *     duomenis kurie imami is lenteles o ne Mg zymetu Na ir pan. Taip pat buvo 
 *     naudojamas Cl vietoj J (Chloras vietoj Jodo), Cl nera normose, be to jis 
 *     nera is tu elementu kurie paprastai ivertinami. Mano nuomone rusiskoje
 *     medziagoje Cl taip pat panaudotas vietoje J, juo lab kad sutikrinus 
 *     duomenis su http://soften.ktu.lt/~mockus/dietalagu/dieta-prods.txt
 *     cl kiekis atitinka J kieki. 
 *  2. Perziureti skaiciavimai, pasalinti nereikalingi, painus ir neaisku kam
 *     skirti perskaiciavimai is vieno dydzio i kita o paskui vel atgal.
 *  3. Is naujo isversta rusiska medziaga, dalis patikrinta ir pakoreguota
 *     pagal kitus saltinius
 *  4. Perdelioti duomenu laukai applete, dalis ju sugrupuota. Tai turetu 
 *     palengvinti tolimesnes modifikacijas jei bus pridedami apribojimai,
 *     be to taip patogiau naudotis.
 *  5. Patiekalas yra neskaidomas (t.y. jis gali buti: 0, 1,2... , bet ne 0.0002
 *     ar pan. Be to,patiekalo maistiniai elementai neskaiciuojami kilogramais
 *     ty ne dauginti is 10
 *  6. Perkelta galimybe is siu metu darbo, kad itrauktu tik tuos produktus kuriu
 *     skonis atitinka pasirinkta su intervalu [pasirinkas:10]
 *     Bet sitas pasirinkimas atliekamas atskiru parametru o ne bendru kaip 
 *     buvo padaryta kolegu.
 *  7. Sutvarkyta optimizavimo formule pagal teorija, kad
 atitiktu realius 
 *     rezultatus. 
 *  8. Isvedami visi optimizavimo parametrai. Kartais pranesimas - "Virsijote
 *     rekomenduojama norma" gaunamas ,nes kelis kartus virsyjama norma pagal 
 *     vitaminus ar mineralus.
 *  9. Dabartiniai skaiciavimai atliekami su 12 grieztu ribojimu (ty virsutine 
 *     ir apatine ribos nurodytos 12 dedamuju) visi kiti apriboti is apacios.
 *     Grieztai apribota: Cal,Baltymai,Riebalai,Angliavandelniai
 *                        vitaminai:A,B1,B2,B3,B6,B12,PP;
 *                        mikroelementai: Ca,S;
 *     Apribojimas is apacios (ty ne maziau negu reikia) sukuria tarsi laisves 
 *     laipsnius. Is apacios apriboti yra:
 *                        vitaminai: C,E;
 *                        mikroelementai: P(Fosforas),Na;
 * 10.(papildymai)Teorine formule pakoreguota(po konsultaciju su M.Patasiumi
 *    prieita isvados kad dydziai prie x ieina tiesiogiai (ty ci-si+grozis*ai1),
 *    o grozis*bi1 pridedamas prie visu patiekalu ir kaip konstanta tik pakelia 
 *    dydzius bet nuo to sprendiniai nesikeicia.
 * 11.Grozio faktorius ivedamas nebe indeksais bet laisvu skaiiumi.
 *****
 * Dar reikia atlikti (pasiulymai kitiem metam):
 * 1. Patikslinti duomenis lenteleje ir ja papildyti
 * 2. Kadangi dienos normos yra atskirose lentelese, jos priklauso ne tik nuo
 *    mases, bet ir nuo amziaus, gyvenimo budo. Vartotojui patogu butu siuos 
 *    duomenis gauti migtuko paspaudimu ir pasirinkti norimus (kvepia dideliu
 *    programavimu)
 * ****************************************************************************
 * Naudingi parametrai:
 * Nurodant elemento pozicija applete naudojamos koordinates (x1,y1, delta x,delta y)
 * (x1,y1 - virsutinis kairysis taskas,delta x,delta y-dydis)
 * x dideja nuo kaires, y dideja nuo virsaus
 *------------------------------------------------
 **/

import com.symantec.itools.javax.swing.borders.LineBorder;
import com.symantec.itools.javax.swing.models.*;

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.EventObject;
import javax.swing.*;
import javax.swing.text.JTextComponent;
import lp.*;
import symantec.itools.lang.Context;
import java.util.*;

public class Dieta extends JApplet
{
 /*---------------------------------------------
  * parametrai optimizacijai ?
  *--------------------------------------------*/
    static final short LE = 0;
    static final short EQ = 1;
    static final short GE = 2;
    static final short OF = 3;
    int productCount; // pagrindinio produktu saraso dydis
    int activProdCnt; //produktu skaicius kurie itraukiami i skaiciavimus
    Product produktai[]; //pagrindinis produktu sarasas
    Product prodActiv[]; //aktyviu produktu sarasas
    Product produktai1[];// laikinas sarasas
    /*--------------------------------------
     * kiti kintamieji,vaizdo elementai ir tt
     *-------------------------------------*/
    public boolean duomenuKlaida;
    String failas;
    JDialog D;
    JLabel lblFailas;
    JTextField txtfldFailas;
    JButton btnOK;
    JTabbedPane tbdpnlBendras;
    JPanel pnlDuomenys;
    JScrollPane scrlpnLentele;
    JTable tblLentele;
    JLabel lblLentelesPav;
    JLabel lblRedagavimas;
    JLabel lblName;
    JTextField txtfldName;
    JLabel lblPrice;
    JTextField txtfldPrice;
    JLabel lblCalories;
    JTextField txtfldCalories;
    JLabel lblProteins;
    JTextField txtfldProteins;
    JLabel lblFats;
    JTextField txtfldFats;
    JLabel lblCarbohydrates;
    JTextField txtfldCarbohydrates;
    JLabel lblTaste;
    JComboBox cmbbxTaste;
    JButton btnLoad;
    JButton btnNew;
    JButton btnUpdate;
    JButton btnNext1;
    JButton btnDelete;
    JCheckBox chkbxDish;
    JLabel lblDish;
    JLabel JLabel5;
    JLabel JLabel6;
    JLabel JLabel7;
    JLabel JLabel8;
    JLabel JLabelB22; 
    JLabel JLabelB33;
    JLabel JLabelB66;
    JLabel JLabelB122;
    JLabel JLabelPP; 
    JLabel JLabelCa2;
    JLabel JLabelNa2;
    JLabel JLabelS2; 
    JLabel JLabelP2; 
    JLabel JLabelJ2;
    JTextField txtfldVitaminC;
    JTextField txtfldVitaminA;
    JTextField txtfldMineralCa;
    JTextField txtfldMineralNa;
    JPanel pnlPageidavimai;
    JTextField txtfldWeight;
    JLabel lblWeight;
    JButton btnNext2;
    JComboBox cmbbxOptimization;
    JLabel lblOptimization;
    JTextField txtfldVitaB2; 
    JTextField txtfldVitaB3; 
    JTextField txtfldVitaB6;  
    JTextField txtfldVitaB12;  
    JTextField txtfldVitaPP;  
    JTextField txtfldMCA;   
    JTextField txtfldMNa;  
    JTextField txtfldMS;  
    JTextField txtfldMP;  
    JTextField txtfldMJ;     
    JLabel lblImportance;
    JTextField cmbbxImportance;
    JLabel JLabel9;
    JLabel JLabel10;
    JLabel JLabel11;
    JLabel JLabel12;
    JLabel JLabel13;
    JLabel JLabel14;
    JLabel JLabel15;
    JPanel pnlRezultatai;
    JScrollPane JScrollPane1;
    JTable JTable1;
    JLabel JLabel1;
    JLabel JLabel2;
    JLabel JLabel3;
    JLabel JLabel4;
    JLabel lblCaloriesTotal;
    JLabel lblProteinsTotal;
    JLabel lblFatsTotal;
    JLabel lblCarbohydratesTotal;
    /*Papildomi atsakymai*/
    JLabel lblPriceTTlbl;
    JLabel lblPriceTotal;
    JLabel lblPriceTTlblS;
    JLabel lblPriceTotalS;
    
    JLabel lblVitATotal;
    JLabel lblVitCTotal;
    JLabel lblVitB1Total;
    JLabel lblVitB2Total;
    JLabel lblVitB3Total;
    JLabel lblVitB6Total;
    JLabel lblVitB12Total;
    JLabel lblVitETotal;
    JLabel lblVitPPTotal;
    JLabel lblMinCaTotal;
    JLabel lblMinNaTotal;
    JLabel lblMinSTotal;
    JLabel lblMinPTotal;
    JLabel lblMinJTotal;
   
    JLabel lblVitATTlbl;
    JLabel lblVitB1TTlbl;
    JLabel lblVitB2TTlbl;
    JLabel lblVitB3TTlbl;
    JLabel lblVitB6TTlbl;
    JLabel lblVitB12TTlbl;
    JLabel lblVitCTTlbl;
    JLabel lblVitETTlbl;
    JLabel lblVitPPTTlbl;
    JLabel lblMinCaTTlbl;
    JLabel lblMinNaTTlbl;
    JLabel lblMinSTTlbl;
    JLabel lblMinPTTlbl;
    JLabel lblMinJTTlbl;
   /*end*/
    StringTableModel tblmdlLentele;

    StringComboBoxModel cmbbxmdlTaste;
    StringComboBoxModel cmbbxmdlProteinsW;
    StringComboBoxModel cmbbxmdlfatsW;
    StringComboBoxModel cmbbxmdlCarbohydratesW;
    StringComboBoxModel cmbbxmdlCaloriesW;
    LineBorder lineBorder1;
    StringTableModel tblmdlRezultatai;
    StringComboBoxModel cmbbxmdlOptimize;
    StringComboBoxModel cmbbxmdlBias;
    JLabel lblStatus;
    StringComboBoxModel cmbbxmdlITaste;
    StringComboBoxModel cmbbxmdlIPrice;
    StringComboBoxModel cmbbxmdlImportance;

// NAUJI COMBOBOXAI
    private javax.swing.JTextField ReikiaAngl;
    private javax.swing.JTextField ReikiaBalt;
    private javax.swing.JTextField ReikiaFosf;
    private javax.swing.JTextField ReikiaKal;
    private javax.swing.JTextField ReikiaKalc;
    private javax.swing.JTextField ReikiaNatr;
    private javax.swing.JTextField ReikiaRieb;
    private javax.swing.JTextField ReikiaSer;
    private javax.swing.JTextField ReikiaJ;
    
    private javax.swing.JTextField ReikiaVitA;
    private javax.swing.JTextField ReikiaVitB1;
    private javax.swing.JTextField ReikiaVitB2;
    private javax.swing.JTextField ReikiaVitB3;
    private javax.swing.JTextField ReikiaVitB6;
    private javax.swing.JTextField ReikiaVitB12;    
    private javax.swing.JTextField ReikiaVitC;
    private javax.swing.JTextField ReikiaVitE;
    private javax.swing.JTextField ReikiaVitPP;    
    
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;//marijus
    private javax.swing.JLabel jLabel20;//marijus 
    private javax.swing.JLabel jLabel21;//marijus     
    private javax.swing.JLabel jLabel22;//marijus    
    private javax.swing.JLabel jLabe20;
    private javax.swing.JTabbedPane jTabbedPane1;
    /*nauji Marijus*/
    JLabel JLabelAddOnTaste;
    JComboBox cmbbxIAddTaste;
	/*
	*  ----------<< Laurynas Simaitis >>-------------------
	* nauji 
	*/
	private JTextField jReikalavimuTekstas;	// nauju reikalavimu idejimui (paste)
	private JTextField jPaklaida;			// skaiciavimo paklaidai nustatyti (esant standartiniai paklaida kartais kartais neduoda rezultatu)
	private JTextField jIvairove;			// maisto ivairoves koef.
	private JPanel jpnlIkrautiReikalavimus; // panele nauju reikalavimu ikrovimui
	private JButton jIkrautiReikalavimus;	// Ikrauna reikalavimus is teksto lauko "jReikalavimaiVisi"
	private String dienosReikalavimai[] ;	// masyvas, saugauntis dienos reikalavimus tekstiniame formate
	private String papildomiReikalavimai_V[]; // papildomo reikalavimai, esant papildomoms salygoms: nestumas, zindymas, ivairios ligos - duomenys vyrams
	private String papildomiReikalavimai_M[]; // papildomo reikalavimai, esant papildomoms salygoms: nestumas, zindymas, ivairios ligos - duomenys moterims
	private JRadioButton jrbtVyras;			// radio mygtukas, pasirenkant vyro tipa
	private JRadioButton jrbtMoretis;		// radio mygtukas, pasirenkant moteris tipa
	private JRadioButton jrbtVaikas;		// radio mygtukas, pasirenkant vaiko tipa
	private ButtonGroup jrbtgrTipai;		// radio mydtuku grupe
	private JCheckBox jchbPapildimai;		// papildomu reikalavimai, esant ntumui, ligos atveju arba kitos slygos
	private JComboBox jcbPapildomosSalygos_V; // papildomu salygu pasirinkimas
	private JComboBox jcbPapildomosSalygos_M; // papildomu salygu pasirinkimas
	private JButton jbtnPasirinkimas;		// ikrauti pageidavimus ir pasirikomo
	private JButton jbtnTekstas;			// ikrauti pageidavimus is teksto
	private JComboBox cmbbxAktyvumas;		// automatiniam pageidavimu ikrovimui
	private JComboBox cmbbxAmzius;			// automatiniam pageidavimu ikrovimui
	private JComboBox cmbbxVaikoAmzius;		// automatiniam pageidavimu ikrovimui
	private JCheckBox chkbxPapildoma;		// pazymejimas, ar reikia iskaiciuoti papildomus pageidavimus
	private JLabel jLabelAktyvumas;
	private JLabel jLabelAmzius;
	private JLabel jLabelPapildoma;			
	private JLabel jLabelPaklaida;
	private JLabel jLabelIvairovesIvedimas;	
	private JLabel jLabelIvairovesSprendimas;
	private JLabel jLabelIvairovesSprendimas2;
	private String sPavPapildomi_V[];				// papildimu reikalavimu pavadinimu masyvas (combobox'ui); vyrams
	private String sPavPapildomi_M[];				// papildimu reikalavimu pavadinimu masyvas (combobox'ui); moterims
	private JTextField tfldPapildomi;		// papildomu reikalavimu pavaizdavimui
	private Double fMaistoIvairumas;		// kriterijus, ivertinantis maisto ivairuma
	


																		//aktyvumas,amzius,svoris
	private String pageidavimaiStandartiniai[] = {
" 37.50 0.94 1.17 5.81 1000 900 1500 150 60 0.80 10 1.6 1.7 1 17 3",  	// (0) 1.5V19-34 70
" 35.63 0.89 1.11 5.53 1000 900 1500 150 60 0.80 10 1.7 1.7 1.1 19 3",  // (1) 1.5V19-34 80
" 36.43 0.90 1.13 5.64 1000 900 1500 150 60 0.80 10 1.5 1.7 0.9 17 3",  // (2) 1.5V35-49 70
" 33.75 0.85 1.05 5.24 1000 900 1500 150 60 0.80 10 1.6 1.7 1 18 3",  	// (3) 1.5V35-49 80
" 31.07 0.77 0.97 4.81 1200 900 1500 150 60 0.80 10 1.3 1.7 0.8 14 3",  // (4) 1.5V50-64 70
" 30.00 0.75 0.94 4.65 1200 900 1500 150 60 0.80 10 1.4 1.7 0.9 16 3",  // (5) 1.5V50-64 80
" 35.45 0.89 1.11 5.49 1000 900 1500 150 60 0.80 10 1.2 1.4 0.7 13 3",  // (6) 1.5M19-34 55
" 34.62 0.86 1.08 5.37 1000 900 1500 150 60 0.80 10 1.4 1.4 0.8 15 3",  // (7) 1.5M19-34 65
" 35.45 0.89 1.11 5.49 1000 900 1500 150 60 0.80 10 1.2 1.4 0.7 13 3",  // (8) 1.5M35-49 55
" 32.31 0.82 1.00 5.00 1000 900 1500 150 60 0.80 10 1.3 1.4 0.8 14 3",  // (9) 1.5M35-49 65
" 32.73 0.82 1.02 5.07 1200 900 1500 150 60 0.80 10 1.1 1.4 0.7 12 3",  // (10) 1.5M50-64 55
" 30.00 0.75 0.94 4.65 1200 900 1500 150 60 0.80 10 1.2 1.4 0.7 13 3",  // (11) 1.5M50-64 65
" 42.50 1.06 1.33 6.59 1000 900 1500 150 60 0.80 10 1.8 1.7 1.1 20 3",  // (12) 1.7V19-34 70
" 40.38 1.01 1.26 6.26 1000 900 1500 150 60 0.80 10 1.9 1.7 1.2 21 3",  // (13) 1.7V19-34 80
" 41.29 1.03 1.29 6.40 1000 900 1500 150 60 0.80 10 1.7 1.7 1.1 19 3",  // (14) 1.7V35-49 70
" 38.25 0.96 1.19 5.93 1000 900 1500 150 60 0.80 10 1.8 1.7 1.2 20 3",  // (15) 1.7V35-49 80
" 35.21 0.89 1.10 5.46 1200 900 1500 150 60 0.80 10 1.5 1.7 0.9 16 3",  // (16) 1.7V50-64 70
" 34.00 0.85 1.06 5.28 1200 900 1500 150 60 0.80 10 1.6 1.7 1 18 3",  	// (17) 1.7V50-64 80
" 40.18 1.00 1.25 6.25 1000 900 1500 150 60 0.80 10 1.3 1.4 0.8 15 3",  // (18) 1.7M19-34 55
" 39.23 0.98 1.22 6.08 1000 900 1500 150 60 0.80 10 1.5 1.4 1 17 3",  	// (19) 1.7M19-34 65
" 40.18 1.00 1.25 6.25 1000 900 1500 150 60 0.80 10 1.3 1.4 0.8 15 3",  // (20) 1.7M35-49 55
" 36.62 0.92 1.14 5.68 1000 900 1500 150 60 0.80 10 1.4 1.4 0.9 16 3",  // (21) 1.7M35-49 65
" 37.09 0.93 1.15 5.75 1200 900 1500 150 60 0.80 10 1.2 1.4 0.8 14 3",  // (22) 1.7M50-64 55
" 34.00 0.85 1.06 5.29 1200 900 1500 150 60 0.80 10 1.3 1.4 0.8 15 3",  // (23) 1.7M50-64 65
" 50.00 1.26 1.56 7.76 1000 900 1500 150 60 0.80 10 2.1 1.7 1.3 23 3",  // (24) 2.0V19-34 70
" 47.50 1.19 1.48 7.36 1000 900 1500 150 60 0.80 10 2.3 1.7 1.4 25 3",  // (25) 2.0V19-34 80
" 48.57 1.21 1.51 7.53 1000 900 1500 150 60 0.80 10 2 1.7 1.3 22 3",  	// (26) 2.0V35-49 70
" 45.00 1.13 1.40 6.98 1000 900 1500 150 60 0.80 10 2.2 1.7 1.4 24 3",  // (27) 2.0V35-49 80
" 55.71 1.04 1.29 6.43 1200 900 1500 150 60 0.80 10 1.7 1.7 1.1 19 3",  // (28) 2.0V50-64 70
" 40.00 1.00 1.25 6.20 1200 900 1500 150 60 0.80 10 1.9 1.7 1.2 21 3",  // (29) 2.0V50-64 80
" 47.27 1.18 1.47 7.33 1000 900 1500 150 60 0.80 10 1.6 1.4 1 17 3",  	// (30) 2.0M19-34 55
" 46.15 1.15 1.43 7.15 1000 900 1500 150 60 0.80 10 1.8 1.4 1.1 20 3",  // (31) 2.0M19-34 65
" 47.27 1.18 1.47 7.33 1000 900 1500 150 60 0.80 10 1.6 1.4 1 17 3",  	// (32) 2.0M35-49 55
" 43.08 1.08 1.34 6.68 1000 900 1500 150 60 0.80 10 1.7 1.4 1.1 19 3",  // (33) 2.0M35-49 65
" 43.64 1.09 1.36 6.76 1200 900 1500 150 60 0.80 10 1.4 1.4 0.9 16 3",  // (34) 2.0M50-64 55
" 40.00 1.00 1.25 6.20 1200 900 1500 150 60 0.80 10 1.6 1.4 1 17 3",  	// (35) 2.0M50-64 65
" 55.00 1.37 1.71 8.53 1000 900 1500 150 60 0.80 10 2.3 1.7 1.4 25 3",  // (36) 2.2V19-34 70
" 52.25 1.31 1.63 8.09 1000 900 1500 150 60 0.80 10 2.5 1.7 1.6 28 3",  // (37) 2.2V19-34 80
" 53.43 1.34 1.66 8.27 1000 900 1500 150 60 0.80 10 2.2 1.7 1.4 25 3",  // (38) 2.2V35-49 70
" 49.50 1.24 1.54 7.68 1000 900 1500 150 60 0.80 10 2.4 1.7 1.5 26 3",  // (39) 2.2V35-49 80
" 45.57 1.14 1.41 7.06 1200 900 1500 150 60 0.80 10 1.9 1.7 1.2 21 3",  // (40) 2.2V50-64 70
" 44.00 1.10 1.38 6.83 1200 900 1500 150 60 0.80 10 2.1 1.7 1.3 23 3",  // (41) 2.2V50-64 80
" 52.00 1.31 1.62 8.05 1000 900 1500 150 60 0.80 10 1.7 1.4 1.1 19 3",  // (42) 2.2M19-34 55
" 50.77 1.28 1.58 7.88 1000 900 1500 150 60 0.80 10 2 1.4 1.3 22 3",  	// (43) 2.2M19-34 65
" 52.00 1.31 1.62 8.05 1000 900 1500 150 60 0.80 10 1.7 1.4 1.1 19 3",  // (44) 2.2M35-49 55
" 47.38 1.18 1.48 7.34 1000 900 1500 150 60 0.80 10 1.8 1.4 1.2 20 3",  // (45) 2.2M35-49 65
" 48.00 1.20 1.49 7.44 1200 900 1500 150 60 0.80 10 1.6 1.4 1 17 3",  	// (46) 2.2M50-64 55
" 44.00 1.11 1.37 6.82 1200 900 1500 150 60 0.80 10 1.7 1.4 1.1 19 3",  // (47) 2.2M50-64 65
" 1400 45 50 193 700 800 1500 70 40 0.40 5 0.7 0.8 0.9 9 2",  			// (48) -1 - 3 m. 
" 1700 55 60 235 700 800 1500 90 45 0.50 6 0.9 1 1.2 11 2.5",  			// (49) -4 - 6 m. 
" 2030 65 66 2194 700 800 1500 120 45 0.70 7 1.2 1.4 1.4 13 3",  		// (50) -7 - 10 m. 
" 2420 75 80 350 800 1200 1500 150 50 1.00 8 1.4 1.6 1.7 16 3",  		// (51) Bern.11 - 14 m. 
" 2200 70 75 311 800 1200 1500 150 50 0.80 8 1.1 1.3 1.5 13 3",  		// (52) Merg. 
" 2890 95 93 396 800 1200 1500 150 60 1.00 10 1.4 1.7 2 18 3",  		// (53) Bern.15 - 18 m. 
" 2400 80 85 329 800 1200 1500 150 60 0.80 8 1.1 1.3 1.6 14 3"  		// (54) Merg. 
	};
	/*
	* ------------------------------------------------------------
	* Pabaiga
	*/
/*******************************************************************************
*
* Privacios klases manipuliacijai su applet objekto elementais
*
*******************************************************************************/
    class SymItem implements ItemListener
    {

        public void itemStateChanged(ItemEvent event)
        {
            Object object = event.getSource();
            if(object == cmbbxOptimization)
                cmbbxOptimization_itemStateChanged(event);
			else
			if(object == jrbtVyras 
				|| object == jrbtMoretis 
				|| object == cmbbxAmzius 
				|| object == cmbbxAktyvumas 
				|| object == jcbPapildomosSalygos_V
				|| object == jcbPapildomosSalygos_M
				|| object == chkbxPapildoma)
				rbSuaugusieji_itemStateChanged(event);
			else
			if(object == jrbtVaikas || object == cmbbxVaikoAmzius)
				rbVaikai_itemStateChanged(event);
			
        }

        SymItem()
        {
        }
    }
    /*------------------------------------------------------------*/
    class SymAction implements ActionListener
    {

        public void actionPerformed(ActionEvent event)
        {
            Object object = event.getSource();
            if(object == btnLoad)
                btnLoad_actionPerformed(event);
            else
            if(object == btnNext2)
                btnNext2_actionPerformed(event);
            if(object == btnNext1)
                btnNext1_actionPerformed(event);
            else
            if(object == btnOK)
                btnOK_actionPerformed(event);
            else
            if(object == btnNew)
                btnNew_actionPerformed(event);
            else
            if(object == btnUpdate)
                btnUpdate_actionPerformed(event);
            else
            if(object == btnDelete)
                btnDelete_actionPerformed(event);
			else
			if (object == jbtnTekstas)
				jbtnTekstas_actionPerformed(event);
        }

        SymAction()
        {
        }
    }
    /*------------------------------------------------------------*/
    class SymMouse extends MouseAdapter
    {

        public void mouseClicked(MouseEvent event)
        {
            Object object = event.getSource();
            if(object == tblLentele)
                tblLentele_mouseClicked(event);
        }

        SymMouse()
        {
        }
    }
/*******************************************************************************
* Metodai: darbas su duomenimis
******************************************************************************/
 
 /* ------------------------------------
 *  metodas Clear isvalo duomenu laukus
 *  ------------------------------------ */
    void Clear()
    {
        txtfldName.setText("");
        txtfldPrice.setText("");
        txtfldCalories.setText("");
        txtfldProteins.setText("");
        txtfldFats.setText("");
        txtfldCarbohydrates.setText("");
        txtfldVitaminC.setText("");
        txtfldVitaminA.setText("");
        txtfldMineralCa.setText("");
        txtfldMineralNa.setText("");
        txtfldVitaB2.setText("");
        txtfldVitaB3.setText("");
        txtfldVitaB6.setText("");
        txtfldVitaB12.setText("");
        txtfldMCA.setText("");
        txtfldMNa.setText("");
        txtfldMS.setText("");
        txtfldVitaPP.setText("");
        txtfldMP.setText("");
        txtfldMJ.setText("");
        cmbbxTaste.setSelectedIndex(-1);
        chkbxDish.setSelected(false);
    }
 /* ------------------------------------
 *  metodas btnDelete_actionPerformed 
 *  istrina viena eilute is duomenu lenteles
 *  ------------------------------------ */
    void btnDelete_actionPerformed(ActionEvent event)
    {
        int nr = tblLentele.getSelectedRow();
        tblmdlLentele.removeRow(nr);
        Clear();
    }
 /* ------------------------------------
 *  metodas btnLoad_actionPerformed 
 *  atidaro duomenu faila ir jo duomenis 
 *  atvaizduoja ekrane
 *  ------------------------------------ */
    void btnLoad_actionPerformed(ActionEvent event)
    {
        D.show();
        URL fileURL = null;
        BufferedReader dataStream = null;
        int n = 0;
        try
        {
            fileURL = new URL(String.valueOf(getCodeBase()) + failas);
        }
        catch(MalformedURLException _ex) { }
        try
        {
            java.io.InputStream input = fileURL.openStream();
            dataStream = new BufferedReader(new InputStreamReader(input));
            lblStatus.setText("File " + fileURL.toString() + " opened");
        }
        catch(IOException _ex)
        {
            lblStatus.setText("Error opening file: " + fileURL.toString());
        }
        try
        {
            String s = dataStream.readLine();
            Integer sk = new Integer(s);
            n = sk.intValue();
        }
        catch(IOException _ex)
        {
            lblStatus.setText("1 Wrong data file.");
        }
        String strduom[] = new String[n];
        try
        {
            for(int i = 0; i < n; i++)
                strduom[i] = dataStream.readLine();

            tblmdlLentele.setItems(strduom);
        }
        catch(IOException _ex)
        {
            lblStatus.setText("2 Wrong data file.");
        }
        try
        {
            dataStream.close();
        }
        catch(IOException _ex)
        {
            lblStatus.setText("File closing failure.");
        }
    }

/*Is failo  ikrauna papildomus pageidavimus
   Vyrams - ivairios ligos
   // failo strutura:
   //------------------------------------------------------
   //<atveju skaicius>
   //Atvejo pavadinimas
   // energ	balt	rieb	angl	Ca	P	Na	J	C	A	E	B1	B2	B6	PP	B12 		 1-nam kilogramui.
   // ir t.t.
   //------------------------------------------------------
   */
	private void ikrautiPapildomuReikalavimuSarasa_V(String failas)
	{
		//String failas = "papild";
		URL fileURL = null;
        BufferedReader dataStream = null;
        int n = 0;
        try
        {
            fileURL = new URL(String.valueOf(getCodeBase()) + failas);
        }
        catch(MalformedURLException _ex) { }
        try
        {
            java.io.InputStream input = fileURL.openStream();
            dataStream = new BufferedReader(new InputStreamReader(input));
            //lblStatus.setText("File " + fileURL.toString() + " opened");
        }
     
	 catch(IOException _ex)
        {
            //lblStatus.setText("Error opening file: " + fileURL.toString());
			JOptionPane.showMessageDialog(this, "Failo skaitymo klaida!");
			JOptionPane.showMessageDialog(this, _ex.toString());
        }
        try
        {
            String s = dataStream.readLine();
            Integer sk = new Integer(s);
            n = sk.intValue()+1;
			papildomiReikalavimai_V = new String [n];
			sPavPapildomi_V = new String [n];
        }
        catch(IOException _ex)
        {
			papildomiReikalavimai_V = null;
			sPavPapildomi_V = null;
            //lblStatus.setText("1 Wrong data file.");
			JOptionPane.showMessageDialog(this, "1 Wrong data file.");
        }
        String strduom[] = new String[n];
        try
        {  sPavPapildomi_V[0] ="sveikas";
        papildomiReikalavimai_V[0]="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
            for(int i = 1; i < n; i++)
			{
				sPavPapildomi_V[i] = dataStream.readLine();
				papildomiReikalavimai_V[i] = dataStream.readLine();
			}
            //tblmdlLentele.setItems(strduom);
        }
        catch(IOException _ex)
        {
            //lblStatus.setText("2 Wrong data file.");
			JOptionPane.showMessageDialog(this, "Klaida duomenu faile!");
        }
        try
        {
            dataStream.close();
        }
        catch(IOException _ex)
        {
            JOptionPane.showMessageDialog(this, "Klaida uzdarant duomenu faila");
        }
	}
	/*Is failo papild ikrauna papildomus pageidavimus moterims
   nestumui, zindymus, sergant ivairiomis ligomis
   // failo strutura:
   //------------------------------------------------------
   //<atveju skaicius>
   //Atvejo pavadinimas
   // energ	balt	rieb	angl	Ca	P	Na	J	C	A	E	B1	B2	B6	PP	B12 		 1-nam kilogramui.
   // ir t.t.
   //------------------------------------------------------
   */
	private void ikrautiPapildomuReikalavimuSarasa_M(String failas)
	{
		//String failas = "papild";
		URL fileURL = null;
        BufferedReader dataStream = null;
        int n = 0;
        try
        {
            fileURL = new URL(String.valueOf(getCodeBase()) + failas);
        }
        catch(MalformedURLException _ex) { }
        try
        {
            java.io.InputStream input = fileURL.openStream();
            dataStream = new BufferedReader(new InputStreamReader(input));
            //lblStatus.setText("File " + fileURL.toString() + " opened");
        }
        catch(IOException _ex)
        {
            //lblStatus.setText("Error opening file: " + fileURL.toString());
			JOptionPane.showMessageDialog(this, "Failo skaitymo klaida!");
			JOptionPane.showMessageDialog(this, _ex.toString());
        }
        try
        {
            String s = dataStream.readLine();
            Integer sk = new Integer(s);
            n = sk.intValue()+1;
			papildomiReikalavimai_M = new String [n];
			sPavPapildomi_M = new String [n];
        }
        catch(IOException _ex)
        {
			papildomiReikalavimai_M = null;
			sPavPapildomi_M = null;
            lblStatus.setText("1 Wrong data file.");
        }
        String strduom[] = new String[n];
        try
        {   sPavPapildomi_M[0]="sveika";
        papildomiReikalavimai_M[0]="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
            for(int i = 1; i < n; i++)
			{
				sPavPapildomi_M[i] = dataStream.readLine();
				papildomiReikalavimai_M[i] = dataStream.readLine();
			}
            //tblmdlLentele.setItems(strduom);
        }
        catch(IOException _ex)
        {
            lblStatus.setText("2 Wrong data file.");
			JOptionPane.showMessageDialog(this, "Klaida duomenu faile!");
        }
        try
        {
            dataStream.close();
        }
        catch(IOException _ex)
        {
            JOptionPane.showMessageDialog(this, "Klaida uzdarant duomenu faila");
        }
	}
 /* ------------------------------------
 *  metodas btnNew_actionPerformed 
 *  iveda nauja produkta/patiekala i 
 *  duomenu lentele
 *  ------------------------------------ */
    void btnNew_actionPerformed(ActionEvent event)
    {
        String temp[] = new String[1];
        try
        {
         String tmpPatiekalas;
         if(chkbxDish.isSelected())
            tmpPatiekalas = "1";
         else
            tmpPatiekalas="0";
/******************************************************************************
 *CIA(ZEMIAU) REIKIA SUSUMUOTI VISUS ELEMENTUS IS TEXBOKSU TIKSLIA TVARKA !!!
 *EILE(TVARKA) TOKIA :
 * PRODUKAS,BALTYMAI(PROTEISNS),RIEBALAI(FATS), ANGLIAVANDENIAI(CARBOHYDRAUTES),
 * KALORIJOS,A,E,C,B1,B2,B3,B6,B12,PP,CA,NA,S,FTOR(P),J(JODAS),VAIZDAS,
 * PATIEKALAS,KAINA.
 * Patiekas pridedamas taip : ... + "," + tmpPatiekalas + ","+...
 **Marijus: BUVO pamirsta prideti patiekalo pozymi :))
*******************************************************************************/
        temp[0] = txtfldName.getText() + "," +
        txtfldProteins.getText() + "," + 
        txtfldFats.getText() + "," + 
        txtfldCarbohydrates.getText() + "," + 
        txtfldCalories.getText() + "," +         
        txtfldVitaminC.getText() + "," +
        txtfldVitaminA.getText() + "," +
        txtfldMineralCa.getText() + "," +
        txtfldMineralNa.getText() + "," +
        txtfldVitaB2.getText() + "," +
        txtfldVitaB3.getText() + "," +
        txtfldVitaB6.getText() + "," +
        txtfldVitaB12.getText() + "," +
        txtfldVitaPP.getText() + "," +
        txtfldMCA.getText() + "," +
        txtfldMNa.getText() + "," +
        txtfldMS.getText() + "," +
        txtfldMP.getText() + "," +
        txtfldMJ.getText() + "," +
 
        cmbbxTaste.getSelectedItem().toString() + "," +  
 /*Patiekalas*/       tmpPatiekalas.toString() + "," + 
        txtfldPrice.getText();          
           
            if(tblLentele.getRowCount() == 1)
                tblmdlLentele.setItems(temp);
            else
                tblmdlLentele.addRow(temp[0]);
            Clear();
        }
        catch(NullPointerException _ex)
        {
            lblStatus.setText("Please enter all product fields!!!");
        }
    }
 /* ------------------------------------
 *  metodas btnNext1_actionPerformed 
 *  Atlieka veiksma "Toliau"
 *  1. is duomenu ivedimo lango eina i 
 *  optimizavimo parametru nustatymo langa
 *  ------------------------------------ */
    void btnNext1_actionPerformed(ActionEvent event)
    {
        formProduct(tblmdlLentele);
        if(productCount == 0)
            lblStatus.setText("No data");
        else
        if(!duomenuKlaida)
        {
            lblStatus.setText("");
            pnlPageidavimai.setEnabled(true);
            tbdpnlBendras.setSelectedIndex(1);
        } else
        {
         lblStatus.setText("Wrong data.");
        }
    }
 /* ----------------------------------------------------
 *  Metodas SetProdOnTaste() suformuoja sarasa produktu
 *  kuriu skonis yra didesnis arba 2 dydziais mazesnis
 *  negu pasirinktas skaiciavimams
 *  ----------------------------------------------------*/
    void SetProdOnTaste()
    {
                // productCount >0 (pries kreipiantis buvo patikrinta 
        //atrenka produktus pagal skonio faktorius
        int j=0;
        int sv=cmbbxIAddTaste.getSelectedIndex();
        int sv1=0; 
        float sko=0;
        
        if (sv==0) {sv1=sv;}   //jei skonis nevertinamas maksimalus skonio reiksme
        else
          if (sv==10){sv1=8;} //jei skonis max, sumazinam 2
          else {sv1=sv;};   //kitu atveju imam koks ivestas
          activProdCnt=0;
        for(int i = 0; i < productCount; i++){
            sko=produktai[i].getTaste(); //gauk skoni
            if(sko>=sv1)//ivedam tik tuos jei skonis mus tenkina,
              {
                  j++;
                  //produktai1[j-1] = new Product(); //L.Simaitis - kam kurti objekta, kuri po to perraso ant virsaus??
                  produktai1[j-1] =produktai[i];
                 }//if
             }//for
               //******pabaiga*******************   
         if (j!=0){
                activProdCnt=j;  //produktu skaicius kurie itraukiami i skaiciavimus
                prodActiv=new Product[activProdCnt];
                for (int i=0; i < activProdCnt; i++){
                    //prodActiv[i]= new Product(); //L.Simaitis - kam kurti objekta, kuri po to perraso ant virsaus??
                    prodActiv[i]=produktai1[i];
                 }
        } 
       
    }

 /* ------------------------------------
 *  metodas btnNext_actionPerformed 
 *  Atlieka veiksma "Toliau"
 *  2. is nustatymo langu kreipiasi i 
 *  optimizacija ir atlieka veiksmus
 *  bei gauna rezultatus
 *  ------------------------------------ */
    void btnNext2_actionPerformed(ActionEvent event)
    {
       int opt_func_salyga;
     if(productCount == 0)
        {
            lblStatus.setText("No data");
            tbdpnlBendras.setSelectedIndex(0);
        } else
        {
         produktai1 = new Product[productCount];
         SetProdOnTaste();
         opt_func_salyga=0;
         if(activProdCnt==0){
           //      lblStatus.setText("Su pasirinktu skoniu (-2) produktu nerasta");
                 tbdpnlBendras.setSelectedIndex(0);
         }else{
        
            //int optimize = cmbbxOptimization.getSelectedIndex();
        /*bias - grozio ytaka*/
            double weight = Double.valueOf(txtfldWeight.getText()).doubleValue();
            double weight2;	// L. Simaitis ------------------
							// skirtas tam, kad esant pasirinktam vaikui, koeficientas prie elementu, kurie nustato pagal svori, butu vienas. 
							// duomenyse pageidavimai vaikui nenurodyti pagal svori, todel visiems vienodi
			if (jrbtVaikas.isSelected())
				weight2 = 1;
			else
				weight2 = weight;
							// ----------------------------------
            solve lpSolve = new solve();
            lprec lpRec = new lprec(0, activProdCnt);
       /*suformuojam sarasa kur pas mus tik sveiki skaiciai - patiekalai*/     
            short kl = 1;
            for(int i = 0; i < activProdCnt; i++)
                if(prodActiv[i].getDish() == 1)
                {
                    lpSolve.set_int(lpRec, i+1, kl);
                    lpSolve.set_upbo(lpRec,i,5.0);
                }
       /*apribojimu suformavimas*/
/* BALTYMAI,RIEBALAI, ANGLIAVANDENIAI,KALORIJOS,A,E,C,B1,B2,B3,B6,B12,
 * PP,CA,NA,S,FTOR(P),J(JODAS),VAIZDAS,KAINA. */
            double data[] = new double[activProdCnt + 1];
            double Cal = Double.valueOf(ReikiaKal.getText()).doubleValue();
            double Fat = Double.valueOf(ReikiaRieb.getText()).doubleValue();
            double Pro = Double.valueOf(ReikiaBalt.getText()).doubleValue();
            double Car = Double.valueOf(ReikiaAngl.getText()).doubleValue();
            double VitC = Double.valueOf(ReikiaVitC.getText()).doubleValue();
            double VitA = Double.valueOf(ReikiaVitA.getText()).doubleValue();
            double MinCa = Double.valueOf(ReikiaKalc.getText()).doubleValue();
            double MinNa = Double.valueOf(ReikiaNatr.getText()).doubleValue(); //Mg=Na pas mumis(Marijus:todel pakeiciau pavadinima)
            //Nauji constraints
            double VitE = Double.valueOf(ReikiaVitE.getText()).doubleValue();
            double VitB1 = Double.valueOf(ReikiaVitB1.getText()).doubleValue();
            double VitB2 = Double.valueOf(ReikiaVitB2.getText()).doubleValue();
            double VitB3 = Double.valueOf(ReikiaVitB3.getText()).doubleValue();            
            double VitB6 = Double.valueOf(ReikiaVitB6.getText()).doubleValue();
            double VitB12 = Double.valueOf(ReikiaVitB12.getText()).doubleValue();
            double VitPP = Double.valueOf(ReikiaVitPP.getText()).doubleValue();
            double Fosf = Double.valueOf(ReikiaFosf.getText()).doubleValue();
            double Siera = Double.valueOf(ReikiaSer.getText()).doubleValue();
            double J = Double.valueOf(ReikiaJ.getText()).doubleValue();
            
        double BeautyFactor =Double.valueOf(cmbbxImportance.getText()).doubleValue();//cmbbxImportance.getSelectedIndex()+1;
		fMaistoIvairumas =Double.valueOf(jIvairove.getText());//.doubleValue();
			
        /* beautyfactor inervalas nuo (0 iki+begalybes) 
         * (0;1) - suvartojama maziau negu reikia -tuo atzvilgiu dieta neoptimali
         * todel grozio faktorius nuo 1
         * (1) -tiek kiek reikia
         * (1;+begalybe) - daugiau nei reikia*/
        //double Paklaida =0.2;//-0.1; //su pakalida 0.1 daznai nera rezultatu L. Simaitis
		double Paklaida = Double.valueOf(jPaklaida.getText()).doubleValue(); 
         double rhs;
        /*Optimizuojama pagal kaina, ribojimus nusako kalorijos (ju skaiciu galima keisti
         *pagal "grozio" faktoriu), baltymai,riebalai ir kt.  
         *----------------------------------------------------
         *skonio faktorius veikia kaina 10%, juo didesnis skonis tuo daugiau
         * norima uz preke moketi, t.y. kaina mazeja didejant skoniui
         * tikslo funkcija: minx->(sum(ci-si)xi + g(sum(ai1*xi)-b1) <<-- nebuvo maisto ivairoves ivertinimo L. Simaitis
         * tikslo f-ja xi atzvilgiu: minx->(sum((ci-si+g*ai1)xi-g*b1)
         * kur ci - produkto kg/vnt kaina, si - skonio "kaina", g - grozio faktorius,
	*-------------<< L. Simaitis >>--------------------
	* === tikslo funkcija pakeista i tokia: 	 minx->(sum(ci-si)xi + g(sum(ai1*xi)-b1) - d(sum(di*xi)
	* === funkcija xi atzvilgiu 		minx->(sum((ci-si+g*ai1-d*di)xi-g*b1)
	* === kur di - maisto ivairoves (diversity) faktorius
	* ===	 di=1 - jei i-tasisi produktas yra patiekalas, kitu atveju di=0
         * aij - kaloriju kiekis kg, b1 - kaloriju norma
         **/
         double prieX;
         double Cval;
          /* tikslo f-ja xi: sum((ci-si+g*ai1)xi   -g*b1) 
		  * === sum((ci-si+g*ai1-d*di)xi-g*b1
          *  is cia: xi(ci-si+g*ai1)
	* === xi(ci-si+g*ai1-d*di)
          *  kadangi g*b1 konstanta ir ji visiem produktam vienoda
          *  todel skaiciavimams itakos neturi
          ***/
          Cval=BeautyFactor*weight;
        for(int i = 0; i < activProdCnt; i++){  //90(84) formule vienam produktui
            data[i + 1]  =(prodActiv[i].price - prodActiv[i].price*prodActiv[i].Taste*0.1 + BeautyFactor*prodActiv[i].calories - fMaistoIvairumas.doubleValue()*prodActiv[i].getDish());
            //data[i + 1]  =(prodActiv[i].price - prodActiv[i].price*prodActiv[i].Taste*0.1 + BeautyFactor*prodActiv[i].calories - fMaistoIvairumas*prodActiv[i].getDish());

            if ( data[i+1]<0) { 
               opt_func_salyga=1;//skaiciavimu neatliksime
               }
         }
         if (opt_func_salyga==1){
         	  lblStatus.setForeground(new java.awt.Color(204, 102, 0));
	          lblStatus.setText("Dieta neskaiciuojama -mirsit nuo persivalgymo");
         }else{//skaiciuoti
            lpSolve.set_obj_fn(lpRec, data);
            lpSolve.set_minim(lpRec);
/*suvienodiname dimensijas tarp sitemoje esanciu reiksmiu ir to ka skaiciuosime*/
/* Reikalaujamos normos 1kg zmogaus mases, todel perskaiciuojame min */
/* apribojimus sudarome su "paklaidos" nukrypimu nuo min ir max*/
/*Calories*/
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].getCalories();
          rhs = (Cal - Cal*Paklaida) * weight2; // L. Simaitis
            lpSolve.add_constraint(lpRec, data, GE, rhs);
          rhs = (Cal + Cal*Paklaida) * weight2; // L. Simaitis
            //rhs = Cal* weight2; // L. Simaitis
            lpSolve.add_constraint(lpRec, data, LE, rhs);
/*Proteins*/
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].getProteins();
            rhs = (Pro -Pro*Paklaida)* weight2; // L. Simaitis 
           lpSolve.add_constraint(lpRec, data, GE, rhs);
           rhs = (Pro + Pro *Paklaida) * weight2; // L. Simaitis
            //rhs = Pro* weight2; // L. Simaitis
            lpSolve.add_constraint(lpRec, data,LE, rhs);
/*Fats*/
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].getFats();
            rhs = (Fat - Fat * Paklaida)*weight2; // L. Simaitis          
            lpSolve.add_constraint(lpRec, data, GE, rhs);
           rhs = (Fat + Fat * Paklaida) * weight2; // L. Simaitis
            //rhs = Fat*weight2; // L. Simaitis
            lpSolve.add_constraint(lpRec, data, LE, rhs);
/*Carbohydrates*/            
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].getCarbohydrates();
          rhs = (Car -Car * Paklaida)* weight2; // L. Simaitis           
            lpSolve.add_constraint(lpRec, data, GE, rhs);
            rhs = (Car + Car * Paklaida) * weight2; // L. Simaitis
            //rhs = Car*weight2; // L. Simaitis
            lpSolve.add_constraint(lpRec, data, LE, rhs);
        
/*mikroelementai ir vitaminai pateikiami fiksuota dienos norma zmogui*/

/*vit A*/
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].getVitA();
            rhs = VitA - VitA * Paklaida;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
           rhs = VitA + VitA * Paklaida;
            //rhs = VitA;
            lpSolve.add_constraint(lpRec, data, LE, rhs);
/*vit B1*/                
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].vitB1;
           rhs = VitB1 - VitB1 * Paklaida;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
            rhs = VitB1 + VitB1 * Paklaida;
            //rhs = VitB1;
            lpSolve.add_constraint(lpRec, data, LE, rhs);            
/*vit B2*/             
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].vitB2;
           rhs = VitB2 - VitB2 * Paklaida;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
            rhs = VitB2 + VitB2 * Paklaida;
            //rhs = VitB2;
            lpSolve.add_constraint(lpRec, data, LE, rhs);            
/*vit B3*/             
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].vitB3;
            rhs = VitB3 - VitB3 * Paklaida;
           lpSolve.add_constraint(lpRec, data, GE, rhs);
            rhs = VitB3 + VitB3 * Paklaida;
            //rhs = VitB3;
            lpSolve.add_constraint(lpRec, data, LE, rhs);            
/*vit B6*/             
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].vitB6;
           rhs = VitB6 - VitB6 * Paklaida;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
            rhs = VitB6 + VitB6 * Paklaida;
            //rhs = VitB6;
            lpSolve.add_constraint(lpRec, data, LE, rhs);            
/*vit B12*/             
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].vitB12;
            rhs = VitB12 - VitB12 * Paklaida;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
            rhs = VitB12 + VitB12 * Paklaida;
            //rhs = VitB12;
            lpSolve.add_constraint(lpRec, data, LE, rhs);            
/*vit C*/         
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].getVitC();
            rhs = VitC - VitC * Paklaida;
            //rhs = VitC;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
           // lpSolve.add_constraint(lpRec, data, GE, rhs);
           
/*vit E*/             
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].vitE;
           rhs = VitE - VitE * Paklaida;
            //rhs = VitE;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
            //lpSolve.add_constraint(lpRec, data, GE, rhs);

           
/*vit PP*/             
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].vitPP;
            rhs = VitPP - VitPP * Paklaida;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
            rhs = VitPP + VitPP * Paklaida;
            //rhs = VitPP;
            lpSolve.add_constraint(lpRec, data, LE, rhs);
           
/*mikrel Ca*/ 
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].getMinCa();
          rhs = MinCa - MinCa * Paklaida;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
            rhs = MinCa + MinCa * Paklaida;
            //rhs = MinCa;
            lpSolve.add_constraint(lpRec, data, LE, rhs);
           
/*mikrel Na*/             
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].getMinNa();//Is tiesu cia Na (Marijus: pakeiciau pavadinima Mg->Na)
            rhs = MinNa - MinNa * Paklaida;
            rhs = MinNa;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
            //lpSolve.add_constraint(lpRec, data, LE, rhs);
         
/*mikrel S*/             
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].minS;
            rhs = Siera - Siera * Paklaida;
            lpSolve.add_constraint(lpRec, data, GE, rhs);
           rhs = Siera + Siera * Paklaida;
            //rhs = Siera;
           //lpSolve.add_constraint(lpRec, data, GE, rhs);
            lpSolve.add_constraint(lpRec, data, LE, rhs);
           
/*mikrel P*/             
            for(int i = 0; i < activProdCnt; i++)
                data[i + 1] = prodActiv[i].minP;
            rhs = Fosf - Fosf * Paklaida;
            //rhs = Fosf;
           lpSolve.add_constraint(lpRec, data, GE, rhs);
            //lpSolve.add_constraint(lpRec, data, LE, rhs);
       
            
/************ Solve problem *******************/
			//L.Simaitis
			//daznai pagal esanumus pageidavimus nepavyksta suskaiciuoti rezultato
			//pastebeta savybe - keliant skonio reikialavimus produktams, suskaiciuoti pavyksta
			//gal todel, kad mazeja produktu skaicius? reikia patikrinti, is kur tokia priklausomybe
			
			String iter = "";
			int rez;
			try
			{
            rez = lpSolve.solve(lpRec);
			}
			catch(java.lang.ArrayIndexOutOfBoundsException exception)
			{
				iter = " Klaida optimizuojant!";
				rez = 1;
			}
			
			           
            if(rez == 0)
            {
                lblStatus.setText("Optimali dieta rasta");
                double nn = 0;
                int sk = 0;
                for(int i = 1; i <= lpSolve.get_lpcolumns(lpRec); i++)
                    if(lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) != nn)
                        sk++;
                String rezai[] = new String[sk];
                double sumcal = 0.0D;
                double sumpro = 0.0D;
                double sumfat = 0.0D;
                double sumcar = 0.0D;
                int nr = 0;
                double sumak = 0.0D;
                double sumaks = 0.0D;
                double mase=0;
				double ivairove = 0;
                VitC=VitA=MinCa=MinNa=VitE=VitB1=VitB2=VitB3=VitB6=VitB12=VitPP=Fosf=Siera=J=0.0;
                for(int i = 1; i <= lpSolve.get_lpcolumns(lpRec); i++)
                    if(lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) != nn)
                    {
                        rezai[nr] = produktai[i - 1].getName() + "," + Double.toString(lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i));
                       if((lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) > 0.5+Paklaida))
                        //if((lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) > 0.5))
                        {
                            lblStatus.setForeground(new java.awt.Color(204, 102, 0));
                            lblStatus.setText("DEMESIO: virsijote rekomenduojama paros norma" + iter);/*Marijus: Pakeiciau warnin i normalia zinute*/
                        }
                        sumcal += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getCalories();
                        sumpro += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getProteins();
                        sumfat += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getFats();
                        sumcar += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getCarbohydrates();
                        sumak += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getPrice();
                        sumaks += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) *((double)produktai[i - 1].getPrice()-(double)produktai[i - 1].getPrice()*(double)produktai[i - 1].getTaste()*0.1);
                        VitC += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitC();
                        VitA += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitA();
                        MinCa+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinCa();
                        MinNa+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinNa();
                        VitE+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitE();
                        VitB1+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB1();
                        VitB2+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB2();
                        VitB3+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB3();
                        VitB6+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB6();
                        VitB12+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB12();
                        VitPP+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitPP();
                        Fosf+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinP();
                        Siera+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinS();
                        J+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinJ();
						ivairove += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getDish();
                        nr++;
                        mase+=lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i);
                    }/*if get solution outerr*/
                tblmdlRezultatai.setItems(rezai);
                String s = "";
               /* lblCaloriesTotal.setText(Double.toString(sumcal));
                lblProteinsTotal.setText(Double.toString(sumpro));
                lblFatsTotal.setText(Double.toString(sumfat));
                lblCarbohydratesTotal.setText(Double.toString(sumcar));
                lblPriceTotal.setText(Double.toString(sumak));
                lblPriceTotalS.setText(Double.toString(sumaks));
                lblVitATotal.setText(Double.toString(VitA));
                lblVitB1Total.setText(Double.toString(VitB1));      
                lblVitB2Total.setText(Double.toString(VitB2));
                lblVitB3Total.setText(Double.toString(VitB3));
                lblVitB6Total.setText(Double.toString(VitB6));
                lblVitB12Total.setText(Double.toString(VitB12));
                lblVitCTotal.setText(Double.toString(VitC));    
                lblVitETotal.setText(Double.toString(VitE));
                lblVitPPTotal.setText(Double.toString(VitPP));
                lblMinCaTotal.setText(Double.toString(MinCa));
                lblMinNaTotal.setText(Double.toString(MinNa));
                lblMinSTotal.setText(Double.toString(Siera));
                lblMinPTotal.setText(Double.toString(Fosf));
                lblMinJTotal.setText(Double.toString(J));
				jLabelIvairovesSprendimas2.setText(Double.toString(ivairove));*/
///IGNAS !!!!!!!!!!!!!!!!!!!!!!!                
                int po_kablelio=2;
                lblCaloriesTotal.setText(DoubleToString.toString(sumcal,-1,po_kablelio,true));
                lblProteinsTotal.setText(DoubleToString.toString(sumpro,-1,po_kablelio,true));
                lblFatsTotal.setText(Double.toString(sumfat));
                lblCarbohydratesTotal.setText(Double.toString(sumcar));
                lblPriceTotal.setText(Double.toString(sumak));
                lblPriceTotalS.setText(Double.toString(sumaks));
                lblVitATotal.setText(Double.toString(VitA));
                lblVitB1Total.setText(Double.toString(VitB1));      
                lblVitB2Total.setText(Double.toString(VitB2));
                lblVitB3Total.setText(Double.toString(VitB3));
                lblVitB6Total.setText(Double.toString(VitB6));
                lblVitB12Total.setText(Double.toString(VitB12));
                lblVitCTotal.setText(Double.toString(VitC));    
                lblVitETotal.setText(Double.toString(VitE));
                lblVitPPTotal.setText(Double.toString(VitPP));
                lblMinCaTotal.setText(Double.toString(MinCa));
                lblMinNaTotal.setText(Double.toString(MinNa));
                lblMinSTotal.setText(Double.toString(Siera));
                lblMinPTotal.setText(Double.toString(Fosf));
                lblMinJTotal.setText(Double.toString(J));
				jLabelIvairovesSprendimas2.setText(Double.toString(ivairove));
            } else
            {
                String tuscias[] = new String[0];
                tblmdlRezultatai.setItems(tuscias);
                lblCaloriesTotal.setText("");
                lblProteinsTotal.setText("");
                lblFatsTotal.setText("");
                lblCarbohydratesTotal.setText("");
                lblPriceTotal.setText("");
                lblPriceTotalS.setText("");
                lblVitATotal.setText("");  lblVitB1Total.setText(""); 
                lblVitB2Total.setText(""); lblVitCTotal.setText("");
                lblVitB3Total.setText(""); lblVitETotal.setText("");
                lblVitB6Total.setText(""); lblVitPPTotal.setText("");
                lblVitB12Total.setText("");lblMinCaTotal.setText("");
                lblMinNaTotal.setText(""); lblMinSTotal.setText("");
                lblMinPTotal.setText("");  lblMinJTotal.setText("");
				jLabelIvairovesSprendimas2.setText("0");
                lblStatus.setText("Neimanoma patenkinti sanitariniu normu !" + iter);
				//lblStatus.setText("Klaida");
            }
            pnlRezultatai.setEnabled(true);
            tbdpnlBendras.setSelectedIndex(2);
  }}}}
 /* ------------------------------------
 *  metodas btnOK_actionPerformed 
 *  Priskiria duomenu failo nuoroda(handle)
 *  ------------------------------------ */
    void btnOK_actionPerformed(ActionEvent event)
    {
        failas = txtfldFailas.getText();
        D.dispose();
    }
 /* ------------------------------------
 *  metodas btnUpdate_actionPerformed 
 *  Atnaujina egzistuojanti patiekala
 *  Istrina is lenteles ir iraso i gala
 *  su pakeistais duomenimis
 *  ------------------------------------ */
    void btnUpdate_actionPerformed(ActionEvent event)   
    {
       String tmpPatiekalas;
        if(chkbxDish.isSelected())
            tmpPatiekalas = "1";
        else
            tmpPatiekalas="0";
        int nr = tblLentele.getSelectedRow();
        tblmdlLentele.removeRow(nr);
/******************************************************************************
 *CIA(ZEMIAU) REIKIA SUSUMUOTI VISUS ELEMENTUS IS TEXBOKSU TIKSLIA TVARKA !!!
 * EILE(TVARKA) TOKIA : 
 * PRODUKAS,BALTYMAI(PROTEISNS),RIEBALAI(FATS), ANGLIAVANDENIAI(CARBOHYDRAUTES),
 * KALORIJOS,A,E,C,B1,B2,B3,B6,B12,PP,CA,NA,S,FTOR(P), J(JODAS),VAIZDAS,
 * PATIEKALAS,KAINA.
 * Patiekas pridedamas taip : ... + "," + tmpPatiekalas + ","+...
 *****************************************************************************/
        String temp = txtfldName.getText() + "," + 
        txtfldProteins.getText() + "," + 
        txtfldFats.getText() + "," + 
        txtfldCarbohydrates.getText() + "," + 
        txtfldCalories.getText() + "," +         
        txtfldVitaminC.getText() + "," +
        txtfldVitaminA.getText() + "," +
        txtfldMineralCa.getText() + "," +
        txtfldMineralNa.getText() + "," +
        txtfldVitaB2.getText() + "," +
        txtfldVitaB3.getText() + "," +
        txtfldVitaB6.getText() + "," +
        txtfldVitaB12.getText() + "," +
        txtfldVitaPP.getText() + "," +
        txtfldMCA.getText() + "," +
        txtfldMNa.getText() + "," +
        txtfldMS.getText() + "," +
        txtfldMP.getText() + "," +
        txtfldMJ.getText() + "," +
        cmbbxTaste.getSelectedItem().toString() + "," +  
 /*Patiekalas*/       tmpPatiekalas.toString() + "," +               
        txtfldPrice.getText();        
        tblmdlLentele.addRow(temp);
        Clear();
    }
 /*
 * metodas pageidavimui ikrovimui ir tekstinio lauko
 * lauke duomenys turi buti tokia tvarka:
 *1  	Energija (kcal), 
  2 	Baltymai (g), 
  3	Riebalai (g), 
  4	Angliavandeniai (g), 
  5	Ca (mg), 
  6	P (mg), 
  	Mg (mg),  <<-- Sitas nenaudojamas
   	Fe (mg), <<-- Sitas nenaudojamas
   	Zn (mg),  <<-- Sitas nenaudojamas
  7	Na (mg), 
   	K (mg), <<-- Sitas nenaudojamas
  8	J (mg), 
  9	C (mg),
 10	A(mkg ret. ekv.), 
 11	E (mg, tok. ekv.),
   	D (mkg), <<-- Sitas nenaudojamas
 12	B1 (mg), 
 13	B2 (mg), 
          B3 <<-- sito truksta duomenyse
 14	B6 (mg), 
 15	PP(mg niac. ekv.), 
   	Folio r. (mkg),  <<-- sitas nenaudojamas
 16	B12 (mkg)
          S <<-- Sito truksta duomenyse
 */
 void jbtnTekstas_actionPerformed(ActionEvent event)
 {
	StringTokenizer strtkPageidavimai, strtkPapildomi;
	strtkPageidavimai = new StringTokenizer(jReikalavimuTekstas.getText().trim(), " ");
	String papild;
	Double suma;
	
	if (strtkPageidavimai.countTokens() != 16)
	{
		JOptionPane.showMessageDialog(this, "Turi bti 16 elementai!");
	}
	else
	{
		dienosReikalavimai = new String [16];
		
		if( chkbxPapildoma.isSelected() )
		{	// jei yra papildomu pageifavimu
			
			strtkPapildomi = new StringTokenizer(tfldPapildomi.getText().trim() ," ");
			
			for(int i=0; i<16; i++)
			{
				suma = Double.valueOf(strtkPageidavimai.nextToken());//.doubleValue() + Double.valueOf(strtkPapildomi.nextToken()).doubleValue();
				if (suma.doubleValue() < 0)
					suma = Double.valueOf(0);
	
					suma = new Double(Math.round(suma.doubleValue()*100.0)/100.0);
				dienosReikalavimai[i] = suma.toString();
				
			}
		}
		else
		{	// jei nera papildomu pageidavimu
			
			for(int i=0; i<16; i++)
			{
				
				dienosReikalavimai[i] = strtkPageidavimai.nextToken();
			}
		}
		atnaujintiPageidavimus();
	}
	
 }
/* metodas is masyvo String dienosReikalavimai[22]  
*  suveda i tektsinius laukus pageidavimus
*/ 
void atnaujintiPageidavimus()
{
	//================================
	ReikiaKal.setText(dienosReikalavimai[0]);
	ReikiaBalt.setText(dienosReikalavimai[1]);
	ReikiaRieb.setText(dienosReikalavimai[2]);
	ReikiaAngl.setText(dienosReikalavimai[3]);
	//================================
	ReikiaKalc.setText(dienosReikalavimai[4]);
	ReikiaFosf.setText(dienosReikalavimai[5]);
	ReikiaNatr.setText(dienosReikalavimai[6]);
	ReikiaJ.setText(dienosReikalavimai[7]);
	//================================
	ReikiaVitC.setText(dienosReikalavimai[8]);
	ReikiaVitA.setText(dienosReikalavimai[9]);
	ReikiaVitE.setText(dienosReikalavimai[10]);
	ReikiaVitB1.setText(dienosReikalavimai[11]);
	ReikiaVitB2.setText(dienosReikalavimai[12]);
	ReikiaVitB6.setText(dienosReikalavimai[13]);
	ReikiaVitPP.setText(dienosReikalavimai[14]);
	ReikiaVitB12.setText(dienosReikalavimai[15]);
	//=================================
	//ReikiaVitB3.setText("1.8");
	//ReikiaSer.setText("1000");
} 
 /* ------------------------------------
 *  metodas cmbbxOptimization_itemStateChanged 
 *  Neaiskus metodas. Tikriausiai buvo 
 *  anksciau naudojamas identifikuoti 
 *  pasikeitusiems duomenims bet dabar
 *  neturi prasmes(?)
 *  ------------------------------------ */
    void cmbbxOptimization_itemStateChanged(ItemEvent itemevent)
    {
    }
/*
Metodas ikrauna pageidavimu eilute pagal suaugosiusiu poreikius
ijungia svorio lauka
*/
	void rbSuaugusieji_itemStateChanged(ItemEvent itemevent)
    {
		txtfldWeight.setEnabled(true);
		cmbbxAktyvumas.setEnabled(true);
		cmbbxAmzius.setEnabled(true);
		cmbbxVaikoAmzius.setEnabled(false);
		int kuris = kuriDuomenuEilute();
		jReikalavimuTekstas.setText(pageidavimaiStandartiniai[kuris]);
		if (jrbtVyras.isSelected())
		{
			jcbPapildomosSalygos_V.setEnabled(true);
			jcbPapildomosSalygos_M.setEnabled(false);
			pasirinktasPapildomas();
		}
		else
		{
			jcbPapildomosSalygos_M.setEnabled(true);
			jcbPapildomosSalygos_V.setEnabled(false);
			pasirinktasPapildomas();
		}
    }
	/*
Metodas ikrauna pageidavimu eilute pagal vaiku poreikius
isjungia svorio lauka

*/
	void rbVaikai_itemStateChanged(ItemEvent itemevent)
    {
		txtfldWeight.setEnabled(false);
		cmbbxAktyvumas.setEnabled(false);
		cmbbxAmzius.setEnabled(false);
		cmbbxVaikoAmzius.setEnabled(true);
		int kuris = kuriDuomenuEilute();
		jReikalavimuTekstas.setText(pageidavimaiStandartiniai[kuris]);
		
		jcbPapildomosSalygos_M.setEnabled(false);
		jcbPapildomosSalygos_V.setEnabled(false);
    }
	
	void pasirinktasPapildomas()
	{
		if (chkbxPapildoma.isSelected())
		{
			if(jrbtVyras.isSelected())
			{
				tfldPapildomi.setText(papildomiReikalavimai_V[jcbPapildomosSalygos_V.getSelectedIndex()]);
			}
			else
			{
				tfldPapildomi.setText(papildomiReikalavimai_M[jcbPapildomosSalygos_M.getSelectedIndex()]);
			}
		}
		else
			tfldPapildomi.setText("");
	}
	
/*
* Metodas nustato amiaus, lyties ir aktyvumo pasirinkimus, kuri duomen eilut 
krauti  program.
*/
	int kuriDuomenuEilute()
	{
		int amzius, svoris, aktyvumas, lytis=0, svorioRiba=80;
		boolean vaikas, vyras, moteris;
		double weight = Double.valueOf(txtfldWeight.getText()).doubleValue();
		// nuistato kuris radio mygtukas pazymetas
		if (jrbtVaikas.isSelected())
		{
			vaikas = true;
			vyras = false;
			moteris = false;
		}
		else
		{
			vaikas = false;
			if (jrbtVyras.isSelected())
			{
				vyras = true;
				moteris = false;
				lytis = 0;
				svorioRiba = 80;
			}
			else
			{
				vyras = false;
				moteris = true;
				lytis = 1;
				svorioRiba = 65;
			}
		}
		
		//jei vaikas
		if (vaikas == true)
		{
			amzius = cmbbxVaikoAmzius.getSelectedIndex();
			return 48 + amzius;
		}
		else
		{
			amzius = cmbbxAmzius.getSelectedIndex();
			if (weight < svorioRiba)
			 	svoris = 0;
			else
				svoris = 1;
			aktyvumas = cmbbxAktyvumas.getSelectedIndex();
			return aktyvumas*12 + lytis*6 + amzius*2 + svoris;
		}
			
	}
 /* ------------------------------------
 *  metodas formProduct 
 *  Suformuoja produkto objekta su visais
 *  jam priklausanciais duomenimis
 *  Perskaiciuoja duomenis vienam produkto
 *  kilogramui jei tai ne patiekalas
 *  ------------------------------------ */
    void formProduct(StringTableModel model)
    {
        duomenuKlaida = false;
        String temp = "";
        productCount = model.getRowCount();
        produktai = new Product[productCount];
        int j;float dg;
        for(int i = 0; i < productCount; i++)
        {
/******************************************************************************
 * EILE(TVARKA) TOKIA : 
 * PRODUKAS,BALTYMAI,RIEBALAI, ANGLIAVANDENIAI,KALORIJOS,A,E,C,B1,B2,B3,B6,B12,
 * PP,CA,NA,S,FTOR(P), J(JODAS),VAIZDAS,PATIEKALAS,KAINA.
 *****************************************************************************/          
            produktai[i] = new Product();
            produktai[i].setName(model.getElementAt(i, 0).toString());
            j=i+1;
            try
            {
                temp = model.getElementAt(i, 20).toString();
                Integer vv = Integer.valueOf(temp);
                if(vv.intValue() == 0 || vv.intValue() == 1)
                {
                    produktai[i].setDish(vv.intValue());
                    
                }
                else
                {
                    duomenuKlaida = true;
                    break;
                }
                if (produktai[i].getDish()==0){
                    dg=10;                  
                }else {
                    dg=1;                   
                }

        /*suvedame produktus perskaiciuodami ju dedamasias kilograme JEI TAI NE PATIEKALAS*/
                temp = model.getElementAt(i, 1).toString();
                Float v = Float.valueOf(temp);
                produktai[i].proteins=dg*v.floatValue();
                
                temp = model.getElementAt(i, 2).toString();
                v = Float.valueOf(temp);
                produktai[i].fats=dg*v.floatValue(); 
                
                temp = model.getElementAt(i, 3).toString();
                v = Float.valueOf(temp);
                produktai[i].carbohydrates=dg*v.floatValue();
                 
                temp = model.getElementAt(i, 4).toString();
                v = Float.valueOf(temp);
                produktai[i].calories=dg*v.floatValue();
                
                temp = model.getElementAt(i, 5).toString();
                v = Float.valueOf(temp);
                produktai[i].vitA=dg*v.floatValue();
                
                temp = model.getElementAt(i, 6).toString();
                v = Float.valueOf(temp);
                produktai[i].vitE=dg*v.floatValue();
                
                temp = model.getElementAt(i, 7).toString();
                v = Float.valueOf(temp);
                produktai[i].vitC=dg*v.floatValue();
                
                temp = model.getElementAt(i, 8).toString();
                v = Float.valueOf(temp);
                produktai[i].vitB1=dg*v.floatValue();
      
                temp = model.getElementAt(i, 9).toString();
                v = Float.valueOf(temp);
                produktai[i].vitB2=dg*v.floatValue();
                
                temp = model.getElementAt(i, 10).toString();
                 v = Float.valueOf(temp);
                produktai[i].vitB3=dg*v.floatValue();
                
                temp = model.getElementAt(i, 11).toString();
                v = Float.valueOf(temp);
                produktai[i].vitB6=dg*v.floatValue();
                
                temp = model.getElementAt(i, 12).toString();
                v = Float.valueOf(temp);
                produktai[i].vitB12=dg*v.floatValue(); 
                
                temp = model.getElementAt(i, 13).toString();
                v = Float.valueOf(temp);
                produktai[i].vitPP=dg*v.floatValue();
                 
                temp = model.getElementAt(i, 14).toString();
                v = Float.valueOf(temp);
                produktai[i].minCa=dg*v.floatValue();
                
                temp = model.getElementAt(i, 15).toString();
                v = Float.valueOf(temp);
                produktai[i].minNa=dg*v.floatValue();/*Marijus : Mg->Na*/
                
                temp = model.getElementAt(i, 16).toString();
                v = Float.valueOf(temp);
                produktai[i].minS=dg*v.floatValue();
                
                temp = model.getElementAt(i, 17).toString();
                v = Float.valueOf(temp);
                produktai[i].minP=dg*v.floatValue();/*Marijus : F->P*/
                
                temp = model.getElementAt(i, 18).toString();
                v = Float.valueOf(temp);
                produktai[i].minJ=dg*v.floatValue();
                
                temp = model.getElementAt(i, 21).toString();
                v = Float.valueOf(temp);
                produktai[i].price=dg*v.floatValue();                
                
                temp = model.getElementAt(i, 19).toString();
                v = Float.valueOf(temp);
                if(v.floatValue() >= 0.0F && v.floatValue() < 11F)
                {
                    produktai[i].setTaste(v.floatValue());
                    continue;
                } else
                {
                    duomenuKlaida = true;
                    break;
                }
                               
            }
            catch(NumberFormatException _ex)
            {
                lblStatus.setText("Wrong data file.Error: " +_ex.toString()+"Eror data line: "+j);
                duomenuKlaida = true;
            }
            break;
        }

    }
 /* ------------------------------------
  *  metodas init 
  *  Inicijuoja apleta, paruosia pradinius
  *  laukus ir duomenis, "nupiesia" appleto
  *  elementus
  * ------------------------------------ */
    public void init()
    {
        productCount = 0;
        txtfldVitaB2 = new JTextField();
        txtfldVitaB3 = new JTextField();
        txtfldVitaB6 = new JTextField();
        txtfldVitaB12 = new JTextField(); 
        txtfldVitaPP = new JTextField();
        txtfldMCA = new JTextField(); 
        txtfldMNa = new JTextField();
        txtfldMS = new JTextField(); 
        txtfldMP = new JTextField();
        txtfldMJ = new JTextField(); 
        JLabelB22 = new JLabel();
        JLabelB33 = new JLabel();
        JLabelB66=new JLabel(); //Natali
        JLabelB122=new JLabel();//Natali
        JLabelPP=new JLabel();//Natali
        JLabelCa2=new JLabel();//Natali
        JLabelNa2=new JLabel(); //Natali
        JLabelS2=new JLabel();//Natali
        JLabelP2=new JLabel();//Natali
        JLabelJ2=new JLabel();//Natali    
        duomenuKlaida = false;
        
        failas = "duom.txt";
        D = new JDialog();
        lblFailas = new JLabel("Iveskite duomenu failo varda");
        txtfldFailas = new JTextField("duom.txt");
        btnOK = new JButton("OK");
        tbdpnlBendras = new JTabbedPane();
        pnlDuomenys = new JPanel();
        scrlpnLentele = new JScrollPane();
        tblLentele = new JTable();
        lblLentelesPav = new JLabel();
        lblRedagavimas = new JLabel();
        lblName = new JLabel();
        txtfldName = new JTextField();
        lblPrice = new JLabel();
        txtfldPrice = new JTextField();
        lblCalories = new JLabel();
        txtfldCalories = new JTextField();
        lblProteins = new JLabel();
        txtfldProteins = new JTextField();
        lblFats = new JLabel();
        txtfldFats = new JTextField();
        lblCarbohydrates = new JLabel();
        txtfldCarbohydrates = new JTextField();
        lblTaste = new JLabel();
        cmbbxTaste = new JComboBox();
        btnLoad = new JButton();
        btnNew = new JButton();
        btnUpdate = new JButton();
        btnNext1 = new JButton();
        btnDelete = new JButton();
        chkbxDish = new JCheckBox();
        lblDish = new JLabel();
        JLabel5 = new JLabel();
        JLabel6 = new JLabel();
        JLabel7 = new JLabel();
        JLabel8 = new JLabel();
        txtfldVitaminC = new JTextField();
        txtfldVitaminA = new JTextField();
        txtfldMineralCa = new JTextField();
        txtfldMineralNa = new JTextField();
        pnlPageidavimai = new JPanel();
        txtfldWeight = new JTextField();
        lblWeight = new JLabel();
        btnNext2 = new JButton();
        cmbbxOptimization = new JComboBox();
        lblOptimization = new JLabel();
       

//NEED        
        // 2 panel - kur ko reikia
        initComponents();


//NEED END        
        lblImportance = new JLabel();
        cmbbxImportance = new JTextField();// JComboBox();
        JLabel9 = new JLabel();
        JLabel10 = new JLabel();
        JLabel11 = new JLabel();
        JLabel12 = new JLabel();
        JLabel13 = new JLabel();
        JLabel14 = new JLabel();
        JLabel15 = new JLabel();
        pnlRezultatai = new JPanel();
        JScrollPane1 = new JScrollPane();
        JTable1 = new JTable();
        JLabel1 = new JLabel();
        JLabel2 = new JLabel();
        JLabel3 = new JLabel();
        JLabel4 = new JLabel();
        lblCaloriesTotal = new JLabel();
        lblProteinsTotal = new JLabel();
        lblFatsTotal = new JLabel();
        lblCarbohydratesTotal = new JLabel();
        tblmdlLentele = new StringTableModel();

        cmbbxmdlTaste = new StringComboBoxModel();
        cmbbxmdlTaste = new StringComboBoxModel();
        cmbbxmdlProteinsW = new StringComboBoxModel();
        cmbbxmdlfatsW = new StringComboBoxModel();
        cmbbxmdlCarbohydratesW = new StringComboBoxModel();
        cmbbxmdlCaloriesW = new StringComboBoxModel();
        lineBorder1 = new LineBorder();
        tblmdlRezultatai = new StringTableModel();
        
        cmbbxmdlOptimize = new StringComboBoxModel();
        cmbbxmdlBias = new StringComboBoxModel();
        lblStatus = new JLabel();

        cmbbxmdlITaste = new StringComboBoxModel();
        cmbbxmdlITaste = new StringComboBoxModel();
        cmbbxmdlIPrice = new StringComboBoxModel();
        cmbbxmdlImportance = new StringComboBoxModel();
   //Marijus - nauji
        cmbbxIAddTaste = new JComboBox();
        JLabelAddOnTaste = new JLabel();
        //end Marijus
         //NAUJI LAUKAI 
        jTabbedPane1 = new javax.swing.JTabbedPane();
//---------------------------------------------        
        Context.setApplet(this);
        getRootPane().putClientProperty("defeatSystemEventQueueCheck", Boolean.TRUE);
        getContentPane().setLayout(null);
        setSize(780, 650);
        getContentPane().add(tbdpnlBendras);
        tbdpnlBendras.setBounds(12, 12, 760, 560);
        pnlDuomenys.setLayout(null);
        tbdpnlBendras.add(pnlDuomenys);
        pnlDuomenys.setBounds(2, 27, 727, 474);
        pnlDuomenys.setVisible(false);
        scrlpnLentele.setVerticalScrollBarPolicy(22);
        scrlpnLentele.setHorizontalScrollBarPolicy(32);
        scrlpnLentele.setOpaque(true);
        pnlDuomenys.add(scrlpnLentele);
        scrlpnLentele.setBounds(10, 33, 708, 168);
        tblLentele.setModel(tblmdlLentele);
        scrlpnLentele.getViewport().add(tblLentele);
        tblLentele.setBounds(0, 0, 690, 0);
        lblLentelesPav.setText("Produktai");
        pnlDuomenys.add(lblLentelesPav);
        lblLentelesPav.setBounds(10, 9, 200, 12);
        
        lblRedagavimas.setText("Duomenu apie produkta ivedimas");
        pnlDuomenys.add(lblRedagavimas);
        lblRedagavimas.setBounds(20, 213, 300, 24);
        lblName.setText("Pavadinimas");
        pnlDuomenys.add(lblName);
        lblName.setForeground(new Color(102, 102, 153));
        lblName.setBounds(240, 249, 100, 24);
        pnlDuomenys.add(txtfldName);
        txtfldName.setBounds(320, 249, 130, 24);
        lblPrice.setText("Kaina");
        pnlDuomenys.add(lblPrice);
        lblPrice.setBounds(22, 280, 100, 24);
        pnlDuomenys.add(txtfldPrice);
        txtfldPrice.setBounds(130, 280, 50, 24);
        lblCalories.setText("Kalorijos");
        pnlDuomenys.add(lblCalories);
        lblCalories.setBounds(22, 370, 96, 24);
        pnlDuomenys.add(txtfldCalories);
        txtfldCalories.setBounds(130, 370, 50, 24);
        lblProteins.setText("Baltymai");/*Marijus: Lietuviu kaba :) ne baltimai bet baltymai*/
        pnlDuomenys.add(lblProteins);
        lblProteins.setBounds(22, 310, 96, 24);
        pnlDuomenys.add(txtfldProteins);
        txtfldProteins.setBounds(130, 310, 50, 24);
        lblFats.setText("Riebalai");
        pnlDuomenys.add(lblFats);
        lblFats.setBounds(22, 340, 96, 24);
        pnlDuomenys.add(txtfldFats);
        txtfldFats.setBounds(130, 340, 50, 24);
        lblCarbohydrates.setText("Angliavandeniai");/*Marijus: daugiskaita ne vienaskaita*/
        pnlDuomenys.add(lblCarbohydrates);
        lblCarbohydrates.setBounds(22, 400, 96, 24);
        pnlDuomenys.add(txtfldCarbohydrates);
        txtfldCarbohydrates.setBounds(130, 400, 50, 24);
        lblTaste.setText("Skonis *");
        pnlDuomenys.add(lblTaste);
        lblTaste.setBounds(530, 400, 110, 24);
        cmbbxTaste.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0","1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }));
        pnlDuomenys.add(cmbbxTaste);
        cmbbxTaste.setBounds(620, 400, 50, 24);
        btnLoad.setText("Duomenu ivedimas is failo");
        btnLoad.setActionCommand("Atidaryti faila");
        pnlDuomenys.add(btnLoad);
        btnLoad.setBounds(10, 500, 200, 24);
        btnNew.setText("Naujas produktas");
        btnNew.setActionCommand("Naujas produktas");
        pnlDuomenys.add(btnNew);
        btnNew.setBounds(215, 500, 150, 24);
        btnUpdate.setText("Atnaujinti/Irasyti");
        btnUpdate.setActionCommand("Atnaujinti produkta");
        pnlDuomenys.add(btnUpdate);
        btnUpdate.setBounds(370, 500, 150, 24);
        btnNext1.setText("Toliau >>");
        btnNext1.setActionCommand("Toliau >>");
        pnlDuomenys.add(btnNext1);
        btnNext1.setBounds(664, 500, 85, 23);
        btnDelete.setText("Istrinti produkta");
        btnDelete.setActionCommand("Istrinti produkta");
        pnlDuomenys.add(btnDelete);
        btnDelete.setBounds(527, 500, 132, 24);
        pnlDuomenys.add(chkbxDish);
        chkbxDish.setForeground(new Color(102, 102, 153));
        chkbxDish.setBounds(340, 450, 72, 19);
        lblDish.setText("Patiekalas ?");
        pnlDuomenys.add(lblDish);
        lblDish.setBounds(240, 450, 90, 19);
        JLabel5.setText("Vitaminas A");
        pnlDuomenys.add(JLabel5);
        JLabel5.setBounds(210, 280, 98, 26);
        JLabel6.setText("Vitaminas E");
        pnlDuomenys.add(JLabel6);
        JLabel6.setBounds(210, 310, 100, 25);
        JLabel7.setText("Vitaminas C");
        pnlDuomenys.add(JLabel7);
        JLabel7.setBounds(210, 340, 107, 26);
        JLabel8.setText("Vitaminas B1");
        pnlDuomenys.add(JLabel8);
        JLabel8.setBounds(210, 370, 99, 27);
        pnlDuomenys.add(txtfldVitaminC);
        txtfldVitaminC.setBounds(300, 280, 50, 24);
        pnlDuomenys.add(txtfldVitaminA);
        txtfldVitaminA.setBounds(300, 310, 50, 24);
        pnlDuomenys.add(txtfldMineralCa);
        txtfldMineralCa.setBounds(300, 340, 50, 24);
        pnlDuomenys.add(txtfldMineralNa);
        txtfldMineralNa.setBounds(300, 370, 50, 24);        
        JLabelB22.setText("Vitaminas B2");
        pnlDuomenys.add(JLabelB22);
        JLabelB22.setBounds(210, 400, 98, 26);
        JLabelB33.setText("Vitaminas B3");
        pnlDuomenys.add(JLabelB33);
        JLabelB33.setBounds(370, 280, 100, 25);
        JLabelB66.setText("Vitaminas B6");
        pnlDuomenys.add(JLabelB66);
        JLabelB66.setBounds(370, 310, 107, 26);
        JLabelB122.setText("Vitaminas B12");
        pnlDuomenys.add(JLabelB122);
        JLabelB122.setBounds(370, 340, 99, 27);
        pnlDuomenys.add(txtfldVitaB2);
        txtfldVitaB2.setBounds(300, 400, 50, 24);
        pnlDuomenys.add(txtfldVitaB3);
        txtfldVitaB3.setBounds(460, 280, 50, 24);
        pnlDuomenys.add(txtfldVitaB6);
        txtfldVitaB6.setBounds(460, 310, 50, 24);
        pnlDuomenys.add(txtfldVitaB12);
        txtfldVitaB12.setBounds(460, 340, 50, 24);        
        JLabelPP.setText("Vitaminas PP");
        pnlDuomenys.add(JLabelPP);
        JLabelPP.setBounds(370, 370, 98, 26);
/*Marijus: Mikroelementas korektiskesnis pavadinimas negu mineralas*/        
        JLabelCa2.setText("Mikroel. Ca");
        pnlDuomenys.add(JLabelCa2);
        JLabelCa2.setBounds(370, 400, 100, 25);
        JLabelNa2.setText("Mikroel. Na");
        pnlDuomenys.add(JLabelNa2);
        JLabelNa2.setBounds(530, 280, 107, 26);
        JLabelS2.setText("Mikroel. S");
        pnlDuomenys.add(JLabelS2);
        JLabelS2.setBounds(530, 310, 99, 27);
        pnlDuomenys.add(txtfldVitaPP);
        txtfldVitaPP.setBounds(460,370, 50, 24);
        pnlDuomenys.add(txtfldMCA);
        txtfldMCA.setBounds(460, 400, 50, 24);
        pnlDuomenys.add(txtfldMNa);
        txtfldMNa.setBounds(620, 280, 50, 24);
        pnlDuomenys.add(txtfldMS);
        txtfldMS.setBounds(620, 310, 50, 24);        

        JLabelP2.setText("Mikroel. P");
        pnlDuomenys.add(JLabelP2);
        JLabelP2.setBounds(530, 340, 98, 26);
        JLabelJ2.setText("Mikroel. J");
        pnlDuomenys.add(JLabelJ2);
        JLabelJ2.setBounds(530, 370, 100, 25);
        pnlDuomenys.add(txtfldMP);
        txtfldMP.setBounds(620, 340, 50, 24);
        pnlDuomenys.add(txtfldMJ);
        txtfldMJ.setBounds(620, 370, 50, 24); 
        pnlPageidavimai.setLayout(null);
        tbdpnlBendras.add(pnlPageidavimai);
        pnlPageidavimai.setEnabled(false);
        pnlPageidavimai.setBounds(2, 27, 727, 474);
        pnlPageidavimai.setVisible(false);
        txtfldWeight.setText("70");
        pnlPageidavimai.add(txtfldWeight);
        txtfldWeight.setBounds(22, 171, 159, 24);
        lblWeight.setText("Zmogaus svoris, kg");
        pnlPageidavimai.add(lblWeight);
        lblWeight.setBounds(22, 146, 140, 35);
        btnNext2.setText("Toliau >>");
        btnNext2.setActionCommand("Toliau >>");
        pnlPageidavimai.add(btnNext2);
        btnNext2.setBounds(634, 441, 90, 24);
        cmbbxOptimization.setModel(cmbbxmdlOptimize);
        cmbbxOptimization.setBounds(22, 69, 161, 24);
        lblOptimization.setText("Optimizacijos parametrai");
        pnlPageidavimai.add(lblOptimization);
        lblOptimization.setBounds(10, 10, 150, 24);
        lblImportance.setText("Grozio Faktorius**"); 
        pnlPageidavimai.add(lblImportance);
        lblImportance.setBounds(22, 199, 240, 24);
        JLabel9.setText("jusu nuoziura");
        pnlPageidavimai.add(JLabel9);
        JLabel9.setBounds(22, 213, 162, 26);
        cmbbxImportance.setText("1");//new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }));
        pnlPageidavimai.add(cmbbxImportance);
        cmbbxImportance.setBounds(22, 237, 159, 29);
/*************************************
 * Produktai itraukliami tik pagal skoni
 * start marijus
 *****************************************/
        JLabelAddOnTaste.setText("Itraukti pagal skoni nuo");
        pnlPageidavimai.add(JLabelAddOnTaste);
        JLabelAddOnTaste.setBounds(22, 275, 162, 26);
        cmbbxIAddTaste.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }));
        pnlPageidavimai.add(cmbbxIAddTaste);
        cmbbxIAddTaste.setBounds(22, 300, 159, 29);
 /*end*/
        pnlRezultatai.setLayout(null);
        pnlRezultatai.setEnabled(false);
        tbdpnlBendras.add(pnlRezultatai);
        pnlRezultatai.setBounds(2, 27, 727, 474);
        pnlRezultatai.setVisible(false);
        JScrollPane1.setVerticalScrollBarPolicy(22);
        JScrollPane1.setHorizontalScrollBarPolicy(32);
        JScrollPane1.setOpaque(true);
        pnlRezultatai.add(JScrollPane1);
        JScrollPane1.setBounds(10, 57, 408, 168);
        JTable1.setModel(tblmdlRezultatai);
        JTable1.setAutoResizeMode(4);
        JScrollPane1.getViewport().add(JTable1);
        JTable1.setBounds(0, 0, 390, 0);
        JLabel1.setText("Kaloriju kiekis:");
        pnlRezultatai.add(JLabel1);
        JLabel1.setBounds(15, 249, 150, 25);
        JLabel2.setText("Proteinu kiekis:");
        pnlRezultatai.add(JLabel2);
        JLabel2.setBounds(15, 276, 150, 25);
        JLabel3.setText("Riebalu kiekis:");
        pnlRezultatai.add(JLabel3);
        JLabel3.setBounds(15, 303, 150, 25);
        JLabel4.setText("Angliavandeniu kiekis:");
        pnlRezultatai.add(JLabel4);
        JLabel4.setBounds(15, 330, 150, 25);
        lblCaloriesTotal.setText("0");
        pnlRezultatai.add(lblCaloriesTotal);
        lblCaloriesTotal.setBounds(166, 249, 252, 24);
        lblProteinsTotal.setText("0");
        pnlRezultatai.add(lblProteinsTotal);
        lblProteinsTotal.setBounds(166, 276, 252, 24);
        lblFatsTotal.setText("0");
        pnlRezultatai.add(lblFatsTotal);
        lblFatsTotal.setBounds(166, 303, 252, 24);
        lblCarbohydratesTotal.setText("0");
        pnlRezultatai.add(lblCarbohydratesTotal);
        lblCarbohydratesTotal.setBounds(166, 330, 252, 24);
        tbdpnlBendras.setSelectedComponent(pnlDuomenys);
        tbdpnlBendras.setSelectedIndex(0);
        tbdpnlBendras.setTitleAt(0, "Produktai");
        tbdpnlBendras.setTitleAt(1, "Parametrai");
        tbdpnlBendras.setTitleAt(2, "Optimali dieta");
        tblmdlLentele.setColumnHeaders("Pavadinimas,Baltymai,Riebalai,Angliavandeniai,kCal,A,E,C,B1,B2,B3,B6,B12,PP,Ca,Na,S,P,J,Skonis,Patiekalas,Kaina");
/// NAUJI 
 
        tblmdlRezultatai.setColumnHeaders("Name, Amount");
        lblStatus.setBorder(lineBorder1);
        getContentPane().add(lblStatus);
        lblStatus.setFont(new Font("Dialog", 3, 12));
        lblStatus.setBounds(12, 560, 732, 60);
      
        D.setModal(true);
        D.setBounds(200, 200, 225, 170);
        D.setName("Data file name input");
        D.getContentPane().setLayout(null);
        lblFailas.setBounds(10, 10, 200, 30);
        D.getContentPane().add(lblFailas);
        txtfldFailas.setBounds(10, 40, 200, 30);
        D.getContentPane().add(txtfldFailas);
        btnOK.setBounds(80, 80, 60, 30);
        D.getContentPane().add(btnOK);
        SymMouse aSymMouse = new SymMouse();
        tblLentele.addMouseListener(aSymMouse);
        SymAction lSymAction = new SymAction();
        btnLoad.addActionListener(lSymAction);
        SymItem lSymItem = new SymItem();
        btnNext2.addActionListener(lSymAction);
        btnNext1.addActionListener(lSymAction);
        cmbbxOptimization.addItemListener(lSymItem);
        btnNew.addActionListener(lSymAction);
        btnUpdate.addActionListener(lSymAction);
        btnDelete.addActionListener(lSymAction);
        btnOK.addActionListener(lSymAction);
		/*
		* Laurynas Simaitis
		* Komponentai, reikalingi reikalavimu ikrovimui pagal pasirikima
		* Pradzia koponentu sukurimmas
		*/
		// radioButton Vyras
		jrbtVyras = new JRadioButton("Vyras");
		jrbtVyras.setActionCommand("vyras");
		jrbtVyras.setBounds(10,35,70,16);
		pnlPageidavimai.add(jrbtVyras);
		jrbtVyras.addItemListener(lSymItem);
		// radioButton Moteris
		jrbtMoretis = new JRadioButton("Moteris");
		jrbtVyras.setActionCommand("moteris");
		jrbtMoretis.setBounds(10,55,70,16);
		pnlPageidavimai.add(jrbtMoretis);
		jrbtMoretis.addItemListener(lSymItem);
		
		// radioButton Vaikas
		jrbtVaikas = new JRadioButton("Vaikas");
		jrbtVaikas.setActionCommand("vaikas");
		jrbtVaikas.setBounds(10,75,70,16);
		pnlPageidavimai.add(jrbtVaikas);
		jrbtVaikas.addItemListener(lSymItem);
		
		// Radio grupe
		jrbtgrTipai = new ButtonGroup();
		jrbtgrTipai.add(jrbtVyras);
		jrbtgrTipai.add(jrbtMoretis);
		jrbtgrTipai.add(jrbtVaikas);
		
		// reikalavimu tekstas
		jReikalavimuTekstas = new JTextField();
		jReikalavimuTekstas.setBounds(140, 400, 600, 26);
		pnlPageidavimai.add(jReikalavimuTekstas);
		
		// skaiciavimo paklaidos invedimui
		jPaklaida = new JTextField();
		jPaklaida.setBounds(620, 20, 40, 26);
		pnlPageidavimai.add(jPaklaida);
		jPaklaida.setText("0.1");
		
		jLabelPaklaida = new JLabel();
		jLabelPaklaida.setText("Skaiiavimo paklaida");
		pnlPageidavimai.add(jLabelPaklaida);
		jLabelPaklaida.setBounds(620, 5, 150, 13);
		
		// mygtukai
		jbtnTekstas = new JButton();
		jbtnTekstas.setText("vesti");
		jbtnTekstas.setActionCommand("IvestiTeksta");
		jbtnTekstas.setBounds(20,410,100, 26);
		jbtnTekstas.addActionListener(lSymAction);
		pnlPageidavimai.add(jbtnTekstas);
		
		// aktyvumo pasirinkimas
		cmbbxAktyvumas = new JComboBox();
		cmbbxAktyvumas.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1.5","1.7", "2.0", "2.2" }));
		pnlPageidavimai.add(cmbbxAktyvumas);
		cmbbxAktyvumas.setBounds(160,45,50, 26);
		cmbbxAktyvumas.addItemListener(lSymItem);
		
		// amziaus pasirinkimas suaugusiems
		cmbbxAmzius = new JComboBox();			// automatiniam pageidavimu ikrovimui
		cmbbxAmzius.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "19-34","35-49", "50-64" }));
		pnlPageidavimai.add(cmbbxAmzius);
		cmbbxAmzius.setBounds(90,45,60, 26);
		cmbbxAmzius.addItemListener(lSymItem);
		
		// vaiko amziaus pasirinkimas
		cmbbxVaikoAmzius = new JComboBox();
		cmbbxVaikoAmzius.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1-3","4-6", "7-10", "11-14 berniukai", "11-14 mergaits", "15-18 berniukai", "15-18 mergaits" }));
		pnlPageidavimai.add(cmbbxVaikoAmzius);
		cmbbxVaikoAmzius.setBounds(90,75,100, 26);
		cmbbxVaikoAmzius.addItemListener(lSymItem);
		
		jLabelAktyvumas = new JLabel();
		jLabelAktyvumas.setText("Aktyvumas");
		pnlPageidavimai.add(jLabelAktyvumas);
		jLabelAktyvumas.setBounds(160, 25, 70, 20);
		
		jLabelAmzius = new JLabel();
		jLabelAmzius.setText("Amius");
		pnlPageidavimai.add(jLabelAmzius);
		jLabelAmzius.setBounds(90, 25, 70, 20);
		
		tfldPapildomi = new JTextField();
		tfldPapildomi.setBounds(140, 370, 600, 26);
		pnlPageidavimai.add(tfldPapildomi);
		
		
		ikrautiPapildomuReikalavimuSarasa_V("papild_V");
		ikrautiPapildomuReikalavimuSarasa_M("papild_M");
		jcbPapildomosSalygos_V = new JComboBox(sPavPapildomi_V);
		jcbPapildomosSalygos_V.addItemListener(lSymItem);
		pnlPageidavimai.add(jcbPapildomosSalygos_V);
		jcbPapildomosSalygos_V.setBounds(430, 5, 170, 20);
		jcbPapildomosSalygos_V.setEnabled(false);
		
		jcbPapildomosSalygos_M = new JComboBox(sPavPapildomi_M);
		jcbPapildomosSalygos_M.addItemListener(lSymItem);
		pnlPageidavimai.add(jcbPapildomosSalygos_M);
		jcbPapildomosSalygos_M.setBounds(430, 25, 170, 20);
		jcbPapildomosSalygos_M.setEnabled(false);
		
		chkbxPapildoma = new JCheckBox();
		chkbxPapildoma.setSelected(true);
		chkbxPapildoma.setVisible(false);
		chkbxPapildoma.setBounds(230, 30, 20, 20);
		pnlPageidavimai.add(chkbxPapildoma);
		chkbxPapildoma.addItemListener(lSymItem);
	
		jLabelPapildoma = new JLabel();
		//jLabelPapildoma.setBounds(230, 5, 300, 20);
		jLabelPapildoma.setBounds(280, 5, 300, 20);
		jLabelPapildoma.setText("Papildomi reikalavimai");
		pnlPageidavimai.add(jLabelPapildoma);
		
		jLabelIvairovesIvedimas = new JLabel();
		jLabelIvairovesIvedimas.setText("Maisto ivairov");
		jLabelIvairovesIvedimas.setBounds(22, 100, 100, 20);
		pnlPageidavimai.add(jLabelIvairovesIvedimas);
		
		jIvairove = new JTextField();
		jIvairove.setText("1.0");
		jIvairove.setBounds(22, 125, 40, 20);
		pnlPageidavimai.add(jIvairove);
		
		jLabelIvairovesSprendimas = new JLabel();
		jLabelIvairovesSprendimas.setText("Dietos maisto ivairumas:");
		pnlRezultatai.add(jLabelIvairovesSprendimas);
		jLabelIvairovesSprendimas.setBounds(15, 418, 152, 24);
		
		jLabelIvairovesSprendimas2 = new JLabel();
		jLabelIvairovesSprendimas2.setText("0");
		pnlRezultatai.add(jLabelIvairovesSprendimas2);
		jLabelIvairovesSprendimas2.setBounds(165, 418, 252, 24);
		//amziaus pasirinkimas
		/* 
		* Pabaiga
		*/
                // 3 panel 
        initTotals();
        jrbtVyras.setSelected(true);
    }
 /* ------------------------------------
  *  metodas tblLentele_mouseClicked
  *  atvaizduoja lenteleje pazymeta produkta 
  *  i kitus appleto elementus
  * ------------------------------------ */
    void tblLentele_mouseClicked(MouseEvent event)
    {
        txtfldName.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 0).toString());
        
        txtfldCalories.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 4).toString());
        txtfldProteins.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 1).toString());
        txtfldFats.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 2).toString());
        txtfldCarbohydrates.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 3).toString());
        txtfldVitaminC.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 5).toString());
        txtfldVitaminA.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 6).toString());
        txtfldMineralCa.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 7).toString());
        txtfldMineralNa.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 8).toString());
        txtfldVitaB2.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 9).toString());
        txtfldVitaB3.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 10).toString());
        txtfldVitaB6.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 11).toString());
        txtfldVitaB12.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 12).toString());
        txtfldVitaPP.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 13).toString());
        txtfldMCA.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 14).toString());
        txtfldMNa.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 15).toString());
        txtfldMS.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 16).toString());
        txtfldMP.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 17).toString());
        txtfldMJ.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 18).toString());        
        cmbbxTaste.setSelectedItem(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 19));
        Integer tt = Integer.valueOf(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 20).toString());
        if(tt.intValue() == 1)
            chkbxDish.setSelected(true);
        else
            chkbxDish.setSelected(false);
        txtfldPrice.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 21).toString());
 
   }
 //HUJ
   private void initComponents() {
        ReikiaKal = new javax.swing.JTextField();
        ReikiaAngl = new javax.swing.JTextField();
        ReikiaBalt = new javax.swing.JTextField();
        ReikiaRieb = new javax.swing.JTextField();
        ReikiaVitA = new javax.swing.JTextField();
        ReikiaVitB1 = new javax.swing.JTextField();
        ReikiaVitB2 = new javax.swing.JTextField();
        ReikiaVitB3 = new javax.swing.JTextField();
        ReikiaVitB6 = new javax.swing.JTextField();
        ReikiaVitB12 = new javax.swing.JTextField();        
        ReikiaVitC = new javax.swing.JTextField();
        ReikiaVitE = new javax.swing.JTextField();
        ReikiaVitPP = new javax.swing.JTextField();                
        ReikiaFosf = new javax.swing.JTextField();
        ReikiaSer = new javax.swing.JTextField();
        ReikiaNatr = new javax.swing.JTextField();
        ReikiaKalc = new javax.swing.JTextField();
        ReikiaJ = new javax.swing.JTextField();
        
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        jLabel19 = new javax.swing.JLabel();
        jLabel20 = new javax.swing.JLabel();        
        jLabel21 = new javax.swing.JLabel();   
        jLabel22 = new javax.swing.JLabel();   
        getContentPane().setLayout(null);

        pnlPageidavimai.setLayout(null);
/*------------- normos zmogaus mases kilogramui --------------*/
        jLabel17.setText("Zmogui vienam mases kg reikia:");
        pnlPageidavimai.add(jLabel17);
        jLabel17.setBounds(240,50, 240, 20);

        
        jLabel1.setText("Kaloriju kiekis, kCal");
        pnlPageidavimai.add(jLabel1);
        jLabel1.setBounds(240, 70, 120, 20);
        ReikiaKal.setText("34.7");
        pnlPageidavimai.add(ReikiaKal);
        ReikiaKal.setBounds(240, 90, 80, 20);

        jLabel2.setText("Angliavandeniai, g");
        pnlPageidavimai.add(jLabel2);
        jLabel2.setBounds(360, 70, 120, 20);
        ReikiaAngl.setText("6.5");
        pnlPageidavimai.add(ReikiaAngl);
        ReikiaAngl.setBounds(360, 90, 80, 20);

        jLabel4.setText("Baltymu kiekis, g");
        pnlPageidavimai.add(jLabel4);
        jLabel4.setBounds(480, 70, 120, 20);
        ReikiaBalt.setText("1.3");
        pnlPageidavimai.add(ReikiaBalt);
        ReikiaBalt.setBounds(480, 90, 80, 20);
        
        jLabel5.setText("Riebalu kiekis, g");
        pnlPageidavimai.add(jLabel5);
        jLabel5.setBounds(600, 70, 110, 20);
        ReikiaRieb.setText("1.3");
        pnlPageidavimai.add(ReikiaRieb);
        ReikiaRieb.setBounds(600, 90, 80, 20);

/*------------- zmogaus normos parai --------------------------*/

        jLabel18.setText("Zmogaus paros norma:");
        pnlPageidavimai.add(jLabel18);
        jLabel18.setBounds(240,120, 200, 20);
 /*VITAMINAI*/       
        jLabel19.setText("Vitaminai");
        pnlPageidavimai.add(jLabel19);
        jLabel19.setBounds(260,140, 200, 20);
        
/*1*/        jLabel6.setText("Vitaminas A, mg");
        pnlPageidavimai.add(jLabel6);
        jLabel6.setBounds(240, 160, 110, 20);        
        ReikiaVitA.setText("0.8");
        pnlPageidavimai.add(ReikiaVitA);
        ReikiaVitA.setBounds(240, 180, 80, 20);

/*2*/        jLabel9.setText("Vitamimas B1, mg");
        pnlPageidavimai.add(jLabel9);
        jLabel9.setBounds(240, 200, 110, 20);
        ReikiaVitB1.setText("1.5");
        pnlPageidavimai.add(ReikiaVitB1);
        ReikiaVitB1.setBounds(240, 220, 80, 20);
                
/*3*/        jLabel10.setText("Vitaminas B2, mg");
        pnlPageidavimai.add(jLabel10);
        jLabel10.setBounds(240, 240, 110, 20);
        ReikiaVitB2.setText("1.7");
        pnlPageidavimai.add(ReikiaVitB2);
        ReikiaVitB2.setBounds(240, 260, 80, 20);
                
/*4*/        jLabel11.setText("Vitaminas B3, mg");
        pnlPageidavimai.add(jLabel11);
        jLabel11.setBounds(240, 280, 110, 20);
        ReikiaVitB3.setText("1.8");
        pnlPageidavimai.add(ReikiaVitB3);
        ReikiaVitB3.setBounds(240, 300, 80, 20);
                
/*5*/       jLabel12.setText("Vitaminas B6, mg");
        pnlPageidavimai.add(jLabel12);
        jLabel12.setBounds(360, 160, 110, 20);
        ReikiaVitB6.setText("2");
        pnlPageidavimai.add(ReikiaVitB6);
        ReikiaVitB6.setBounds(360, 180, 80, 20);
        
/*6*/        jLabel8.setText("Vitaminas B12, mkrg");
        pnlPageidavimai.add(jLabel8);
        jLabel8.setBounds(360, 200, 120, 20);
        ReikiaVitB12.setText("6");
        pnlPageidavimai.add(ReikiaVitB12);
        ReikiaVitB12.setBounds(360, 220, 80, 20);
        
/*7*/       jLabel7.setText("Vitaminas C, mg");
        pnlPageidavimai.add(jLabel7);
        jLabel7.setBounds(360, 240, 110, 20);
        ReikiaVitC.setText("60");
        pnlPageidavimai.add(ReikiaVitC);
        ReikiaVitC.setBounds(360, 260, 80, 20);                
        
/*8*/        jLabel3.setText("Vitaminas E, mg");
        pnlPageidavimai.add(jLabel3);
        jLabel3.setBounds(360, 280, 110, 20);
        ReikiaVitE.setText("10");
        pnlPageidavimai.add(ReikiaVitE);
        ReikiaVitE.setBounds(360, 300, 80, 20);
    /******papildymai******/        
/*9 PP nebuvo*/        
        jLabel21.setText("Vitaminas PP, mg");
        pnlPageidavimai.add(jLabel21);
        jLabel21.setBounds(240, 320, 110, 20);
        ReikiaVitPP.setText("17");
        pnlPageidavimai.add(ReikiaVitPP);
        ReikiaVitPP.setBounds(240, 340, 80, 20);
        
 /*MIKROELEMENTAI*/ 
        jLabel20.setText("Mikroelementai");
        pnlPageidavimai.add(jLabel20);
        jLabel20.setBounds(500,140, 200, 20);               
/*1*/        jLabel16.setText("Fosforas, mg");
        pnlPageidavimai.add(jLabel16);
        jLabel16.setBounds(490, 160, 110, 20);
        ReikiaFosf.setText("900");
        pnlPageidavimai.add(ReikiaFosf);
        ReikiaFosf.setBounds(490, 180, 80, 20);
        
/*2*/        jLabel15.setText("Mikroel. S, mg");
        pnlPageidavimai.add(jLabel15);
        jLabel15.setBounds(490, 200, 110, 20);
        ReikiaSer.setText("1000");
        pnlPageidavimai.add(ReikiaSer);
        ReikiaSer.setBounds(490, 220, 80, 20);
        
/*3*/        jLabel14.setText("Mikroel. Na, mg");
        pnlPageidavimai.add(jLabel14);
        jLabel14.setBounds(490, 240, 110, 20);
        ReikiaNatr.setText("1500");
        pnlPageidavimai.add(ReikiaNatr);
        ReikiaNatr.setBounds(490, 260, 80, 20);
        
/*4*/        jLabel13.setText("Mikroel. Ca, mg");
        pnlPageidavimai.add(jLabel13);
        jLabel13.setBounds(490, 280, 110, 20);
        ReikiaKalc.setText("1000");
        pnlPageidavimai.add(ReikiaKalc);
        ReikiaKalc.setBounds(490, 300, 80, 20);
    /******papildymai******/        
/*5 J nebuvo*/        
        jLabel22.setText("Mikroel. J, mg");
        pnlPageidavimai.add(jLabel22);
        jLabel22.setBounds(610, 160, 110, 20);
        ReikiaJ.setText("17");
        pnlPageidavimai.add(ReikiaJ);
        ReikiaJ.setBounds(610, 180, 80, 20);        
   } 
  /* ------------------------------------
  *  metodas initTotals()
  *  inicijuoja atsakymu laukus
  * ------------------------------------ */  
     private void initTotals() {
       /*Papildomi atsakymai*/
    lblPriceTotal = new JLabel();
    lblPriceTTlbl = new JLabel();
    lblPriceTotalS = new JLabel();
    lblPriceTTlblS = new JLabel();
        
    lblVitATotal = new JLabel();
    lblVitCTotal = new JLabel();
    lblVitB1Total = new JLabel();   
    lblVitB2Total = new JLabel();
    lblVitB3Total = new JLabel();
    lblVitB6Total = new JLabel();
    lblVitB12Total = new JLabel();
    lblVitETotal = new JLabel();
    lblVitPPTotal = new JLabel();
    lblMinCaTotal = new JLabel();
    lblMinNaTotal = new JLabel();
    lblMinSTotal = new JLabel();
    lblMinPTotal = new JLabel();
    lblMinJTotal = new JLabel();
    
    lblVitATTlbl = new JLabel();
    lblVitB1TTlbl = new JLabel();
    lblVitB2TTlbl = new JLabel();
    lblVitB3TTlbl = new JLabel();
    lblVitB6TTlbl = new JLabel();
    lblVitB12TTlbl = new JLabel();
    lblVitCTTlbl = new JLabel();
    lblVitETTlbl = new JLabel();
    lblVitPPTTlbl = new JLabel();
    lblMinCaTTlbl = new JLabel();
    lblMinNaTTlbl = new JLabel();
    lblMinSTTlbl = new JLabel();
    lblMinPTTlbl = new JLabel();
    lblMinJTTlbl = new JLabel();
    //---------
    lblPriceTTlbl.setText("Dietos kaina(reali):");
    pnlRezultatai.add(lblPriceTTlbl);
    lblPriceTTlbl.setBounds(15, 357, 252, 24);
    
    lblPriceTotal.setText("0");
    pnlRezultatai.add(lblPriceTotal);
    lblPriceTotal.setBounds(166, 357, 200, 24);
    //---------
    lblPriceTTlblS.setText("Dietos kaina(subj.):");
    pnlRezultatai.add(lblPriceTTlblS);
    lblPriceTTlblS.setBounds(15, 384, 252, 24);
    
    lblPriceTotalS.setText("0");
    pnlRezultatai.add(lblPriceTotalS);
    lblPriceTotalS.setBounds(166, 384, 200, 24);
//--------------------------
    lblVitATTlbl.setText("Vitamino A suma:");
    pnlRezultatai.add(lblVitATTlbl);
    lblVitATTlbl.setBounds( 480, 27, 200, 24);
    
    lblVitATotal.setText("0");
    pnlRezultatai.add(lblVitATotal);
    lblVitATotal.setBounds( 600, 27, 200, 24);
//-----    
    lblVitB1TTlbl.setText("Vitamino B1 suma:");
    pnlRezultatai.add(lblVitB1TTlbl);
    lblVitB1TTlbl.setBounds(480, 54, 200, 24);
    
    lblVitB1Total.setText("0");
    pnlRezultatai.add(lblVitB1Total);
    lblVitB1Total.setBounds(600, 54, 252, 24);
//---        
    lblVitB2TTlbl.setText("Vitamino B2 suma:");
    pnlRezultatai.add(lblVitB2TTlbl);
    lblVitB2TTlbl.setBounds(480,81, 200, 24);

    lblVitB2Total.setText("0");
    pnlRezultatai.add(lblVitB2Total);
    lblVitB2Total.setBounds(600,81, 200, 24);
//---
    lblVitB3TTlbl.setText("Vitamino B3 suma:");
    pnlRezultatai.add(lblVitB3TTlbl);
    lblVitB3TTlbl.setBounds(480, 108, 200, 24);
    
    lblVitB3Total.setText("0");
    pnlRezultatai.add(lblVitB3Total);
    lblVitB3Total.setBounds(600, 108, 200, 24);
//---        
    lblVitB6TTlbl.setText("Vitamino B6 suma:");
    pnlRezultatai.add(lblVitB6TTlbl);
    lblVitB6TTlbl.setBounds(480, 135, 200, 24);
    
    lblVitB6Total.setText("0");
    pnlRezultatai.add(lblVitB6Total);
    lblVitB6Total.setBounds(600, 135, 200, 24);
//---    
    lblVitB12TTlbl.setText("Vitamino B12 suma:");
    pnlRezultatai.add(lblVitB12TTlbl);
    lblVitB12TTlbl.setBounds(480, 162, 200, 24);
    
    lblVitB12Total.setText("0");
    pnlRezultatai.add(lblVitB12Total);
    lblVitB12Total.setBounds(600, 162, 200, 24);
//---        
    lblVitCTTlbl.setText("Vitamino C suma:");
    pnlRezultatai.add(lblVitCTTlbl);
    lblVitCTTlbl.setBounds( 480, 189 , 200, 24); 
    
    lblVitCTotal.setText("0");
    pnlRezultatai.add(lblVitCTotal);
    lblVitCTotal.setBounds( 600, 189 , 200, 24);
//---
    lblVitETTlbl.setText("Vitamino E suma:");
    pnlRezultatai.add(lblVitETTlbl);
    lblVitETTlbl.setBounds(480, 216, 200, 24);
    
    lblVitETotal.setText("0");
    pnlRezultatai.add(lblVitETotal);
    lblVitETotal.setBounds(600, 216, 200, 24);
//---           
    lblVitPPTTlbl.setText("Vitamino PP suma:");
    pnlRezultatai.add(lblVitPPTTlbl);
    lblVitPPTTlbl.setBounds(480, 243, 200, 24);
    
    lblVitPPTotal.setText("0");
    pnlRezultatai.add(lblVitPPTotal);
    lblVitPPTotal.setBounds(600, 243, 200, 24);
//---
    lblMinCaTTlbl.setText("Mineralo Ca suma:");
    pnlRezultatai.add(lblMinCaTTlbl);
    lblMinCaTTlbl.setBounds(480, 270, 200, 24);
    
    lblMinCaTotal.setText("0");
    pnlRezultatai.add(lblMinCaTotal);
    lblMinCaTotal.setBounds(600, 270, 200, 24);    
//---    
    lblMinNaTTlbl.setText("Mineralo Na suma:");
    pnlRezultatai.add(lblMinNaTTlbl);
    lblMinNaTTlbl.setBounds(480, 297, 200, 24);
    
    lblMinNaTotal.setText("0");
    pnlRezultatai.add(lblMinNaTotal);
    lblMinNaTotal.setBounds(600, 297, 200, 24);
//---                 
    lblMinSTTlbl.setText("Mineralo S suma:");
    pnlRezultatai.add(lblMinSTTlbl);
    lblMinSTTlbl.setBounds(480, 324, 200, 24);
    
    lblMinSTotal.setText("0");
    pnlRezultatai.add(lblMinSTotal);
    lblMinSTotal.setBounds(600, 324, 200, 24);
//---        
    lblMinPTTlbl.setText("Mineralo P suma:");
    pnlRezultatai.add(lblMinPTTlbl);
    lblMinPTTlbl.setBounds(480, 351, 200, 24);
    
    lblMinPTotal.setText("0");
    pnlRezultatai.add(lblMinPTotal);
    lblMinPTotal.setBounds(600, 351, 200, 24);
//---    
    lblMinJTTlbl.setText("Mineralo J suma:");
    pnlRezultatai.add(lblMinJTTlbl);
    lblMinJTTlbl.setBounds(480, 378, 200, 24);
    
    lblMinJTotal.setText("0");
    pnlRezultatai.add(lblMinJTotal);
    lblMinJTotal.setBounds(600, 378, 200, 24);        
   /*end*/ 
   }  
}