//======================================================
//  
// Soğutma Kulesi modellemesi
// Dr. Turhan Coban
// EGE Üniversitesi Mühendislik Fakultesi, Makina Bölümü
// turhan.coban@ege.edu.tr
// =====================================================
// Bu model Türkoğlu için geliştirilmiştir 

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 YasHavaProsesleriTable extends JApplet implements ItemListener,ActionListener
{
  Container c;
  Color bg;
  JTabbedPane tabPane = new JTabbedPane();
  JScrollPane skrolPane;
  final static String say1 = "Yaş Hava Prosesleri Seçim Sayfası";
  final static String say2 = "Yaş hava Prosesleri Ek Bilgi";
  JPanel panel1;
  JPanel girisPaneli;
  JLabel l1[]=new JLabel[11];           // Label prompt 
  JLabel l2[]=new JLabel[11];           // Label prompt unit
  JTextField t1[]=new JTextField[11];
  JComboBox  c1[]=new JComboBox[11];
  JTextArea output;
  JTable jt;
  //jt.setFont(16);
  yashavaprosesleri yhp;
  double aa[]=new double[10];  // çıktı değerleri
  //Icon turkoglu_logo;
  JButton b1;
  double P;    // atmosfer basıncı
  double T0;   // soğutma kulesi hava giriş sıcaklığı 
  double f0;   // soğutma kulesi hava giriş bağıl nem
  double T1;   // soğutma kulesi hava çıkış sıcaklığı 
  double f1;   // soğutma kulesi hava çıkış bağıl nem
  double T2;   // enerji çekiş ısı değiştirgeci giriş 
               // (sistem çıkış) sıcaklığı derece C
  double T3;   // enerji çekiş ısı değiştirgeci çıkış 
               // (sistem giriş) sıcaklığı derece C 
  double T4;   // soğutma kulesi çıkış sıcaklığı derece C
  double T7;   // soğutma kulesi giriş sıcaklığı derece C
  double m5;   // soğutma kulesi su debisi
  double T0YH;
  String SKadi;
  String s1[];	
  JLabel LSK;
    public void init()
    { 
	sogutmakulesi=new ImageIcon("Asogutmakulesi.JPG");
	P=1.01325;
    T0=34.0;
    T0YH=24.0;
    T1=34.0;
    f1=0.95;
    T2=34.0;
    T3=29.0;
    T4=25.0;
    T7=30.0;
    //m5=0.32;
	SKadi="YTO-AKSK-02";
	  skmodel=new AKSKModel(); 
	  s1=skmodel.g.SKisimler();       
      c =getContentPane();
      panel1 = new JPanel();
      panel1.setBackground(c.getBackground());
      panel1.setLayout(new BorderLayout());
      //==========================
      //pencereleri içeriği
      //turkoglu_logo=new ImageIcon("turkoglu_logo.jpg");
      //b1=new JButton(turkoglu_logo);
      output=new JTextArea(toString());
      output.setBackground(bg);

      l1[0]=new JLabel("  Soğutma kulesi ismi");
      Font fo16=l1[0].getFont();
      fo16=new Font(fo16.getFontName(),Font.BOLD,16);
      Font fo12=new Font(fo16.getFontName(),Font.BOLD,12);
      Font fo10=new Font(fo16.getFontName(),Font.BOLD,10);
      l1[0].setFont(fo12);
      output.setFont(fo12);
      //panel1.add(b1,BorderLayout.NORTH);
      panel1.add(output,BorderLayout.NORTH);
      LSK=new JLabel(sogutmakulesi);
      l1[1]=new JLabel("  P basınç");
      l1[2]=new JLabel("  T0 Soğutma Kulesi hava giriş kuru hava sıcaklığı");
      l1[3]=new JLabel("  T0YH Soğutma Kulesi hava giriş yaş hava sıcaklığı");
      l1[4]=new JLabel("  T1 Soğutma Kulesi hava çıkış sıcaklığı");
      l1[5]=new JLabel("  f1 Soğutma Kulesi hava çıkış bağıl nemi");
      l1[6]=new JLabel("  T2 enerji çekiş ısı değiştirgeci giriş sıcaklığı");
      l1[7]=new JLabel("  T3 enerji çekiş ısı değiştirgeci çıkış sıcaklığı");
      l1[8]=new JLabel("  T4 soğutma kulesi minimum su sıcaklığı derece C");
      l1[9]=new JLabel("  T7 soğutma kulesi giriş sıcaklığı derece C");
      //l1[10]=new JLabel(" soğutma kulesi debisi");
      l2[0]=new JLabel(" ");
      l2[1]=new JLabel(" Bar");
      l2[2]=new JLabel(" derece C");
      l2[3]=new JLabel(" ");
      l2[4]=new JLabel(" derece C");
      l2[5]=new JLabel(" ");
      l2[6]=new JLabel(" derece C");
      l2[7]=new JLabel(" derece C");
      l2[8]=new JLabel(" derece C");
      l2[9]=new JLabel(" derece C");
      //l2[10]=new JLabel(" kg/s");
      c1[0]=new JComboBox(s1);

      t1[1]=new JTextField(""+P);
      t1[2]=new JTextField(""+T0);
      t1[3]=new JTextField(""+T0YH);      
      t1[4]=new JTextField(""+T1);
      t1[5]=new JTextField(""+f1);
      t1[6]=new JTextField(""+T2);      
      t1[7]=new JTextField(""+T3);
      t1[8]=new JTextField(""+T4);
      t1[9]=new JTextField(""+T7);
      //t1[10]=new JTextField(""+m5);
      jt=new JTable(skmodel);
      girisPaneli=new JPanel();
      girisPaneli.setLayout(new GridLayout(11,3));
      cikisPaneli=new JScrollPane(jt);
      girisPaneli.add(l1[0]);
      girisPaneli.add(c1[0]);
      girisPaneli.add(l2[0]);
    for(int i=1;i<10;i++)
    {
    girisPaneli.add(l1[i]);
    girisPaneli.add(t1[i]);
    girisPaneli.add(l2[i]);
    }    
    //t1[0].setBackground(bg);
    t1[1].setBackground(bg);
    t1[2].setBackground(bg);
    t1[3].setBackground(bg);
    t1[4].setBackground(bg);
    t1[5].setBackground(bg);
    t1[6].setBackground(bg);
    t1[7].setBackground(bg);
    t1[8].setBackground(bg);
    t1[9].setBackground(bg);
    //t1[10].setBackground(bg);
    l1[0].setBackground(bg);
    l1[1].setBackground(bg);
    l1[2].setBackground(bg);
    l1[3].setBackground(bg);
    l1[4].setBackground(bg);
    l1[5].setBackground(bg);
    l1[7].setBackground(bg);
    l1[8].setBackground(bg);
    l1[9].setBackground(bg);
    //l1[10].setBackground(bg);
    c1[0].setBackground(bg);
    l2[0].setBackground(bg);
    l2[1].setBackground(bg);
    l2[2].setBackground(bg);
    l2[3].setBackground(bg);
    l2[4].setBackground(bg);
    l2[5].setBackground(bg);
    l2[6].setBackground(bg);
    l2[7].setBackground(bg);
    l2[8].setBackground(bg);
    l2[9].setBackground(bg);
    //l2[10].setBackground(bg);
    jt.setBackground(bg);
    t1[1].setFont(fo12);
    t1[2].setFont(fo12);
    t1[3].setFont(fo12);
    t1[4].setFont(fo12);
    t1[5].setFont(fo12);
    t1[6].setFont(fo12);
    t1[7].setFont(fo12);
    t1[8].setFont(fo12);
    t1[9].setFont(fo12);
    //t1[10].setFont(fo12);
    jt.setFont(fo12);
    c1[0].addItemListener(this);
    //c1[1].addItemListener(this);
    //c1[2].addItemListener(this);
    
    //t1[0].addActionListener(this);
    t1[1].addActionListener(this);
    t1[2].addActionListener(this);
    t1[3].addActionListener(this);
    t1[4].addActionListener(this);
    t1[5].addActionListener(this);
    t1[6].addActionListener(this);
    t1[7].addActionListener(this);
    t1[8].addActionListener(this);
    t1[9].addActionListener(this);
    //t1[10].addActionListener(this);
    panel1.add(girisPaneli,BorderLayout.CENTER);   
    //cikisPaneli.add(jt,BorderLayout.NORTH);
    panel1.add(cikisPaneli,BorderLayout.SOUTH);  
    
      //==========================  
      skrolPane=new JScrollPane(panel1);
      tabPane.addTab(say1,skrolPane);
      LSK.add(output);
      tabPane.addTab(say2,LSK);
      c.add(tabPane);    
    }

    public void itemStateChanged(ItemEvent e)
    {     
	SKadi=(String)c1[0].getSelectedItem();
	skmodel.setValues(SKadi,P,T0,T0YH,T1,f1,T2,T3,T4,T7);
	repaint();
    }
    
    public void actionPerformed(ActionEvent e)
    {	    
	if(e.getSource()==t1[1])
	{Double V1=new Double(t1[1].getText());
     P=V1.doubleValue();}
    else if(e.getSource()==t1[2])
    {Double V2=new Double(t1[2].getText());
    T0=V2.doubleValue();if(T0 < T0YH) T0=T0YH;t1[2].setText(""+T0); }
    else if(e.getSource()==t1[3])
    {Double V3=new Double(t1[3].getText());
    T0YH=V3.doubleValue();if(T0YH > T0) T0YH=T0;t1[3].setText(""+T0YH);}
    else if(e.getSource()==t1[4])
    {Double V4=new Double(t1[4].getText());
    T1=V4.doubleValue();}//if(T1 < T0) T1=T0;t1[4].setText(""+T1);}  
    else if(e.getSource()==t1[5])
    {Double V5=new Double(t1[5].getText());
    f1=V5.doubleValue();t1[5].setText(""+f1);
    if(f1 < 0.8) {f1=0.9;t1[5].setText(""+0.8);}
    else if(f1 > 1.0) {f1=1.0;t1[5].setText(""+1.0);}
    }
    else if(e.getSource()==t1[6])
    {Double V6=new Double(t1[6].getText());
    T2=V6.doubleValue(); }
    else if(e.getSource()==t1[7])
    {Double V7=new Double(t1[7].getText());
    T3=V7.doubleValue();}
    else if(e.getSource()==t1[8])
    {Double V8=new Double(t1[8].getText());
    T4=V8.doubleValue(); if(T4 < T0YH) T4=T0YH;t1[8].setText(""+T4);}
    else if(e.getSource()==t1[9])
    {Double V9=new Double(t1[9].getText());
    T7=V9.doubleValue();}
    SKadi=(String)c1[0].getSelectedItem();
    skmodel.setValues(SKadi,P,T0,T0YH,T1,f1,T2,T3,T4,T7);
    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 String toString()
    {
	 String s="  YTO-RKSK GÖVDE - RADYAL KAPALI SU SOĞUTMA KULESİ\n\n";
	 s+="  Copyright : Bu programın tüm hakları Türkoğlu Makina Sanayi ve Ticaret Limited Şti.'ne aittir.\n";
	 s+="  izin olmaksızın hiç bir şekilde kopyalanamaz, başka bir sitede yayınlanamaz\n";
	 s+="   \n";
	 s+="  TÜRKOĞLU MAKİNA SAN. VE TİC. LTD. ŞTİ.\n";
	 s+="  Atatürk Organize Sanayi Bölgesi 10027 Sokak NO:5 (35620)\n";
	 s+="  Tel : 0(232)376 80 07 - 0 (232) 80 08 Faks: (232) 376 80 09\n";
	 s+="  e-mail : yto@yto-tr.com  www : yto-tr.com\n";    
     return s;
	}
                
    public static void main(String s[])
    {
        //main program
	    JFrame f = new JFrame("  YTO-AKSK Aksiyel kapalı soğutma kulesi");
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
        });
        JApplet applet = new AKSKTable();
        f.getContentPane().add("Center", applet);
        applet.init();
        f.pack();
        f.setSize(new Dimension(1000,750));
        f.setVisible(true);
    }    
 }

