[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. |