src/horaris/MainList.java
author viric@mandarina
Sun, 14 Jan 2007 20:05:40 +0100
changeset 10 757b42639637
parent 9 9f8e342f193e
child 12 3932322b7d83
permissions -rw-r--r--
Better memory use. Reuse of screens.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
     1
package horaris;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
     2
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
     3
import javax.microedition.lcdui.*;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
     4
import java.util.Hashtable;
9
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
     5
import java.util.Vector;
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
     6
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
     7
import ogdl.*;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
     8
5
2b51aa79357a Simplified screen control among objects.
viric@llimona
parents: 4
diff changeset
     9
public class MainList implements CommandListener, Ekrano
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    10
{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    11
	private Graph list;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    12
	private List mylist;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    13
	private Command cmd_eliri;
9
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    14
	private Command cmd_about;
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    15
	private Main main;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    16
	private Hashtable table;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    17
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    18
	public MainList(Main _main)
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    19
	{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    20
		main = _main;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    21
		loadList();
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    22
4
f92e04d4bfe5 Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents: 1
diff changeset
    23
		mylist = new List("Horaris", List.IMPLICIT);
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    24
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    25
		/* Show the Titles (they're also in the hashtable) */
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    26
		for (int i=0; i < list.size(); i++)
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    27
			mylist.append(list.get(i).get(0).getName(), null);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    28
1
f84379205c35 Changing EXIT to BACK in the main list. Added ignore patterns.
viric@llimona
parents: 0
diff changeset
    29
		cmd_eliri = new Command("Sortir", Command.BACK, 0);
9
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    30
		cmd_about = new Command("Programa", Command.HELP, 0);
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    31
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    32
		mylist.addCommand(cmd_eliri);
9
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    33
		mylist.addCommand(cmd_about);
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    34
		mylist.setCommandListener(this);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    35
		System.err.println("Setting screen");
10
757b42639637 Better memory use. Reuse of screens.
viric@mandarina
parents: 9
diff changeset
    36
	}
757b42639637 Better memory use. Reuse of screens.
viric@mandarina
parents: 9
diff changeset
    37
757b42639637 Better memory use. Reuse of screens.
viric@mandarina
parents: 9
diff changeset
    38
	public void show()
757b42639637 Better memory use. Reuse of screens.
viric@mandarina
parents: 9
diff changeset
    39
	{
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    40
		main.display.setCurrent(mylist);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    41
	}
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    42
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    43
	private void loadList()
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    44
	{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    45
		/* Open file */
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    46
		String res = "/data/list.g";
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    47
		list = new Graph("Root");
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    48
		File2Graph.load(res, list, main);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    49
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    50
		table = new Hashtable();
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    51
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    52
		/* Hashtable "Title" - "filename" */
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    53
		for (int i=0; i < list.size(); i++)
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    54
			table.put(list.get(i).get(0).getName(),
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    55
				list.get(i).getName());
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    56
	}
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    57
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    58
	public void commandAction(Command c, Displayable d)
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    59
	{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    60
		if (c == cmd_eliri)
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    61
		{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    62
			System.out.println("Exit");
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    63
			main.quit();
4
f92e04d4bfe5 Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents: 1
diff changeset
    64
		} else if (c == List.SELECT_COMMAND)
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    65
		{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    66
			String dosiero;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    67
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    68
			dosiero = (String) table.get(mylist.getString(mylist.getSelectedIndex()));
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    69
			System.err.println("Loading file " + dosiero);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    70
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    71
			loadHoraro(dosiero);
9
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    72
		} else if (c == cmd_about)
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    73
		{
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    74
			Vector str = new Vector();
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    75
			str.addElement("Programa \"Horaris\"");
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    76
			str.addElement("Llicència GPL 1.2");
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    77
			str.addElement("Autor: Lluís Batlle i Rossell");
9f8e342f193e Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents: 5
diff changeset
    78
			ShowText st = new ShowText(str, this);
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    79
		}
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    80
	}
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    81
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    82
	private void loadHoraro(String dosiero)
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    83
	{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    84
		Graph horaro = new Graph("RootHoraro");;
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    85
		File2Graph.load("/data/"+dosiero, horaro, main);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    86
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    87
		int speco = Horaroj.distingi(horaro);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    88
		
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    89
		/* if (speco == Horaroj.CXEESTA)
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    90
		{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    91
			newCxeesta(horaro);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    92
		} else */ if (speco == Horaroj.TRANSPORTA);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    93
		{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    94
			try {
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    95
				newTransporta(horaro);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    96
			} catch (Exception e)
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    97
			{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    98
				System.err.println("No es pot carregar" +
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
    99
						" l'horari " + dosiero);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   100
			}
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   101
		}
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   102
	}
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   103
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   104
	private void newTransporta(Graph g) throws Exception
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   105
	{
5
2b51aa79357a Simplified screen control among objects.
viric@llimona
parents: 4
diff changeset
   106
		HoraroTransporta horaro = new HoraroTransporta(g, this);
0
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   107
	}
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   108
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   109
	/*
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   110
	private void newCxeesta(Graph g)
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   111
	{
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   112
		HoraroCxeesta horaro = new HoraroCxeesta(g, main);
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   113
	}
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   114
	*/
8bc2bfcd1bd8 First commit.
viric@llimona
parents:
diff changeset
   115
}