demoaction.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 59 行
JAVA
59 行
/************************************************************
*
* Copyright (c) 2003 Chemi. All rights reserved.
*
* This program and the accompanying materials
* are made available under the terms of the MIT License
* which accompanies this distribution, and is available at
* http://www.opensource.org/licenses/mit-license.html
*
************************************************************/
package es.org.chemi.games.sokoban.actions;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.zip.ZipFile;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.MessageDialog;
import es.org.chemi.games.sokoban.SokobanMessages;
import es.org.chemi.games.sokoban.SokobanPlugin;
import es.org.chemi.games.sokoban.events.MoveHelper;
import es.org.chemi.games.sokoban.ui.TileMap;
public class DemoAction extends Action
{
private TileMap map = null;
public DemoAction(String label, TileMap map)
{
super(label);
this.map = map;
}
public void run()
{
SokobanPlugin.trace(this.getClass().getName(),"Demo game creation solicited."); //$NON-NLS-1$
try{
ZipFile zf=new ZipFile(new File(FileLocator.getBundleFile(SokobanPlugin.getDefault().getBundle()),"levels/"+map.getPreferences().getMode()+".map"));
BufferedReader br = new BufferedReader(new InputStreamReader(zf.getInputStream(zf.getEntry(""+map.getPreferences().getLevel(map.getPreferences().getMode())+".soa"))));
map.setIsNewLevel(true);
map.loadMap();
map.redraw();
map.setFocus();
String answer=br.readLine();
br.close();
zf.close();
map.setDemo(true);
new MoveHelper(map).move(answer);
} catch (Exception e) {
map.setDemo(false);
MessageDialog.openInformation(map.getShell(), "No Answer", SokobanMessages.getString("DemoAction.noAnswer"));
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?