Site hosted by Angelfire.com: Build your free website today!

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Component;
import java.awt.Container;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.List;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextComponent;
import java.awt.TextField;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import serviceDB.Route;
import serviceDB.Service;
import serviceDB.ServiceDB;


/**
* @ DIONNYZO
* @ ITESM-CCM
* @ version 1.0
*/



public class ServiceViewerSolution extends Frame
implements ActionListener, WindowListener
{

private Label fileNamel;
private Label serviceList;
private Label filter;
private Button from;
private Button to;
private Button load;
private Button save;
private TextField fileNamet;
private TextField city;
private TextArea statusBar;
private List list;
private ServiceDB serviceDB;
private final String DELIM = ",";
private final int UNFILTERED = 0;
private final int FROM_FILTERED = 1;
private final int TO_FILTERED = 2;

public static void main(String args[])
throws IOException
{
ServiceViewerSolution serviceviewersolution = new ServiceViewerSolution();
}

public ServiceViewerSolution()
throws IOException
{
setSize(600, 400);
setTitle("Service Viewer");
fileNamel = new Label("File Name:", 2);
serviceList = new Label("Service List", 2);
filter = new Label("Filter", 1);
fileNamet = new TextField();
statusBar = new TextArea(5, 20);
save = new Button("Save");
city = new TextField();
from = new Button("From");
to = new Button("To");
load = new Button("Load");
list = new List(10, false);
save.addActionListener(this);
to.addActionListener(this);
load.addActionListener(this);
from.addActionListener(this);
setLayout(new BorderLayout());
Panel panel = new Panel(new GridLayout(1, 6, 10, 10));
Panel panel1 = new Panel(new GridLayout(1, 2, 10, 10));
Panel panel2 = new Panel(new BorderLayout());
Panel panel3 = new Panel(new GridLayout(3, 3, 0, 0));
Panel panel4 = new Panel(new GridLayout(4, 1, 0, 0));
Panel panel5 = new Panel(new GridLayout(1, 2, 10, 0));
addWindowListener(this);
panel.add(fileNamel);
panel.add(fileNamet);
panel.add(load);
panel.add(save);
panel.add(new Panel());
panel.add(new Panel());
panel2.add(serviceList, "North");
panel2.add(list, "Center");
panel1.add(panel2);
panel5.add(from);
panel5.add(to);
panel4.add(filter);
panel4.add(city);
panel4.add(panel5);
panel4.add(new Panel());
panel3.add(new Panel());
panel3.add(new Panel());
panel3.add(new Panel());
panel3.add(new Panel());
panel3.add(panel4);
panel3.add(new Panel());
panel3.add(new Panel());
panel3.add(new Panel());
panel3.add(new Panel());
panel1.add(panel3);
add(panel, "North");
add(panel1, "Center");
add(statusBar, "South");
setVisible(true);
serviceDB = new ServiceDB();
load.setEnabled(true);
setEnabledAll(false);
}

private void setEnabledAll(boolean flag)
{
save.setEnabled(flag);
from.setEnabled(flag);
to.setEnabled(flag);
city.setEnabled(flag);
}

private void fillList(int i)
{
if(i == 0)
{
list.removeAll();
for(int j = 0; j < serviceDB.size(); j++)
{
list.add(((Service)serviceDB.get(j)).toString());
}

} else
{
String s = city.getText();
if(s.equals(""))
{
statusBar.setText("No city specified.\n");
} else
{
list.removeAll();
if(i == 1)
{
for(int k = 0; k < serviceDB.size(); k++)
{
if(((Service)serviceDB.get(k)).getRoute().getOrigin().equals(s) || s.equals(""))
{
list.add(((Service)serviceDB.get(k)).toString());
}
}

} else
{
for(int l = 0; l < serviceDB.size(); l++)
{
if(((Service)serviceDB.get(l)).getRoute().getDestination().equals(s) || s.equals(""))
{
list.add(((Service)serviceDB.get(l)).toString());
}
}

}
}
}
}

private void loadData()
{
try
{
serviceDB = new ServiceDB();
serviceDB.load(new BufferedReader(new FileReader(fileNamet.getText())), ",");
fillList(0);
if(serviceDB.size() == 0)
{
statusBar.setText("No data loaded\n");
setEnabledAll(false);
} else
{
statusBar.setText("Data loaded from file " + fileNamet.getText() + "\n");
setEnabledAll(true);
}
}
catch(FileNotFoundException filenotfoundexception)
{
statusBar.setText("File not found\n");
}
catch(IOException ioexception)
{
statusBar.setText("Problem with IO\n");
}
catch(java.util.NoSuchElementException nosuchelementexception)
{
statusBar.setText("Bad file format\n");
}
catch(NumberFormatException numberformatexception)
{
statusBar.setText("Bad data format\n");
}
catch(NullPointerException nullpointerexception)
{
statusBar.setText(nullpointerexception.toString() + "\n");
}
}

private void saveData()
{
try
{
PrintWriter printwriter = new PrintWriter(new FileWriter(fileNamet.getText()));
for(int i = 0; i < list.getItemCount(); i++)
{
printwriter.println(list.getItem(i));
}

statusBar.setText(list.getItemCount() + " services saved in file " + fileNamet.getText() + "\n");
printwriter.close();
}
catch(IOException ioexception)
{
statusBar.setText("Problem with IO\n");
}
}

public void actionPerformed(ActionEvent actionevent)
{
if(actionevent.getSource().equals(load))
{
loadData();
} else
if(actionevent.getSource().equals(save))
{
saveData();
} else
if(actionevent.getSource().equals(to))
{
fillList(2);
} else
if(actionevent.getSource().equals(from))
{
fillList(1);
}
}

public void windowActivated(WindowEvent windowevent)
{
}

public void windowClosed(WindowEvent windowevent)
{
}

public void windowClosing(WindowEvent windowevent)
{
System.exit(0);
}

public void windowDeactivated(WindowEvent windowevent)
{
}

public void windowDeiconified(WindowEvent windowevent)
{
}

public void windowIconified(WindowEvent windowevent)
{
}

public void windowOpened(WindowEvent windowevent)
{
}
}