Show SaveGameAsAction.java syntax highlighted
package geronimo.hoshigo.control.game;
import geronimo.hoshigo.model.game.Game;
import geronimo.hoshigo.view.IconRegistry;
import geronimo.hoshigo.view.IconRegistry.IconSize;
import org.eclipse.jface.action.Action;
/**
* Action d'enregistrement (sous) d'une partie.
* @author Geronimo
*/
public class SaveGameAsAction extends Action
{
private static SaveGameAsAction instance;
private Game selectedGame;
/**
* Création de l'action. Privé car on n'autorise qu'une seule instance
* de la classe.
*/
private SaveGameAsAction()
{
super();
this.setText("&Enregistrer sous...@Ctrl+O");
this.setToolTipText("Enregistrer la partie sous...");
this.setImageDescriptor( IconRegistry.getDescriptor("save_game_as",IconSize.SMALL) );
this.setEnabled(false);
}
/**
* Changement de partie active
* @param game Partie active
*/
public void setActiveGame(Game game)
{
this.selectedGame = game;
this.setEnabled( this.selectedGame != null );
}
/**
* Accès à l'instance de la classe.
* @return Retourne l'instance
*/
public synchronized static SaveGameAsAction getInstance()
{
// Creation de l'instance au premier appel
if(instance == null)
{
instance = new SaveGameAsAction();
}
return instance;
}
/**
* Lancement de l'action. Supprime la partie
*/
public void run()
{
if(this.selectedGame != null)
{
String fileName = this.selectedGame.toString().concat(".sfg");
System.out.println("<SaveGameAsAction> Enregistrement de la partie " +
this.selectedGame + " => " + fileName );
SaveGameAction.getInstance().addGame(this.selectedGame, fileName);
}
}
}
See more files for this project here