Show SaveTournamentAction.java syntax highlighted
package geronimo.hoshigo.control.tournament;
import geronimo.hoshigo.model.tournament.Tournament;
import geronimo.hoshigo.view.IconRegistry;
import geronimo.hoshigo.view.IconRegistry.IconSize;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jface.action.Action;
/**
* Action d'enregistrement (sous) d'une partie.
* @author Geronimo
*/
public class SaveTournamentAction extends Action
{
private static SaveTournamentAction instance;
private Tournament selectedTournament;
private final Map<Tournament,String> savedTournaments;
/**
* Création de l'action. Privé car on n'autorise qu'une seule instance
* de la classe.
*/
private SaveTournamentAction()
{
super();
this.setText("&Enregistrer@Ctrl+O");
this.setToolTipText("Enregistrer le tournoi");
this.setImageDescriptor( IconRegistry.getDescriptor("save_tournament",IconSize.SMALL) );
this.setEnabled(false);
this.savedTournaments = new HashMap<Tournament,String>();
}
/**
* Changement de tournoi actif
* @param tournament Nouveau tournoi actif
*/
public void setActiveTournament(Tournament tournament)
{
this.selectedTournament = tournament;
this.setEnabled( this.selectedTournament != null
&& this.savedTournaments.containsKey(this.selectedTournament) );
}
/**
* Ajout d'un tournoi dans la liste des tournois dont le fichier est connu
* @param tournament Tournoi enregistré
* @param path Chemin du fichier
*/
public void addTournament(Tournament tournament, String path)
{
this.savedTournaments.put(tournament, path);
if( this.selectedTournament == tournament )
{
this.setEnabled(true);
}
}
/**
* Accès à l'instance de la classe.
* @return Retourne l'instance
*/
public synchronized static SaveTournamentAction getInstance()
{
// Creation de l'instance au premier appel
if(instance == null)
{
instance = new SaveTournamentAction();
}
return instance;
}
/**
* Lancement de l'action. Supprime la partie
*/
public void run()
{
if( this.selectedTournament != null && this.savedTournaments.containsKey(this.selectedTournament) )
{
System.out.println("<SaveTournamentAction> Enregistrement du tournoi" +
this.selectedTournament + " => " + this.savedTournaments.get(this.selectedTournament) );
// TODO implémenter
}
}
}
See more files for this project here