SOMA.gui.lingua
Class Lingua

java.lang.Object
  extended bySOMA.gui.lingua.Lingua

public class Lingua
extends java.lang.Object


Field Summary
protected static char CAR_APICE1
          Caratteri con sui devono iniziare e finire tutte le frasi nei file di lingua.
protected static char CAR_APICE2
           
protected static java.lang.String[] FILE_EXT
          Estensioni di DEFAULT dei file si lingua (con anche il punto iniziale) Se NON ESISTE IL FILE "Lingua.lang" si useranno queste impostazioni!
protected static java.lang.String[] FILE_ICO
          Immagini delle bandiere di ogni lingua
protected static java.lang.String[] FILE_IMG
           
protected static java.lang.String FILE_LINGUE
          File contenente l'elenco delle lingue (usato per SOVRASCRIVERE le impostazioni di default) Se NON ESISTE tale file, si useranno le impostazioni definite tra poco.
protected static java.util.Vector fileCaricati
          Lista di tutti i file di lingua caricati (necessario per il cambio dinamico della lingua)
static int LINGUA_DEFAULT
          Per default si usa la prima lingua definita in "Lingua.lang"
static java.lang.String LINGUA_PACKAGE
           
static java.lang.String LINGUA_PACKAGE_IMG
           
protected static int linguaAttuale
          Memorizza la lingua correntemente in uso (la prima, in genere quella inglese)
protected static javax.swing.event.EventListenerList listenerList
          Lista contenente tutti gli oggetti che si sono "registrati" per ascoltare un cambiamento di lingua!
protected static boolean primaVolta
          Questo mi dice se non si è ancora cercato un'alternativa al default
protected static java.lang.String[] STR_LINGUA
          Nome delle lingue (ognuna va scritta nella propria lingua di origine!)
protected static java.util.Hashtable tabIdentFrasi
          Tabella contenente tutte le coppie (identificatore, stringa) tramite l'ID si ottiene la stringa (nella lingua attuale) Nel file ogni riga contiene: << Identificatore Frase
 
Constructor Summary
Lingua()
           
 
Method Summary
static void addLinguaListener(LinguaListener cheListener)
          Ci si registra come LISTENER dell'oggetto Lingua.
protected static void CaricaElencoLingue()
          Metodo INTERNO; carica l'elenco delle lingue (da fare solo la PRIMA volta) Se il file non c'è, si usa il DEFAULT interno (inglese e italiano)
static void caricaFileDiLingua(java.lang.Class cheClasse)
          Carica il file di lingua (in base alla lingua correntemente definita) relativo alla CLASSE passata.
static void caricaFileDiLingua(java.lang.Object THIS)
          Carica il file di lingua (in base alla lingua correntemente definita) relativo alla CLASSE DELL'OGGETTO passato.
static void caricaFileDiLingua(java.lang.String NomeFileSenzaExt)
          Carica il file di lingua (in base alla lingua correntemente definita) relativo alla CLASSE il cui nome è passato sottoforma di stringa.
protected static void caricaFileDiLingua(java.lang.String NomeFile, int cheLingua)
          Metodo INTERNO per caricare il file di lingua relativo alla CLASSE il cui nome è passato in "NomeFile" (sottoforma di stringa) nella lingua passata in "cheLingua".
protected static void caricaFileDiLingua(java.lang.String NomeFile, int cheLingua, java.util.Hashtable tabIdentFrasiPassata)
          Metodo INTERNO per caricare il file di lingua relativo alla CLASSE il cui nome è passato in "NomeFile" (sottoforma di stringa) nella lingua passata in "cheLingua".
static void caricaFileDiLinguaDaTabella(java.util.Hashtable tabella)
          Questo metodo "completa" la funzionalità dei "caricaFileDiLinguaSuTabella": permette di caricare nella tabella interna di "Lingua" tutte le coppie "(ID,frase)" che sono contenute nella tabella (hash-table) passata.
static java.util.Hashtable caricaFileDiLinguaSuTabella(java.lang.Class cheClasse)
          Seconda variante: si passa la CLASSE di cui si vuol caricare il file di lingua.
static java.util.Hashtable caricaFileDiLinguaSuTabella(java.lang.Object THIS)
          Metodo utile per il "trasporto" del proprio (e solo) file di lingua.
static java.util.Hashtable caricaFileDiLinguaSuTabella(java.lang.String NomeFileSenzaExt)
          Ultima variante: si passa la STRINGA contenente il nome del file (senza estensione) di lingua da caricare.
static java.lang.String[] cheElencoLingue()
          Rende l'elenco di lingue conosciute (non necessariamente supportate dal programma) L'elenco è definito nel file "Lingua.lang" (vedi costante FILE_LINGUE)
static java.lang.String[] cheExtLingue()
          Rende l'elenco delle estensioni dei file di lingua L'elenco è definito nel file "Lingua.lang" (vedi costante FILE_LINGUE)
static java.lang.String[] cheIcoLingue()
          Rende l'elenco dei file di icona per ogni lingua L'elenco è definito nel file "Lingua.lang" (vedi costante FILE_LINGUE)
static java.lang.String[] cheImgLingue()
          Rende l'elenco dei file con le bandiere (grandi) per ogni lingua L'elenco è definito nel file "Lingua.lang" (vedi costante FILE_LINGUE)
static int cheLingua(java.lang.String NomeLingua)
          Rende l'intero (da usare in "defLingua") che rappresena la lingua passata.
static int cheLinguaAttuale()
          Rende l'intero corrispondente alla lingua attualmente usata
static void defLingua(int cheLingua)
          DEFINISCE DINAMICAMENTE UNA NUOVA LINGUA.
static void defLingua(java.lang.String NomeLingua)
          DEFINISCE DINAMICAMENTE UNA NUOVA LINGUA.
static boolean esisteFileDiLingua(java.lang.Class cheClasse)
          Rende 'true' se esiste il file di lingua relativo alla classe passata.
static boolean esisteFileDiLingua(java.lang.Object THIS)
          Rende 'true' se esiste il file di lingua relativo all'oggetto passato.
static boolean esisteFileDiLingua(java.lang.String NomeFileSenzaExt)
          Rende 'true' se esiste il file di lingua relativo alla classe contenuta nella stringa passata.
protected static void fireLinguaCambiata()
          Metodo INTERNO, usato per notificare a tutti i listener (che si sono registrati con "addLinguaListener") che è avvenuto un evento di "cambio di lingua".
static java.lang.String frase(java.lang.String Identificatore)
          Rende la frase (nella lingua corrente) accoppiata all'Identificatore.
static void removeLinguaListener(LinguaListener cheListener)
          Funzione inversa di "addLinguaListener"; serve per annullare una precedente registrazione di un Listener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LINGUA_DEFAULT

public static final int LINGUA_DEFAULT
Per default si usa la prima lingua definita in "Lingua.lang"

See Also:
Constant Field Values

LINGUA_PACKAGE

public static final java.lang.String LINGUA_PACKAGE

LINGUA_PACKAGE_IMG

public static final java.lang.String LINGUA_PACKAGE_IMG

CAR_APICE1

protected static final char CAR_APICE1
Caratteri con sui devono iniziare e finire tutte le frasi nei file di lingua.

See Also:
Constant Field Values

CAR_APICE2

protected static final char CAR_APICE2
See Also:
Constant Field Values

FILE_LINGUE

protected static final java.lang.String FILE_LINGUE
File contenente l'elenco delle lingue (usato per SOVRASCRIVERE le impostazioni di default) Se NON ESISTE tale file, si useranno le impostazioni definite tra poco. Il file "Lingua.lang" DEVE CONTENERE IN OGNI LINEA UNA DEFINIZIONE DI UNA LINGUA scritta usando delle frasi - separate da spazi - che hanno il seguente significato: EstensioneDelFile NomeLingua IconaMenu ImmagineBandiera Per esempio: .eng English IcoEng.gif FlagEng.gif


FILE_EXT

protected static java.lang.String[] FILE_EXT
Estensioni di DEFAULT dei file si lingua (con anche il punto iniziale) Se NON ESISTE IL FILE "Lingua.lang" si useranno queste impostazioni!


STR_LINGUA

protected static java.lang.String[] STR_LINGUA
Nome delle lingue (ognuna va scritta nella propria lingua di origine!)


FILE_ICO

protected static java.lang.String[] FILE_ICO
Immagini delle bandiere di ogni lingua


FILE_IMG

protected static java.lang.String[] FILE_IMG

linguaAttuale

protected static int linguaAttuale
Memorizza la lingua correntemente in uso (la prima, in genere quella inglese)


tabIdentFrasi

protected static java.util.Hashtable tabIdentFrasi
Tabella contenente tutte le coppie (identificatore, stringa) tramite l'ID si ottiene la stringa (nella lingua attuale) Nel file ogni riga contiene: << Identificatore Frase.. >>


fileCaricati

protected static java.util.Vector fileCaricati
Lista di tutti i file di lingua caricati (necessario per il cambio dinamico della lingua)


listenerList

protected static javax.swing.event.EventListenerList listenerList
Lista contenente tutti gli oggetti che si sono "registrati" per ascoltare un cambiamento di lingua! NON mi serve un "LinguaEvent". Se mi servisse scriverei: protected static LinguaEvent linguaEvent = null;


primaVolta

protected static boolean primaVolta
Questo mi dice se non si è ancora cercato un'alternativa al default

Constructor Detail

Lingua

public Lingua()
Method Detail

CaricaElencoLingue

protected static void CaricaElencoLingue()
Metodo INTERNO; carica l'elenco delle lingue (da fare solo la PRIMA volta) Se il file non c'è, si usa il DEFAULT interno (inglese e italiano)


cheElencoLingue

public static java.lang.String[] cheElencoLingue()
Rende l'elenco di lingue conosciute (non necessariamente supportate dal programma) L'elenco è definito nel file "Lingua.lang" (vedi costante FILE_LINGUE)


cheExtLingue

public static java.lang.String[] cheExtLingue()
Rende l'elenco delle estensioni dei file di lingua L'elenco è definito nel file "Lingua.lang" (vedi costante FILE_LINGUE)


cheIcoLingue

public static java.lang.String[] cheIcoLingue()
Rende l'elenco dei file di icona per ogni lingua L'elenco è definito nel file "Lingua.lang" (vedi costante FILE_LINGUE)


cheImgLingue

public static java.lang.String[] cheImgLingue()
Rende l'elenco dei file con le bandiere (grandi) per ogni lingua L'elenco è definito nel file "Lingua.lang" (vedi costante FILE_LINGUE)


cheLingua

public static int cheLingua(java.lang.String NomeLingua)
Rende l'intero (da usare in "defLingua") che rappresena la lingua passata. Nota: rende -1 se la lingua non è supportata.


cheLinguaAttuale

public static int cheLinguaAttuale()
Rende l'intero corrispondente alla lingua attualmente usata


defLingua

public static void defLingua(java.lang.String NomeLingua)
DEFINISCE DINAMICAMENTE UNA NUOVA LINGUA. La stringa passata è il nome logico di una lingua (vedi il file Lingua.lang) Dopo averlo convertito con "cheLingua()" invoca la "defLingua (int cheLingua)".


defLingua

public static void defLingua(int cheLingua)
DEFINISCE DINAMICAMENTE UNA NUOVA LINGUA. Se tale lingua è quella attualmente in uso, non viene fatto nulla. Altrimenti vengono automaticamente caricati tutti i file di lingua precedentemente caricati da una "caricaFileDiLingua", ma stavolta li si carica nella NUOVA lingua (con una differente estensione del file). Dopo il ricaricamento viene generato un evento di "cambio-lingua" che verrà ascoltato da chiunque si sia "registrato" come "listener" di questa classe.


caricaFileDiLingua

public static void caricaFileDiLingua(java.lang.Object THIS)
Carica il file di lingua (in base alla lingua correntemente definita) relativo alla CLASSE DELL'OGGETTO passato. Il nome del file sarà uguale a quello della classe dell'oggetto passato nel parametro THIS. Uso: Lingua.caricaFileDiLingua (this);


caricaFileDiLingua

public static void caricaFileDiLingua(java.lang.Class cheClasse)
Carica il file di lingua (in base alla lingua correntemente definita) relativo alla CLASSE passata. Il nome del file sarà uguale a quello della classe passata. Uso: Lingua.caricaFileDiLingua (NOMECLASSE.class);


caricaFileDiLingua

public static void caricaFileDiLingua(java.lang.String NomeFileSenzaExt)
Carica il file di lingua (in base alla lingua correntemente definita) relativo alla CLASSE il cui nome è passato sottoforma di stringa. Questo permette a una classe di PRE-CARICARE file di lingua di altre classi. Uso: Lingua.caricaFileDiLingua ("NOMECLASSE");


caricaFileDiLingua

protected static void caricaFileDiLingua(java.lang.String NomeFile,
                                         int cheLingua)
Metodo INTERNO per caricare il file di lingua relativo alla CLASSE il cui nome è passato in "NomeFile" (sottoforma di stringa) nella lingua passata in "cheLingua". Questo metodo è invocato da tutte le "caricaFileDiLingua" a un solo argomento. Se il file di lingua è GIA` STATO CARICATO (nella stessa lingua), NON verrà ricaricato. Se il file di lingua NON VIENE TROVATO, si proverà a caricare la versione in INGLESE di tale file (che in genere è sempre presente); se neppure tale file viene trovato, viene abortito il programma segnalando l'errore! Nota: questo metodo invoca la "caricaFileDiLingua" successiva dandogli un "alias" alla tabella interna di "Lingua".


caricaFileDiLingua

protected static void caricaFileDiLingua(java.lang.String NomeFile,
                                         int cheLingua,
                                         java.util.Hashtable tabIdentFrasiPassata)
Metodo INTERNO per caricare il file di lingua relativo alla CLASSE il cui nome è passato in "NomeFile" (sottoforma di stringa) nella lingua passata in "cheLingua". Questo metodo COMPLETA la "caricaFileDiLingua" a due parametri e carica il file di lingua passato nell'hash-table passata (in genere viene passato un aliasing alla tabella interna delle frasi di "Lingua": tabIdentFrasi) Il file di lingua viene qui caricato nella tabella IN OGNI CASO, anche se tutte le coppie (ID,frase) sono in essa già presenti. Se il file di lingua NON VIENE TROVATO, si proverà a caricare la versione in INGLESE di tale file (che in genere è sempre presente); se neppure tale file viene trovato, viene abortito il programma segnalando l'errore! NB: l'aborto viene forzato tramite un "System.exit(1);", perciò non c'è modo di impedirlo. Lo si può però prevenire andando a controllare se esiste il file di lingua che si vuole caricare; basta invocare la esisteFileDiLingua().


esisteFileDiLingua

public static boolean esisteFileDiLingua(java.lang.Object THIS)
Rende 'true' se esiste il file di lingua relativo all'oggetto passato.


esisteFileDiLingua

public static boolean esisteFileDiLingua(java.lang.Class cheClasse)
Rende 'true' se esiste il file di lingua relativo alla classe passata.


esisteFileDiLingua

public static boolean esisteFileDiLingua(java.lang.String NomeFileSenzaExt)
Rende 'true' se esiste il file di lingua relativo alla classe contenuta nella stringa passata. Nota: viene cercato il file di lingua relativo alla lingua correntemente impostata; in caso NON venisse trovato viene cercato il file per la lingua inglese. Viene reso 'false' se neppure questo file viene trovato.


frase

public static java.lang.String frase(java.lang.String Identificatore)
Rende la frase (nella lingua corrente) accoppiata all'Identificatore. E` la funzione base della "conversione". La stringa resa sarà quella associata all'identificatore (passato) che è stata precedentemente caricata dal file di lingua opportuno relativo alla classe.


caricaFileDiLinguaSuTabella

public static java.util.Hashtable caricaFileDiLinguaSuTabella(java.lang.Object THIS)
Metodo utile per il "trasporto" del proprio (e solo) file di lingua. Funziona come le "caricaFileDiLingua" ma le coppie "(ID,frase)" NON vengono caricate in memoria (nella tabella interna a "Lingua") ma su una tabella (hash-table) che viene creata dal metodo e resa. Tale tabella può essere caricata nella tabella interna di "Lingua" tramite l'invocazione del metodo "caricaFileDiLinguaDaTabella". L'utilità è che la tabella è "serializzabile" e può quindi facilmente essere trasferita da un computer a un altro (tramite socket). Come per la "caricaFileDiLingua" (a un parametro) anche questo metodo ha tre "varianti", questa è la prima e ha come parametro l'oggetto di cui caricare il file di lingua.


caricaFileDiLinguaSuTabella

public static java.util.Hashtable caricaFileDiLinguaSuTabella(java.lang.Class cheClasse)
Seconda variante: si passa la CLASSE di cui si vuol caricare il file di lingua.


caricaFileDiLinguaSuTabella

public static java.util.Hashtable caricaFileDiLinguaSuTabella(java.lang.String NomeFileSenzaExt)
Ultima variante: si passa la STRINGA contenente il nome del file (senza estensione) di lingua da caricare.


caricaFileDiLinguaDaTabella

public static void caricaFileDiLinguaDaTabella(java.util.Hashtable tabella)
Questo metodo "completa" la funzionalità dei "caricaFileDiLinguaSuTabella": permette di caricare nella tabella interna di "Lingua" tutte le coppie "(ID,frase)" che sono contenute nella tabella (hash-table) passata. Tale tabella deve essere stata creata tramite la "caricaFileDiLinguaSuTabella".


addLinguaListener

public static void addLinguaListener(LinguaListener cheListener)
Ci si registra come LISTENER dell'oggetto Lingua. Ogni listener deve implementare l'interfaccia "LinguaListener" e sara' avvisato quando avviene un cambio di lingua. Anche se l'accostamento delle parole inglesi "add" e "Listener" con l'italiano "Lingua" non è molto grazioso, l'ho fatto per mantenere la "compatibilità" di sintassi definita dal modello a eventi di Java.


removeLinguaListener

public static void removeLinguaListener(LinguaListener cheListener)
Funzione inversa di "addLinguaListener"; serve per annullare una precedente registrazione di un Listener.


fireLinguaCambiata

protected static void fireLinguaCambiata()
Metodo INTERNO, usato per notificare a tutti i listener (che si sono registrati con "addLinguaListener") che è avvenuto un evento di "cambio di lingua".



Copyright © 2004 Luca Foschini