⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cardwaste.java

📁 请认真阅读您的文件包然后写出其具体功能(至少要20个字)。尽量不要让站长把时间都花费在为您修正说明上。压缩包解压时不能有密码。系统会自动删除debug和release目录
💻 JAVA
字号:
package de.tsr.jsol.logic;

import java.util.*;
import java.util.NoSuchElementException;
import javax.microedition.lcdui.*;

import de.tsr.jsol.gui.IGraphicsWrapper;
import de.tsr.jsol.util.CStack;

public class CardWaste extends CardContainer implements ICardSelection {
	private CStack _waste = new CStack();
	private Card _selection;
	private UndoCommand _undoCommand;
	
	public CardWaste( int x, int y ) {
		super( x, y );
	}
	
	public void push( Card card ) {
		_waste.push( card );
	}
	
	public void Draw( IGraphicsWrapper g ) {
		if( !_waste.empty() && _selection == null ) {
			((Card)_waste.peek()).Paint(g);
		}
		else if( _selection != null ) {
			g.setStrokeStyle( Graphics.DOTTED );
			_selection.Paint( g );
			g.setStrokeStyle( Graphics.SOLID);			
		}
		else {			
			DrawEmptyContainer(g);		
		}		
	}
	
	public ICardSelection VisitCardGroup(ICardSelection selection) {
		if( selection.SelectionSize() == 1 && _selection == selection.SelectedCardAt(0)) {
			_waste.push( _selection );
			_selection = null;
			return null;
		}
		return selection;
	}

	public ICardSelection VisitClicked() {
		if( !_waste.empty() && _selection == null )  {
			_selection = _waste.pop();
		    _undoCommand = new UndoCommand();
			_undoCommand.AddCard( _selection );
			return this;
		}
		else 
			return null;		
	}	
	
	public Card SelectedCardAt(int position) {
		if( position != 0 ) {
			throw new NoSuchElementException("Index out of range. Waste has only one"
					+ " selected Card.");
		}
		return _selection;
	}
	
	public int SelectionSize() {
		if( _selection == null ) 
			return 0;
		else 
			return 1;
	}	
	
	public void RemoveSelection() {
		_selection = null;
		UndoChain.AddCommand(_undoCommand);
	}
	
	public Enumeration SelectedElements() {
		Vector v = new Vector();
		v.addElement(_selection);
		return v.elements();
	}
	
	public ICardSelection Clicked(ICardSelection selection) {
		if( selection == null)
			return VisitClicked();
		else 
			return VisitCardGroup(selection);
	}
	
	public void SingleClicked() {
		if( _waste.empty()) return;
		_selection = _waste.pop();
		Enumeration e = _singleClickDestinations.elements();
		while( e.hasMoreElements()) {
			IConnectable container = (CardContainer)e.nextElement();
			if ( null == container.Clicked(this) ) {
				RemoveSelection();
				return;
			}
		}
		_waste.push(_selection);
		RemoveSelection();
	}
	
	public UndoCommand GetUndoCommand() {
	    return _undoCommand;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -