[Picross-commit] SF.net SVN: picross: [73] trunk/src/picross/grid
Status: Pre-Alpha
Brought to you by:
yvan_norsa
|
From: <yva...@us...> - 2008-05-05 08:53:37
|
Revision: 73
http://picross.svn.sourceforge.net/picross/?rev=73&view=rev
Author: yvan_norsa
Date: 2008-05-05 01:53:08 -0700 (Mon, 05 May 2008)
Log Message:
-----------
added erase mode
Modified Paths:
--------------
trunk/src/picross/grid/GridAction.java
trunk/src/picross/grid/GridController.java
trunk/src/picross/grid/GridMediator.java
trunk/src/picross/grid/GridModel.java
trunk/src/picross/grid/IGridMediator.java
trunk/src/picross/grid/tests/IGridMediatorStub.java
Modified: trunk/src/picross/grid/GridAction.java
===================================================================
--- trunk/src/picross/grid/GridAction.java 2008-04-30 13:47:52 UTC (rev 72)
+++ trunk/src/picross/grid/GridAction.java 2008-05-05 08:53:08 UTC (rev 73)
@@ -46,6 +46,9 @@
CHECK,
/** Crossing a box. */
- CROSS
+ CROSS,
+
+ /** Erasing a box. */
+ EMPTY
}
Modified: trunk/src/picross/grid/GridController.java
===================================================================
--- trunk/src/picross/grid/GridController.java 2008-04-30 13:47:52 UTC (rev 72)
+++ trunk/src/picross/grid/GridController.java 2008-05-05 08:53:08 UTC (rev 73)
@@ -75,6 +75,9 @@
/** Command asking to repaint the left hints. */
static final String REPAINT_LEFT_HINTS_CMD = "REPAINT_LEFT_HINTS_CMD";
+ /** Command asking to enable the Erase mode. */
+ static final String ERASE_MODE_CMD = "ERASE_MODE_CMD";
+
/** Checking a box. */
//static final int CHECK_ACTION = 0;
@@ -86,11 +89,14 @@
/** The class' logger. */
//private static Logger log = Logger.getLogger(GridController.class);
- /*** Field ***/
+ /*** Fields ***/
/** The view to which the controller is attached. */
private GridUI view = null;
+ /** Indicates wether the erase mode is "on" or not. */
+ private boolean eraseMode;
+
/*** Method overloaded from the class Controller ***/
/** {@inheritDoc} */
@@ -123,6 +129,11 @@
this.view.repaintRowHints(row);
return;
}
+
+ if (cmd.equals(GridController.ERASE_MODE_CMD)) {
+ this.eraseMode = true;
+ return;
+ }
}
/*** Methods implanted from the interface MouseListener ***/
@@ -154,6 +165,7 @@
public void mouseReleased(MouseEvent e) {
//GridController.log.debug("mouseReleased()");
this.checkAndFill(e);
+ this.eraseMode = false;
this.fireEventPerformed(GridController.END_ACTION_CMD);
}
@@ -206,9 +218,16 @@
if (this.view.isInGrid(point)) {
int row = this.view.getRow(point);
int column = this.view.getColumn(point);
- //int type = GridController.modifiersToType(modifiers);
- GridAction type = GridController.modifiersToType(modifiers);
+ GridAction type = GridAction.UNKNOWN;
+
+ if (this.eraseMode) {
+ type = GridAction.EMPTY;
+ } else {
+ //int type = GridController.modifiersToType(modifiers);
+ type = GridController.modifiersToType(modifiers);
+ }
+
//GridController.log.debug("type : " + type);
this.fireEventPerformed(GridController.FILL_CMD,
Modified: trunk/src/picross/grid/GridMediator.java
===================================================================
--- trunk/src/picross/grid/GridMediator.java 2008-04-30 13:47:52 UTC (rev 72)
+++ trunk/src/picross/grid/GridMediator.java 2008-05-05 08:53:08 UTC (rev 73)
@@ -169,6 +169,12 @@
new RepaintLeftHintsCommand(row));
}
+ /** {@inheritDoc} */
+ @Override
+ public void setEraseMode() {
+ this.fireEventPerformed(GridController.ERASE_MODE_CMD);
+ }
+
/*** Accessor ***/
/**
Modified: trunk/src/picross/grid/GridModel.java
===================================================================
--- trunk/src/picross/grid/GridModel.java 2008-04-30 13:47:52 UTC (rev 72)
+++ trunk/src/picross/grid/GridModel.java 2008-05-05 08:53:08 UTC (rev 73)
@@ -418,6 +418,11 @@
}
}
+ if (!this.boxes[column][row].isEmpty() && type == GridAction.EMPTY) {
+ this.boxes[column][row].empty();
+ this.mediator.repaint(row, column);
+ } else {
+
if (this.boxes[column][row].isEmpty()
&& (this.lastModified == null || !this.lastModified.isEmpty())) {
@@ -437,6 +442,7 @@
if (type == GridAction.CHECK) {
this.boxes[column][row].empty();
+ this.setEraseMode();
} else { //if (type == GridAction.CROSS) {
this.boxes[column][row].cross();
}
@@ -445,6 +451,7 @@
if (type == GridAction.CROSS) {
this.boxes[column][row].empty();
+ this.setEraseMode();
} else { //if (type == GridAction.CHECK) {
//GridModel.log.debug("check()");
@@ -454,6 +461,7 @@
this.mediator.repaint(row, column);
}
+ }
this.lastModified = this.boxes[column][row];
this.checkColumn(column);
@@ -461,6 +469,11 @@
this.checkCompleted();
}
+ /** Enables the erase mode. */
+ private void setEraseMode() {
+ this.mediator.setEraseMode();
+ }
+
/**
* Checks if a row is empty.
*
Modified: trunk/src/picross/grid/IGridMediator.java
===================================================================
--- trunk/src/picross/grid/IGridMediator.java 2008-04-30 13:47:52 UTC (rev 72)
+++ trunk/src/picross/grid/IGridMediator.java 2008-05-05 08:53:08 UTC (rev 73)
@@ -53,5 +53,8 @@
/** Tells the application mediator the grid has been filled. */
void congratulations();
+
+ /** Enables the erase mode. */
+ void setEraseMode();
}
Modified: trunk/src/picross/grid/tests/IGridMediatorStub.java
===================================================================
--- trunk/src/picross/grid/tests/IGridMediatorStub.java 2008-04-30 13:47:52 UTC (rev 72)
+++ trunk/src/picross/grid/tests/IGridMediatorStub.java 2008-05-05 08:53:08 UTC (rev 73)
@@ -64,5 +64,7 @@
public void repaintRowHints(int row) { }
public void congratulations() { }
+
+ public void setEraseMode() { }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|