//======================================================
// Termodinamik-nümerik analiz paketleri
// Plot (Çizim ) - Wet air simulasyon programı integrasyonu
// Dr. Turhan Coban
// EGE Üniversitesi Mühendislik Fakultesi, Makina Bölümü
// turhan.coban@ege.edu.tr
// =====================================================
/*
 * Bu proğram yaş hava için 
 */

import java.lang.Integer;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;
import java.util.Locale;
import java.text.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.table.*;
//import java.io.*;
//import Plot2D2;
//import PlotShapesSW;
//import BasicWindowMonitor;

public class psT2 extends JApplet implements ActionListener
{
  JPanel inputPanel;
  JPanel outputPanel;
  JPanel totalPanel;
  JPanel panel[];
  JTextArea output;
  yashavaprosesleri thp;
  public double P;
  final static String baslik[]={
    "Kütlesel karışım",
    "Hacimsel karışım",
    "Soğutma",
    "Soğutma - Nem alma - Isıtma",
    "Soğutma - Nem alma - Karıştırma",
    "Isıtma",
    "Isıtma - Nemlendirme",
    "Isıtma - Adyabatik Nemlendirme",
    "Adyabatik soğutma"};
    JButton b1[]; 
    girdiP gp1[];


    public void setP(double ppi)
    {P=ppi;}
	
    public double getP(double ppi)
    {return P;}
	
    public double readP()
    {
	// pressure input from screen    
    // not that you can change pressure value inside program but you can draw 
    // psychrometric diagram only once for the pressure set up by this method
    String s;
    s=JOptionPane.showInputDialog("Basınç değerini bar cinsinden giriniz (1 atm = 1.01325 bar)");
    double pi=Double.parseDouble(s);     
    if(pi<=0 ) pi=1.01325;
    P=pi;
    thp=new yashavaprosesleri(0.0,50.0,P);
    return pi;
    }
   
   public void setArea()
   {
    String s="";  
    s+="Program : Dr. Turhan Çoban, \n";
    s+="Ege Üniversitesi, Mühendislik Bilimleri Fak., Makina Bölümü\n";
    s+="e-posta : turhan.coban@ege.edu.tr\n";   
    output.setText(s);
    wam.setValues(unit,pair,v1,v2,P);
    output.setBackground(contentPane.getBackground());
   }
    public void init()
    {
	init1(readP());
	}
	
    public void init1(double pp1)
    {      
      b1=new JButton[baslik.length];
      for(int iz=0;iz<b1.length;iz++)
      {  b1[iz]=new JButton("i = "+iz+" Prosesi Hesapla");
	  b1[iz].addActionListener(this);}
	  double P1=pp1;
      String s=""; 
      s+="Program : Dr. Turhan Çoban, \n";
      s+="Ege Üniversitesi, Mühendislik Bilimleri Fak., Makina Bölümü\n";
      s+="e-posta : turhan.coban@ege.edu.tr\n";   
      P=pp1;
      output=new JTextArea(s);    
      output.setBackground(contentPane.getBackground());
      JTabbedPane tabbedPane = new JTabbedPane();
        panel=new JPanel[9];
        gp1=new girdiP[9];
        for(int i=0;i<9;i++)
        {panel[i]=new JPanel();
        panel[i].add(b1[i]);
        } 
        //Yaş hava prosesleri       
        //Kütlesel karışım
        String s1[]={"debi m1","sıcaklık T1","bağıl nem "+'\u03A6'+"1","debi m2","sıcaklık T2","bağıl nem "+'\u03A6'+"2"};        
        String s2[]={"kg/s","derece C","0..1","kg/s","derece C","0..1"};
        String s3="Kütlesel Karışım";
        double t[]={183.0,10.0,0.8,111.0,32.0,0.6};
        gp1[0]=new girdiP(s1,s2,t,s3);
        panel[0].add(gp1[0]);
        //Hacimsel karışım
        String s1_1[]={"debi V1","sıcaklık T1","bağıl nem "+'\u03A6'+"1","debi V2","sıcaklık T2","bağıl nem "+'\u03A6'+"2"};        
        String s1_2[]={"m^3/saat","derece C","0..1","m^3/saat","derece C","0..1"};
        String s1_3="Hacimsel Karışım";
        double t_1[]={183.0,10.0,0.8,111.0,32.0,0.6};
        gp1[1]=new girdiP(s1_1,s1_2,t_1,s1_3);
        panel[1].add(gp1[1]);
        //Soğutma
        //double a[][]=thp.sogutma(1.0, 35.0,0.5,25.0);
        String s2_1[]={"debi m1","sıcaklık T1","bağıl nem "+'\u03A6'+"1","sıcaklık T2"};        
        String s2_2[]={"kg/s ","derece C","0..1","derece C"};
        String s2_3="Soğutma";
        double t_2[]={1.0,35.0,0.5,25.0};
        gp1[2]=new girdiP(s2_1,s2_2,t_2,s2_3);
        panel[2].add(gp1[2]);
        //soğutma nem alma ısıtma
        //double a[][]=thp.sogutma_nemalma_isitma(1.0,32.0,0.7,22.0,0.45);
        String s3_1[]={"debi m1","sıcaklık T1","bağıl nem "+'\u03A6'+"1","sıcaklık T2","bağıl nem "+'\u03A6'+"2"};        
        String s3_2[]={"kg/s ","derece C","0..1","kg/s","derece C","0..1"};
        String s3_3="Soğutma - Nem alma - ısıtma";
        double t_3[]={1.0,32.0,0.7,22.0,0.45};
        gp1[3]=new girdiP(s3_1,s3_2,t_3,s3_3);
        panel[3].add(gp1[3]);
       
 
        for(int i=0;i<9;i++)
        {tabbedPane.addTab(baslik[i],panel[i]);}
        add(  tabbedPane, BorderLayout.CENTER);
    }



    public void actionPerformed(ActionEvent e)
    {
    if (e.getSource()==b1[0])
    {
    double a[]=gp1[0].readText();
    thp.kütlesel_karisim(a[0],a[1],a[2],a[3],a[4],a[5]);
    }
    else if (e.getSource()==b1[1])
    {
    double a[]=gp1[1].readText();
    thp.hacimsel_karisim(a[0],a[1],a[2],a[3],a[4],a[5]);
    }
    else if (e.getSource()==b1[2])
    {
    double a[]=gp1[2].readText();
     thp.sogutma(a[0],a[1],a[2],a[3]);
    }
    else if (e.getSource()==b1[3])
    {
    double a[]=gp1[3].readText();
     thp.sogutma_nemalma_isitma(a[0],a[1],a[2],a[3],a[4]);
    }

  repaint();
  }            




  public static String toString(double left, int w, int d)
  // converts a double to a string with given width and decimals.
  {
	NumberFormat df=NumberFormat.getInstance(Locale.US);
	df.setMaximumFractionDigits(d);
    df.setMinimumFractionDigits(d);
    df.setGroupingUsed(false);
    String s = df.format(left);
    while (s.length() < w)
      s = " " + s;
    if (s.length() > w)
    {
        s = "";
        for (int i=0; i<w; i++)
          s = s + "-";
    }
    return s;
 }
 


    public static void open()
    {
        //main program for applet input
	    JFrame f = new JFrame("hava su buharı karışımının termodinamik özellikleri-psikometrik diyagram");
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
        });
        JApplet applet = new psT2();
        f.getContentPane().add("Center", applet);
        applet.init();
        f.pack();
        f.setSize(new Dimension(1000,800));
        f.setVisible(true);
    }
    
    public static void main(String s[])
    {
        //main program
	    JFrame f = new JFrame("hava su buharı karışımının termodinamik özellikleri-psikometrik diyagram");
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
        });
        JApplet applet = new psT2();
        f.getContentPane().add("Center", applet);
        applet.init();
        f.pack();
        f.setSize(new Dimension(1000,800));
        f.setVisible(true);
    }    
 }

