You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package solitaer;
import java.awt.Component; import java.awt.event.MouseEvent;
import javax.swing.SwingUtilities; import javax.swing.event.MouseInputListener;
public class MyMouseListener implements MouseInputListener {
private SaveStack saveStack; private BaseStack tempStack; private BaseStack selectedStack; private Card tempCard;
public MyMouseListener(SaveStack _save) { // TODO Auto-generated constructor stub
this.saveStack = _save; }
@Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub
}
@Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub
System.out.println("DOWN"); Component com = SwingUtilities.getDeepestComponentAt(e.getComponent(), e.getX(), e.getY()); if ((com instanceof Card && com.getParent() instanceof StartStack) || (com instanceof StartStack && ((StartStack) com).stackIsEmpty())) {
if (saveStack.stackIsEmpty()) {
if (com instanceof Card && com.getParent() instanceof StartStack) { tempCard = (Card) com; tempStack = (StartStack) com.getParent();
// Wenn faceDown, schau ob es die oberste Carde ist und dreh diese um
if (!tempCard.isFaceUp()) { if (tempStack.peekLastCard().equals(tempCard)) { tempCard.setFaceUp(true); tempCard.repaint(); } } // Card faceUp
else { // move all Cards below the selected Card to Save
int index = tempStack.indexOfCard(tempCard); while (tempStack.stackSize() - 1 >= index) { saveStack.addCard(tempStack.removeLastCard()); } selectedStack = tempStack;
} } } // saveStack is NOT empty
else { if(com instanceof StartStack) { tempStack = (StartStack) com; } else { tempStack = (StartStack) com.getParent(); } if (selectedStack == null) { System.out.println("ERROR selectedStack in StartStack"); } if (tempStack.cardCheck(tempStack.peekLastCard(), saveStack.peekLastCard())) { clearSaveStack(tempStack); } else { clearSaveStack(selectedStack); }
selectedStack = null; } } // AblageStack
else if (com.getParent() instanceof AblageStack || com instanceof AblageStack) {
System.out.println("AblageStack");
if (com instanceof AblageStack) { tempStack = (AblageStack) com; } else { tempStack = (AblageStack) com.getParent(); }
if (saveStack.stackIsEmpty()) { // Move Top Card from AblageStack in Save
if (tempStack.stackIsEmpty() == false) { saveStack.addCard(tempStack.removeLastCard()); selectedStack = tempStack; }
} else { // Move Card from Save in AblageStack
if (saveStack.stackSize() == 1) { if (tempStack.cardCheck(tempStack.peekLastCard(), saveStack.peekLastCard())) { tempStack.addCard(saveStack.removeLastCard()); }
} else { // Clear Save
clearSaveStack(selectedStack); } }
} // GeberStack
else if (com.getParent() instanceof GeberStack || com instanceof GeberStack) { System.out.println("GeberStack"); if (com instanceof GeberStack) { tempStack = (GeberStack) com; } else { tempStack = (GeberStack) com.getParent(); } if(this.saveStack.stackIsEmpty() == false) { clearSaveStack(selectedStack); } if (tempStack.stackIsEmpty()) { // Move all from Waste to Geber
((GeberStack) this.tempStack).swapWasteGeber(); } else { // Move next card to Waste
((GeberStack) this.tempStack).moveToWaste(); } } // WasteStack
else if (com.getParent() instanceof WasteStack || com instanceof WasteStack) { System.out.println("WasteStack"); if (com instanceof WasteStack) { tempStack = (WasteStack) com; } else { tempStack = (WasteStack) com.getParent(); }
if (saveStack.stackIsEmpty()) { // Move Top Card from AblageStack in Save
if (tempStack.stackIsEmpty() == false) { saveStack.addCard(tempStack.removeLastCard()); selectedStack = tempStack; }
} else { clearSaveStack(selectedStack); } //Clear SaveStack click on SolitaerGamePanel
}else if(com instanceof SolitaerGamePanel || com.getParent() instanceof SolitaerGamePanel && com instanceof StartStack ){ if(saveStack.stackIsEmpty() == false) { clearSaveStack(selectedStack); } } }
private void clearSaveStack(BaseStack _ziel) { // Alles wieder auf den Ursprünglichen Stack packen
while (!saveStack.stackIsEmpty()) { _ziel.addCard(saveStack.removeLastCard()); } }
@Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub
}
@Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub
}
@Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub
}
@Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub
}
@Override public void mouseMoved(MouseEvent e) { // TODO Auto-generated method stub
}
}
|